From 946a7e0906ac1b4b8b9b93088803b18071dc0dd1 Mon Sep 17 00:00:00 2001 From: Raphael Riebl Date: Thu, 17 Oct 2024 11:53:24 +0200 Subject: [PATCH] asn1: add CAM, DENM and CPM of ITS Release 2 --- asn1/release2/TS102894-2v221-CDD.asn | 7260 +++++++++++++++++ .../CPM-OriginatingStationContainers.asn | 54 + .../TS103324v211/CPM-PDU-Descriptions.asn | 171 + .../CPM-PerceivedObjectContainer.asn | 34 + .../CPM-PerceptionRegionContainer.asn | 54 + .../CPM-SensorInformationContainer.asn | 47 + asn1/release2/TS103324v211/README.md | 4 + asn1/release2/TS103831v221-DENM.asn | 394 + asn1/release2/TS103900v211-CAM.asn | 336 + vanetza/asn1/CMakeLists.txt | 47 +- vanetza/asn1/asn1c_its_r2_sources.txt | 387 + .../its/r2/Acceleration3dWithConfidence.c | 102 + .../its/r2/Acceleration3dWithConfidence.h | 53 + vanetza/asn1/its/r2/AccelerationCartesian.c | 116 + vanetza/asn1/its/r2/AccelerationCartesian.h | 48 + vanetza/asn1/its/r2/AccelerationChange.c | 71 + vanetza/asn1/its/r2/AccelerationChange.h | 54 + .../its/r2/AccelerationChangeIndication.c | 93 + .../its/r2/AccelerationChangeIndication.h | 44 + vanetza/asn1/its/r2/AccelerationComponent.c | 93 + vanetza/asn1/its/r2/AccelerationComponent.h | 42 + vanetza/asn1/its/r2/AccelerationConfidence.c | 79 + vanetza/asn1/its/r2/AccelerationConfidence.h | 53 + vanetza/asn1/its/r2/AccelerationControl.c | 89 + vanetza/asn1/its/r2/AccelerationControl.h | 58 + vanetza/asn1/its/r2/AccelerationMagnitude.c | 93 + vanetza/asn1/its/r2/AccelerationMagnitude.h | 42 + .../asn1/its/r2/AccelerationMagnitudeValue.c | 79 + .../asn1/its/r2/AccelerationMagnitudeValue.h | 53 + vanetza/asn1/its/r2/AccelerationPolarWithZ.c | 116 + vanetza/asn1/its/r2/AccelerationPolarWithZ.h | 49 + vanetza/asn1/its/r2/AccelerationValue.c | 79 + vanetza/asn1/its/r2/AccelerationValue.h | 54 + vanetza/asn1/its/r2/AccessTechnologyClass.c | 77 + vanetza/asn1/its/r2/AccessTechnologyClass.h | 59 + vanetza/asn1/its/r2/AccidentSubCauseCode.c | 79 + vanetza/asn1/its/r2/AccidentSubCauseCode.h | 60 + vanetza/asn1/its/r2/ActionID.c | 93 + vanetza/asn1/its/r2/ActionID.h | 40 + vanetza/asn1/its/r2/ActionId.c | 93 + vanetza/asn1/its/r2/ActionId.h | 42 + vanetza/asn1/its/r2/ActionIdList.c | 78 + vanetza/asn1/its/r2/ActionIdList.h | 47 + ...rseWeatherCondition-AdhesionSubCauseCode.c | 79 + ...rseWeatherCondition-AdhesionSubCauseCode.h | 62 + ...tion-ExtremeWeatherConditionSubCauseCode.c | 79 + ...tion-ExtremeWeatherConditionSubCauseCode.h | 58 + ...atherCondition-PrecipitationSubCauseCode.c | 79 + ...atherCondition-PrecipitationSubCauseCode.h | 55 + ...eWeatherCondition-VisibilitySubCauseCode.c | 79 + ...eWeatherCondition-VisibilitySubCauseCode.h | 60 + vanetza/asn1/its/r2/AirHumidity.c | 79 + vanetza/asn1/its/r2/AirHumidity.h | 52 + vanetza/asn1/its/r2/AlacarteContainer.c | 288 + vanetza/asn1/its/r2/AlacarteContainer.h | 72 + vanetza/asn1/its/r2/Altitude.c | 93 + vanetza/asn1/its/r2/Altitude.h | 42 + vanetza/asn1/its/r2/AltitudeConfidence.c | 99 + vanetza/asn1/its/r2/AltitudeConfidence.h | 68 + vanetza/asn1/its/r2/AltitudeValue.c | 79 + vanetza/asn1/its/r2/AltitudeValue.h | 54 + vanetza/asn1/its/r2/AngleConfidence.c | 79 + vanetza/asn1/its/r2/AngleConfidence.h | 53 + .../its/r2/AngularAccelerationConfidence.c | 83 + .../its/r2/AngularAccelerationConfidence.h | 60 + vanetza/asn1/its/r2/AngularSpeedConfidence.c | 83 + vanetza/asn1/its/r2/AngularSpeedConfidence.h | 60 + vanetza/asn1/its/r2/AxlesCount.c | 79 + vanetza/asn1/its/r2/AxlesCount.h | 52 + vanetza/asn1/its/r2/BarometricPressure.c | 79 + vanetza/asn1/its/r2/BarometricPressure.h | 53 + vanetza/asn1/its/r2/BasicContainer.c | 93 + vanetza/asn1/its/r2/BasicContainer.h | 46 + vanetza/asn1/its/r2/BasicLaneConfiguration.c | 78 + vanetza/asn1/its/r2/BasicLaneConfiguration.h | 47 + vanetza/asn1/its/r2/BasicLaneInformation.c | 170 + vanetza/asn1/its/r2/BasicLaneInformation.h | 52 + .../r2/BasicVehicleContainerHighFrequency.c | 389 + .../r2/BasicVehicleContainerHighFrequency.h | 76 + .../r2/BasicVehicleContainerLowFrequency.c | 152 + .../r2/BasicVehicleContainerLowFrequency.h | 44 + vanetza/asn1/its/r2/BogiesCount.c | 79 + vanetza/asn1/its/r2/BogiesCount.h | 52 + vanetza/asn1/its/r2/CAM.c | 124 + vanetza/asn1/its/r2/CAM.h | 40 + ...CPM-PDU-Descriptions_ManagementContainer.c | 137 + ...CPM-PDU-Descriptions_ManagementContainer.h | 56 + vanetza/asn1/its/r2/CamParameters.c | 137 + vanetza/asn1/its/r2/CamParameters.h | 56 + vanetza/asn1/its/r2/CamPayload.c | 93 + vanetza/asn1/its/r2/CamPayload.h | 42 + vanetza/asn1/its/r2/CardinalNumber1B.c | 79 + vanetza/asn1/its/r2/CardinalNumber1B.h | 47 + vanetza/asn1/its/r2/CardinalNumber3b.c | 79 + vanetza/asn1/its/r2/CardinalNumber3b.h | 47 + vanetza/asn1/its/r2/CartesianAngle.c | 93 + vanetza/asn1/its/r2/CartesianAngle.h | 42 + vanetza/asn1/its/r2/CartesianAngleValue.c | 79 + vanetza/asn1/its/r2/CartesianAngleValue.h | 53 + .../CartesianAngularAccelerationComponent.c | 93 + .../CartesianAngularAccelerationComponent.h | 40 + ...rtesianAngularAccelerationComponentValue.c | 79 + ...rtesianAngularAccelerationComponentValue.h | 54 + .../r2/CartesianAngularVelocityComponent.c | 93 + .../r2/CartesianAngularVelocityComponent.h | 42 + .../CartesianAngularVelocityComponentValue.c | 79 + .../CartesianAngularVelocityComponentValue.h | 54 + vanetza/asn1/its/r2/CartesianCoordinate.c | 79 + vanetza/asn1/its/r2/CartesianCoordinate.h | 53 + .../asn1/its/r2/CartesianCoordinateLarge.c | 79 + .../asn1/its/r2/CartesianCoordinateLarge.h | 53 + .../asn1/its/r2/CartesianCoordinateSmall.c | 79 + .../asn1/its/r2/CartesianCoordinateSmall.h | 53 + .../r2/CartesianCoordinateWithConfidence.c | 93 + .../r2/CartesianCoordinateWithConfidence.h | 42 + vanetza/asn1/its/r2/CartesianPosition3d.c | 116 + vanetza/asn1/its/r2/CartesianPosition3d.h | 42 + .../r2/CartesianPosition3dWithConfidence.c | 116 + .../r2/CartesianPosition3dWithConfidence.h | 48 + vanetza/asn1/its/r2/CauseCode.c | 93 + vanetza/asn1/its/r2/CauseCode.h | 44 + vanetza/asn1/its/r2/CauseCodeChoice.c | 2769 +++++++ vanetza/asn1/its/r2/CauseCodeChoice.h | 332 + vanetza/asn1/its/r2/CauseCodeType.c | 79 + vanetza/asn1/its/r2/CauseCodeType.h | 80 + vanetza/asn1/its/r2/CauseCodeV2.c | 72 + vanetza/asn1/its/r2/CauseCodeV2.h | 44 + vanetza/asn1/its/r2/CenDsrcTollingZone.c | 116 + vanetza/asn1/its/r2/CenDsrcTollingZone.h | 48 + vanetza/asn1/its/r2/CenDsrcTollingZoneID.c | 79 + vanetza/asn1/its/r2/CenDsrcTollingZoneID.h | 46 + vanetza/asn1/its/r2/CircularShape.c | 116 + vanetza/asn1/its/r2/CircularShape.h | 48 + vanetza/asn1/its/r2/ClosedLanes.c | 116 + vanetza/asn1/its/r2/ClosedLanes.h | 47 + vanetza/asn1/its/r2/ClusterBreakupInfo.c | 93 + vanetza/asn1/its/r2/ClusterBreakupInfo.h | 44 + vanetza/asn1/its/r2/ClusterBreakupReason.c | 79 + vanetza/asn1/its/r2/ClusterBreakupReason.h | 57 + vanetza/asn1/its/r2/ClusterJoinInfo.c | 93 + vanetza/asn1/its/r2/ClusterJoinInfo.h | 44 + vanetza/asn1/its/r2/ClusterLeaveInfo.c | 93 + vanetza/asn1/its/r2/ClusterLeaveInfo.h | 44 + vanetza/asn1/its/r2/ClusterLeaveReason.c | 79 + vanetza/asn1/its/r2/ClusterLeaveReason.h | 60 + .../asn1/its/r2/CollectivePerceptionMessage.c | 124 + .../asn1/its/r2/CollectivePerceptionMessage.h | 40 + .../asn1/its/r2/CollisionRiskSubCauseCode.c | 79 + .../asn1/its/r2/CollisionRiskSubCauseCode.h | 59 + vanetza/asn1/its/r2/ConfidenceLevel.c | 79 + vanetza/asn1/its/r2/ConfidenceLevel.h | 52 + .../its/r2/ConstraintWrappedCpmContainers.c | 81 + .../its/r2/ConstraintWrappedCpmContainers.h | 47 + vanetza/asn1/its/r2/CoordinateConfidence.c | 79 + vanetza/asn1/its/r2/CoordinateConfidence.h | 53 + vanetza/asn1/its/r2/CorrelationCellValue.c | 79 + vanetza/asn1/its/r2/CorrelationCellValue.h | 55 + vanetza/asn1/its/r2/CorrelationColumn.c | 78 + vanetza/asn1/its/r2/CorrelationColumn.h | 42 + vanetza/asn1/its/r2/CountryCode.c | 89 + vanetza/asn1/its/r2/CountryCode.h | 47 + vanetza/asn1/its/r2/CpmContainerId.c | 79 + vanetza/asn1/its/r2/CpmContainerId.h | 52 + vanetza/asn1/its/r2/CpmPayload.c | 93 + vanetza/asn1/its/r2/CpmPayload.h | 46 + vanetza/asn1/its/r2/Curvature.c | 93 + vanetza/asn1/its/r2/Curvature.h | 42 + .../asn1/its/r2/CurvatureCalculationMode.c | 75 + .../asn1/its/r2/CurvatureCalculationMode.h | 58 + vanetza/asn1/its/r2/CurvatureConfidence.c | 83 + vanetza/asn1/its/r2/CurvatureConfidence.h | 60 + vanetza/asn1/its/r2/CurvatureValue.c | 79 + vanetza/asn1/its/r2/CurvatureValue.h | 55 + ...DENM-PDU-Description_ManagementContainer.c | 286 + ...DENM-PDU-Description_ManagementContainer.h | 61 + vanetza/asn1/its/r2/DENM.c | 124 + vanetza/asn1/its/r2/DENM.h | 40 + .../its/r2/DangerousEndOfQueueSubCauseCode.c | 79 + .../its/r2/DangerousEndOfQueueSubCauseCode.h | 56 + vanetza/asn1/its/r2/DangerousGoodsBasic.c | 107 + vanetza/asn1/its/r2/DangerousGoodsBasic.h | 72 + vanetza/asn1/its/r2/DangerousGoodsContainer.c | 72 + vanetza/asn1/its/r2/DangerousGoodsContainer.h | 40 + vanetza/asn1/its/r2/DangerousGoodsExtended.c | 354 + vanetza/asn1/its/r2/DangerousGoodsExtended.h | 56 + .../its/r2/DangerousSituationSubCauseCode.c | 79 + .../its/r2/DangerousSituationSubCauseCode.h | 59 + vanetza/asn1/its/r2/DeltaAltitude.c | 79 + vanetza/asn1/its/r2/DeltaAltitude.h | 54 + vanetza/asn1/its/r2/DeltaLatitude.c | 79 + vanetza/asn1/its/r2/DeltaLatitude.h | 52 + vanetza/asn1/its/r2/DeltaLongitude.c | 79 + vanetza/asn1/its/r2/DeltaLongitude.h | 52 + vanetza/asn1/its/r2/DeltaReferencePosition.c | 114 + vanetza/asn1/its/r2/DeltaReferencePosition.h | 44 + .../its/r2/DeltaTimeMilliSecondPositive.c | 79 + .../its/r2/DeltaTimeMilliSecondPositive.h | 47 + .../asn1/its/r2/DeltaTimeMilliSecondSigned.c | 79 + .../asn1/its/r2/DeltaTimeMilliSecondSigned.h | 47 + vanetza/asn1/its/r2/DeltaTimeQuarterSecond.c | 79 + vanetza/asn1/its/r2/DeltaTimeQuarterSecond.h | 52 + vanetza/asn1/its/r2/DeltaTimeSecond.c | 79 + vanetza/asn1/its/r2/DeltaTimeSecond.h | 47 + vanetza/asn1/its/r2/DeltaTimeTenSeconds.c | 79 + vanetza/asn1/its/r2/DeltaTimeTenSeconds.h | 47 + vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.c | 79 + vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.h | 52 + vanetza/asn1/its/r2/DenmPayload.c | 149 + vanetza/asn1/its/r2/DenmPayload.h | 54 + vanetza/asn1/its/r2/DigitalMap.c | 78 + vanetza/asn1/its/r2/DigitalMap.h | 44 + vanetza/asn1/its/r2/Direction.c | 79 + vanetza/asn1/its/r2/Direction.h | 55 + vanetza/asn1/its/r2/DriveDirection.c | 73 + vanetza/asn1/its/r2/DriveDirection.h | 55 + vanetza/asn1/its/r2/DrivingLaneStatus.c | 89 + vanetza/asn1/its/r2/DrivingLaneStatus.h | 47 + vanetza/asn1/its/r2/EXTERNAL.c | 255 + vanetza/asn1/its/r2/EXTERNAL.h | 65 + vanetza/asn1/its/r2/EllipticalShape.c | 158 + vanetza/asn1/its/r2/EllipticalShape.h | 51 + vanetza/asn1/its/r2/EmbarkationStatus.c | 42 + vanetza/asn1/its/r2/EmbarkationStatus.h | 46 + vanetza/asn1/its/r2/EmergencyContainer.c | 116 + vanetza/asn1/its/r2/EmergencyContainer.h | 49 + vanetza/asn1/its/r2/EmergencyPriority.c | 89 + vanetza/asn1/its/r2/EmergencyPriority.h | 53 + .../EmergencyVehicleApproachingSubCauseCode.c | 79 + .../EmergencyVehicleApproachingSubCauseCode.h | 54 + vanetza/asn1/its/r2/EnergyStorageType.c | 89 + vanetza/asn1/its/r2/EnergyStorageType.h | 58 + vanetza/asn1/its/r2/EuVehicleCategoryCode.c | 186 + vanetza/asn1/its/r2/EuVehicleCategoryCode.h | 61 + vanetza/asn1/its/r2/EuVehicleCategoryL.c | 81 + vanetza/asn1/its/r2/EuVehicleCategoryL.h | 59 + vanetza/asn1/its/r2/EuVehicleCategoryM.c | 73 + vanetza/asn1/its/r2/EuVehicleCategoryM.h | 55 + vanetza/asn1/its/r2/EuVehicleCategoryN.c | 73 + vanetza/asn1/its/r2/EuVehicleCategoryN.h | 55 + vanetza/asn1/its/r2/EuVehicleCategoryO.c | 75 + vanetza/asn1/its/r2/EuVehicleCategoryO.h | 56 + .../asn1/its/r2/EulerAnglesWithConfidence.c | 116 + .../asn1/its/r2/EulerAnglesWithConfidence.h | 48 + vanetza/asn1/its/r2/EventHistory.c | 78 + vanetza/asn1/its/r2/EventHistory.h | 47 + vanetza/asn1/its/r2/EventPoint.c | 116 + vanetza/asn1/its/r2/EventPoint.h | 44 + vanetza/asn1/its/r2/EventZone.c | 81 + vanetza/asn1/its/r2/EventZone.h | 47 + vanetza/asn1/its/r2/Ext1.c | 139 + vanetza/asn1/its/r2/Ext1.h | 53 + vanetza/asn1/its/r2/Ext2.c | 139 + vanetza/asn1/its/r2/Ext2.h | 53 + vanetza/asn1/its/r2/Ext3.c | 79 + vanetza/asn1/its/r2/Ext3.h | 47 + vanetza/asn1/its/r2/ExteriorLights.c | 89 + vanetza/asn1/its/r2/ExteriorLights.h | 59 + vanetza/asn1/its/r2/GeneralizedLanePosition.c | 116 + vanetza/asn1/its/r2/GeneralizedLanePosition.h | 53 + .../asn1/its/r2/GeneralizedLanePositions.c | 78 + .../asn1/its/r2/GeneralizedLanePositions.h | 47 + vanetza/asn1/its/r2/GenerationDeltaTime.c | 79 + vanetza/asn1/its/r2/GenerationDeltaTime.h | 52 + vanetza/asn1/its/r2/GeoPosition.c | 139 + vanetza/asn1/its/r2/GeoPosition.h | 44 + vanetza/asn1/its/r2/HardShoulderStatus.c | 73 + vanetza/asn1/its/r2/HardShoulderStatus.h | 55 + ...dousLocation-AnimalOnTheRoadSubCauseCode.c | 79 + ...dousLocation-AnimalOnTheRoadSubCauseCode.h | 61 + ...rdousLocation-DangerousCurveSubCauseCode.c | 79 + ...rdousLocation-DangerousCurveSubCauseCode.h | 57 + ...usLocation-ObstacleOnTheRoadSubCauseCode.c | 79 + ...usLocation-ObstacleOnTheRoadSubCauseCode.h | 59 + ...ousLocation-SurfaceConditionSubCauseCode.c | 79 + ...ousLocation-SurfaceConditionSubCauseCode.h | 62 + vanetza/asn1/its/r2/Heading.c | 93 + vanetza/asn1/its/r2/Heading.h | 42 + vanetza/asn1/its/r2/HeadingChangeIndication.c | 93 + vanetza/asn1/its/r2/HeadingChangeIndication.h | 44 + vanetza/asn1/its/r2/HeadingConfidence.c | 79 + vanetza/asn1/its/r2/HeadingConfidence.h | 53 + vanetza/asn1/its/r2/HeadingValue.c | 79 + vanetza/asn1/its/r2/HeadingValue.h | 57 + vanetza/asn1/its/r2/HeightLonCarr.c | 79 + vanetza/asn1/its/r2/HeightLonCarr.h | 53 + vanetza/asn1/its/r2/HighFrequencyContainer.c | 102 + vanetza/asn1/its/r2/HighFrequencyContainer.h | 59 + .../r2/HumanPresenceOnTheRoadSubCauseCode.c | 79 + .../r2/HumanPresenceOnTheRoadSubCauseCode.h | 73 + .../asn1/its/r2/HumanProblemSubCauseCode.c | 79 + .../asn1/its/r2/HumanProblemSubCauseCode.h | 54 + vanetza/asn1/its/r2/Identifier1B.c | 79 + vanetza/asn1/its/r2/Identifier1B.h | 47 + vanetza/asn1/its/r2/Identifier2B.c | 79 + vanetza/asn1/its/r2/Identifier2B.h | 47 + .../asn1/its/r2/ImpactReductionContainer.c | 303 + .../asn1/its/r2/ImpactReductionContainer.h | 60 + .../asn1/its/r2/ImpassabilitySubCauseCode.c | 79 + .../asn1/its/r2/ImpassabilitySubCauseCode.h | 69 + vanetza/asn1/its/r2/InformationQuality.c | 79 + vanetza/asn1/its/r2/InformationQuality.h | 47 + .../its/r2/InterferenceManagementChannel.c | 225 + .../its/r2/InterferenceManagementChannel.h | 42 + .../asn1/its/r2/InterferenceManagementInfo.c | 78 + .../asn1/its/r2/InterferenceManagementInfo.h | 47 + .../r2/InterferenceManagementInfoPerChannel.c | 137 + .../r2/InterferenceManagementInfoPerChannel.h | 55 + .../asn1/its/r2/InterferenceManagementZone.c | 93 + .../asn1/its/r2/InterferenceManagementZone.h | 42 + .../r2/InterferenceManagementZoneDefinition.c | 168 + .../r2/InterferenceManagementZoneDefinition.h | 55 + .../its/r2/InterferenceManagementZoneType.c | 81 + .../its/r2/InterferenceManagementZoneType.h | 61 + .../asn1/its/r2/InterferenceManagementZones.c | 78 + .../asn1/its/r2/InterferenceManagementZones.h | 44 + vanetza/asn1/its/r2/IntersectionReferenceId.c | 95 + vanetza/asn1/its/r2/IntersectionReferenceId.h | 41 + vanetza/asn1/its/r2/Iso3833VehicleType.c | 79 + vanetza/asn1/its/r2/Iso3833VehicleType.h | 91 + vanetza/asn1/its/r2/IssuerIdentifier.c | 79 + vanetza/asn1/its/r2/IssuerIdentifier.h | 47 + vanetza/asn1/its/r2/ItineraryPath.c | 78 + vanetza/asn1/its/r2/ItineraryPath.h | 47 + vanetza/asn1/its/r2/ItsPduHeader.c | 114 + vanetza/asn1/its/r2/ItsPduHeader.h | 44 + vanetza/asn1/its/r2/IviIdentificationNumber.c | 79 + vanetza/asn1/its/r2/IviIdentificationNumber.h | 47 + vanetza/asn1/its/r2/IvimReference.c | 93 + vanetza/asn1/its/r2/IvimReference.h | 42 + vanetza/asn1/its/r2/IvimReferences.c | 78 + vanetza/asn1/its/r2/IvimReferences.h | 47 + vanetza/asn1/its/r2/LanePosition.c | 79 + vanetza/asn1/its/r2/LanePosition.h | 54 + vanetza/asn1/its/r2/LanePositionAndType.c | 162 + vanetza/asn1/its/r2/LanePositionAndType.h | 48 + vanetza/asn1/its/r2/LanePositionOptions.c | 165 + vanetza/asn1/its/r2/LanePositionOptions.h | 68 + .../its/r2/LanePositionWithLateralDetails.c | 204 + .../its/r2/LanePositionWithLateralDetails.h | 51 + vanetza/asn1/its/r2/LaneType.c | 79 + vanetza/asn1/its/r2/LaneType.h | 74 + vanetza/asn1/its/r2/LaneWidth.c | 79 + vanetza/asn1/its/r2/LaneWidth.h | 47 + vanetza/asn1/its/r2/LateralAcceleration.c | 93 + vanetza/asn1/its/r2/LateralAcceleration.h | 40 + .../asn1/its/r2/LateralAccelerationValue.c | 79 + .../asn1/its/r2/LateralAccelerationValue.h | 54 + vanetza/asn1/its/r2/Latitude.c | 79 + vanetza/asn1/its/r2/Latitude.h | 52 + vanetza/asn1/its/r2/LightBarSirenInUse.c | 89 + vanetza/asn1/its/r2/LightBarSirenInUse.h | 53 + vanetza/asn1/its/r2/LocationContainer.c | 330 + vanetza/asn1/its/r2/LocationContainer.h | 79 + vanetza/asn1/its/r2/Longitude.c | 79 + vanetza/asn1/its/r2/Longitude.h | 53 + .../asn1/its/r2/LongitudinalAcceleration.c | 93 + .../asn1/its/r2/LongitudinalAcceleration.h | 40 + .../its/r2/LongitudinalAccelerationValue.c | 79 + .../its/r2/LongitudinalAccelerationValue.h | 54 + .../asn1/its/r2/LongitudinalLanePosition.c | 93 + .../asn1/its/r2/LongitudinalLanePosition.h | 42 + .../r2/LongitudinalLanePositionConfidence.c | 79 + .../r2/LongitudinalLanePositionConfidence.h | 53 + .../its/r2/LongitudinalLanePositionValue.c | 79 + .../its/r2/LongitudinalLanePositionValue.h | 53 + vanetza/asn1/its/r2/LowFrequencyContainer.c | 81 + vanetza/asn1/its/r2/LowFrequencyContainer.h | 56 + ...erTriangularPositiveSemidefiniteMatrices.c | 78 + ...erTriangularPositiveSemidefiniteMatrices.h | 47 + ...owerTriangularPositiveSemidefiniteMatrix.c | 93 + ...owerTriangularPositiveSemidefiniteMatrix.h | 42 + ...angularPositiveSemidefiniteMatrixColumns.c | 78 + ...angularPositiveSemidefiniteMatrixColumns.h | 47 + vanetza/asn1/its/r2/MapPosition.c | 149 + vanetza/asn1/its/r2/MapPosition.h | 56 + vanetza/asn1/its/r2/MapReference.c | 102 + vanetza/asn1/its/r2/MapReference.h | 53 + vanetza/asn1/its/r2/MapReferences.c | 78 + vanetza/asn1/its/r2/MapReferences.h | 47 + vanetza/asn1/its/r2/MapemConfiguration.c | 78 + vanetza/asn1/its/r2/MapemConfiguration.h | 47 + vanetza/asn1/its/r2/MapemConnectionList.c | 78 + vanetza/asn1/its/r2/MapemConnectionList.h | 42 + vanetza/asn1/its/r2/MapemElementReference.c | 128 + vanetza/asn1/its/r2/MapemElementReference.h | 56 + vanetza/asn1/its/r2/MapemLaneList.c | 78 + vanetza/asn1/its/r2/MapemLaneList.h | 42 + .../asn1/its/r2/MatrixIncludedComponents.c | 89 + .../asn1/its/r2/MatrixIncludedComponents.h | 64 + vanetza/asn1/its/r2/MessageId.c | 79 + vanetza/asn1/its/r2/MessageId.h | 72 + vanetza/asn1/its/r2/MessageRateHz.c | 167 + vanetza/asn1/its/r2/MessageRateHz.h | 41 + vanetza/asn1/its/r2/MessageRateRange.c | 93 + vanetza/asn1/its/r2/MessageRateRange.h | 41 + vanetza/asn1/its/r2/MessageSegmentationInfo.c | 93 + vanetza/asn1/its/r2/MessageSegmentationInfo.h | 42 + vanetza/asn1/its/r2/MetaInformation.c | 116 + vanetza/asn1/its/r2/MetaInformation.h | 48 + .../asn1/its/r2/MitigationForTechnologies.c | 78 + .../asn1/its/r2/MitigationForTechnologies.h | 47 + .../its/r2/MitigationPerTechnologyClass.c | 306 + .../its/r2/MitigationPerTechnologyClass.h | 49 + vanetza/asn1/its/r2/NumberOfOccupants.c | 79 + vanetza/asn1/its/r2/NumberOfOccupants.h | 53 + vanetza/asn1/its/r2/ObjectClass.c | 212 + vanetza/asn1/its/r2/ObjectClass.h | 65 + vanetza/asn1/its/r2/ObjectClassDescription.c | 78 + vanetza/asn1/its/r2/ObjectClassDescription.h | 47 + .../asn1/its/r2/ObjectClassWithConfidence.c | 93 + .../asn1/its/r2/ObjectClassWithConfidence.h | 42 + vanetza/asn1/its/r2/ObjectDimension.c | 93 + vanetza/asn1/its/r2/ObjectDimension.h | 42 + .../asn1/its/r2/ObjectDimensionConfidence.c | 79 + .../asn1/its/r2/ObjectDimensionConfidence.h | 53 + vanetza/asn1/its/r2/ObjectDimensionValue.c | 79 + vanetza/asn1/its/r2/ObjectDimensionValue.h | 53 + vanetza/asn1/its/r2/ObjectFace.c | 79 + vanetza/asn1/its/r2/ObjectFace.h | 58 + vanetza/asn1/its/r2/ObjectPerceptionQuality.c | 79 + vanetza/asn1/its/r2/ObjectPerceptionQuality.h | 53 + .../asn1/its/r2/OccupiedLanesWithConfidence.c | 334 + .../asn1/its/r2/OccupiedLanesWithConfidence.h | 66 + vanetza/asn1/its/r2/OpeningDaysHours.c | 42 + vanetza/asn1/its/r2/OpeningDaysHours.h | 46 + vanetza/asn1/its/r2/OrdinalNumber1B.c | 79 + vanetza/asn1/its/r2/OrdinalNumber1B.h | 47 + vanetza/asn1/its/r2/OrdinalNumber3b.c | 79 + vanetza/asn1/its/r2/OrdinalNumber3b.h | 47 + vanetza/asn1/its/r2/OriginatingRsuContainer.c | 74 + vanetza/asn1/its/r2/OriginatingRsuContainer.h | 49 + .../asn1/its/r2/OriginatingVehicleContainer.c | 137 + .../asn1/its/r2/OriginatingVehicleContainer.h | 55 + vanetza/asn1/its/r2/OtherSubClass.c | 79 + vanetza/asn1/its/r2/OtherSubClass.h | 55 + vanetza/asn1/its/r2/Path.c | 78 + vanetza/asn1/its/r2/Path.h | 47 + vanetza/asn1/its/r2/PathDeltaTime.c | 79 + vanetza/asn1/its/r2/PathDeltaTime.h | 47 + vanetza/asn1/its/r2/PathDeltaTimeChoice.c | 102 + vanetza/asn1/its/r2/PathDeltaTimeChoice.h | 59 + vanetza/asn1/its/r2/PathExtended.c | 130 + vanetza/asn1/its/r2/PathExtended.h | 42 + vanetza/asn1/its/r2/PathHistory.c | 78 + vanetza/asn1/its/r2/PathHistory.h | 44 + vanetza/asn1/its/r2/PathId.c | 79 + vanetza/asn1/its/r2/PathId.h | 66 + vanetza/asn1/its/r2/PathPoint.c | 95 + vanetza/asn1/its/r2/PathPoint.h | 42 + vanetza/asn1/its/r2/PathPointPredicted.c | 279 + vanetza/asn1/its/r2/PathPointPredicted.h | 64 + vanetza/asn1/its/r2/PathPredicted.c | 78 + vanetza/asn1/its/r2/PathPredicted.h | 47 + vanetza/asn1/its/r2/PathPredicted2.c | 152 + vanetza/asn1/its/r2/PathPredicted2.h | 48 + vanetza/asn1/its/r2/PathPredictedList.c | 78 + vanetza/asn1/its/r2/PathPredictedList.h | 47 + vanetza/asn1/its/r2/PathReferences.c | 78 + vanetza/asn1/its/r2/PathReferences.h | 42 + vanetza/asn1/its/r2/PerceivedObject.c | 426 + vanetza/asn1/its/r2/PerceivedObject.h | 84 + .../asn1/its/r2/PerceivedObjectContainer.c | 93 + .../asn1/its/r2/PerceivedObjectContainer.h | 46 + vanetza/asn1/its/r2/PerceivedObjectIds.c | 78 + vanetza/asn1/its/r2/PerceivedObjectIds.h | 42 + vanetza/asn1/its/r2/PerceivedObjects.c | 109 + vanetza/asn1/its/r2/PerceivedObjects.h | 47 + vanetza/asn1/its/r2/PerceptionRegion.c | 200 + vanetza/asn1/its/r2/PerceptionRegion.h | 62 + .../asn1/its/r2/PerceptionRegionContainer.c | 78 + .../asn1/its/r2/PerceptionRegionContainer.h | 47 + vanetza/asn1/its/r2/PerformanceClass.c | 79 + vanetza/asn1/its/r2/PerformanceClass.h | 54 + vanetza/asn1/its/r2/PhoneNumber.c | 116 + vanetza/asn1/its/r2/PhoneNumber.h | 47 + vanetza/asn1/its/r2/PolygonalShape.c | 154 + vanetza/asn1/its/r2/PolygonalShape.h | 49 + vanetza/asn1/its/r2/PosCentMass.c | 79 + vanetza/asn1/its/r2/PosCentMass.h | 54 + vanetza/asn1/its/r2/PosConfidenceEllipse.c | 114 + vanetza/asn1/its/r2/PosConfidenceEllipse.h | 43 + vanetza/asn1/its/r2/PosFrontAx.c | 79 + vanetza/asn1/its/r2/PosFrontAx.h | 53 + vanetza/asn1/its/r2/PosLonCarr.c | 79 + vanetza/asn1/its/r2/PosLonCarr.h | 53 + vanetza/asn1/its/r2/PosPillar.c | 79 + vanetza/asn1/its/r2/PosPillar.h | 53 + vanetza/asn1/its/r2/Position1d.c | 79 + vanetza/asn1/its/r2/Position1d.h | 53 + .../asn1/its/r2/PositionConfidenceEllipse.c | 114 + .../asn1/its/r2/PositionConfidenceEllipse.h | 43 + vanetza/asn1/its/r2/PositionOfOccupants.c | 89 + vanetza/asn1/its/r2/PositionOfOccupants.h | 71 + vanetza/asn1/its/r2/PositionOfPillars.c | 78 + vanetza/asn1/its/r2/PositionOfPillars.h | 42 + vanetza/asn1/its/r2/PositioningSolutionType.c | 83 + vanetza/asn1/its/r2/PositioningSolutionType.h | 62 + vanetza/asn1/its/r2/PostCrashSubCauseCode.c | 79 + vanetza/asn1/its/r2/PostCrashSubCauseCode.h | 56 + vanetza/asn1/its/r2/PreCrashContainer.c | 158 + vanetza/asn1/its/r2/PreCrashContainer.h | 52 + vanetza/asn1/its/r2/PrecipitationIntensity.c | 79 + vanetza/asn1/its/r2/PrecipitationIntensity.h | 52 + .../asn1/its/r2/ProtectedCommunicationZone.c | 179 + .../asn1/its/r2/ProtectedCommunicationZone.h | 54 + .../its/r2/ProtectedCommunicationZonesRSU.c | 78 + .../its/r2/ProtectedCommunicationZonesRSU.h | 47 + vanetza/asn1/its/r2/ProtectedZoneId.c | 79 + vanetza/asn1/its/r2/ProtectedZoneId.h | 47 + vanetza/asn1/its/r2/ProtectedZoneRadius.c | 79 + vanetza/asn1/its/r2/ProtectedZoneRadius.h | 47 + vanetza/asn1/its/r2/ProtectedZoneType.c | 73 + vanetza/asn1/its/r2/ProtectedZoneType.h | 57 + vanetza/asn1/its/r2/Provider.c | 93 + vanetza/asn1/its/r2/Provider.h | 42 + vanetza/asn1/its/r2/PtActivation.c | 93 + vanetza/asn1/its/r2/PtActivation.h | 42 + vanetza/asn1/its/r2/PtActivationData.c | 80 + vanetza/asn1/its/r2/PtActivationData.h | 47 + vanetza/asn1/its/r2/PtActivationType.c | 79 + vanetza/asn1/its/r2/PtActivationType.h | 54 + .../asn1/its/r2/PublicTransportContainer.c | 95 + .../asn1/its/r2/PublicTransportContainer.h | 47 + .../asn1/its/r2/RSUContainerHighFrequency.c | 74 + .../asn1/its/r2/RSUContainerHighFrequency.h | 49 + vanetza/asn1/its/r2/RadialShape.c | 191 + vanetza/asn1/its/r2/RadialShape.h | 53 + vanetza/asn1/its/r2/RadialShapeDetails.c | 170 + vanetza/asn1/its/r2/RadialShapeDetails.h | 46 + vanetza/asn1/its/r2/RadialShapes.c | 158 + vanetza/asn1/its/r2/RadialShapes.h | 46 + vanetza/asn1/its/r2/RadialShapesList.c | 78 + vanetza/asn1/its/r2/RadialShapesList.h | 47 + .../its/r2/RailwayLevelCrossingSubCauseCode.c | 79 + .../its/r2/RailwayLevelCrossingSubCauseCode.h | 56 + vanetza/asn1/its/r2/RectangularShape.c | 158 + vanetza/asn1/its/r2/RectangularShape.h | 51 + vanetza/asn1/its/r2/ReferencePosition.c | 135 + vanetza/asn1/its/r2/ReferencePosition.h | 46 + .../its/r2/ReferencePositionWithConfidence.c | 135 + .../its/r2/ReferencePositionWithConfidence.h | 46 + vanetza/asn1/its/r2/RelevanceDistance.c | 83 + vanetza/asn1/its/r2/RelevanceDistance.h | 58 + .../asn1/its/r2/RelevanceTrafficDirection.c | 75 + .../asn1/its/r2/RelevanceTrafficDirection.h | 54 + .../asn1/its/r2/RequestResponseIndication.c | 71 + .../asn1/its/r2/RequestResponseIndication.h | 54 + ...cueAndRecoveryWorkInProgressSubCauseCode.c | 79 + ...cueAndRecoveryWorkInProgressSubCauseCode.h | 59 + vanetza/asn1/its/r2/RescueContainer.c | 72 + vanetza/asn1/its/r2/RescueContainer.h | 40 + vanetza/asn1/its/r2/RestrictedTypes.c | 78 + vanetza/asn1/its/r2/RestrictedTypes.h | 42 + .../asn1/its/r2/RoadConfigurationContainer.c | 93 + .../asn1/its/r2/RoadConfigurationContainer.h | 46 + .../asn1/its/r2/RoadConfigurationSection.c | 149 + .../asn1/its/r2/RoadConfigurationSection.h | 57 + .../its/r2/RoadConfigurationSectionList.c | 78 + .../its/r2/RoadConfigurationSectionList.h | 47 + vanetza/asn1/its/r2/RoadSectionDefinition.c | 200 + vanetza/asn1/its/r2/RoadSectionDefinition.h | 59 + vanetza/asn1/its/r2/RoadSectionId.c | 79 + vanetza/asn1/its/r2/RoadSectionId.h | 47 + vanetza/asn1/its/r2/RoadSegmentReferenceId.c | 95 + vanetza/asn1/its/r2/RoadSegmentReferenceId.h | 41 + vanetza/asn1/its/r2/RoadType.c | 75 + vanetza/asn1/its/r2/RoadType.h | 56 + vanetza/asn1/its/r2/RoadWorksContainerBasic.c | 116 + vanetza/asn1/its/r2/RoadWorksContainerBasic.h | 49 + .../asn1/its/r2/RoadWorksContainerExtended.c | 242 + .../asn1/its/r2/RoadWorksContainerExtended.h | 66 + vanetza/asn1/its/r2/RoadworksSubCauseCode.c | 79 + vanetza/asn1/its/r2/RoadworksSubCauseCode.h | 58 + vanetza/asn1/its/r2/SafeDistanceIndication.c | 116 + vanetza/asn1/its/r2/SafeDistanceIndication.h | 48 + vanetza/asn1/its/r2/SafeDistanceIndicator.c | 42 + vanetza/asn1/its/r2/SafeDistanceIndicator.h | 46 + vanetza/asn1/its/r2/SafetyCarContainer.c | 137 + vanetza/asn1/its/r2/SafetyCarContainer.h | 51 + vanetza/asn1/its/r2/SemiAxisLength.c | 79 + vanetza/asn1/its/r2/SemiAxisLength.h | 54 + vanetza/asn1/its/r2/SensorInformation.c | 158 + vanetza/asn1/its/r2/SensorInformation.h | 57 + .../asn1/its/r2/SensorInformationContainer.c | 78 + .../asn1/its/r2/SensorInformationContainer.h | 47 + vanetza/asn1/its/r2/SensorType.c | 79 + vanetza/asn1/its/r2/SensorType.h | 65 + vanetza/asn1/its/r2/SensorTypes.c | 89 + vanetza/asn1/its/r2/SensorTypes.h | 65 + vanetza/asn1/its/r2/SequenceNumber.c | 79 + vanetza/asn1/its/r2/SequenceNumber.h | 47 + .../its/r2/SequenceOfCartesianPosition3d.c | 78 + .../its/r2/SequenceOfCartesianPosition3d.h | 47 + vanetza/asn1/its/r2/SequenceOfIdentifier1B.c | 78 + vanetza/asn1/its/r2/SequenceOfIdentifier1B.h | 42 + .../its/r2/SequenceOfSafeDistanceIndication.c | 78 + .../its/r2/SequenceOfSafeDistanceIndication.h | 44 + ...quenceOfTrajectoryInterceptionIndication.c | 78 + ...quenceOfTrajectoryInterceptionIndication.h | 44 + vanetza/asn1/its/r2/Shape.c | 186 + vanetza/asn1/its/r2/Shape.h | 71 + .../asn1/its/r2/SignalViolationSubCauseCode.c | 79 + .../asn1/its/r2/SignalViolationSubCauseCode.h | 55 + vanetza/asn1/its/r2/SituationContainer.c | 258 + vanetza/asn1/its/r2/SituationContainer.h | 67 + vanetza/asn1/its/r2/SlowVehicleSubCauseCode.c | 79 + vanetza/asn1/its/r2/SlowVehicleSubCauseCode.h | 60 + .../asn1/its/r2/SpecialTransportContainer.c | 93 + .../asn1/its/r2/SpecialTransportContainer.h | 42 + vanetza/asn1/its/r2/SpecialTransportType.c | 89 + vanetza/asn1/its/r2/SpecialTransportType.h | 55 + vanetza/asn1/its/r2/SpecialVehicleContainer.c | 207 + vanetza/asn1/its/r2/SpecialVehicleContainer.h | 74 + vanetza/asn1/its/r2/Speed.c | 93 + vanetza/asn1/its/r2/Speed.h | 42 + vanetza/asn1/its/r2/SpeedConfidence.c | 79 + vanetza/asn1/its/r2/SpeedConfidence.h | 53 + vanetza/asn1/its/r2/SpeedLimit.c | 79 + vanetza/asn1/its/r2/SpeedLimit.h | 47 + vanetza/asn1/its/r2/SpeedValue.c | 79 + vanetza/asn1/its/r2/SpeedValue.h | 54 + .../asn1/its/r2/StabilityChangeIndication.c | 93 + .../asn1/its/r2/StabilityChangeIndication.h | 44 + .../asn1/its/r2/StabilityLossProbability.c | 79 + .../asn1/its/r2/StabilityLossProbability.h | 54 + vanetza/asn1/its/r2/StandardLength12b.c | 79 + vanetza/asn1/its/r2/StandardLength12b.h | 47 + vanetza/asn1/its/r2/StandardLength1B.c | 79 + vanetza/asn1/its/r2/StandardLength1B.h | 47 + vanetza/asn1/its/r2/StandardLength2B.c | 79 + vanetza/asn1/its/r2/StandardLength2B.h | 47 + vanetza/asn1/its/r2/StandardLength3b.c | 83 + vanetza/asn1/its/r2/StandardLength3b.h | 60 + vanetza/asn1/its/r2/StandardLength9b.c | 79 + vanetza/asn1/its/r2/StandardLength9b.h | 47 + vanetza/asn1/its/r2/StationID.c | 75 + vanetza/asn1/its/r2/StationID.h | 48 + vanetza/asn1/its/r2/StationId.c | 75 + vanetza/asn1/its/r2/StationId.h | 48 + vanetza/asn1/its/r2/StationType.c | 79 + vanetza/asn1/its/r2/StationType.h | 66 + vanetza/asn1/its/r2/StationarySince.c | 75 + vanetza/asn1/its/r2/StationarySince.h | 56 + .../asn1/its/r2/StationaryVehicleContainer.c | 179 + .../asn1/its/r2/StationaryVehicleContainer.h | 57 + .../its/r2/StationaryVehicleSubCauseCode.c | 79 + .../its/r2/StationaryVehicleSubCauseCode.h | 58 + vanetza/asn1/its/r2/SteeringWheelAngle.c | 93 + vanetza/asn1/its/r2/SteeringWheelAngle.h | 42 + .../its/r2/SteeringWheelAngleConfidence.c | 79 + .../its/r2/SteeringWheelAngleConfidence.h | 53 + vanetza/asn1/its/r2/SteeringWheelAngleValue.c | 79 + vanetza/asn1/its/r2/SteeringWheelAngleValue.h | 54 + vanetza/asn1/its/r2/StoredInformationType.c | 89 + vanetza/asn1/its/r2/StoredInformationType.h | 56 + vanetza/asn1/its/r2/SubCauseCodeType.c | 79 + vanetza/asn1/its/r2/SubCauseCodeType.h | 47 + vanetza/asn1/its/r2/Temperature.c | 79 + vanetza/asn1/its/r2/Temperature.h | 53 + vanetza/asn1/its/r2/Termination.c | 71 + vanetza/asn1/its/r2/Termination.h | 54 + vanetza/asn1/its/r2/TimestampIts.c | 85 + vanetza/asn1/its/r2/TimestampIts.h | 47 + vanetza/asn1/its/r2/Traces.c | 78 + vanetza/asn1/its/r2/Traces.h | 47 + vanetza/asn1/its/r2/TracesExtended.c | 78 + vanetza/asn1/its/r2/TracesExtended.h | 47 + .../its/r2/TrafficConditionSubCauseCode.c | 79 + .../its/r2/TrafficConditionSubCauseCode.h | 61 + vanetza/asn1/its/r2/TrafficDirection.c | 75 + vanetza/asn1/its/r2/TrafficDirection.h | 56 + vanetza/asn1/its/r2/TrafficIslandPosition.c | 93 + vanetza/asn1/its/r2/TrafficIslandPosition.h | 45 + vanetza/asn1/its/r2/TrafficParticipantType.c | 79 + vanetza/asn1/its/r2/TrafficParticipantType.h | 67 + vanetza/asn1/its/r2/TrafficRule.c | 79 + vanetza/asn1/its/r2/TrafficRule.h | 60 + vanetza/asn1/its/r2/TrailerData.c | 179 + vanetza/asn1/its/r2/TrailerData.h | 52 + vanetza/asn1/its/r2/TrailerDataSet.c | 109 + vanetza/asn1/its/r2/TrailerDataSet.h | 47 + .../asn1/its/r2/TrailerPresenceInformation.c | 77 + .../asn1/its/r2/TrailerPresenceInformation.h | 57 + .../its/r2/TrajectoryInterceptionConfidence.c | 79 + .../its/r2/TrajectoryInterceptionConfidence.h | 55 + .../its/r2/TrajectoryInterceptionIndication.c | 116 + .../its/r2/TrajectoryInterceptionIndication.h | 48 + .../r2/TrajectoryInterceptionProbability.c | 79 + .../r2/TrajectoryInterceptionProbability.h | 52 + vanetza/asn1/its/r2/TransmissionInterval.c | 79 + vanetza/asn1/its/r2/TransmissionInterval.h | 46 + vanetza/asn1/its/r2/TurningDirection.c | 71 + vanetza/asn1/its/r2/TurningDirection.h | 54 + vanetza/asn1/its/r2/TurningRadius.c | 79 + vanetza/asn1/its/r2/TurningRadius.h | 53 + vanetza/asn1/its/r2/UsageIndication.c | 75 + vanetza/asn1/its/r2/UsageIndication.h | 58 + vanetza/asn1/its/r2/VDS.c | 94 + vanetza/asn1/its/r2/VDS.h | 47 + vanetza/asn1/its/r2/ValidityDuration.c | 79 + vanetza/asn1/its/r2/ValidityDuration.h | 52 + vanetza/asn1/its/r2/VarLengthNumber.c | 139 + vanetza/asn1/its/r2/VarLengthNumber.h | 50 + .../its/r2/VehicleBreakdownSubCauseCode.c | 79 + .../its/r2/VehicleBreakdownSubCauseCode.h | 62 + vanetza/asn1/its/r2/VehicleHeight.c | 79 + vanetza/asn1/its/r2/VehicleHeight.h | 52 + vanetza/asn1/its/r2/VehicleIdentification.c | 95 + vanetza/asn1/its/r2/VehicleIdentification.h | 46 + vanetza/asn1/its/r2/VehicleLength.c | 93 + vanetza/asn1/its/r2/VehicleLength.h | 42 + .../r2/VehicleLengthConfidenceIndication.c | 77 + .../r2/VehicleLengthConfidenceIndication.h | 57 + vanetza/asn1/its/r2/VehicleLengthV2.c | 93 + vanetza/asn1/its/r2/VehicleLengthV2.h | 40 + vanetza/asn1/its/r2/VehicleLengthValue.c | 79 + vanetza/asn1/its/r2/VehicleLengthValue.h | 53 + vanetza/asn1/its/r2/VehicleMass.c | 79 + vanetza/asn1/its/r2/VehicleMass.h | 53 + vanetza/asn1/its/r2/VehicleRole.c | 99 + vanetza/asn1/its/r2/VehicleRole.h | 68 + vanetza/asn1/its/r2/VehicleWidth.c | 79 + vanetza/asn1/its/r2/VehicleWidth.h | 53 + .../asn1/its/r2/Velocity3dWithConfidence.c | 102 + .../asn1/its/r2/Velocity3dWithConfidence.h | 53 + vanetza/asn1/its/r2/VelocityCartesian.c | 116 + vanetza/asn1/its/r2/VelocityCartesian.h | 48 + vanetza/asn1/its/r2/VelocityComponent.c | 93 + vanetza/asn1/its/r2/VelocityComponent.h | 42 + vanetza/asn1/its/r2/VelocityComponentValue.c | 79 + vanetza/asn1/its/r2/VelocityComponentValue.h | 54 + vanetza/asn1/its/r2/VelocityPolarWithZ.c | 116 + vanetza/asn1/its/r2/VelocityPolarWithZ.h | 49 + vanetza/asn1/its/r2/VerticalAcceleration.c | 93 + vanetza/asn1/its/r2/VerticalAcceleration.h | 40 + .../asn1/its/r2/VerticalAccelerationValue.c | 79 + .../asn1/its/r2/VerticalAccelerationValue.h | 54 + vanetza/asn1/its/r2/VruClusterInformation.c | 168 + vanetza/asn1/its/r2/VruClusterInformation.h | 55 + vanetza/asn1/its/r2/VruClusterProfiles.c | 89 + vanetza/asn1/its/r2/VruClusterProfiles.h | 55 + vanetza/asn1/its/r2/VruDeviceUsage.c | 79 + vanetza/asn1/its/r2/VruDeviceUsage.h | 59 + vanetza/asn1/its/r2/VruEnvironment.c | 79 + vanetza/asn1/its/r2/VruEnvironment.h | 56 + vanetza/asn1/its/r2/VruExteriorLights.c | 93 + vanetza/asn1/its/r2/VruExteriorLights.h | 44 + vanetza/asn1/its/r2/VruMovementControl.c | 79 + vanetza/asn1/its/r2/VruMovementControl.h | 57 + vanetza/asn1/its/r2/VruProfileAndSubprofile.c | 144 + vanetza/asn1/its/r2/VruProfileAndSubprofile.h | 65 + vanetza/asn1/its/r2/VruSizeClass.c | 79 + vanetza/asn1/its/r2/VruSizeClass.h | 54 + .../asn1/its/r2/VruSpecificExteriorLights.c | 89 + .../asn1/its/r2/VruSpecificExteriorLights.h | 57 + vanetza/asn1/its/r2/VruSubProfileAnimal.c | 79 + vanetza/asn1/its/r2/VruSubProfileAnimal.h | 55 + vanetza/asn1/its/r2/VruSubProfileBicyclist.c | 79 + vanetza/asn1/its/r2/VruSubProfileBicyclist.h | 62 + .../asn1/its/r2/VruSubProfileMotorcyclist.c | 79 + .../asn1/its/r2/VruSubProfileMotorcyclist.h | 56 + vanetza/asn1/its/r2/VruSubProfilePedestrian.c | 79 + vanetza/asn1/its/r2/VruSubProfilePedestrian.h | 55 + vanetza/asn1/its/r2/WMInumber.c | 94 + vanetza/asn1/its/r2/WMInumber.h | 47 + vanetza/asn1/its/r2/Wgs84Angle.c | 93 + vanetza/asn1/its/r2/Wgs84Angle.h | 42 + vanetza/asn1/its/r2/Wgs84AngleConfidence.c | 79 + vanetza/asn1/its/r2/Wgs84AngleConfidence.h | 53 + vanetza/asn1/its/r2/Wgs84AngleValue.c | 79 + vanetza/asn1/its/r2/Wgs84AngleValue.h | 57 + vanetza/asn1/its/r2/WheelBaseVehicle.c | 79 + vanetza/asn1/its/r2/WheelBaseVehicle.h | 53 + vanetza/asn1/its/r2/WrappedCpmContainer.c | 353 + vanetza/asn1/its/r2/WrappedCpmContainer.h | 72 + vanetza/asn1/its/r2/WrappedCpmContainers.c | 78 + vanetza/asn1/its/r2/WrappedCpmContainers.h | 47 + .../asn1/its/r2/WrongWayDrivingSubCauseCode.c | 79 + .../asn1/its/r2/WrongWayDrivingSubCauseCode.h | 54 + vanetza/asn1/its/r2/YawRate.c | 93 + vanetza/asn1/its/r2/YawRate.h | 42 + vanetza/asn1/its/r2/YawRateConfidence.c | 85 + vanetza/asn1/its/r2/YawRateConfidence.h | 61 + vanetza/asn1/its/r2/YawRateValue.c | 79 + vanetza/asn1/its/r2/YawRateValue.h | 54 + vanetza/asn1/its/r2/asn_constant.h | 299 + 786 files changed, 71496 insertions(+), 4 deletions(-) create mode 100644 asn1/release2/TS102894-2v221-CDD.asn create mode 100644 asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn create mode 100644 asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn create mode 100644 asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn create mode 100644 asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn create mode 100644 asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn create mode 100644 asn1/release2/TS103324v211/README.md create mode 100644 asn1/release2/TS103831v221-DENM.asn create mode 100644 asn1/release2/TS103900v211-CAM.asn create mode 100644 vanetza/asn1/asn1c_its_r2_sources.txt create mode 100644 vanetza/asn1/its/r2/Acceleration3dWithConfidence.c create mode 100644 vanetza/asn1/its/r2/Acceleration3dWithConfidence.h create mode 100644 vanetza/asn1/its/r2/AccelerationCartesian.c create mode 100644 vanetza/asn1/its/r2/AccelerationCartesian.h create mode 100644 vanetza/asn1/its/r2/AccelerationChange.c create mode 100644 vanetza/asn1/its/r2/AccelerationChange.h create mode 100644 vanetza/asn1/its/r2/AccelerationChangeIndication.c create mode 100644 vanetza/asn1/its/r2/AccelerationChangeIndication.h create mode 100644 vanetza/asn1/its/r2/AccelerationComponent.c create mode 100644 vanetza/asn1/its/r2/AccelerationComponent.h create mode 100644 vanetza/asn1/its/r2/AccelerationConfidence.c create mode 100644 vanetza/asn1/its/r2/AccelerationConfidence.h create mode 100644 vanetza/asn1/its/r2/AccelerationControl.c create mode 100644 vanetza/asn1/its/r2/AccelerationControl.h create mode 100644 vanetza/asn1/its/r2/AccelerationMagnitude.c create mode 100644 vanetza/asn1/its/r2/AccelerationMagnitude.h create mode 100644 vanetza/asn1/its/r2/AccelerationMagnitudeValue.c create mode 100644 vanetza/asn1/its/r2/AccelerationMagnitudeValue.h create mode 100644 vanetza/asn1/its/r2/AccelerationPolarWithZ.c create mode 100644 vanetza/asn1/its/r2/AccelerationPolarWithZ.h create mode 100644 vanetza/asn1/its/r2/AccelerationValue.c create mode 100644 vanetza/asn1/its/r2/AccelerationValue.h create mode 100644 vanetza/asn1/its/r2/AccessTechnologyClass.c create mode 100644 vanetza/asn1/its/r2/AccessTechnologyClass.h create mode 100644 vanetza/asn1/its/r2/AccidentSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/AccidentSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/ActionID.c create mode 100644 vanetza/asn1/its/r2/ActionID.h create mode 100644 vanetza/asn1/its/r2/ActionId.c create mode 100644 vanetza/asn1/its/r2/ActionId.h create mode 100644 vanetza/asn1/its/r2/ActionIdList.c create mode 100644 vanetza/asn1/its/r2/ActionIdList.h create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c create mode 100644 vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.h create mode 100644 vanetza/asn1/its/r2/AirHumidity.c create mode 100644 vanetza/asn1/its/r2/AirHumidity.h create mode 100644 vanetza/asn1/its/r2/AlacarteContainer.c create mode 100644 vanetza/asn1/its/r2/AlacarteContainer.h create mode 100644 vanetza/asn1/its/r2/Altitude.c create mode 100644 vanetza/asn1/its/r2/Altitude.h create mode 100644 vanetza/asn1/its/r2/AltitudeConfidence.c create mode 100644 vanetza/asn1/its/r2/AltitudeConfidence.h create mode 100644 vanetza/asn1/its/r2/AltitudeValue.c create mode 100644 vanetza/asn1/its/r2/AltitudeValue.h create mode 100644 vanetza/asn1/its/r2/AngleConfidence.c create mode 100644 vanetza/asn1/its/r2/AngleConfidence.h create mode 100644 vanetza/asn1/its/r2/AngularAccelerationConfidence.c create mode 100644 vanetza/asn1/its/r2/AngularAccelerationConfidence.h create mode 100644 vanetza/asn1/its/r2/AngularSpeedConfidence.c create mode 100644 vanetza/asn1/its/r2/AngularSpeedConfidence.h create mode 100644 vanetza/asn1/its/r2/AxlesCount.c create mode 100644 vanetza/asn1/its/r2/AxlesCount.h create mode 100644 vanetza/asn1/its/r2/BarometricPressure.c create mode 100644 vanetza/asn1/its/r2/BarometricPressure.h create mode 100644 vanetza/asn1/its/r2/BasicContainer.c create mode 100644 vanetza/asn1/its/r2/BasicContainer.h create mode 100644 vanetza/asn1/its/r2/BasicLaneConfiguration.c create mode 100644 vanetza/asn1/its/r2/BasicLaneConfiguration.h create mode 100644 vanetza/asn1/its/r2/BasicLaneInformation.c create mode 100644 vanetza/asn1/its/r2/BasicLaneInformation.h create mode 100644 vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.c create mode 100644 vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.h create mode 100644 vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.c create mode 100644 vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.h create mode 100644 vanetza/asn1/its/r2/BogiesCount.c create mode 100644 vanetza/asn1/its/r2/BogiesCount.h create mode 100644 vanetza/asn1/its/r2/CAM.c create mode 100644 vanetza/asn1/its/r2/CAM.h create mode 100644 vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.c create mode 100644 vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.h create mode 100644 vanetza/asn1/its/r2/CamParameters.c create mode 100644 vanetza/asn1/its/r2/CamParameters.h create mode 100644 vanetza/asn1/its/r2/CamPayload.c create mode 100644 vanetza/asn1/its/r2/CamPayload.h create mode 100644 vanetza/asn1/its/r2/CardinalNumber1B.c create mode 100644 vanetza/asn1/its/r2/CardinalNumber1B.h create mode 100644 vanetza/asn1/its/r2/CardinalNumber3b.c create mode 100644 vanetza/asn1/its/r2/CardinalNumber3b.h create mode 100644 vanetza/asn1/its/r2/CartesianAngle.c create mode 100644 vanetza/asn1/its/r2/CartesianAngle.h create mode 100644 vanetza/asn1/its/r2/CartesianAngleValue.c create mode 100644 vanetza/asn1/its/r2/CartesianAngleValue.h create mode 100644 vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.c create mode 100644 vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.h create mode 100644 vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.c create mode 100644 vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.h create mode 100644 vanetza/asn1/its/r2/CartesianAngularVelocityComponent.c create mode 100644 vanetza/asn1/its/r2/CartesianAngularVelocityComponent.h create mode 100644 vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.c create mode 100644 vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.h create mode 100644 vanetza/asn1/its/r2/CartesianCoordinate.c create mode 100644 vanetza/asn1/its/r2/CartesianCoordinate.h create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateLarge.c create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateLarge.h create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateSmall.c create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateSmall.h create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.c create mode 100644 vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.h create mode 100644 vanetza/asn1/its/r2/CartesianPosition3d.c create mode 100644 vanetza/asn1/its/r2/CartesianPosition3d.h create mode 100644 vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.c create mode 100644 vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.h create mode 100644 vanetza/asn1/its/r2/CauseCode.c create mode 100644 vanetza/asn1/its/r2/CauseCode.h create mode 100644 vanetza/asn1/its/r2/CauseCodeChoice.c create mode 100644 vanetza/asn1/its/r2/CauseCodeChoice.h create mode 100644 vanetza/asn1/its/r2/CauseCodeType.c create mode 100644 vanetza/asn1/its/r2/CauseCodeType.h create mode 100644 vanetza/asn1/its/r2/CauseCodeV2.c create mode 100644 vanetza/asn1/its/r2/CauseCodeV2.h create mode 100644 vanetza/asn1/its/r2/CenDsrcTollingZone.c create mode 100644 vanetza/asn1/its/r2/CenDsrcTollingZone.h create mode 100644 vanetza/asn1/its/r2/CenDsrcTollingZoneID.c create mode 100644 vanetza/asn1/its/r2/CenDsrcTollingZoneID.h create mode 100644 vanetza/asn1/its/r2/CircularShape.c create mode 100644 vanetza/asn1/its/r2/CircularShape.h create mode 100644 vanetza/asn1/its/r2/ClosedLanes.c create mode 100644 vanetza/asn1/its/r2/ClosedLanes.h create mode 100644 vanetza/asn1/its/r2/ClusterBreakupInfo.c create mode 100644 vanetza/asn1/its/r2/ClusterBreakupInfo.h create mode 100644 vanetza/asn1/its/r2/ClusterBreakupReason.c create mode 100644 vanetza/asn1/its/r2/ClusterBreakupReason.h create mode 100644 vanetza/asn1/its/r2/ClusterJoinInfo.c create mode 100644 vanetza/asn1/its/r2/ClusterJoinInfo.h create mode 100644 vanetza/asn1/its/r2/ClusterLeaveInfo.c create mode 100644 vanetza/asn1/its/r2/ClusterLeaveInfo.h create mode 100644 vanetza/asn1/its/r2/ClusterLeaveReason.c create mode 100644 vanetza/asn1/its/r2/ClusterLeaveReason.h create mode 100644 vanetza/asn1/its/r2/CollectivePerceptionMessage.c create mode 100644 vanetza/asn1/its/r2/CollectivePerceptionMessage.h create mode 100644 vanetza/asn1/its/r2/CollisionRiskSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/CollisionRiskSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/ConfidenceLevel.c create mode 100644 vanetza/asn1/its/r2/ConfidenceLevel.h create mode 100644 vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.c create mode 100644 vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.h create mode 100644 vanetza/asn1/its/r2/CoordinateConfidence.c create mode 100644 vanetza/asn1/its/r2/CoordinateConfidence.h create mode 100644 vanetza/asn1/its/r2/CorrelationCellValue.c create mode 100644 vanetza/asn1/its/r2/CorrelationCellValue.h create mode 100644 vanetza/asn1/its/r2/CorrelationColumn.c create mode 100644 vanetza/asn1/its/r2/CorrelationColumn.h create mode 100644 vanetza/asn1/its/r2/CountryCode.c create mode 100644 vanetza/asn1/its/r2/CountryCode.h create mode 100644 vanetza/asn1/its/r2/CpmContainerId.c create mode 100644 vanetza/asn1/its/r2/CpmContainerId.h create mode 100644 vanetza/asn1/its/r2/CpmPayload.c create mode 100644 vanetza/asn1/its/r2/CpmPayload.h create mode 100644 vanetza/asn1/its/r2/Curvature.c create mode 100644 vanetza/asn1/its/r2/Curvature.h create mode 100644 vanetza/asn1/its/r2/CurvatureCalculationMode.c create mode 100644 vanetza/asn1/its/r2/CurvatureCalculationMode.h create mode 100644 vanetza/asn1/its/r2/CurvatureConfidence.c create mode 100644 vanetza/asn1/its/r2/CurvatureConfidence.h create mode 100644 vanetza/asn1/its/r2/CurvatureValue.c create mode 100644 vanetza/asn1/its/r2/CurvatureValue.h create mode 100644 vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.c create mode 100644 vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.h create mode 100644 vanetza/asn1/its/r2/DENM.c create mode 100644 vanetza/asn1/its/r2/DENM.h create mode 100644 vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/DangerousGoodsBasic.c create mode 100644 vanetza/asn1/its/r2/DangerousGoodsBasic.h create mode 100644 vanetza/asn1/its/r2/DangerousGoodsContainer.c create mode 100644 vanetza/asn1/its/r2/DangerousGoodsContainer.h create mode 100644 vanetza/asn1/its/r2/DangerousGoodsExtended.c create mode 100644 vanetza/asn1/its/r2/DangerousGoodsExtended.h create mode 100644 vanetza/asn1/its/r2/DangerousSituationSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/DangerousSituationSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/DeltaAltitude.c create mode 100644 vanetza/asn1/its/r2/DeltaAltitude.h create mode 100644 vanetza/asn1/its/r2/DeltaLatitude.c create mode 100644 vanetza/asn1/its/r2/DeltaLatitude.h create mode 100644 vanetza/asn1/its/r2/DeltaLongitude.c create mode 100644 vanetza/asn1/its/r2/DeltaLongitude.h create mode 100644 vanetza/asn1/its/r2/DeltaReferencePosition.c create mode 100644 vanetza/asn1/its/r2/DeltaReferencePosition.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeQuarterSecond.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeQuarterSecond.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeSecond.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeSecond.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeTenSeconds.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeTenSeconds.h create mode 100644 vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.c create mode 100644 vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.h create mode 100644 vanetza/asn1/its/r2/DenmPayload.c create mode 100644 vanetza/asn1/its/r2/DenmPayload.h create mode 100644 vanetza/asn1/its/r2/DigitalMap.c create mode 100644 vanetza/asn1/its/r2/DigitalMap.h create mode 100644 vanetza/asn1/its/r2/Direction.c create mode 100644 vanetza/asn1/its/r2/Direction.h create mode 100644 vanetza/asn1/its/r2/DriveDirection.c create mode 100644 vanetza/asn1/its/r2/DriveDirection.h create mode 100644 vanetza/asn1/its/r2/DrivingLaneStatus.c create mode 100644 vanetza/asn1/its/r2/DrivingLaneStatus.h create mode 100644 vanetza/asn1/its/r2/EXTERNAL.c create mode 100644 vanetza/asn1/its/r2/EXTERNAL.h create mode 100644 vanetza/asn1/its/r2/EllipticalShape.c create mode 100644 vanetza/asn1/its/r2/EllipticalShape.h create mode 100644 vanetza/asn1/its/r2/EmbarkationStatus.c create mode 100644 vanetza/asn1/its/r2/EmbarkationStatus.h create mode 100644 vanetza/asn1/its/r2/EmergencyContainer.c create mode 100644 vanetza/asn1/its/r2/EmergencyContainer.h create mode 100644 vanetza/asn1/its/r2/EmergencyPriority.c create mode 100644 vanetza/asn1/its/r2/EmergencyPriority.h create mode 100644 vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/EnergyStorageType.c create mode 100644 vanetza/asn1/its/r2/EnergyStorageType.h create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryCode.c create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryCode.h create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryL.c create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryL.h create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryM.c create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryM.h create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryN.c create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryN.h create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryO.c create mode 100644 vanetza/asn1/its/r2/EuVehicleCategoryO.h create mode 100644 vanetza/asn1/its/r2/EulerAnglesWithConfidence.c create mode 100644 vanetza/asn1/its/r2/EulerAnglesWithConfidence.h create mode 100644 vanetza/asn1/its/r2/EventHistory.c create mode 100644 vanetza/asn1/its/r2/EventHistory.h create mode 100644 vanetza/asn1/its/r2/EventPoint.c create mode 100644 vanetza/asn1/its/r2/EventPoint.h create mode 100644 vanetza/asn1/its/r2/EventZone.c create mode 100644 vanetza/asn1/its/r2/EventZone.h create mode 100644 vanetza/asn1/its/r2/Ext1.c create mode 100644 vanetza/asn1/its/r2/Ext1.h create mode 100644 vanetza/asn1/its/r2/Ext2.c create mode 100644 vanetza/asn1/its/r2/Ext2.h create mode 100644 vanetza/asn1/its/r2/Ext3.c create mode 100644 vanetza/asn1/its/r2/Ext3.h create mode 100644 vanetza/asn1/its/r2/ExteriorLights.c create mode 100644 vanetza/asn1/its/r2/ExteriorLights.h create mode 100644 vanetza/asn1/its/r2/GeneralizedLanePosition.c create mode 100644 vanetza/asn1/its/r2/GeneralizedLanePosition.h create mode 100644 vanetza/asn1/its/r2/GeneralizedLanePositions.c create mode 100644 vanetza/asn1/its/r2/GeneralizedLanePositions.h create mode 100644 vanetza/asn1/its/r2/GenerationDeltaTime.c create mode 100644 vanetza/asn1/its/r2/GenerationDeltaTime.h create mode 100644 vanetza/asn1/its/r2/GeoPosition.c create mode 100644 vanetza/asn1/its/r2/GeoPosition.h create mode 100644 vanetza/asn1/its/r2/HardShoulderStatus.c create mode 100644 vanetza/asn1/its/r2/HardShoulderStatus.h create mode 100644 vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/Heading.c create mode 100644 vanetza/asn1/its/r2/Heading.h create mode 100644 vanetza/asn1/its/r2/HeadingChangeIndication.c create mode 100644 vanetza/asn1/its/r2/HeadingChangeIndication.h create mode 100644 vanetza/asn1/its/r2/HeadingConfidence.c create mode 100644 vanetza/asn1/its/r2/HeadingConfidence.h create mode 100644 vanetza/asn1/its/r2/HeadingValue.c create mode 100644 vanetza/asn1/its/r2/HeadingValue.h create mode 100644 vanetza/asn1/its/r2/HeightLonCarr.c create mode 100644 vanetza/asn1/its/r2/HeightLonCarr.h create mode 100644 vanetza/asn1/its/r2/HighFrequencyContainer.c create mode 100644 vanetza/asn1/its/r2/HighFrequencyContainer.h create mode 100644 vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/HumanProblemSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/HumanProblemSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/Identifier1B.c create mode 100644 vanetza/asn1/its/r2/Identifier1B.h create mode 100644 vanetza/asn1/its/r2/Identifier2B.c create mode 100644 vanetza/asn1/its/r2/Identifier2B.h create mode 100644 vanetza/asn1/its/r2/ImpactReductionContainer.c create mode 100644 vanetza/asn1/its/r2/ImpactReductionContainer.h create mode 100644 vanetza/asn1/its/r2/ImpassabilitySubCauseCode.c create mode 100644 vanetza/asn1/its/r2/ImpassabilitySubCauseCode.h create mode 100644 vanetza/asn1/its/r2/InformationQuality.c create mode 100644 vanetza/asn1/its/r2/InformationQuality.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementChannel.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementChannel.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementInfo.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementInfo.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZone.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZone.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZoneType.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZoneType.h create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZones.c create mode 100644 vanetza/asn1/its/r2/InterferenceManagementZones.h create mode 100644 vanetza/asn1/its/r2/IntersectionReferenceId.c create mode 100644 vanetza/asn1/its/r2/IntersectionReferenceId.h create mode 100644 vanetza/asn1/its/r2/Iso3833VehicleType.c create mode 100644 vanetza/asn1/its/r2/Iso3833VehicleType.h create mode 100644 vanetza/asn1/its/r2/IssuerIdentifier.c create mode 100644 vanetza/asn1/its/r2/IssuerIdentifier.h create mode 100644 vanetza/asn1/its/r2/ItineraryPath.c create mode 100644 vanetza/asn1/its/r2/ItineraryPath.h create mode 100644 vanetza/asn1/its/r2/ItsPduHeader.c create mode 100644 vanetza/asn1/its/r2/ItsPduHeader.h create mode 100644 vanetza/asn1/its/r2/IviIdentificationNumber.c create mode 100644 vanetza/asn1/its/r2/IviIdentificationNumber.h create mode 100644 vanetza/asn1/its/r2/IvimReference.c create mode 100644 vanetza/asn1/its/r2/IvimReference.h create mode 100644 vanetza/asn1/its/r2/IvimReferences.c create mode 100644 vanetza/asn1/its/r2/IvimReferences.h create mode 100644 vanetza/asn1/its/r2/LanePosition.c create mode 100644 vanetza/asn1/its/r2/LanePosition.h create mode 100644 vanetza/asn1/its/r2/LanePositionAndType.c create mode 100644 vanetza/asn1/its/r2/LanePositionAndType.h create mode 100644 vanetza/asn1/its/r2/LanePositionOptions.c create mode 100644 vanetza/asn1/its/r2/LanePositionOptions.h create mode 100644 vanetza/asn1/its/r2/LanePositionWithLateralDetails.c create mode 100644 vanetza/asn1/its/r2/LanePositionWithLateralDetails.h create mode 100644 vanetza/asn1/its/r2/LaneType.c create mode 100644 vanetza/asn1/its/r2/LaneType.h create mode 100644 vanetza/asn1/its/r2/LaneWidth.c create mode 100644 vanetza/asn1/its/r2/LaneWidth.h create mode 100644 vanetza/asn1/its/r2/LateralAcceleration.c create mode 100644 vanetza/asn1/its/r2/LateralAcceleration.h create mode 100644 vanetza/asn1/its/r2/LateralAccelerationValue.c create mode 100644 vanetza/asn1/its/r2/LateralAccelerationValue.h create mode 100644 vanetza/asn1/its/r2/Latitude.c create mode 100644 vanetza/asn1/its/r2/Latitude.h create mode 100644 vanetza/asn1/its/r2/LightBarSirenInUse.c create mode 100644 vanetza/asn1/its/r2/LightBarSirenInUse.h create mode 100644 vanetza/asn1/its/r2/LocationContainer.c create mode 100644 vanetza/asn1/its/r2/LocationContainer.h create mode 100644 vanetza/asn1/its/r2/Longitude.c create mode 100644 vanetza/asn1/its/r2/Longitude.h create mode 100644 vanetza/asn1/its/r2/LongitudinalAcceleration.c create mode 100644 vanetza/asn1/its/r2/LongitudinalAcceleration.h create mode 100644 vanetza/asn1/its/r2/LongitudinalAccelerationValue.c create mode 100644 vanetza/asn1/its/r2/LongitudinalAccelerationValue.h create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePosition.c create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePosition.h create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.c create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.h create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePositionValue.c create mode 100644 vanetza/asn1/its/r2/LongitudinalLanePositionValue.h create mode 100644 vanetza/asn1/its/r2/LowFrequencyContainer.c create mode 100644 vanetza/asn1/its/r2/LowFrequencyContainer.h create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.c create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.h create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.c create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.h create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c create mode 100644 vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.h create mode 100644 vanetza/asn1/its/r2/MapPosition.c create mode 100644 vanetza/asn1/its/r2/MapPosition.h create mode 100644 vanetza/asn1/its/r2/MapReference.c create mode 100644 vanetza/asn1/its/r2/MapReference.h create mode 100644 vanetza/asn1/its/r2/MapReferences.c create mode 100644 vanetza/asn1/its/r2/MapReferences.h create mode 100644 vanetza/asn1/its/r2/MapemConfiguration.c create mode 100644 vanetza/asn1/its/r2/MapemConfiguration.h create mode 100644 vanetza/asn1/its/r2/MapemConnectionList.c create mode 100644 vanetza/asn1/its/r2/MapemConnectionList.h create mode 100644 vanetza/asn1/its/r2/MapemElementReference.c create mode 100644 vanetza/asn1/its/r2/MapemElementReference.h create mode 100644 vanetza/asn1/its/r2/MapemLaneList.c create mode 100644 vanetza/asn1/its/r2/MapemLaneList.h create mode 100644 vanetza/asn1/its/r2/MatrixIncludedComponents.c create mode 100644 vanetza/asn1/its/r2/MatrixIncludedComponents.h create mode 100644 vanetza/asn1/its/r2/MessageId.c create mode 100644 vanetza/asn1/its/r2/MessageId.h create mode 100644 vanetza/asn1/its/r2/MessageRateHz.c create mode 100644 vanetza/asn1/its/r2/MessageRateHz.h create mode 100644 vanetza/asn1/its/r2/MessageRateRange.c create mode 100644 vanetza/asn1/its/r2/MessageRateRange.h create mode 100644 vanetza/asn1/its/r2/MessageSegmentationInfo.c create mode 100644 vanetza/asn1/its/r2/MessageSegmentationInfo.h create mode 100644 vanetza/asn1/its/r2/MetaInformation.c create mode 100644 vanetza/asn1/its/r2/MetaInformation.h create mode 100644 vanetza/asn1/its/r2/MitigationForTechnologies.c create mode 100644 vanetza/asn1/its/r2/MitigationForTechnologies.h create mode 100644 vanetza/asn1/its/r2/MitigationPerTechnologyClass.c create mode 100644 vanetza/asn1/its/r2/MitigationPerTechnologyClass.h create mode 100644 vanetza/asn1/its/r2/NumberOfOccupants.c create mode 100644 vanetza/asn1/its/r2/NumberOfOccupants.h create mode 100644 vanetza/asn1/its/r2/ObjectClass.c create mode 100644 vanetza/asn1/its/r2/ObjectClass.h create mode 100644 vanetza/asn1/its/r2/ObjectClassDescription.c create mode 100644 vanetza/asn1/its/r2/ObjectClassDescription.h create mode 100644 vanetza/asn1/its/r2/ObjectClassWithConfidence.c create mode 100644 vanetza/asn1/its/r2/ObjectClassWithConfidence.h create mode 100644 vanetza/asn1/its/r2/ObjectDimension.c create mode 100644 vanetza/asn1/its/r2/ObjectDimension.h create mode 100644 vanetza/asn1/its/r2/ObjectDimensionConfidence.c create mode 100644 vanetza/asn1/its/r2/ObjectDimensionConfidence.h create mode 100644 vanetza/asn1/its/r2/ObjectDimensionValue.c create mode 100644 vanetza/asn1/its/r2/ObjectDimensionValue.h create mode 100644 vanetza/asn1/its/r2/ObjectFace.c create mode 100644 vanetza/asn1/its/r2/ObjectFace.h create mode 100644 vanetza/asn1/its/r2/ObjectPerceptionQuality.c create mode 100644 vanetza/asn1/its/r2/ObjectPerceptionQuality.h create mode 100644 vanetza/asn1/its/r2/OccupiedLanesWithConfidence.c create mode 100644 vanetza/asn1/its/r2/OccupiedLanesWithConfidence.h create mode 100644 vanetza/asn1/its/r2/OpeningDaysHours.c create mode 100644 vanetza/asn1/its/r2/OpeningDaysHours.h create mode 100644 vanetza/asn1/its/r2/OrdinalNumber1B.c create mode 100644 vanetza/asn1/its/r2/OrdinalNumber1B.h create mode 100644 vanetza/asn1/its/r2/OrdinalNumber3b.c create mode 100644 vanetza/asn1/its/r2/OrdinalNumber3b.h create mode 100644 vanetza/asn1/its/r2/OriginatingRsuContainer.c create mode 100644 vanetza/asn1/its/r2/OriginatingRsuContainer.h create mode 100644 vanetza/asn1/its/r2/OriginatingVehicleContainer.c create mode 100644 vanetza/asn1/its/r2/OriginatingVehicleContainer.h create mode 100644 vanetza/asn1/its/r2/OtherSubClass.c create mode 100644 vanetza/asn1/its/r2/OtherSubClass.h create mode 100644 vanetza/asn1/its/r2/Path.c create mode 100644 vanetza/asn1/its/r2/Path.h create mode 100644 vanetza/asn1/its/r2/PathDeltaTime.c create mode 100644 vanetza/asn1/its/r2/PathDeltaTime.h create mode 100644 vanetza/asn1/its/r2/PathDeltaTimeChoice.c create mode 100644 vanetza/asn1/its/r2/PathDeltaTimeChoice.h create mode 100644 vanetza/asn1/its/r2/PathExtended.c create mode 100644 vanetza/asn1/its/r2/PathExtended.h create mode 100644 vanetza/asn1/its/r2/PathHistory.c create mode 100644 vanetza/asn1/its/r2/PathHistory.h create mode 100644 vanetza/asn1/its/r2/PathId.c create mode 100644 vanetza/asn1/its/r2/PathId.h create mode 100644 vanetza/asn1/its/r2/PathPoint.c create mode 100644 vanetza/asn1/its/r2/PathPoint.h create mode 100644 vanetza/asn1/its/r2/PathPointPredicted.c create mode 100644 vanetza/asn1/its/r2/PathPointPredicted.h create mode 100644 vanetza/asn1/its/r2/PathPredicted.c create mode 100644 vanetza/asn1/its/r2/PathPredicted.h create mode 100644 vanetza/asn1/its/r2/PathPredicted2.c create mode 100644 vanetza/asn1/its/r2/PathPredicted2.h create mode 100644 vanetza/asn1/its/r2/PathPredictedList.c create mode 100644 vanetza/asn1/its/r2/PathPredictedList.h create mode 100644 vanetza/asn1/its/r2/PathReferences.c create mode 100644 vanetza/asn1/its/r2/PathReferences.h create mode 100644 vanetza/asn1/its/r2/PerceivedObject.c create mode 100644 vanetza/asn1/its/r2/PerceivedObject.h create mode 100644 vanetza/asn1/its/r2/PerceivedObjectContainer.c create mode 100644 vanetza/asn1/its/r2/PerceivedObjectContainer.h create mode 100644 vanetza/asn1/its/r2/PerceivedObjectIds.c create mode 100644 vanetza/asn1/its/r2/PerceivedObjectIds.h create mode 100644 vanetza/asn1/its/r2/PerceivedObjects.c create mode 100644 vanetza/asn1/its/r2/PerceivedObjects.h create mode 100644 vanetza/asn1/its/r2/PerceptionRegion.c create mode 100644 vanetza/asn1/its/r2/PerceptionRegion.h create mode 100644 vanetza/asn1/its/r2/PerceptionRegionContainer.c create mode 100644 vanetza/asn1/its/r2/PerceptionRegionContainer.h create mode 100644 vanetza/asn1/its/r2/PerformanceClass.c create mode 100644 vanetza/asn1/its/r2/PerformanceClass.h create mode 100644 vanetza/asn1/its/r2/PhoneNumber.c create mode 100644 vanetza/asn1/its/r2/PhoneNumber.h create mode 100644 vanetza/asn1/its/r2/PolygonalShape.c create mode 100644 vanetza/asn1/its/r2/PolygonalShape.h create mode 100644 vanetza/asn1/its/r2/PosCentMass.c create mode 100644 vanetza/asn1/its/r2/PosCentMass.h create mode 100644 vanetza/asn1/its/r2/PosConfidenceEllipse.c create mode 100644 vanetza/asn1/its/r2/PosConfidenceEllipse.h create mode 100644 vanetza/asn1/its/r2/PosFrontAx.c create mode 100644 vanetza/asn1/its/r2/PosFrontAx.h create mode 100644 vanetza/asn1/its/r2/PosLonCarr.c create mode 100644 vanetza/asn1/its/r2/PosLonCarr.h create mode 100644 vanetza/asn1/its/r2/PosPillar.c create mode 100644 vanetza/asn1/its/r2/PosPillar.h create mode 100644 vanetza/asn1/its/r2/Position1d.c create mode 100644 vanetza/asn1/its/r2/Position1d.h create mode 100644 vanetza/asn1/its/r2/PositionConfidenceEllipse.c create mode 100644 vanetza/asn1/its/r2/PositionConfidenceEllipse.h create mode 100644 vanetza/asn1/its/r2/PositionOfOccupants.c create mode 100644 vanetza/asn1/its/r2/PositionOfOccupants.h create mode 100644 vanetza/asn1/its/r2/PositionOfPillars.c create mode 100644 vanetza/asn1/its/r2/PositionOfPillars.h create mode 100644 vanetza/asn1/its/r2/PositioningSolutionType.c create mode 100644 vanetza/asn1/its/r2/PositioningSolutionType.h create mode 100644 vanetza/asn1/its/r2/PostCrashSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/PostCrashSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/PreCrashContainer.c create mode 100644 vanetza/asn1/its/r2/PreCrashContainer.h create mode 100644 vanetza/asn1/its/r2/PrecipitationIntensity.c create mode 100644 vanetza/asn1/its/r2/PrecipitationIntensity.h create mode 100644 vanetza/asn1/its/r2/ProtectedCommunicationZone.c create mode 100644 vanetza/asn1/its/r2/ProtectedCommunicationZone.h create mode 100644 vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.c create mode 100644 vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.h create mode 100644 vanetza/asn1/its/r2/ProtectedZoneId.c create mode 100644 vanetza/asn1/its/r2/ProtectedZoneId.h create mode 100644 vanetza/asn1/its/r2/ProtectedZoneRadius.c create mode 100644 vanetza/asn1/its/r2/ProtectedZoneRadius.h create mode 100644 vanetza/asn1/its/r2/ProtectedZoneType.c create mode 100644 vanetza/asn1/its/r2/ProtectedZoneType.h create mode 100644 vanetza/asn1/its/r2/Provider.c create mode 100644 vanetza/asn1/its/r2/Provider.h create mode 100644 vanetza/asn1/its/r2/PtActivation.c create mode 100644 vanetza/asn1/its/r2/PtActivation.h create mode 100644 vanetza/asn1/its/r2/PtActivationData.c create mode 100644 vanetza/asn1/its/r2/PtActivationData.h create mode 100644 vanetza/asn1/its/r2/PtActivationType.c create mode 100644 vanetza/asn1/its/r2/PtActivationType.h create mode 100644 vanetza/asn1/its/r2/PublicTransportContainer.c create mode 100644 vanetza/asn1/its/r2/PublicTransportContainer.h create mode 100644 vanetza/asn1/its/r2/RSUContainerHighFrequency.c create mode 100644 vanetza/asn1/its/r2/RSUContainerHighFrequency.h create mode 100644 vanetza/asn1/its/r2/RadialShape.c create mode 100644 vanetza/asn1/its/r2/RadialShape.h create mode 100644 vanetza/asn1/its/r2/RadialShapeDetails.c create mode 100644 vanetza/asn1/its/r2/RadialShapeDetails.h create mode 100644 vanetza/asn1/its/r2/RadialShapes.c create mode 100644 vanetza/asn1/its/r2/RadialShapes.h create mode 100644 vanetza/asn1/its/r2/RadialShapesList.c create mode 100644 vanetza/asn1/its/r2/RadialShapesList.h create mode 100644 vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/RectangularShape.c create mode 100644 vanetza/asn1/its/r2/RectangularShape.h create mode 100644 vanetza/asn1/its/r2/ReferencePosition.c create mode 100644 vanetza/asn1/its/r2/ReferencePosition.h create mode 100644 vanetza/asn1/its/r2/ReferencePositionWithConfidence.c create mode 100644 vanetza/asn1/its/r2/ReferencePositionWithConfidence.h create mode 100644 vanetza/asn1/its/r2/RelevanceDistance.c create mode 100644 vanetza/asn1/its/r2/RelevanceDistance.h create mode 100644 vanetza/asn1/its/r2/RelevanceTrafficDirection.c create mode 100644 vanetza/asn1/its/r2/RelevanceTrafficDirection.h create mode 100644 vanetza/asn1/its/r2/RequestResponseIndication.c create mode 100644 vanetza/asn1/its/r2/RequestResponseIndication.h create mode 100644 vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/RescueContainer.c create mode 100644 vanetza/asn1/its/r2/RescueContainer.h create mode 100644 vanetza/asn1/its/r2/RestrictedTypes.c create mode 100644 vanetza/asn1/its/r2/RestrictedTypes.h create mode 100644 vanetza/asn1/its/r2/RoadConfigurationContainer.c create mode 100644 vanetza/asn1/its/r2/RoadConfigurationContainer.h create mode 100644 vanetza/asn1/its/r2/RoadConfigurationSection.c create mode 100644 vanetza/asn1/its/r2/RoadConfigurationSection.h create mode 100644 vanetza/asn1/its/r2/RoadConfigurationSectionList.c create mode 100644 vanetza/asn1/its/r2/RoadConfigurationSectionList.h create mode 100644 vanetza/asn1/its/r2/RoadSectionDefinition.c create mode 100644 vanetza/asn1/its/r2/RoadSectionDefinition.h create mode 100644 vanetza/asn1/its/r2/RoadSectionId.c create mode 100644 vanetza/asn1/its/r2/RoadSectionId.h create mode 100644 vanetza/asn1/its/r2/RoadSegmentReferenceId.c create mode 100644 vanetza/asn1/its/r2/RoadSegmentReferenceId.h create mode 100644 vanetza/asn1/its/r2/RoadType.c create mode 100644 vanetza/asn1/its/r2/RoadType.h create mode 100644 vanetza/asn1/its/r2/RoadWorksContainerBasic.c create mode 100644 vanetza/asn1/its/r2/RoadWorksContainerBasic.h create mode 100644 vanetza/asn1/its/r2/RoadWorksContainerExtended.c create mode 100644 vanetza/asn1/its/r2/RoadWorksContainerExtended.h create mode 100644 vanetza/asn1/its/r2/RoadworksSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/RoadworksSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/SafeDistanceIndication.c create mode 100644 vanetza/asn1/its/r2/SafeDistanceIndication.h create mode 100644 vanetza/asn1/its/r2/SafeDistanceIndicator.c create mode 100644 vanetza/asn1/its/r2/SafeDistanceIndicator.h create mode 100644 vanetza/asn1/its/r2/SafetyCarContainer.c create mode 100644 vanetza/asn1/its/r2/SafetyCarContainer.h create mode 100644 vanetza/asn1/its/r2/SemiAxisLength.c create mode 100644 vanetza/asn1/its/r2/SemiAxisLength.h create mode 100644 vanetza/asn1/its/r2/SensorInformation.c create mode 100644 vanetza/asn1/its/r2/SensorInformation.h create mode 100644 vanetza/asn1/its/r2/SensorInformationContainer.c create mode 100644 vanetza/asn1/its/r2/SensorInformationContainer.h create mode 100644 vanetza/asn1/its/r2/SensorType.c create mode 100644 vanetza/asn1/its/r2/SensorType.h create mode 100644 vanetza/asn1/its/r2/SensorTypes.c create mode 100644 vanetza/asn1/its/r2/SensorTypes.h create mode 100644 vanetza/asn1/its/r2/SequenceNumber.c create mode 100644 vanetza/asn1/its/r2/SequenceNumber.h create mode 100644 vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.c create mode 100644 vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.h create mode 100644 vanetza/asn1/its/r2/SequenceOfIdentifier1B.c create mode 100644 vanetza/asn1/its/r2/SequenceOfIdentifier1B.h create mode 100644 vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.c create mode 100644 vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.h create mode 100644 vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.c create mode 100644 vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.h create mode 100644 vanetza/asn1/its/r2/Shape.c create mode 100644 vanetza/asn1/its/r2/Shape.h create mode 100644 vanetza/asn1/its/r2/SignalViolationSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/SignalViolationSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/SituationContainer.c create mode 100644 vanetza/asn1/its/r2/SituationContainer.h create mode 100644 vanetza/asn1/its/r2/SlowVehicleSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/SlowVehicleSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/SpecialTransportContainer.c create mode 100644 vanetza/asn1/its/r2/SpecialTransportContainer.h create mode 100644 vanetza/asn1/its/r2/SpecialTransportType.c create mode 100644 vanetza/asn1/its/r2/SpecialTransportType.h create mode 100644 vanetza/asn1/its/r2/SpecialVehicleContainer.c create mode 100644 vanetza/asn1/its/r2/SpecialVehicleContainer.h create mode 100644 vanetza/asn1/its/r2/Speed.c create mode 100644 vanetza/asn1/its/r2/Speed.h create mode 100644 vanetza/asn1/its/r2/SpeedConfidence.c create mode 100644 vanetza/asn1/its/r2/SpeedConfidence.h create mode 100644 vanetza/asn1/its/r2/SpeedLimit.c create mode 100644 vanetza/asn1/its/r2/SpeedLimit.h create mode 100644 vanetza/asn1/its/r2/SpeedValue.c create mode 100644 vanetza/asn1/its/r2/SpeedValue.h create mode 100644 vanetza/asn1/its/r2/StabilityChangeIndication.c create mode 100644 vanetza/asn1/its/r2/StabilityChangeIndication.h create mode 100644 vanetza/asn1/its/r2/StabilityLossProbability.c create mode 100644 vanetza/asn1/its/r2/StabilityLossProbability.h create mode 100644 vanetza/asn1/its/r2/StandardLength12b.c create mode 100644 vanetza/asn1/its/r2/StandardLength12b.h create mode 100644 vanetza/asn1/its/r2/StandardLength1B.c create mode 100644 vanetza/asn1/its/r2/StandardLength1B.h create mode 100644 vanetza/asn1/its/r2/StandardLength2B.c create mode 100644 vanetza/asn1/its/r2/StandardLength2B.h create mode 100644 vanetza/asn1/its/r2/StandardLength3b.c create mode 100644 vanetza/asn1/its/r2/StandardLength3b.h create mode 100644 vanetza/asn1/its/r2/StandardLength9b.c create mode 100644 vanetza/asn1/its/r2/StandardLength9b.h create mode 100644 vanetza/asn1/its/r2/StationID.c create mode 100644 vanetza/asn1/its/r2/StationID.h create mode 100644 vanetza/asn1/its/r2/StationId.c create mode 100644 vanetza/asn1/its/r2/StationId.h create mode 100644 vanetza/asn1/its/r2/StationType.c create mode 100644 vanetza/asn1/its/r2/StationType.h create mode 100644 vanetza/asn1/its/r2/StationarySince.c create mode 100644 vanetza/asn1/its/r2/StationarySince.h create mode 100644 vanetza/asn1/its/r2/StationaryVehicleContainer.c create mode 100644 vanetza/asn1/its/r2/StationaryVehicleContainer.h create mode 100644 vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngle.c create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngle.h create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngleConfidence.c create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngleConfidence.h create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngleValue.c create mode 100644 vanetza/asn1/its/r2/SteeringWheelAngleValue.h create mode 100644 vanetza/asn1/its/r2/StoredInformationType.c create mode 100644 vanetza/asn1/its/r2/StoredInformationType.h create mode 100644 vanetza/asn1/its/r2/SubCauseCodeType.c create mode 100644 vanetza/asn1/its/r2/SubCauseCodeType.h create mode 100644 vanetza/asn1/its/r2/Temperature.c create mode 100644 vanetza/asn1/its/r2/Temperature.h create mode 100644 vanetza/asn1/its/r2/Termination.c create mode 100644 vanetza/asn1/its/r2/Termination.h create mode 100644 vanetza/asn1/its/r2/TimestampIts.c create mode 100644 vanetza/asn1/its/r2/TimestampIts.h create mode 100644 vanetza/asn1/its/r2/Traces.c create mode 100644 vanetza/asn1/its/r2/Traces.h create mode 100644 vanetza/asn1/its/r2/TracesExtended.c create mode 100644 vanetza/asn1/its/r2/TracesExtended.h create mode 100644 vanetza/asn1/its/r2/TrafficConditionSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/TrafficConditionSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/TrafficDirection.c create mode 100644 vanetza/asn1/its/r2/TrafficDirection.h create mode 100644 vanetza/asn1/its/r2/TrafficIslandPosition.c create mode 100644 vanetza/asn1/its/r2/TrafficIslandPosition.h create mode 100644 vanetza/asn1/its/r2/TrafficParticipantType.c create mode 100644 vanetza/asn1/its/r2/TrafficParticipantType.h create mode 100644 vanetza/asn1/its/r2/TrafficRule.c create mode 100644 vanetza/asn1/its/r2/TrafficRule.h create mode 100644 vanetza/asn1/its/r2/TrailerData.c create mode 100644 vanetza/asn1/its/r2/TrailerData.h create mode 100644 vanetza/asn1/its/r2/TrailerDataSet.c create mode 100644 vanetza/asn1/its/r2/TrailerDataSet.h create mode 100644 vanetza/asn1/its/r2/TrailerPresenceInformation.c create mode 100644 vanetza/asn1/its/r2/TrailerPresenceInformation.h create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.c create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.h create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionIndication.c create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionIndication.h create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionProbability.c create mode 100644 vanetza/asn1/its/r2/TrajectoryInterceptionProbability.h create mode 100644 vanetza/asn1/its/r2/TransmissionInterval.c create mode 100644 vanetza/asn1/its/r2/TransmissionInterval.h create mode 100644 vanetza/asn1/its/r2/TurningDirection.c create mode 100644 vanetza/asn1/its/r2/TurningDirection.h create mode 100644 vanetza/asn1/its/r2/TurningRadius.c create mode 100644 vanetza/asn1/its/r2/TurningRadius.h create mode 100644 vanetza/asn1/its/r2/UsageIndication.c create mode 100644 vanetza/asn1/its/r2/UsageIndication.h create mode 100644 vanetza/asn1/its/r2/VDS.c create mode 100644 vanetza/asn1/its/r2/VDS.h create mode 100644 vanetza/asn1/its/r2/ValidityDuration.c create mode 100644 vanetza/asn1/its/r2/ValidityDuration.h create mode 100644 vanetza/asn1/its/r2/VarLengthNumber.c create mode 100644 vanetza/asn1/its/r2/VarLengthNumber.h create mode 100644 vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/VehicleHeight.c create mode 100644 vanetza/asn1/its/r2/VehicleHeight.h create mode 100644 vanetza/asn1/its/r2/VehicleIdentification.c create mode 100644 vanetza/asn1/its/r2/VehicleIdentification.h create mode 100644 vanetza/asn1/its/r2/VehicleLength.c create mode 100644 vanetza/asn1/its/r2/VehicleLength.h create mode 100644 vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.c create mode 100644 vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.h create mode 100644 vanetza/asn1/its/r2/VehicleLengthV2.c create mode 100644 vanetza/asn1/its/r2/VehicleLengthV2.h create mode 100644 vanetza/asn1/its/r2/VehicleLengthValue.c create mode 100644 vanetza/asn1/its/r2/VehicleLengthValue.h create mode 100644 vanetza/asn1/its/r2/VehicleMass.c create mode 100644 vanetza/asn1/its/r2/VehicleMass.h create mode 100644 vanetza/asn1/its/r2/VehicleRole.c create mode 100644 vanetza/asn1/its/r2/VehicleRole.h create mode 100644 vanetza/asn1/its/r2/VehicleWidth.c create mode 100644 vanetza/asn1/its/r2/VehicleWidth.h create mode 100644 vanetza/asn1/its/r2/Velocity3dWithConfidence.c create mode 100644 vanetza/asn1/its/r2/Velocity3dWithConfidence.h create mode 100644 vanetza/asn1/its/r2/VelocityCartesian.c create mode 100644 vanetza/asn1/its/r2/VelocityCartesian.h create mode 100644 vanetza/asn1/its/r2/VelocityComponent.c create mode 100644 vanetza/asn1/its/r2/VelocityComponent.h create mode 100644 vanetza/asn1/its/r2/VelocityComponentValue.c create mode 100644 vanetza/asn1/its/r2/VelocityComponentValue.h create mode 100644 vanetza/asn1/its/r2/VelocityPolarWithZ.c create mode 100644 vanetza/asn1/its/r2/VelocityPolarWithZ.h create mode 100644 vanetza/asn1/its/r2/VerticalAcceleration.c create mode 100644 vanetza/asn1/its/r2/VerticalAcceleration.h create mode 100644 vanetza/asn1/its/r2/VerticalAccelerationValue.c create mode 100644 vanetza/asn1/its/r2/VerticalAccelerationValue.h create mode 100644 vanetza/asn1/its/r2/VruClusterInformation.c create mode 100644 vanetza/asn1/its/r2/VruClusterInformation.h create mode 100644 vanetza/asn1/its/r2/VruClusterProfiles.c create mode 100644 vanetza/asn1/its/r2/VruClusterProfiles.h create mode 100644 vanetza/asn1/its/r2/VruDeviceUsage.c create mode 100644 vanetza/asn1/its/r2/VruDeviceUsage.h create mode 100644 vanetza/asn1/its/r2/VruEnvironment.c create mode 100644 vanetza/asn1/its/r2/VruEnvironment.h create mode 100644 vanetza/asn1/its/r2/VruExteriorLights.c create mode 100644 vanetza/asn1/its/r2/VruExteriorLights.h create mode 100644 vanetza/asn1/its/r2/VruMovementControl.c create mode 100644 vanetza/asn1/its/r2/VruMovementControl.h create mode 100644 vanetza/asn1/its/r2/VruProfileAndSubprofile.c create mode 100644 vanetza/asn1/its/r2/VruProfileAndSubprofile.h create mode 100644 vanetza/asn1/its/r2/VruSizeClass.c create mode 100644 vanetza/asn1/its/r2/VruSizeClass.h create mode 100644 vanetza/asn1/its/r2/VruSpecificExteriorLights.c create mode 100644 vanetza/asn1/its/r2/VruSpecificExteriorLights.h create mode 100644 vanetza/asn1/its/r2/VruSubProfileAnimal.c create mode 100644 vanetza/asn1/its/r2/VruSubProfileAnimal.h create mode 100644 vanetza/asn1/its/r2/VruSubProfileBicyclist.c create mode 100644 vanetza/asn1/its/r2/VruSubProfileBicyclist.h create mode 100644 vanetza/asn1/its/r2/VruSubProfileMotorcyclist.c create mode 100644 vanetza/asn1/its/r2/VruSubProfileMotorcyclist.h create mode 100644 vanetza/asn1/its/r2/VruSubProfilePedestrian.c create mode 100644 vanetza/asn1/its/r2/VruSubProfilePedestrian.h create mode 100644 vanetza/asn1/its/r2/WMInumber.c create mode 100644 vanetza/asn1/its/r2/WMInumber.h create mode 100644 vanetza/asn1/its/r2/Wgs84Angle.c create mode 100644 vanetza/asn1/its/r2/Wgs84Angle.h create mode 100644 vanetza/asn1/its/r2/Wgs84AngleConfidence.c create mode 100644 vanetza/asn1/its/r2/Wgs84AngleConfidence.h create mode 100644 vanetza/asn1/its/r2/Wgs84AngleValue.c create mode 100644 vanetza/asn1/its/r2/Wgs84AngleValue.h create mode 100644 vanetza/asn1/its/r2/WheelBaseVehicle.c create mode 100644 vanetza/asn1/its/r2/WheelBaseVehicle.h create mode 100644 vanetza/asn1/its/r2/WrappedCpmContainer.c create mode 100644 vanetza/asn1/its/r2/WrappedCpmContainer.h create mode 100644 vanetza/asn1/its/r2/WrappedCpmContainers.c create mode 100644 vanetza/asn1/its/r2/WrappedCpmContainers.h create mode 100644 vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.c create mode 100644 vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.h create mode 100644 vanetza/asn1/its/r2/YawRate.c create mode 100644 vanetza/asn1/its/r2/YawRate.h create mode 100644 vanetza/asn1/its/r2/YawRateConfidence.c create mode 100644 vanetza/asn1/its/r2/YawRateConfidence.h create mode 100644 vanetza/asn1/its/r2/YawRateValue.c create mode 100644 vanetza/asn1/its/r2/YawRateValue.h create mode 100644 vanetza/asn1/its/r2/asn_constant.h diff --git a/asn1/release2/TS102894-2v221-CDD.asn b/asn1/release2/TS102894-2v221-CDD.asn new file mode 100644 index 000000000..66e391d5a --- /dev/null +++ b/asn1/release2/TS102894-2v221-CDD.asn @@ -0,0 +1,7260 @@ +--! @options: no-fields-header + +ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +------------------------------------------ +-- Specification of CDD Data Elements: +------------------------------------------ + +/** + * This DE indicates a change of acceleration. + * + * The value shall be set to: + * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases. + * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationChange::= ENUMERATED { + accelerate (0), + decelerate (1) +} + +/** + * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, + * - `102` if the confidence value is unavailable. + * + * The value 0 shall not be used. + * + * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the acceleration value may be valid and used by the application. + * + * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Description revised in V2.1.1 + */ +AccelerationConfidence ::= INTEGER { + outOfRange (101), + unavailable (102) +} (0..102) + +/** + * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle. + * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle + * acceleration control system is engaged or not. Currently, this DE includes the information of the + * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise + * control system, cruise control system and speed limiter system. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal, + * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal, + * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged, + * - 3 - `collisionWarningEngaged`- collision warning system is engaged, + * - 4 - `accEngaged` - ACC is engaged, + * - 5 - `cruiseControlEngaged` - cruise control is engaged, + * - 6 - `speedLimiterEngaged` - speed limiter is engaged. + * + * Otherwise (for example when the corresponding system is not available due to non equipped system + * or information is unavailable), the corresponding bit shall be set to 0. + * + * @note: The system engagement condition is OEM specific and therefore out of scope of the present document. + * @category: Vehicle information + * @revision: V1.3.1 + */ +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) + +/** + * This DE represents the magnitude of the acceleration vector in a defined coordinate system. + * + * The value shall be set to: + * - `0` to indicate no acceleration, + * - `n` (`n > 0` and `n < 160`) to indicate acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationMagnitudeValue ::= INTEGER { + positiveOutOfRange (160), + unavailable (161) +} (0.. 161) + +/** + * This DE represents the value of an acceleration component in a defined coordinate system. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0. + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + + +/** + * This DE indicates an access technology. + * + * The value shall be set to: + * - `0`: in case of any access technology class, + * - `1`: in case of ITS-G5 access technology class, + * - `2`: in case of LTE-V2X access technology class, + * - `3`: in case of NR-V2X access technology class. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +AccessTechnologyClass ::= ENUMERATED { + any (0), + itsg5Class (1), + ltev2xClass (2), + nrv2xClass (3), + ... +} + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `accident`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable, + * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident, + * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered, + * the accident requires important rescue and/or recovery work, + * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry, + * - 4 - `accidentInvolvingBus` - in case the accident involves a bus, + * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material, + * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes, + * - 7 - `unsecuredAccident` - in case the accident is not secured, + * - 8 - `assistanceRequested` - in case rescue and assistance are requested, + * - 9-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AccidentSubCauseCode ::= INTEGER { + unavailable (0), + multiVehicleAccident (1), + heavyAccident (2), + accidentInvolvingLorry (3), + accidentInvolvingBus (4), + accidentInvolvingHazardousMaterials (5), + accidentOnOppositeLane (6), + unsecuredAccident (7), + assistanceRequested (8) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable, + * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road, + * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road, + * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road, + * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road, + * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road, + * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road, + * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road, + * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard, + * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface, + * - 10 - `roadsSalted` - when the low road adhesion is due to salted road, + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER { + unavailable (0), + heavyFrostOnRoad (1), + fuelOnRoad (2), + mudOnRoad (3), + snowOnRoad (4), + iceOnRoad (5), + blackIceOnRoad (6), + oilOnRoad (7), + looseChippings (8), + instantBlackIce (9), + roadsSalted (10) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable, + * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind, + * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail, + * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane, + * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm, + * - 5 - `tornado` - in case the type of extreme weather condition is tornado, + * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard. + * - 7-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER { + unavailable (0), + strongWinds (1), + damagingHail (2), + hurricane (3), + thunderstorm (4), + tornado (5), + blizzard (6) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of precipitation is unavailable, + * - 1 - `heavyRain` - in case the type of precipitation is heavy rain, + * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall, + * - 3 - `softHail` - in case the type of precipitation is soft hail. + * - 4-255 - are reserved for future usage + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER { + unavailable (0), + heavyRain (1), + heavySnowfall (2), + softHail (3) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable, + * - 1 - `fog` - in case the cause of low visibility is fog, + * - 2 - `smoke` - in case the cause of low visibility is smoke, + * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall, + * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain, + * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail, + * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare, + * - 7 - `sandstorms` - in case the cause of low visibility is sand storm, + * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects. + * - 9-255 - are reserved for future usage + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER { + unavailable (0), + fog (1), + smoke (2), + heavySnowfall (3), + heavyRain (4), + heavyHail (5), + lowSunGlare (6), + sandstorms (7), + swarmsOfInsects (8) +} (0..255) + +/** + * This DE represents the air humidity in tenths of percent. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1001`) indicates that the applicable value is equal to or less than n x 0,1 percent and greater than (n-1) x 0,1 percent. + * - `1001` indicates that the air humidity is unavailable. + * + * @category: Basic information + * @unit: 0,1 % + * @revision: created in V2.1.1 + */ +AirHumidity ::= INTEGER { + oneHundredPercent (1000), + unavailable (1001) +} (1..1001) + +/** + * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, + * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, + * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, + * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, + * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, + * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, + * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, + * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, + * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, + * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, + * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, + * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, + * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, + * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, + * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, + * - 15 - `unavailable` - if the confidence value is unavailable. + * + * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused + * by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the altitude value may be valid and used by the application. + * + * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the + * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +AltitudeConfidence ::= ENUMERATED { + alt-000-01 (0), + alt-000-02 (1), + alt-000-05 (2), + alt-000-10 (3), + alt-000-20 (4), + alt-000-50 (5), + alt-001-00 (6), + alt-002-00 (7), + alt-005-00 (8), + alt-010-00 (9), + alt-020-00 (10), + alt-050-00 (11), + alt-100-00 (12), + alt-200-00 (13), + outOfRange (14), + unavailable (15) +} + +/** + * This DE represents the altitude value in a WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `-100 000` if the altitude is equal to or less than -1 000 m, + * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, + * - `800 000` if the altitude greater than 7 999,99 m, + * - `800 001` if the information is not available. + * + * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. + * @unit: 0,01 metre + * @category: GeoReference information + * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) + */ +AltitudeValue ::= INTEGER { + negativeOutOfRange (-100000), + postiveOutOfRange (800000), + unavailable (800001) +} (-100000..800001) + +/** + * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees, + * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees, + * - `127` if the accuracy information is not available. + * + * @unit: 0,1 degrees + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +AngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE indicates the angular speed confidence value which represents the estimated absolute accuracy of an angular speed value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * For correlation computation, maximum interval levels can be assumed. + * + * The value shall be set to: + * - 0 - `degSec-01` - if the accuracy is equal to or less than 1 degree/second, + * - 1 - `degSec-02` - if the accuracy is equal to or less than 2 degrees/second and greater than 1 degree/second, + * - 2 - `degSec-05` - if the accuracy is equal to or less than 5 degrees/second and greater than 2 degrees/second, + * - 3 - `degSec-10` - if the accuracy is equal to or less than 10 degrees/second and greater than 5 degrees/second, + * - 4 - `degSec-20` - if the accuracy is equal to or less than 20 degrees/second and greater than 10 degrees/second, + * - 5 - `degSec-50` - if the accuracy is equal to or less than 50 degrees/second and greater than 20 degrees/second, + * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second, + * - 7 - `unavailable` - if the accuracy information is unavailable. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AngularSpeedConfidence ::= ENUMERATED { + degSec-01 (0), + degSec-02 (1), + degSec-05 (2), + degSec-10 (3), + degSec-20 (4), + degSec-50 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE indicates the angular acceleration confidence value which represents the estimated accuracy of an angular acceleration value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * For correlation computation, maximum interval levels shall be assumed. + * + * The value shall be set to: + * - 0 - `degSecSquared-01` - if the accuracy is equal to or less than 1 degree/second^2, + * - 1 - `degSecSquared-02` - if the accuracy is equal to or less than 2 degrees/second^2 and greater than 1 degree/second^2, + * - 2 - `degSecSquared-05` - if the accuracy is equal to or less than 5 degrees/second^2 and greater than 1 degree/second^2, + * - 3 - `degSecSquared-10` - if the accuracy is equal to or less than 10 degrees/second^2 and greater than 5 degrees/second^2, + * - 4 - `degSecSquared-20` - if the accuracy is equal to or less than 20 degrees/second^2 and greater than 10 degrees/second^2, + * - 5 - `degSecSquared-50` - if the accuracy is equal to or less than 50 degrees/second^2 and greater than 20 degrees/second^2, + * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second^2, + * - 7 - `unavailable` - if the accuracy information is unavailable. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AngularAccelerationConfidence ::= ENUMERATED { + degSecSquared-01 (0), + degSecSquared-02 (1), + degSecSquared-05 (2), + degSecSquared-10 (3), + degSecSquared-20 (4), + degSecSquared-50 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE indicates the number of axles of a passing train. + * + * The value shall be set to: + * - `n` (`n > 2` and `n < 1001`) indicates that the train has n x axles, + * - `1001`indicates that the number of axles is out of range, + * - `1002` the information is unavailable. + * + * + * @unit: Number of axles + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +AxlesCount ::= INTEGER{ + outOfRange (1001), + unavailable (1002) +} (2..1002) + +/** + * This DE represents the measured uncompensated atmospheric pressure. + * + * The value shall be set to: + * - `2999` indicates that the applicable value is less than 29990 Pa, + * - `n` (`n > 2999` and `n <= 12000`) indicates that the applicable value is equal to or less than n x 10 Pa and greater than (n-1) x 10 Pa, + * - `12001` indicates that the values is greater than 120000 Pa, + * - `12002` indicates that the information is not available. + * + * @category: Basic information + * @unit: 10 Pascal + * @revision: Created in V2.1.1 +*/ +BarometricPressure ::= INTEGER{ + outOfRangelower (2999), + outOfRangeUpper (12001), + unavailable (12002) +} (2999..12002) + + +/** + * This DE indicates the cardinal number of bogies of a train. + * + * The value shall be set to: + * - `n` (`n > 1` and `n < 100`) indicates that the train has n x bogies, + * - `100`indicates that the number of bogies is out of range, + * - `101` the information is unavailable. + * + * @unit: Number of bogies + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +BogiesCount ::= INTEGER{ + outOfRange (100), + unavailable (101) +} (2..101) + +/** + * The DE represents a cardinal number that counts the size of a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CardinalNumber1B ::= INTEGER(0..255) + +/** + * The DE represents a cardinal number that counts the size of a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CardinalNumber3b ::= INTEGER(1..8) + +/** + * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, + * - `3601` if the information is not available. + * + * The value 3600 shall not be used. + * + * @unit 0,1 degrees + * @category: Basic information + * @revision: Created in V2.1.1, description and value for 3601 corrected in V2.2.1 +*/ +CartesianAngleValue ::= INTEGER { + valueNotUsed (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents an angular acceleration value described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `-255` if the acceleration is equal to or less than -255 degrees/s^2, + * - `n` (`n > -255` and `n < 255`) if the acceleration is equal to or less than n x 1 degree/s^2, + and greater than `(n-1)` x 0,01 degree/s^2, + * - `255` if the acceleration is greater than 254 degrees/s^2, + * - `256` if the information is unavailable. + * + * @unit: degree/s^2 (degrees per second squared) + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +CartesianAngularAccelerationComponentValue ::= INTEGER { + negativeOutOfRange (-255), + positiveOutOfRange (255), + unavailable (256) +} (-255..256) + +/** + * This DE represents an angular velocity component described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `-255` if the velocity is equal to or less than -255 degrees/s, + * - `n` (`n > -255` and `n < 255`) if the velocity is equal to or less than n x 1 degree/s, and greater than (n-1) x 1 degree/s, + * - `255` if the velocity is greater than 254 degrees/s, + * - `256` if the information is unavailable. + * + * @unit: degree/s + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +CartesianAngularVelocityComponentValue ::= INTEGER { + negativeOutofRange (-255), + positiveOutOfRange (255), + unavailable (256) +} (-255..256) + +/** + *The DE represents the value of the cause code of an event. + * + * The value shall be set to: + * - 0 - reserved for future use, + * - 1 - `trafficCondition` - in case the type of event is an abnormal traffic condition, + * - 2 - `accident` - in case the type of event is a road accident, + * - 3 - `roadworks` - in case the type of event is roadwork, + * - 4 - reserved for future usage, + * - 5 - `impassability` - in case the type of event is unmanaged road blocking, referring to any + * blocking of a road, partial or total, which has not been adequately + * secured and signposted, + * - 6 - `adverseWeatherCondition-Adhesion` - in case the type of event is low adhesion, + * - 7 - `aquaplaning` - danger of aquaplaning on the road, + * - 8 - reserved for future usage, + * - 9 - `hazardousLocation-SurfaceCondition` - in case the type of event is abnormal road surface condition, + * - 10 - `hazardousLocation-ObstacleOnTheRoad` - in case the type of event is obstacle on the road, + * - 11 - `hazardousLocation-AnimalOnTheRoad` - in case the type of event is animal on the road, + * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, + * - 13 - reserved for future usage, + * - 14 - `wrongWayDriving` - in case the type of the event is vehicle driving in wrong way, + * - 15 - `rescueAndRecoveryWorkInProgress` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, + * - 16 - reserved for future usage, + * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition`- in case the type of event is extreme weather condition, + * - 18 - `adverseWeatherCondition-Visibility` - in case the type of event is low visibility, + * - 19 - `adverseWeatherCondition-Precipitation` - in case the type of event is precipitation, + * - 20 - `violence` - in case the the type of event is human violence on or near the road, + * - 21-25 - reserved for future usage, + * - 26 - `slowVehicle` - in case the type of event is slow vehicle driving on the road, + * - 27 - `dangerousEndOfQueue` - in case the type of event is dangerous end of vehicle queue, + * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, + * - 29-90 - are reserved for future usage, + * - 91 - `vehicleBreakdown` - in case the type of event is break down vehicle on the road, + * - 92 - `postCrash` - in case the type of event is a detected crash, + * - 93 - `humanProblem` - in case the type of event is human health problem in vehicles involved in traffic, + * - 94 - `stationaryVehicle` - in case the type of event is stationary vehicle, + * - 95 - `emergencyVehicleApproaching` - in case the type of event is an approaching vehicle operating on a mission for which the applicable + traffic regulations provide it with defined priority rights in traffic. + * - 96 - `hazardousLocation-DangerousCurve` - in case the type of event is dangerous curve, + * - 97 - `collisionRisk` - in case the type of event is a collision risk, + * - 98 - `signalViolation` - in case the type of event is signal violation, + * - 99 - `dangerousSituation` - in case the type of event is dangerous situation in which autonomous safety system in vehicle + * is activated, + * - 100 - `railwayLevelCrossing` - in case the type of event is a railway level crossing. + * - 101-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, value 28 added in V2.2.1, definition of values 12 and 95 changed in V2.2.1 + */ +CauseCodeType ::= INTEGER { + trafficCondition (1), + accident (2), + roadworks (3), + impassability (5), + adverseWeatherCondition-Adhesion (6), + aquaplaning (7), + hazardousLocation-SurfaceCondition (9), + hazardousLocation-ObstacleOnTheRoad (10), + hazardousLocation-AnimalOnTheRoad (11), + humanPresenceOnTheRoad (12), + wrongWayDriving (14), + rescueAndRecoveryWorkInProgress (15), + adverseWeatherCondition-ExtremeWeatherCondition (17), + adverseWeatherCondition-Visibility (18), + adverseWeatherCondition-Precipitation (19), + violence (20), + slowVehicle (26), + dangerousEndOfQueue (27), + publicTransportVehicleApproaching (28), + vehicleBreakdown (91), + postCrash (92), + humanProblem (93), + stationaryVehicle (94), + emergencyVehicleApproaching (95), + hazardousLocation-DangerousCurve (96), + collisionRisk (97), + signalViolation (98), + dangerousSituation (99), + railwayLevelCrossing (100) +} (0..255) + +/** + * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres. + * + * The value shall be set to: + * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres, + * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateSmall::= INTEGER { + negativeOutOfRange (-3094), + positiveOutOfRange (1001) +} (-3094..1001) + +/** + * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres. + * + * The value shall be set to: + * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres, + * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinate::= INTEGER{ + negativeOutOfRange (-32768), + positiveOutOfRange (32767) +} (-32768..32767) + +/** + * This DF represents the value of a cartesian coordinate with a range of -1 310,72 metres to +1 310,70 metres. + * + * The value shall be set to: + * - `-131072` if the longitudinal offset is out of range, i.e. less than or equal to -1 310,72 metres, + * - `n` (`n > 131 072` and `n < 131 071`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `131 071` if the longitudinal offset is out of range, i.e. greater than + 1 310,70 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateLarge::= INTEGER{ + negativeOutOfRange (-131072), + positiveOutOfRange (131071) +} (-131072..131071) + +/** + * This DE represents the ID of a CEN DSRC tolling zone. + * + * @category: Communication information + * @revision: V1.3.1 + * @note: this DE is deprecated and shall not be used anymore. + */ +CenDsrcTollingZoneID::= ProtectedZoneId + +/** + * This DE indicates the reason why a cluster leader intends to break up the cluster. + * + * The value shall be set to: + * - 0 - `notProvided` - if the information is not provided, + * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed, + * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box, + * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster, + * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps, + * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster. + * - 6 to 15 - are reserved for future use. + * + * @category: Cluster information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +*/ +ClusterBreakupReason ::= INTEGER { + notProvided (0), + clusteringPurposeCompleted (1), + leaderMovedOutOfClusterBoundingBox (2), + joiningAnotherCluster (3), + enteringLowRiskAreaBasedOnMaps (4), + receptionOfCpmContainingCluster (5) +}(0..15) + +/** + * This DE indicates the reason why a cluster participant is leaving the cluster. + * + * The value shall be set to: + * - 0 - `notProvided ` - if the information is not provided, + * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore, + * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader, + * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box, + * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range, + * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster, + * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure, + * - 7 - `failedJoin` - if the participant failed to join the cluster, + * - 8 - `safetyCondition` - if a safety condition applies. + * - 9 to 15 - are reserved for future use + * + * @category: Cluster information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +ClusterLeaveReason ::= INTEGER { + notProvided (0), + clusterLeaderLost (1), + clusterDisbandedByLeader (2), + outOfClusterBoundingBox (3), + outOfClusterSpeedRange (4), + joiningAnotherCluster (5), + cancelledJoin (6), + failedJoin (7), + safetyCondition (8) +}(0..15) + +/** + * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of collision risk is unavailable, + * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk, + * e.g. forward collision or face to face collision, + * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk, + * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk, + * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users + * e.g. pedestrians or bicycles. + * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian, + * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians), + * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists), + * - 8-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, values 5-7 assigned in V2.2.1 + */ +CollisionRiskSubCauseCode ::= INTEGER { + unavailable (0), + longitudinalCollisionRisk (1), + crossingCollisionRisk (2), + lateralCollisionRisk (3), + vulnerableRoadUser (4), + collisionRiskWithPedestrian (5), + collisionRiskWithCyclist (6), + collisionRiskWithMotorVehicle (7) +}(0..255) + +/** + * This DE represents a confidence level in percentage. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 101`) : for the confidence level in %, + * - `101` : in case the confidence level is not available. + * + * @unit Percent + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +ConfidenceLevel ::= INTEGER { + unavailable (101) +} (1..101) + +/** + * This DE indicates the coordinate confidence value which represents the estimated absolute accuracy of a position coordinate with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 4095`) if the confidence value is is equal to or less than n x 0,01 metre, and greater than (n-1) x 0,01 metre, + * - `4095` if the confidence value is greater than 40,94 metres, + * - `4096` if the confidence value is not available. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CoordinateConfidence ::= INTEGER { + outOfRange (4095), + unavailable (4096) +} (1..4096) + +/** + * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix. + * + * The value shall be set to: + * - `-100` in case of full negative correlation, + * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to n x 100, + * - `0` in case of no correlation, + * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to n x 100, + * - `100` in case of full positive correlation, + * - `101` in case the correlation information is unavailable. + * + * @unit: the value is scaled by 100 + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CorrelationCellValue ::= INTEGER { + full-negative-correlation (-100), + no-correlation (0), + full-positive-correlation (100), + unavailable (101) +} (-100..101) + +/** + * This DE represents an ISO 3166-1 [25] country code encoded using ITA-2 encoding. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ISO 14816 [23] +*/ +CountryCode ::= BIT STRING(SIZE(10)) + +/** + * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. + * + * The value shall be set to: + * - 0 - `yawRateUsed` - if the yaw rate is used, + * - 1 - `yawRateNotUsed` - if the yaw rate is not used, + * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +CurvatureCalculationMode ::= ENUMERATED { + yawRateUsed (0), + yawRateNotUsed (1), + unavailable (2), + ... +} + +/** + * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, + * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, + * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, + * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, + * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, + * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, + * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, + * - 7 - `unavailable` - if the confidence value is not available. + * + * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by + * several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the curvature value may be valid and used by the application. + * + * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid + * and therefore cannot be trusted. Such value is not useful for the application. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 +*/ +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE describes vehicle turning curve with the following information: + * ``` + * Value = 1 / Radius * 10000 + * ``` + * wherein radius is the vehicle turning curve radius in metres. + * + * Positive values indicate a turning curve to the left hand side of the driver. + * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. + * + * The value shall be set to: + * - `-1023` for values smaller than -1023, + * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, + * - `0` when the vehicle is moving straight, + * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, + * - `1022`, for values greater than 1021, + * - `1023`, if the information is not available. + * + * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. + * + * @unit: 1 over 10 000 metres + * @category: Vehicle information + * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) + */ +CurvatureValue ::= INTEGER { + outOfRangeNegative (-1023), + straight (0), + outOfRangePositive (1022), + unavailable (1023) +} (-1023..1023) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable, + * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle, + * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill, + * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend, + * - 4 - `queueInTunnel` - in case queue is detected in tunnel, + * - 5-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DangerousEndOfQueueSubCauseCode ::= INTEGER { + unavailable (0), + suddenEndOfQueue (1), + queueOverHill (2), + queueAroundBend (3), + queueInTunnel (4) +} (0..255) + +/** + * This DE indicates the type of the dangerous goods being carried by a heavy vehicle. + * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II, + * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3]. + * + * + * @category Vehicle information + * @revision: V1.3.1 + */ +DangerousGoodsBasic::= ENUMERATED { + explosives1 (0), + explosives2 (1), + explosives3 (2), + explosives4 (3), + explosives5 (4), + explosives6 (5), + flammableGases (6), + nonFlammableGases (7), + toxicGases (8), + flammableLiquids (9), + flammableSolids (10), + substancesLiableToSpontaneousCombustion (11), + substancesEmittingFlammableGasesUponContactWithWater (12), + oxidizingSubstances (13), + organicPeroxides (14), + toxicSubstances (15), + infectiousSubstances (16), + radioactiveMaterial (17), + corrosiveSubstances (18), + miscellaneousDangerousSubstances (19) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation` + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable, + * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged, + * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged, + * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged, + * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged, + * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged, + * - 6 - `brakeWarningEngaged` - in case brake warning is engaged, + * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged, + * - 8-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DangerousSituationSubCauseCode ::= INTEGER { + unavailable (0), + emergencyElectronicBrakeEngaged (1), + preCrashSystemEngaged (2), + espEngaged (3), + absEngaged (4), + ebEngaged (5), + brakeWarningEngaged (6), + collisionRiskWarningEngaged (7) +} (0..255) + +/** + * This DE represents an offset altitude with regards to a defined altitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `-12 700` for values equal to or lower than -127 metres, + * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, + * - `0` for no altitudinal offset, + * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, + * - `12 799` for values equal to or greater than 127,99 metres, + * - `12 800` when the information is unavailable. + * + * @unit: 0,01 metre + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaAltitude ::= INTEGER { + negativeOutOfRange (-12700), + positiveOutOfRange (12799), + unavailable (12800) +} (-12700..12800) + +/** + * This DE represents an offset latitude with regards to a defined latitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, + * - `0` for no latitudinal offset, + * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, + * - `131 072` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaLatitude ::= INTEGER { + unavailable (131072) +} (-131071..131072) + +/** + * This DE represents an offset longitude with regards to a defined longitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, + * - `0` for no longitudinal offset, + * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, + * - `131 072` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaLongitude ::= INTEGER { + unavailable (131072) +} (-131071..131072) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 10001`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, + * + * Example: a time interval between two consecutive message transmissions. + * + * @unit: 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 from the DE TransmissionInterval in [2] + */ +DeltaTimeMilliSecondPositive ::= INTEGER (1..10000) + +/** + * This DE represents a signed difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-2048` for time values equal to or less than -2,048 s, + * - `n` (`n > -2048` and `n < 2047`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, + * - `2047` for time values greater than 2,046 s + * + * @unit: 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +DeltaTimeMilliSecondSigned ::= INTEGER (-2048..2047) + +/** + * This DE represents a difference in time with respect to a reference time. + * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, + * multiply by 256 (i.e. append a `00` byte) + * + * @unit: 256 * 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 + */ +DeltaTimeQuarterSecond::= INTEGER { + unavailable (255) +} (1..255) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s, + * + * @unit: 0,1 s + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +DeltaTimeTenthOfSecond::= INTEGER { + unavailable (127) +} (0..127) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n <= 86400`) to indicate a time value equal to or less than n x 1 s, and greater than (n-1) x 1 s, + * + * @unit: 1 s + * @category: Basic information + * @revision: Created in V2.1.1 from ValidityDuration +*/ +DeltaTimeSecond ::= INTEGER (0..86400) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 10 s, and greater than (n-1) x 10 s, + * + * @unit: 10 s + * @category: Basic information + * @revision: Created in V2.2.1 +*/ +DeltaTimeTenSeconds ::= INTEGER (0..127) + +/** + * This DE indicates a direction with respect to a defined reference direction. + * Example: a reference direction may be implicitly defined by the definition of a geographical zone. + * + * The value shall be set to: + * - 0 - `sameDirection` - to indicate the same direction as the reference direction, + * - 1 - `oppositeDirection` - to indicate opposite direction as the reference direction, + * - 2 - `bothDirections` - to indicate both directions, i.e. the same and the opposite direction, + * - 3 - `unavailable` - to indicate that the information is unavailable. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +Direction::= INTEGER{ + sameDirection (0), + oppositeDirection (1), + bothDirections (2), + unavailable (3) + } (0..3) + +/** + * This DE indicates in which direction something is moving. + * + * The value shall be set to: + * - 0 - `forward` - to indicate it is moving forward, + * - 1 - `backwards` - to indicate it is moving backwards, + * - 2 - `unavailable` - to indicate that the information is unavailable. + * + * @category: Kinematic information + * @revision: editorial update in V2.1.1 + */ +DriveDirection ::= ENUMERATED { + forward (0), + backward (1), + unavailable (2) +} + +/** + * This DE indicates whether a driving lane is open to traffic. + * + * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall + * correspond to the total number of the driving lanes in the carriageway. + * + * The numbering is matched to @ref LanePosition. + * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border. + * + * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`. + * + * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) + +/** + * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process. + * If that is the case, the value is *TRUE*, otherwise *FALSE*. + * + * @category: Vehicle information + * @revision: editorial update in V2.1.1 + */ +EmbarkationStatus ::= BOOLEAN + +/** + * This DE indicates the right of priority requested or assumed by an operating emergency vehicle. + * The right-of-priority bit shall be set to `1` if the corresponding right is requested. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `requestForRightOfWay` - when the vehicle is requesting/assuming the right of way, + * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light. + * + * @category: Traffic information + * @revision: description revised in V2.1.1 + */ +EmergencyPriority ::= BIT STRING { + requestForRightOfWay (0), + requestForFreeCrossingAtATrafficLight (1) +} (SIZE(2)) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event + * is unavailable, + * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching, + * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching, + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +EmergencyVehicleApproachingSubCauseCode ::= INTEGER { + unavailable (0), + emergencyVehicleApproaching (1), + prioritizedVehicleApproaching (2) +} (0..255) + +/** + * This DE indicated the type of energy being used and stored in vehicle. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `hydrogenStorage` - when hydrogen is being used and stored in vehicle, + * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle, + * - 2 - `liquidPropaneGas` - when liquid Propane Gas (LPG) is being used and stored in vehicle, + * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle, + * - 4 - `diesel` - when diesel is being used and stored in vehicle, + * - 5 - `gasoline` - when gasoline is being used and stored in vehicle, + * - 6 - `ammonia` - when ammonia is being used and stored in vehicle. + * + * - Otherwise, the corresponding bit shall be set to `0`. + * + * @category: Vehicle information + * @revision: editorial revision in V2.1.1 + */ +EnergyStorageType ::= BIT STRING { + hydrogenStorage (0), + electricEnergyStorage (1), + liquidPropaneGas (2), + compressedNaturalGas (3), + diesel (4), + gasoline (5), + ammonia (6) +}(SIZE(7)) + +/** + * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 } + +/** + * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3} + +/** + * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3} + +/** + * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4} + +/** + * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, + * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, + * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, + * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, + * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, + * - 5 - `reverseLightOn` - when the reverse light switch is on, + * - 6 - `fogLightOn` - when the tail fog light switch is on, + * - 7 - `parkingLightsOn` - when the parking light switch is on. + * + * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. + * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, + * either manually by the driver or automatically by a vehicle system. The bit value does not indicate + * if the corresponding lamps are alight or not. + * + * If a vehicle is not equipped with a certain light or if the light switch status information is not available, + * the corresponding bit shall be set to `0`. + * + * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not + * alternate with the blinking interval. + * + * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. + * + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) + +/** + * This DE represents a timestamp based on TimestampIts modulo 65 536. + * This means that generationDeltaTime = TimestampIts mod 65 536. + * + * @category: Basic information + * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] +*/ +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) + +/** + * This DE indicates the current status of a hard shoulder: whether it is available for special usage + * (e.g. for stopping or for driving) or closed for all vehicles. + * + * The value shall be set to: + * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations, + * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case, + * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving. + * + * @category: Traffic information + * @revision: Description revised in V2.1.1 + */ +HardShoulderStatus ::= ENUMERATED { + availableForStopping (0), + closed (1), + availableForDriving (2) +} + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable, + * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road, + * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road, + * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road, + * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road, + * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road, + * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road, + * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road, + * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road, + * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road. + * - 10-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, named values 5 to 9 added in V2.2.1 + */ +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + wildAnimals (1), + herdOfAnimals (2), + smallAnimals (3), + largeAnimals (4), + wildAnimalsSmall (5), + wildAnimalsLarge (6), + domesticAnimals (7), + domesticAnimalsSmall (8), + domesticAnimalsLarge (9) +} (0..255) + +/** + * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable, + * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve, + * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve, + * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known, + * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve, + * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve. + * - 6-255 - are reserved for future usage. + * + * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass + * and vehicle speed driving on the curve. This definition is out of scope of the present document. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER { + unavailable (0), + dangerousLeftTurnCurve (1), + dangerousRightTurnCurve (2), + multipleCurvesStartingWithUnknownTurningDirection (3), + multipleCurvesStartingWithLeftTurn (4), + multipleCurvesStartingWithRightTurn (5) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable, + * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload), + * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles, + * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres, + * - 4 - `bigObjects` - in case the detected obstacles are big objects, + * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees, + * - 6 - `hubCaps` - in case the detected obstacles are hub caps, + * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles. + * - 8-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + shedLoad (1), + partsOfVehicles (2), + partsOfTyres (3), + bigObjects (4), + fallenTrees (5), + hubCaps (6), + waitingVehicles (7) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. + * +The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable, + * - 1 - `rockfalls` - in case rock falls are detected on the road surface, + * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake, + * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface, + * - 4 - `subsidence` - in case road surface is damaged by subsidence, + * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift, + * - 6 - `stormDamage` - in case road surface is damaged by strong storm, + * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst, + * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption, + * - 9 - `fallingIce` - in case road surface damage is due to falling ice, + * - 10 - `fire` - in case there is fire on or near to the road surface. + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER { + unavailable (0), + rockfalls (1), + earthquakeDamage (2), + sewerCollapse (3), + subsidence (4), + snowDrifts (5), + stormDamage (6), + burstPipe (7), + volcanoEruption (8), + fallingIce (9), + fire (10) +} (0..255) + +/** + * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree, + * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, + * - `127` if the confidence value information is not available. + * + * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons, + * such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the heading value may be valid and used by the application. + * + * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the + * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead. + * + * @unit: 0,1 degree + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +HeadingConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. + * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. + * + * Unit: 0,1 degree + * Categories: GeoReference information + * @revision: Description revised in V2.1.1 (usage of value 3600 specified) +*/ +HeadingValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + doNotUse (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle + * rear to front). + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 99`) if the height information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `99` if the height is out of range, i.e. equal to or greater than 0,98 m, + * - `100` if the height information is not available. + * + * @unit 0,01 metre + * @category Vehicle information + * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly) + */ +HeightLonCarr ::= INTEGER { + outOfRange(99), + unavailable(100) +} (1..100) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable, + * - 1 - `childrenOnRoadway` - in case children are present on the road, + * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road, + * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road, + * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road, + * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road, + * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road, + * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road, + * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road, + * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road, + * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road, + * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road, + * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road, + * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road, + * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road, + * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road, + * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road, + * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road, + * - 18 - `moped` - in case moped(s) and rider(s) are present on the road, + * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road, + * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road, + * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road. + * - 22-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1 + */ +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + childrenOnRoadway (1), + cyclistOnRoadway (2), + motorcyclistOnRoadway (3), + pedestrian (4), + ordinary-pedestrian (5), + road-worker (6), + first-responder (7), + lightVruVehicle (8), + bicyclist (9), + wheelchair-user (10), + horse-and-rider (11), + rollerskater (12), + e-scooter (13), + personal-transporter (14), + pedelec (15), + speed-pedelec (16), + ptw (17), + moped (18), + motorcycle (19), + motorcycle-and-sidecar-right (20), + motorcycle-and-sidecar-left (21) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem". + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable, + * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem, + * - 2 - `heartProblem` - in case human problem is due to heart problem. + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HumanProblemSubCauseCode ::= INTEGER { + unavailable (0), + glycemiaProblem (1), + heartProblem (2) +} (0..255) + +/** + * This DE is a general identifier. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +Identifier1B ::= INTEGER (0..255) + +/** + * This DE is a general identifier. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +Identifier2B ::= INTEGER (0..65535) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability` + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable, + * - 1 `flooding ` - in case the road is affected by flooding, + * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches, + * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road, + * - 4 `landslips` - in case the road is affected by landslips, + * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage, + * - 6 `winterClosure` - in case the road is impassable due to a winter closure. + * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface. + * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake. + * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees. + * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks. + * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers. + * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds. + * - 13 `subsidence` - in case the road surface has sunken or collapsed in places. + * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes. + * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence. + * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables. + * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting. + * - 15-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: Created in V2.2.1 +*/ +ImpassabilitySubCauseCode ::= INTEGER { + unavailable (0), + flooding (1), + dangerOfAvalanches (2), + blastingOfAvalanches (3), + landslips (4), + chemicalSpillage (5), + winterClosure (6), + sinkhole (7), + earthquakeDamage (8), + fallenTrees (9), + rockfalls (10), + sewerOverflow (11), + stormDamage (12), + subsidence (13), + burstPipe (14), + burstWaterMain (15), + fallenPowerCables (16), + snowDrifts (17) +} (0..255) + +/** + * This DE represents the quality level of provided information. + * + * The value shall be set to: + * - `0` if the information is unavailable, + * - `1` if the quality level is lowest, + * - `n` (`n > 1` and `n < 7`) if the quality level is n, + * - `7` if the quality level is highest. + * + * @note: Definition of quality level is out of scope of the present document. + * @category: Basic information + * @revision: Editorial update in V2.1.1 + */ +InformationQuality ::= INTEGER (0..7) + +/** + * This DE defines the type of an interference management zone, so that an ITS-S can + * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). + * It is an extension of the type @ref ProtectedZoneType. + * + * The value shall be set to: + * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [14], + * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [14], + * - 2 - `unavailable` - default value. Set to 2 for backwards compatibility with DSRC tolling, + * - 3 - `urbanRail` - as specified in ETSI TS 103 724 [13], clause 7, + * - 4 - `satelliteStation` - as specified in ETSI TS 103 724 [13], clause 7, + * - 5 - `fixedLinks` - as specified in ETSI TS 103 724 [13], clause 7. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling (0), + temporaryCenDsrcTolling (1), + unavailable (2), + urbanRail (3), + satelliteStation (4), + fixedLinks (5), + ... +} + +/** + * This DE represents the vehicle type according to ISO 3833 [22]. + * A "term No" refers to the number of the corresponding term and its definition in ISO 3833. + * + * The value shall be set to: + * - 0 - `passengerCar` - term No 3.1.1 + * - 1 - `saloon` - term No 3.1.1.1 (sedan) + * - 2 - `convertibleSaloon` - term No 3.1.1.2 + * - 3 - `pullmanSaloon` - term No 3.1.1.3 + * - 4 - `stationWagon` - term No 3.1.1.4 + * - 5 - `truckStationWagon` - term No 3.1.1.4.1 + * - 6 - `coupe` - term No 3.1.1.5 (coupe) + * - 7 - `convertible` - term No 3.1.1.6 (open tourer, roadstar, spider) + * - 8 - `multipurposePassengerCar` - term No 3.1.1.7 + * - 9 - `forwardControlPassengerCar`- term No 3.1.1.8 + * - 10 - `specialPassengerCar` - term No 3.1.1.9 + * - 11 - `bus` - term No 3.1.2 + * - 12 - `minibus` - term No 3.1.2.1 + * - 13 - `urbanBus` - term No 3.1.2.2 + * - 14 - `interurbanCoach` - term No 3.1.2.3 + * - 15 - `longDistanceCoach` - term No 3.1.2.4 + * - 16 - `articulatedBus` - term No 3.1.2.5 + * - 17 - `trolleyBus ` - term No 3.1.2.6 + * - 18 - `specialBus` - term No 3.1.2.7 + * - 19 - `commercialVehicle` - term No 3.1.3 + * - 20 - `specialCommercialVehicle` - term No 3.1.3.1 + * - 21 - `specialVehicle` - term No 3.1.4 + * - 22 - `trailingTowingVehicle` - term No 3.1.5 (draw-bar tractor) + * - 23 - `semiTrailerTowingVehicle` - term No 3.1.6 (fifth wheel tractor) + * - 24 - `trailer` - term No 3.2.1 + * - 25 - `busTrailer` - term No 3.2.1.1 + * - 26 - `generalPurposeTrailer` - term No 3.2.1.2 + * - 27 - `caravan` - term No 3.2.1.3 + * - 28 - `specialTrailer` - term No 3.2.1.4 + * - 29 - `semiTrailer` - term No 3.2.2 + * - 30 - `busSemiTrailer` - term No 3.2.2.1 + * - 31 - `generalPurposeSemiTrailer` - term No 3.2.2.2 + * - 32 - `specialSemiTrailer` - term No 3.2.2.3 + * - 33 - `roadTrain` - term No 3.3.1 + * - 34 - `passengerRoadTrain` - term No 3.3.2 + * - 35 - `articulatedRoadTrain` - term No 3.3.3 + * - 36 - `doubleRoadTrain` - term No 3.3.4 + * - 37 - `compositeRoadTrain` - term No 3.3.5 + * - 38 - `specialRoadTrain` - term No 3.3.6 + * - 39 - `moped` - term No 3.4 + * - 40 - `motorCycle` - term No 3.5 + * - 41-255 - reserved for future use + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +Iso3833VehicleType ::= INTEGER { + passengerCar (0), + saloon (1), + convertibleSaloon (2), + pullmanSaloon (3), + stationWagon (4), + truckStationWagon (5), + coupe (6), + convertible (7), + multipurposePassengerCar (8), + forwardControlPassengerCar (9), + specialPassengerCar (10), + bus (11), + minibus (12), + urbanBus (13), + interurbanCoach (14), + longDistanceCoach (15), + articulatedBus (16), + trolleyBus (17), + specialBus (18), + commercialVehicle (19), + specialCommercialVehicle (20), + specialVehicle (21), + trailingTowingVehicle (22), + semiTrailerTowingVehicle (23), + trailer (24), + busTrailer (25), + generalPurposeTrailer (26), + caravan (27), + specialTrailer (28), + semiTrailer (29), + busSemiTrailer (30), + generalPurposeSemiTrailer (31), + specialSemiTrailer (32), + roadTrain (33), + passengerRoadTrain (34), + articulatedRoadTrain (35), + doubleRoadTrain (36), + compositeRoadTrain (37), + specialRoadTrain (38), + moped (39), + motorCycle (40) + } (0..255) + +/** + * This DE represent the identifier of an organization according to the applicable registry. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ISO 14816 [23] +*/ +IssuerIdentifier ::= INTEGER(0 .. 16383) + +/** + * This DE represents the identifier of the IVIM. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ETSI TS 103 301 [15] +*/ +IviIdentificationNumber::= INTEGER(1..32767,..., 8388607) + +/** + * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * For right-hand traffic roads, the value shall be set to: + * - `-1` if the position is off, i.e. besides the road, + * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, + * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, + * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). + * + * For left-hand traffic roads, the value shall be set to: + * - `-1` if the position is off, i.e. besides the road, + * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, + * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, + * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). + * + * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. + * + * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. + * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), + * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). + * + * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows: + * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the + * imaginary separation between traffic directions is on the border between the even number of lanes N/2. + * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. + * The remaining middle lane is assigned to both traffic directions as innermost lane. + * + * @category: Road topology information + * @revision: Description of the legal separation of carriageways added in V2.2.1 +*/ +LanePosition ::= INTEGER { + offTheRoad (-1), + innerHardShoulder (0), + outerHardShoulder (14) +} (-1..14) + +/** + * This DE represents the type of a lane. + * + * The value shall be set to: + * - 0 - `traffic` - Lane dedicated to the movement of vehicles, + * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning, + * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow, + * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it, + * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it, + * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic, + * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic, + * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc., + * - 8 - `bus` - Lane dedicated to movement of buses providing public transport, + * - 9 - `taxi` - Lane dedicated to movement of taxis, + * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane, + * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll, + * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths, + * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles, + * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median, + separating the two directional carriageways of the highway, + * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings, + * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys, + * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes, + * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder, + * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between + the road surface edge and the boundary of a road, + * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre, + * - 21 `separatedCycleLane` - Lane dedicated to exclusive or preferred use by bicycles that is phyisically separated from the vehicle-traffic lanes, e.g. by a verge. + * - values 22 to 30 reserved for future use. + * + * @category: Road topology information + * @revision: Created in V2.1.1, named value 21 added in V2.2.1 +*/ +LaneType::= INTEGER{ + traffic (0), + through (1), + reversible (2), + acceleration (3), + deceleration (4), + leftHandTurning (5), + rightHandTurning (6), + dedicatedVehicle (7), + bus (8), + taxi (9), + hov (10), + hot (11), + pedestrian (12), + cycleLane (13), + median (14), + striping (15), + trackedVehicle (16), + parking (17), + emergency (18), + verge (19), + minimumRiskManoeuvre (20), + exclusiveCycleLane (21), + unknown (31) +}(0..31) + +/** + * This DE represents the width of a lane measured at a defined position. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1022`) if the lane width information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `1022` if the lane width is out of range, i.e. greater than 10,21 m, + * - `1023` if the lane width information is not available. + * + * The value 0 shall not be used. + * + * @unit: 0,01 metre + * @category: Road topology information + * @revision: Created in V2.1.1 + */ +LaneWidth::= INTEGER (0..1023) + +/** + * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or + * in south hemisphere. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, + * - `0` is used for the latitude of the equator, + * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, + * - `900 000 001` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +Latitude ::= INTEGER { + unavailable(900000001) +} (-900000000..900000001) + +/** + * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle. + * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21]. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation + * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation + with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. + * + * @unit: 0,1 m/s^2 + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). + */ +LateralAccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE indicates the status of light bar and any sort of audible alarm system besides the horn. + * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `lightBarActivated` - when the light bar is activated, + * - 1 - `sirenActivated` - when the siren is activated. + * + * Otherwise, it shall be set to 0. + * + * @category Vehicle information + * @revision: Editorial update in V2.1.1 + */ +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) + +/** + * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees + * to the east or to the west of the prime meridian. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, + * - `0` to indicate the prime meridian, + * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, + * - `1 800 000 001` when the information is unavailable. + * + * The value -1 800 000 000 shall not be used. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +Longitude ::= INTEGER { + valueNotUsed (-1800000000), + unavailable (1800000001) +} (-1800000000..1800000001) + + /** + * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2 + * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * This acceleration is along the tangent plane of the road surface and does not include gravity components. + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * @unit: 0,1 m/s^2 + * @category: Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T + */ +LongitudinalAccelerationValue::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, + * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m, + * - `32 767` if the longitudinal offset information is not available. + * + * @unit 0,1 metre + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +LongitudinalLanePositionValue ::= INTEGER { + outOfRange(32766), + unavailable(32767) +}(0..32767) + +/** + * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, + * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m, + * - `1 023` if the confidence value is unavailable. + * + * @unit 0,1 metre + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +LongitudinalLanePositionConfidence ::= INTEGER { + outOfRange (1022), + unavailable (1023) +} (0..1023) + +/** + * This DE indicates the components of an @ref PerceivedObject that are included in the @ref LowerTriangularPositiveSemidefiniteMatrix. + * + * The corresponding bit shall be set to 1 if the component is included: + * - 0 - `xCoordinate` - when the component xCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 1 - `yCoordinate` - when the component yCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 2 - `zCoordinate` - when the component zCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 3 - `xVelocityOrVelocityMagnitude` - when the component xVelocity of the component @ref VelocityCartesian or the component VelocityMagnitude of the component @ref VelocityPolarWithZ is included, + * - 4 - `yVelocityOrVelocityDirection` - when the component yVelocity of the component @ref VelocityCartesian or the component VelocityDirection of the component @ref VelocityPolarWithZ is included, + * - 5 - `zVelocity` - when the component zVelocity of the component @ref VelocityCartesian or of the component @ref VelocityPolarWithZ is included, + * - 6 - `xAccelOrAccelMagnitude` - when the component xAcceleration of the component @ref AccelerationCartesian or the component AccelerationMagnitude of the component @ref AccelerationPolarWithZ is included, + * - 7 - `yAccelOrAccelDirection` - when the component yAcceleration of the component @ref AccelerationCartesian or the component AccelerationDirection of the component @ref AccelerationPolarWithZ is included, + * - 8 - `zAcceleration` - when the component zAcceleration of the component @ref AccelerationCartesian or of the component @ref AccelerationPolarWithZ is included, + * - 9 - `zAngle` - when the component zAngle is included, + * - 10 - `yAngle` - when the component yAngle is included, + * - 11 - `xAngle` - when the component xAngle is included, + * - 12 - `zAngularVelocity` - when the component zAngularVelocity is included. + * + * Otherwise, it shall be set to 0. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +MatrixIncludedComponents::= BIT STRING{ + xPosition (0), + yPosition (1), + zPosition (2), + xVelocityOrVelocityMagnitude (3), + yVelocityOrVelocityDirection (4), + zSpeed (5), + xAccelOrAccelMagnitude (6), + yAccelOrAccelDirection (7), + zAcceleration (8), + zAngle (9), + yAngle (10), + xAngle (11), + zAngularVelocity (12) +} (SIZE(13,...)) + +/** + * This DE represents the type of facility layer message. + * + * The value shall be set to: + * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], + * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], + * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9], + * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], + * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], + * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], + * - 7 - `rfu1` - reserved for future usage, + * - 8 - `rfu2` - reserved for future usage, + * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], + * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], + * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], + * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], + * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], + * - 14 - `cpm` - reserved for Collective Perception Message (CPM), + * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], + * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], + * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, + * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, + * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, + * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, + * - 21 - `pam` - reserved for Parking Availability Message, + * - 22-255 - reserved for future usage. + * + * @category: Communication information + * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1 + */ +MessageId::= INTEGER { + denm (1), + cam (2), + poim (3), + spatem (4), + mapem (5), + ivim (6), + rfu1 (7), + rfu2 (8), + srem (9), + ssem (10), + evcsn (11), + saem (12), + rtcmem (13), + cpm (14), + imzm (15), + vam (16), + dsm (17), + pcim (18), + pcvm (19), + mcm (20), + pam (21) +} (0..255) + +/** + * This DE represents the number of occupants in a vehicle. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 126`) for the number n of occupants, + * - `126` for values equal to or higher than 125, + * - `127` if information is not available. + * + * @unit: 1 person + * @category: Vehicle information + * @revision: Editorial update in V2.1.1 + */ +NumberOfOccupants ::= INTEGER { + outOfRange (126), + unavailable (127) +} (0 .. 127) + +/** + * This DE represents a single-value indication about the overall information quality of a perceived object. + * + * The value shall be set to: + * - `0` : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed, + * - `n` (`n > 0` and `n < 15`) : for the applicable confidence value, + * - `15` : if there is full confidence in the detected Object. + * + * @unit n/a + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectPerceptionQuality ::= INTEGER { + noConfidence (0), + fullConfidence (15) +} (0..15) + +/** + * This DE represents a single dimension of an object. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 255`) if the accuracy is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, + * - `255` if the accuracy is out of range i.e. greater than 25,4 m, + * - `256` if the data is unavailable. + * + * @unit 0,1 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +ObjectDimensionValue ::= INTEGER { + outOfRange (255), + unavailable (256) +}(1..256) + +/** + * This DE indicates the object dimension confidence value which represents the estimated absolute accuracy of an object dimension value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 31`) if the confidence value is equal to or less than n x 0,1 metre, and more than (n-1) x 0,1 metre, + * - `31` if the confidence value is out of range i.e. greater than 3,0 m, + * - `32` if the confidence value is unavailable. + * + * @unit 0,1 m + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectDimensionConfidence ::= INTEGER { + outOfRange (31), + unavailable (32) +} (1..32) + +/** + * This DE indicates the face or part of a face of a solid object. + * + * The object is modelled as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as: + * - front: the face defined by the prism's width and height, and which is the first face in direction of longitudinal movement of the object, + * - back: the face defined by the prism's width and height, and which is the last face in direction of longitudinal movement of the object, + * - side: the faces defined by the prism's length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces. + * + * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess. + * + * @category: Basic information + * @revision: V2.1.1 +*/ +ObjectFace ::= ENUMERATED { + front (0), + sideLeftFront (1), + sideLeftBack (2), + sideRightFront (3), + sideRightBack (4), + back (5) +} + +/** + * This DE represents a time period to describe the opening days and hours of a Point of Interest. + * (for example local commerce). + * + * @category: Basic information + * @revision: V1.3.1 + */ +OpeningDaysHours ::= UTF8String + +/** + * The DE represents an ordinal number that indicates the position of an element in a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +OrdinalNumber1B ::= INTEGER(0..255) + + +/** + * The DE represents an ordinal number that indicates the position of an element in a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +OrdinalNumber3b ::= INTEGER(1..8) + +/** + * This DE indicates the subclass of a detected object for @ref ObjectClass "otherSubclass". + * + * The value shall be set to: + * - `0` - unknown - if the subclass is unknown. + * - `1` - singleObject - if the object is a single object. + * - `2` - multipleObjects - if the object is a group of multiple objects. + * - `3` - bulkMaterial - if the object is a bulk material. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +OtherSubClass ::= INTEGER { + unknown (0), + singleObject (1), + multipleObjects (2), + bulkMaterial (3) +} (0..255) + +/** + * This DE represents the recorded or estimated travel time between a position and a predefined reference position. + * + * @unit 0,01 second + * @category: Basic information + * @revision: V1.3.1 + */ +PathDeltaTime ::= INTEGER (1..65535, ...) + +/** + * This DE indicates an ordinal number that represents the position of a component in the list of @ref Traces or @ref TracesExtended. + * + * The value shall be set to: + * - `0` - noPath - if no path is identified + * - `1..7` - for instances 1..7 of @ref Traces + * - `8..14` - for instances 1..7 of @ref TracesExtended. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +PathId ::= INTEGER { + noPath (0), + path1 (1), + path2 (2), + path3 (3), + path4 (4), + path5 (5), + path6 (6), + path7 (7), + pathExtended1 (8), + pathExtended2 (9), + pathExtended3 (10), + pathExtended4 (11), + pathExtended5 (12), + pathExtended6 (13), + pathExtended7 (14) +} (0..14) + +/** + * This DE denotes the ability of an ITS-S to provide up-to-date information. + * A performance class value is used to describe age of data. The exact values are out of scope of the present document. + * + * The value shall be set to: + * - `0` if the performance class is unknown, + * - `1` for performance class A as defined in ETSI TS 101 539-1 [5], + * - `2` for performance class B as defined in ETSI TS 101 539-1 [5], + * - 3-7 reserved for future use. + * + * @category: Vehicle information + * @revision: Editorial update in V2.1.1 + */ +PerformanceClass ::= INTEGER { + unavailable (0), + performanceClassA (1), + performanceClassB (2) +} (0..7) + +/** + * This DE represents a telephone number + * + * @category: Basic information + * @revision: V1.3.1 + */ +PhoneNumber ::= NumericString (SIZE(1..16)) + +/** + * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of + * the vehicle bounding box of the empty load vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 62`) for any aplicable value n between 0,1 metre and 6,2 metres, + * - `62` for values equal to or higher than 6.1 metres, + * - `63` if the information is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit 0,1 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 62 has changed slightly) + */ +PosCentMass ::= INTEGER { + tenCentimetres (1), + outOfRange (62), + unavailable (63) +} (1..63) + +/** + * This DE indicates the positioning technology being used to estimate a geographical position. + * + * The value shall be set to: + * - 0 `noPositioningSolution` - no positioning solution used, + * - 1 `sGNSS` - Global Navigation Satellite System used, + * - 2 `dGNSS` - Differential GNSS used, + * - 3 `sGNSSplusDR` - GNSS and dead reckoning used, + * - 4 `dGNSSplusDR` - Differential GNSS and dead reckoning used, + * - 5 `dR` - dead reckoning used, + * - 6 `manuallyByOperator` - position set manually by a human operator. + * + * @category: GeoReference information + * @revision: V1.3.1, extension with value 6 added in V2.2.1 + */ +PositioningSolutionType ::= ENUMERATED { + noPositioningSolution (0), + sGNSS (1), + dGNSS (2), + sGNSSplusDR (3), + dGNSSplusDR (4), + dR (5), + ..., + manuallyByOperator (6) +} + +/** + * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not. + * + * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear + * of the vehicle. + * The left side seat of a row refers to the left hand side seen from vehicle rear to front. + * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not, + * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`. + * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle, + * i.e. `row1NotPresent (4)`, `row2NotPresent (9)`, `row3NotPresent(14)`, `row4NotPresent(19)`. + * + * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`. + * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to `1`. + * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`. + * Otherwise, the value of seat occupation bit shall be set according to the following conditions: + * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`. + * When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row + * shall be set to `1`. + * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`. + * When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row + * shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19) +} (SIZE(20)) + +/** + * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 0,1 metre. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 19`) for any aplicable value between 0,1 metre and 1,9 metres, + * - `19` for values equal to or higher than 1.8 metres, + * - `20` if the information is unavailable. + * + * @category: Vehicle information + * @unit 0,1 metre + * @revision: description revised in V2.1.1 (the meaning of 19 has changed slightly) + */ +PosFrontAx ::= INTEGER { + outOfRange (19), + unavailable(20) +} (1..20) + +/** + * This DE represents a position along a single dimension such as the middle of a road or lane, measured as an offset from an externally defined starting point, + * in direction of an externally defined reference direction. + * + * The value shall be set to: + * - `n` (`n >= -8190` and `n < 0`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in opposite direction of the reference direction, + * - `0` if the position is at the starting point, + * - `n` (`n > 0` and `n < 8190`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in the same direction as the reference direction, + * - `8 190` if the position is out of range, i.e. equal to or greater than 8 189 m, + * - `8 191` if the position information is not available. + * + * @unit 1 metre + * @category: GeoReference information + * @revision: Created in V2.2.1 + */ +Position1d ::= INTEGER { + outOfRange(8190), + unavailable(8191) +}(-8190..8191) + +/** + * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle. + * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) for any aplicable value between 0,01 metre and 1,26 metres, + * - `126` for values equal to or higher than 1.25 metres, + * - `127` if the information is unavailable. + * + * @unit 0,01 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 126 has changed slightly) + */ +PosLonCarr ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the + * middle point of the front line of the vehicle bounding box. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 29`) for any aplicable value between 0,1 metre and 2,9 metres, + * - `29` for values equal to or greater than 2.8 metres, + * - `30` if the information is unavailable. + * + * @unit 0,1 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 29 has changed slightly) + */ +PosPillar ::= INTEGER { + outOfRange (29), + unavailable (30) +} (1..30) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` . + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on post crash event is unavailable, + * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident, + * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end, + * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end, + * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle. + * - 5-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +PostCrashSubCauseCode ::= INTEGER { + unavailable (0), + accidentWithoutECallTriggered (1), + accidentWithECallManuallyTriggered (2), + accidentWithECallAutomaticallyTriggered (3), + accidentWithECallTriggeredWithoutAccessToCellularNetwork (4) +} (0..255) + +/** +* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square metre. +* +* The following values are specified: +* - `n` (`n > 0` and `n < 2000`) if the amount of rain falling is equal to or less than n x 0,1 mm/h and greater than (n-1) x 0,1 mm/h, +* - `2000` if the amount of rain falling is greater than 199.9 mm/h, +* - `2001` if the information is not available. +* +* @unit: 0,1 mm/h +* @category: Basic Information +* @revision: created in V2.1.1 +*/ +PrecipitationIntensity ::= INTEGER { + outOfRange (2000), + unavailable (2001) +} (1..2001) + +/** + * This DE represents the indentifier of a protected communication zone. + * + * + * @category: Infrastructure information, Communication information + * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId) + */ +ProtectedZoneId ::= INTEGER (0.. 134217727) + +/** + * This DE represents the radius of a protected communication zone. + * + * + * @unit: metre + * @category: Infrastructure information, Communication information + * @revision: V1.3.1 + */ +ProtectedZoneRadius ::= INTEGER (1..255,...) + +/** + * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do + * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). + * + * The protected zone type is defined in ETSI TS 102 792 [14]. + * + * + * @category: Communication information + * @revision: V1.3.1 + */ +ProtectedZoneType::= ENUMERATED { + permanentCenDsrcTolling (0), + ..., + temporaryCenDsrcTolling (1) +} + +/** + * This DE is used for various tasks in the public transportation environment, especially for controlling traffic + * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_"). + * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation + * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the + * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to + * traffic congestion. Other usage of the DE is the provision of information like the public transport line number + * or the schedule delay of a public transport vehicle. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivationData ::= OCTET STRING (SIZE(1..20)) + +/** + * This DE indicates a certain coding type of the PtActivationData data. + * + * The folowing value are specified: + * - 0 `undefinedCodingType` : undefined coding type, + * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7], + * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7]. + * - 3 - 255 : reserved for alternative and future use. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivationType ::= INTEGER { + undefinedCodingType (0), + r09-16CodingType (1), + vdv-50149CodingType (2) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` . + * + * The value shall be set to: + * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available, + * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing, + including level crossing is closed for too long (e.g. more than 10 minutes long ; default value), + * - 2 `closed` - in case the crossing is closed (barriers down), + * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train), + * - 4 `nominal` - in case the barriers are up and lights are off. + * - 5-255: reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +RailwayLevelCrossingSubCauseCode ::= INTEGER { + unavailable (0), + doNotCrossAbnormalSituation (1), + closed (2), + unguarded (3), + nominal (4) +} (0..255) + +/** + * This DE describes a distance of relevance for information indicated in a message. + * + * The value shall be set to: + * - 0 `lessThan50m` - for distances below 50 m, + * - 1 `lessThan100m` - for distances below 100 m, + * - 2 `lessThan200m` - for distances below 200 m, + * - 3 `lessThan500m` - for distances below 300 m, + * - 4 `lessThan1000m` - for distances below 1 000 m, + * - 5 `lessThan5km` - for distances below 5 000 m, + * - 6 `lessThan10km` - for distances below 10 000 m, + * - 7 `over10km` - for distances over 10 000 m. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StandardLength3b instead. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +RelevanceDistance ::= ENUMERATED { + lessThan50m(0), + lessThan100m(1), + lessThan200m(2), + lessThan500m(3), + lessThan1000m(4), + lessThan5km(5), + lessThan10km(6), + over10km(7) +} + +/** + * This DE indicates a traffic direction that is relevant to information indicated in a message. + * + * The value shall be set to: + * - 0 `allTrafficDirections` - for all traffic directions, + * - 1 `upstreamTraffic` - for upstream traffic, + * - 2 `downstreamTraffic` - for downstream traffic, + * - 3 `oppositeTraffic` - for traffic in the opposite direction. + * + * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position. + * + * @note: Upstream traffic corresponds to the incoming traffic towards the event position, + * and downstream traffic to the departing traffic away from the event position. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficDirection instead. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +RelevanceTrafficDirection ::= ENUMERATED { + allTrafficDirections(0), + upstreamTraffic(1), + downstreamTraffic(2), + oppositeTraffic(3) +} + +/** + * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from + * ITS-S after receiving request from other ITS-Ss. + * + * The value shall be set to: + * - 0 `request` - for a request message, + * - 1 `response` - for a response message. + * + * @category Communication information + * @revision: Editorial update in V2.1.1 + */ +RequestResponseIndication ::= ENUMERATED { + request (0), + response (1) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable, + * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way, + * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing, + * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way, + * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles. + * - 8-255: reserved for future usage. + + * + * @category: Traffic information + * @revision: V1.3.1, named values 6 and 7 added in V2.2.1 + */ +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER { + unavailable (0), + emergencyVehicles (1), + rescueHelicopterLanding (2), + policeActivityOngoing (3), + medicalEmergencyOngoing (4), + childAbductionInProgress (5), + prioritizedVehicle (6), + rescueAndRecoveryVehicle (7) +} (0..255) + + +/** + * This DE indicates an ordinal number that represents the position of a component in the list @ref RoadConfigurationSectionList. + * + * The value shall be set to: + * - `0` - if no road section is identified + * - `1..8` - for instances 1..8 of @ref RoadConfigurationSectionList + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +RoadSectionId::= INTEGER (0..8, ...) + +/** + * This DE indicates the type of a road segment. + * + * The value shall be set to: + * - 0 `urban-NoStructuralSeparationToOppositeLanes` - for an urban road with no structural separation between lanes carrying traffic in opposite directions, + * - 1 `urban-WithStructuralSeparationToOppositeLanes` - for an urban road with structural separation between lanes carrying traffic in opposite directions, + * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes` - for an non urban road with no structural separation between lanes carrying traffic in opposite directions, + * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes` - for an non urban road with structural separation between lanes carrying traffic in opposite directions. + * + * @category: Road Topology Information + * @revision: Editorial update in V2.1.1 + */ +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes (0), + urban-WithStructuralSeparationToOppositeLanes (1), + nonUrban-NoStructuralSeparationToOppositeLanes (2), + nonUrban-WithStructuralSeparationToOppositeLanes (3) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`. + * +The value shall be set to: + * - 0 `unavailable` - in case further detailed information on roadworks is unavailable, + * - 1 `majorRoadworks` - in case a major roadworks is ongoing, + * - 2 `roadMarkingWork` - in case a road marking work is ongoing, + * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing, + * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing, + * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing, + * - 6 `winterService` - in case winter service work is ongoing. + * - 7-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +RoadworksSubCauseCode ::= INTEGER { + unavailable (0), + majorRoadworks (1), + roadMarkingWork (2), + slowMovingRoadMaintenance (3), + shortTermStationaryRoadworks (4), + streetCleaning (5), + winterService (6) +} (0..255) + +/** + * This DE indicates if a distance is safe. + * + * The value shall be set to: + * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more, + * - `TRUE` otherwise. + * + * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) + * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SafeDistanceIndicator::= BOOLEAN + +/** + * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a + * confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre, + * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m, + * - `4 095` if the accuracy information is unavailable. + * + * The value 0 shall not be used. + * + * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`. + * can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the position coordinate value may be valid and used by the application. + * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that + * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful + * for the application. + + * @unit 0,01 metre + * @category: GeoReference Information + * @revision: Description revised in V2.1.1 + */ +SemiAxisLength ::= INTEGER{ + doNotUse (0), + outOfRange (4094), + unavailable (4095) +} (0..4095) + +/** + * This DE indicates the type of sensor. + * + * The value shall be set to: + * - 0 `undefined` - in case the sensor type is undefined. + * - 1 `radar` - in case the sensor is a radar, + * - 2 `lidar` - in case the sensor is a lidar, + * - 3 `monovideo` - in case the sensor is mono video, + * - 4 `stereovision` - in case the sensor is stereo vision, + * - 5 `nightvision` - in case the sensor is night vision, + * - 6 `ultrasonic` - in case the sensor is ultrasonic, + * - 7 `pmd` - in case the sensor is photonic mixing device, + * - 8 `inductionLoop` - in case the sensor is an induction loop, + * - 9 `sphericalCamera` - in case the sensor is a spherical camera, + * - 10 `uwb` - in case the sensor is ultra wide band, + * - 11 `acoustic` - in case the sensor is acoustic, + * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, + * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. + * - 14-31 - are reserved for future usage. + * + * @category: Sensing Information + * @revision: created in V2.1.1 +*/ +SensorType ::= INTEGER { + undefined (0), + radar (1), + lidar (2), + monovideo (3), + stereovision (4), + nightvision (5), + ultrasonic (6), + pmd (7), + inductionLoop (8), + sphericalCamera (9), + uwb (10), + acoustic (11), + localAggregation (12), + itsAggregation (13) +} (0..31) + +/** + * This DE indicates the type of sensor(s). + * The corresponding bit shall be set to 1 under the following conditions: + * + * - 0 `undefined` - in case the sensor type is undefined. + * - 1 `radar` - in case the sensor is a radar, + * - 2 `lidar` - in case the sensor is a lidar, + * - 3 `monovideo` - in case the sensor is mono video, + * - 4 `stereovision` - in case the sensor is stereo vision, + * - 5 `nightvision` - in case the sensor is night vision, + * - 6 `ultrasonic` - in case the sensor is ultrasonic, + * - 7 `pmd` - in case the sensor is photonic mixing device, + * - 8 `inductionLoop` - in case the sensor is an induction loop, + * - 9 `sphericalCamera` - in case the sensor is a spherical camera, + * - 10 `uwb` - in case the sensor is ultra wide band, + * - 11 `acoustic` - in case the sensor is acoustic, + * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, + * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. + * - 14-15 - are reserved for future usage. + * + * @note: If all bits are set to 0, then no sensor type is used + * + * @category: Sensing Information + * @revision: created in V2.2.1 +*/ +SensorTypes ::= BIT STRING { + undefined (0), + radar (1), + lidar (2), + monovideo (3), + stereovision (4), + nightvision (5), + ultrasonic (6), + pmd (7), + inductionLoop (8), + sphericalCamera (9), + uwb (10), + acoustic (11), + localAggregation (12), + itsAggregation (13) +} (SIZE (16,... )) + +/** + * This DE represents a sequence number. + * + * @category: Basic information + * @revision: V1.3.1 + */ +SequenceNumber ::= INTEGER (0..65535) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable, + * - 1 `stopSignViolation` - in case a stop sign violation is detected, + * - 2 `trafficLightViolation` - in case a traffic light violation is detected, + * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected. + * - 4-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +SignalViolationSubCauseCode ::= INTEGER { + unavailable (0), + stopSignViolation (1), + trafficLightViolation (2), + turningRegulationViolation (3) +} (0..255) + +/** + * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle". + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is + * unavailable, + * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road, + * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc., + * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road, + * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road, + * - 5 `convoy` - in case of slow driving convoy on the road, + * - 6 `snowplough` - in case of slow driving snow plough on the road, + * - 7 `deicing` - in case of slow driving de-icing vehicle on the road, + * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road. + * - 9-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +SlowVehicleSubCauseCode ::= INTEGER { + unavailable (0), + maintenanceVehicle (1), + vehiclesSlowingToLookAtAccident (2), + abnormalLoad (3), + abnormalWideLoad (4), + convoy (5), + snowplough (6), + deicing (7), + saltingVehicles (8) +} (0..255) + +/** + * The DE indicates if a vehicle is carrying goods in the special transport conditions. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load, + * - 1 `excessWidth` - the vehicle is carrying goods in excess of width, + * - 2 `excessLength` - the vehicle is carrying goods in excess of length, + * - 3 `excessHeight` - the vehicle is carrying goods in excess of height. + * + * Otherwise, the corresponding bit shall be set to 0. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +SpecialTransportType ::= BIT STRING { + heavyLoad (0), + excessWidth (1), + excessLength (2), + excessHeight (3) +} (SIZE(4)) + +/** + * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. + * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, + * - `127` if the confidence value information is not available. + * + * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the speed value may be valid and used by the application. + * + * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid + * and therefore cannot be trusted. Such is not useful for the application. + * + * @unit: 0,01 m/s + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +SpeedConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region. + * + * @unit: km/h + * @category: Infrastructure information, Traffic information + * @revision: V1.3.1 + */ +SpeedLimit ::= INTEGER (1..255) + +/** + * This DE represents a speed value, i.e. the magnitude of the velocity-vector. + * + * The value shall be set to: + * - `0` in a standstill situation. + * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, + * - `16 382` for speed values greater than 163,81 m/s, + * - `16 383` if the speed accuracy information is not available. + * + * @note: the definition of standstill is out of scope of the present document. + * + * @unit: 0,01 m/s + * @category: Kinematic information + * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) +*/ +SpeedValue ::= INTEGER { + standstill (0), + outOfRange (16382), + unavailable (16383) +} (0..16383) + +/** + * This DE indicates the type of stored information. + * + * The corresponding bit shall be set to 1 under the following conditions: + * + * - `0` undefined - in case the stored information type is undefined. + * - `1` staticDb - in case the stored information type is a static database. + * - `2` dynamicDb - in case the stored information type is a dynamic database + * - `3` realTimeDb - in case the stored information type is a real time updated database. + * - `4` map - in case the stored information type is a road topology map. + * - Bits 5 to 7 - are reserved for future use. + * + * @note: If all bits are set to 0, then no stored information type is used + * + * @category: Basic Information + * @revision: created in V2.2.1 +*/ +StoredInformationType::= BIT STRING { + undefined (0), + staticDb (1), + dynamicDb (2), + realTimeDb (3), + map (4) +} (SIZE (8,... )) + +/** + * This DE represents the value of a velocity component in a defined coordinate system. + * + * The value shall be set to: + * - `-16 383` if the velocity is equal to or smaller than -163,83 m/s, + * - `n` (`n > -16 383` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, + * - `16 382` for velocity values equal to or greater than 163,81 m/s, + * - `16 383` if the velocity information is not available. + * + * @unit: 0,01 m/s + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +VelocityComponentValue ::= INTEGER { + negativeOutOfRange (-16383), + positiveOutOfRange (16382), + unavailable (16383) +} (-16383..16383) + + +/** + * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss. + * + * The value shall be set to: + * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable", + * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level, + * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability", + * - the values between 51 and 62 are reserved for future use, + * - `63`: this value indicates that the information is unavailable. + * + * @unit: 2 % + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +StabilityLossProbability ::= INTEGER { + stable (0), + totalLossOfStability (50), + unavailable (63) +} (0..63) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object or shape. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength12b::= INTEGER (0..4095) + +/** + * The DE represents length as a measure of distance between points. + * + * The value shall be set to: + * - 0 `lessThan50m` - for distances below 50 m, + * - 1 `lessThan100m` - for distances below 100 m, + * - 2 `lessThan200m` - for distances below 200 m, + * - 3 `lessThan500m` - for distances below 300 m, + * - 4 `lessThan1000m` - for distances below 1 000 m, + * - 5 `lessThan5km` - for distances below 5 000 m, + * - 6 `lessThan10km` - for distances below 10 000 m, + * - 7 `over10km` - for distances over 10 000 m. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 from RelevanceDistance + */ +StandardLength3b ::= ENUMERATED { + lessThan50m (0), + lessThan100m (1), + lessThan200m (2), + lessThan500m (3), + lessThan1000m (4), + lessThan5km (5), + lessThan10km (6), + over10km (7) +} + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength9b::= INTEGER (0..511) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength1B::= INTEGER (0..255) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength2B::= INTEGER (0..65535) + +/** + * This DE indicates the duration in minutes since which something is stationary. + * + * The value shall be set to: + * - 0 `lessThan1Minute` - for being stationary since less than 1 minute, + * - 1 `lessThan2Minutes` - for being stationary since less than 2 minute and for equal to or more than 1 minute, + * - 2 `lessThan15Minutes` - for being stationary since less than 15 minutes and for equal to or more than 1 minute, + * - 3 `equalOrGreater15Minutes` - for being stationary since equal to or more than 15 minutes. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +StationarySince ::= ENUMERATED { + lessThan1Minute (0), + lessThan2Minutes (1), + lessThan15Minutes (2), + equalOrGreater15Minutes (3) +} + +/** + * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable, + * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger, + * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down, + * - 3 `postCrash` - in case stationary vehicle is caused by collision, + * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop, + * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods, + * - 6 `vehicleOnFire` - in case of vehicle on fire. + * - 7-255 reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +StationaryVehicleSubCauseCode ::= INTEGER { + unavailable (0), + humanProblem (1), + vehicleBreakdown (2), + postCrash (3), + publicTransportStop (4), + carryingDangerousGoods (5), + vehicleOnFire (6) +} (0..255) + +/** + * This DE represents the identifier of an ITS-S. + * The ITS-S ID may be a pseudonym. It may change over space and/or over time. + * + * @category: Basic information + * @revision: Created in V2.1.1 based on @ref StationID + */ +StationId ::= INTEGER(0..4294967295) + +/** + * This DE represents the identifier of an ITS-S. + * The ITS-S ID may be a pseudonym. It may change over space and/or over time. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StationId instead. + * @category: Basic information + * @revision: V1.3.1 + */ +StationID ::= INTEGER(0..4294967295) + +/** + * This DE represents the type of technical context the ITS-S is integrated in. + * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure. + * + * The value shall be set to: + * - 0 `unknown` - information about the ITS-S context is not provided, + * - 1 `pedestrian` - ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1), + * - 2 `cyclist` - ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), + * - 3 `moped` - ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] + class L1, L2 (VRU Profile 3), + * - 4 `motorcycles` - ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] + class L3, L4, L5, L6, L7 (VRU Profile 3), + * - 5 `passengerCar` - ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, + * - 6 `bus` - ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, + * - 7 `lightTruck` - ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, + * - 8 `heavyTruck` - ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, + * - 9 `trailer` - ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in + UNECE/TRANS/WP.29/78/Rev.4 [16] class O, + * - 10 `specialVehicles` - ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle), + * - 11 `tram` - ITS-S mounted on a vehicle which runs on tracks along public streets, + * - 12 `lightVruVehicle` - ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2), + * - 13 `animal` - ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), + * - 14 - reserved for future usage, + * - 15 `roadSideUnit` - ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, + on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), + * - 16-255 - are reserved for future usage. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficParticipantType instead. + * @category: Communication information. + * @revision: revised in V2.1.1 (named values 12 and 13 added and note to value 9 deleted) + */ +StationType ::= INTEGER { + unknown (0), + pedestrian (1), + cyclist (2), + moped (3), + motorcycle (4), + passengerCar (5), + bus (6), + lightTruck (7), + heavyTruck (8), + trailer (9), + specialVehicle (10), + tram (11), + lightVruVehicle (12), + animal (13), + roadSideUnit (15) +} (0..255) + +/** + * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees, + * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees, + * - `127` if the confidence value is not available. + * + * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)` + * can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the steering wheel angle value may be valid and used by the application. + * + * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`, + * it means that the steering wheel angle value is not valid and therefore cannot be trusted. + * Such value is not useful for the application. + * + * @unit: 1,5 degree + * @category: Vehicle Information + * @revision: Description revised in V2.1.1 +*/ +SteeringWheelAngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the steering wheel angle of the vehicle at certain point in time. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right, + * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees, + turning clockwise (i.e. to the right), + * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, + turning counter-clockwise (i.e. to the left), + * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left, + * - `512` if information is not available. + * + * @unit: 1,5 degree + * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly). + */ +SteeringWheelAngleValue ::= INTEGER { + negativeOutOfRange (-511), + positiveOutOfRange (511), + unavailable (512) +} (-511..512) + +/** + * This DE indicates the generic sub cause of a detected event. + * + * @note: The sub cause code value assignment varies based on value of @ref CauseCode. + * + * @category: Traffic information + * @revision: Description revised in V2.1.1 (this is the generic sub cause type) + */ +SubCauseCodeType ::= INTEGER (0..255) + +/** + * This DE indicates a temperature value. + + * The value shall be set to: + * - `-60` for temperature equal to or less than -60 degrees C, + * - `n` (`n > -60` and `n < 67`) for the actual temperature n in degrees C, + * - `67` for temperature equal to or greater than 67 degrees C. + * + * @unit: degrees Celsius + * @category: Basic information + * @revision: Editorial update in V2.1.1 + */ +Temperature ::= INTEGER { + equalOrSmallerThanMinus60Deg (-60), + equalOrGreaterThan67Deg(67)} (-60..67) + +/** + * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch. + * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`. + * "Elapsed" means that the true number of milliseconds is continuously counted without interruption, + * i.e. it is not altered by leap seconds, which occur in UTC. + * + * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks, + * operated in accordance with the definition of the second, the unit of time of the International System of Units. + * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds. + * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC, + * further 5 leap seconds have been inserted in UTC. + * + * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds, + * which includes one leap second insertion since the ITS epoch. + * @unit: 0,001 s + * @category: Basic information + * @revision: Description revised in in V2.1.1 + */ +TimestampIts ::= INTEGER (0..4398046511103) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable, + * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume, + * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly, + * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing, + * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing, + * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available, + * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly, + * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing, + * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly, + * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume, + * - 10-255: reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1 + */ +TrafficConditionSubCauseCode ::= INTEGER { + unavailable (0), + increasedVolumeOfTraffic (1), + trafficJamSlowlyIncreasing (2), + trafficJamIncreasing (3), + trafficJamStronglyIncreasing (4), + trafficJam (5), + trafficJamSlightlyDecreasing (6), + trafficJamDecreasing (7), + trafficJamStronglyDecreasing (8), + trafficJamStable (9) +} (0..255) + +/** + * This DE indicates a direction of traffic with respect to a reference direction, and a portion of that traffic with respect to a reference position. + * + * The value shall be set to: + * - 0 `allTrafficDirections` - for all directions of traffic, + * - 1 `sameAsReferenceDirection-upstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic upstream of the reference position, + * - 2 `sameAsReferenceDirection-downstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic downstream of the reference position, + * - 3 `oppositeToReferenceDirection` - for the direction of traffic opposite to the reference direction. + * + * @note: Upstream traffic corresponds to the incoming traffic towards the event position, and downstream traffic to the departing traffic away from the event position. + * @category: GeoReference information + * @revision: Created in V2.1.1 from RelevanceTrafficDirection, description and naming of values changed in V2.2.1 + * + */ + TrafficDirection ::= ENUMERATED { + allTrafficDirections(0), + sameAsReferenceDirection-upstreamOfReferencePosition(1), + sameAsReferenceDirection-downstreamOfReferencePosition(2), + oppositeToReferenceDirection(3) +} + +/** + * This DE represents the type of a traffic participant. + * + * The value shall be set to: + * - 0 `unknown` - information about traffic participant is not provided, + * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), + * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), + * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), + * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), + * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, + * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, + * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, + * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, + * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, + * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), + * - 11 `tram` - vehicle which runs on tracks along public streets, + * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), + * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), + * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, + * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, + on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), + * - 16-255 - are reserved for future usage. + * + * @category: Communication information. + * @revision: Created in V2.1.1 based on StationType + */ +TrafficParticipantType ::= INTEGER { + unknown (0), + pedestrian (1), + cyclist (2), + moped (3), + motorcycle (4), + passengerCar (5), + bus (6), + lightTruck (7), + heavyTruck (8), + trailer (9), + specialVehicle (10), + tram (11), + lightVruVehicle (12), + animal (13), + agricultural (14), + roadSideUnit (15) +} (0..255) + +/** + * This DE indicates traffic rules that apply to vehicles at a certain position. + * + * The value shall be set to: + * - `0` - if overtaking is prohibited for all vehicles, + * - `1` - if overtaking is prohibited for trucks, + * - `2` - if vehicles should pass to the right lane, + * - `3` - if vehicles should pass to the left lane. + * - `4` - if vehicles should pass to the left or right lane. + * + * @category: Infrastructure information, Traffic information + * @revision: Editorial update in V2.1.1 + */ +TrafficRule ::= ENUMERATED { + noPassing (0), + noPassingForTrucks (1), + passToRight (2), + passToLeft (3), + ..., + passToLeftOrRight (4) +} + +/** + * This DE provides information about the presence of a trailer. + * + * The value shall be set to: + * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present. + * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value. + * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value. + * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible. + * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer + * nor the detection of trailer presence/absence is possible. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 based on VehicleLengthConfidenceIndication +*/ +TrailerPresenceInformation ::= ENUMERATED { + noTrailerPresent (0), + trailerPresentWithKnownLength (1), + trailerPresentWithUnknownLength (2), + trailerPresenceIsUnknown (3), + unavailable (4) +} + +/** + * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability, + * - the values between 51 and 62 are reserved, + * - `63`: to indicate that the information is unavailable. + * + * @unit: 2 % + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionProbability ::= INTEGER { + unavailable (63) +} (0..63) + +/** + * This DE defines the confidence level of the trajectoryInterceptionProbability. + * + * The value shall be set to: + * - `0` - to indicate confidence level less than 50 %, + * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %, + * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %, + * - `3` - to indicate confidence level greater than or equal to 90%. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionConfidence ::= INTEGER { + lessthan50percent (0), + between50and70Percent (1), + between70and90Percent (2), + above90Percent (3) +} (0..3) + +/** + * This DE represents the time interval between two consecutive message transmissions. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeMilliSecondPos instead. + * @unit: 0,001 s + * @category: Basic information + * @revision: V1.3.1 + */ +TransmissionInterval::= INTEGER (1..10000) + +/** + * This DE provides the turning direction. + * + * The value shall be set to: + * - `left` for turning to te left. + * - `right` for turing to the right. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TurningDirection::= ENUMERATED { + left, + right +} + +/** + * This DE represents the smallest circular turn (i.e. U-turn) that the vehicle is capable of making. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 254`) to indicate the applicable value is equal to or less than n x 0,4 metre, and greater than (n-1) x 0,4 metre, + * - `254` to indicate that the turning radius is greater than 253 x 0,4 metre = 101.2 metres, + * - `255` to indicate that the information is unavailable. + * + * For vehicle with tracker, the turning radius applies to the vehicle only. + * + * @category: Vehicle information + * @unit 0,4 metre + * @revision: Description revised V2.1.1 (the meaning of 254 has changed slightly) + */ +TurningRadius ::= INTEGER { + outOfRange (254), + unavailable (255) +} (1..255) + +/** + * This DE represents indication of how a certain path or area will be used. + * + * The value shall be set to: + * - 0 - ` noIndication ` - in case it will remain free to be used, + * - 1 - ` specialUse ` - in case it will be physically blocked by special use, + * - 2 - ` rescueOperation` - in case it is intended to be used for rescue operations, + * + * @category: Basic information + * @revision: Created in V2.2.1 + */ +UsageIndication ::= ENUMERATED { + noIndication(0), + specialUse (1), + rescueOperation (2), + ... +} + +/** + * This DE represents the duration of a traffic event validity. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeSecond instead. + * @unit: 1 s + * @category: Basic information + * @revision: V1.3.1 +*/ +ValidityDuration::= INTEGER { + timeOfDetection(0), + oneSecondAfterDetection(1) +} (0..86400) + +/** + * This DE represents the Vehicle Descriptor Section (VDS). The values are assigned according to ISO 3779 [6]. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +VDS ::= IA5String (SIZE(6)) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable, + * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel, + * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power, + * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem, + * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem, + * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem, + * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem, + * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem, + * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture, + * - 9 `tyrePressureProblem` - in case low tyre pressure in detected, + * - 10 `vehicleOnFire` - in case the vehicle is on fire. + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + + */ +VehicleBreakdownSubCauseCode ::= INTEGER { + unavailable (0), + lackOfFuel (1), + lackOfBatteryPower (2), + engineProblem (3), + transmissionProblem (4), + engineCoolingProblem (5), + brakingSystemProblem (6), + steeringProblem (7), + tyrePuncture (8), + tyrePressureProblem (9), + vehicleOnFire (10) +} (0..255) + +/** + * This DE represents the height of the vehicle, measured from the ground to the highest point, excluding any antennas. + * In case vehicles are equipped with adjustable ride heights, camper shells, and any other + * equipment which may result in varying height, the largest possible height shall be used. + * + * The value shall be set to: + * - `n` (`n >0` and `n < 127`) indicates the applicable value is equal to or less than n x 0,05 metre, and greater than (n-1) x 0,05 metre, + * - `127` indicates that the vehicle width is greater than 6,3 metres, + * - `128` indicates that the information in unavailable. + * + * @unit: 0,05 metre + * @category: Vehicle information + * @revision: created in V2.1.1 +*/ +VehicleHeight ::= INTEGER { + outOfRange (126), + unavailable (127) +}(1..128) + +/** + * This DE provides information about the presence of a trailer. + * + * The value shall be set to: + * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present, + * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value, + * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value, + * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible, + * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer, + * nor the detection of trailer presence/absence is possible. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead. + * @category: Vehicle information + * @revision: Description revised in V2.1.1 +*/ +VehicleLengthConfidenceIndication ::= ENUMERATED { + noTrailerPresent (0), + trailerPresentWithKnownLength (1), + trailerPresentWithUnknownLength (2), + trailerPresenceIsUnknown (3), + unavailable (4) +} + +/** + * This DE represents the length of a vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, + * - `1 022` to indicate that the vehicle length is greater than 102.1 metres, + * - `1 023` to indicate that the information in unavailable. + * + * + * @unit: 0,1 metre + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly). + */ +VehicleLengthValue ::= INTEGER { + outOfRange(1022), + unavailable(1023) +} (1..1023) + +/** + * This DE represents the mass of an empty loaded vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1023`) to indicate that the applicable value is equal to or less than n x 10^5 gramm, and greater than (n-1) x 10^5 gramm, + * - `1 023` indicates that the vehicle mass is greater than 102 200 000 g, + * - `1 024` indicates the vehicle mass information is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit: 10^5 gramm + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 1 023 has changed slightly). +*/ +VehicleMass ::= INTEGER { + outOfRange (1023), + unavailable(1024) +} (1..1024) + +/** + * This DE indicates the role played by a vehicle at a point in time. + * + * The value shall be set to: + * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type, + * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service, + * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks, + * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation, + * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission, + * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service, + * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade, + * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol, + * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor, + * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods, + * - 10 `military` - to indicate that the vehicle is used for military purpose, + * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions, + * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service, + * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions. + * - 14 `rfu1` - is reserved for future usage. + * - 15 `rfu2` - is reserved for future usage. + * + * @category: Vehicle Information + * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1 + */ +VehicleRole ::= ENUMERATED { + default (0), + publicTransport (1), + specialTransport(2), + dangerousGoods (3), + roadWork (4), + rescue (5), + emergency (6), + safetyCar (7), + agriculture (8), + commercial (9), + military (10), + roadOperator (11), + taxi (12), + uvar (13), + rfu1 (14), + rfu2 (15) +} + +/** + * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions. + + * The value shall be set to: + * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, + * - `61` indicates that the vehicle width is greater than 6,0 metres, + * - `62` indicates that the information in unavailable. + * + * @unit: 0,1 metre + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly). + */ +VehicleWidth ::= INTEGER { + outOfRange (61), + unavailable (62) +} (1..62) + +/** + * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @category: Vehicle information + * @unit: 0,1 m/s^2 + * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly). + * +*/ +VerticalAccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE Identifies all the VRU profile types within a cluster. + * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile). + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU, + * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member, + * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member, + * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member. + * + * Otherwise, the corresponding bit shall be set to 0. + * + * @category: VRU information + * @revision: Created in V2.1.1 +*/ +VruClusterProfiles ::= BIT STRING { + pedestrian (0), + bicyclist (1), + motorcyclist (2), + animal (3) +} (SIZE(4)) + +/** + * This DE represents the possible usage conditions of the VRU device. + + * - The value shall be set to: + * - 0 `unavailable` - to indicate that the usage conditions are unavailable, + * - 1 `other` - to indicate that the VRU device is in a state not defined below, + * - 2 `idle` - to indicate that the human is currently not interacting with the device, + * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use, + * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity, + * - 5 `calling` - to indicate that the VRU device is currently receiving a call, + * - 6 `playingGames` - to indicate that the human is playing games, + * - 7 `reading` - to indicate that the human is reading on the VRU device, + * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static. + * - value 9 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruDeviceUsage ::= INTEGER { + unavailable (0), + other (1), + idle (2), + listeningToAudio (3), + typing (4), + calling (5), + playingGames (6), + reading (7), + viewing (8) +}(0..15) + +/** + * This DE represents the possible VRU environment conditions. + * + * - The value shall be set to: + * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable, + * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing, + * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk), + * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk, + * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane, + * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area. + * - value 6 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruEnvironment ::= INTEGER { + unavailable (0), + intersectionCrossing (1), + zebraCrossing (2), + sidewalk (3), + onVehicleRoad (4), + protectedGeographicArea (5) +}(0..15) + +/** + * This DE indicates the status of the possible human control over a VRU vehicle. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `braking` - to indicate that the VRU is braking, + * - 2 `hardBraking` - to indicate that the VRU is braking hard, + * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling, + * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking, + * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard, + * - 6 `noReaction` - to indicate that the VRU is not changing its behavior. + * - 7 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruMovementControl ::= INTEGER { + unavailable (0), + braking (1), + hardBraking (2), + stopPedaling (3), + brakingAndStopPedaling (4), + hardBrakingAndStopPedaling (5), + noReaction (6) +}(0..15) + +/** + * This DE indicates the profile of a pedestrian. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information on is unavailable, + * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies, + * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker, + * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder. + * - value 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfilePedestrian ::= INTEGER { + unavailable (0), + ordinary-pedestrian (1), + road-worker (2), + first-responder (3) +}(0..15) + +/** + * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `bicyclist ` - to indicate a cycle and bicyclist to which no more-specific profile applies, + * - 2 `wheelchair-user` - to indicate a wheelchair and its user, + * - 3 `horse-and-rider` - to indicate a horse and rider, + * - 4 `rollerskater` - to indicate a roller-skater and skater, + * - 5 `e-scooter` - to indicate an e-scooter and rider, + * - 6 `personal-transporter` - to indicate a personal-transporter and rider, + * - 7 `pedelec` - to indicate a pedelec and rider to which no more-specific profile applies, + * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider. + * - 9 `roadbike` - to indicate a road bicycle (or road pedelec) and rider, + * - 10 `childrensbike` - to indicate a children�s bicycle (or children�s pedelec) and rider, + * - 11 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, values 9 and 10 assigned in V2.2.1 + */ +VruSubProfileBicyclist ::= INTEGER { + unavailable (0), + bicyclist (1), + wheelchair-user (2), + horse-and-rider (3), + rollerskater (4), + e-scooter (5), + personal-transporter (6), + pedelec (7), + speed-pedelec (8), + roadbike (9), + childrensbike (10) +}(0..15) + +/** + * This DE indicates the profile of a motorcyclist and corresponding vehicle. + * + * The value shall be set to: + * - 0 `unavailable ` - to indicate that the information is unavailable, + * - 1 `moped` - to indicate a moped and rider, + * - 2 `motorcycle` - to indicate a motorcycle and rider, + * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider, + * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider. + * - 5 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfileMotorcyclist ::= INTEGER { + unavailable (0), + moped (1), + motorcycle (2), + motorcycle-and-sidecar-right (3), + motorcycle-and-sidecar-left (4) +}(0..15) + +/** + * This DE indicates the profile of an animal + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `wild-animal` - to indicate a animal living in the wildness, + * - 2 `farm-animal` - to indicate an animal beloning to a farm, + * - 3 `service-animal` - to indicate an animal that supports a human being. + * - 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfileAnimal ::= INTEGER { + unavailable (0), + wild-animal (1), + farm-animal (2), + service-animal (3) +}(0..15) + +/** + * This DE indicates the approximate size of a VRU including the VRU vehicle used. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1, + * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile, + * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile, + * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile. + * - 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSizeClass ::= INTEGER { + unavailable (0), + low (1), + medium (2), + high (3) +}(0..15) + +/** + * This DE describes the status of the exterior light switches of a VRU. + * + * The value of each bit indicates the state of the switch, which commands the corresponding light. + * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU + * or automatically by a vehicle or VRU system: + * - 0 `unavailable` - indicates no information available, + * - 1 `backFlashLight ` - indicates the status of the back flash light, + * - 2 `helmetLight` - indicates the status of the helmet light, + * - 3 `armLight` - indicates the status of the arm light, + * - 4 `legLight` - indicates the status of the leg light, + * - 5 `wheelLight` - indicates the status of the wheel light. + * - Bits 6 to 8 - are reserved for future use. + * The bit values do not indicate if the corresponding lamps are alight or not. + * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0. + * + * @category: VRU information + * @revision: Created in V2.1.1 + */ +VruSpecificExteriorLights ::= BIT STRING { + unavailable (0), + backFlashLight (1), + helmetLight (2), + armLight (3), + legLight (4), + wheelLight (5) +} (SIZE(8)) + +/** + * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle. + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, + * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres, + * - `127` indicates that the information is unavailable. + * + * @unit 0,1 metre + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +WheelBaseVehicle ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees, + * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, + * - `127` if the confidence value is not available. + * + * + * @unit 0,1 degrees + * @category: GeoReference Information + * @revision: Created in V2.1.1 +*/ +Wgs84AngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + + +/** + * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. + * + * @unit 0,1 degrees + * @category: GeoReference Information + * @revision: Created in V2.1.1 +*/ +Wgs84AngleValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + doNotUse (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6]. + * + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +WMInumber ::= IA5String (SIZE(1..3)) + +/** + * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` . + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable, + * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use, + * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed, + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +WrongWayDrivingSubCauseCode ::= INTEGER { + unavailable (0), + wrongLane (1), + wrongDirection (2) +} (0..255) + +/** + * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `0` if the confidence value is equal to or less than 0,01 degree/second, + * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, + * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, + * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, + * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, + * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, + * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, + * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, + * - `8` if the confidence value is unavailable. + * + * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by + * several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the yaw rate value may be valid and used by the application. + * + * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the + * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} + +/** + * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded + * vehicle. The leading sign denotes the direction of rotation. + * + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, + * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, + and greater than (n-1) x 0,01 degrees/s, + * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, + and greater than (n-1) x 0,01 degrees/s, + * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, + * - `32 767` to indicate that the information is not available. + * + * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. + * The reading instant should be the same as for the vehicle acceleration. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit: 0,01 degree per second. + * @category: Vehicle Information + * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). +*/ +YawRateValue ::= INTEGER { + negativeOutOfRange (-32766), + positiveOutOfRange (32766), + unavailable (32767) +} (-32766..32767) + +---------------------------------------- +-- Specification of CDD Data Frames: +---------------------------------------- + +/** + * This DF represents an acceleration vector with associated confidence value. + * + * It shall include the following components: + * + * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system. + * + * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +Acceleration3dWithConfidence::= CHOICE { + polarAcceleration AccelerationPolarWithZ, + cartesianAcceleration AccelerationCartesian +} + +/** + * This DF represents an acceleration vector in a polar or cylindrical coordinate system. + + * It shall include the following components: + * + * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value. + * + * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value. + * + * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationPolarWithZ::= SEQUENCE{ + accelerationMagnitude AccelerationMagnitude, + accelerationDirection CartesianAngle, + zAcceleration AccelerationComponent OPTIONAL +} + +/** + * This DF represents a acceleration vector in a cartesian coordinate system. + + * It shall include the following components: + * + * @field xAcceleration: the x component of the acceleration vector with the associated confidence value. + * + * @field yAcceleration: the y component of the acceleration vector with the associated confidence value. + * + * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationCartesian::= SEQUENCE{ + xAcceleration AccelerationComponent, + yAcceleration AccelerationComponent, + zAcceleration AccelerationComponent OPTIONAL +} + +/** + * This DF represents an acceleration component along with a confidence value. + * + * It shall include the following components: + * + * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution. + * + * @field confidence: the confidence value associated to the provided value. + * + * @category: Kinematic Information + * @revision: Created in V2.1.1 + */ +AccelerationComponent ::= SEQUENCE { + value AccelerationValue, + confidence AccelerationConfidence +} + +/** + * This DF represents information associated to changes in acceleration. + * + * It shall include the following components: + * + * @field accelOrDecel: the indication of an acceleration change. + * + * @field actionDeltaTime: the period over which the acceleration change action is performed. + * + * @category: Kinematic Information + * @revision: Created in V2.1.1 + */ +AccelerationChangeIndication ::= SEQUENCE { + accelOrDecel AccelerationChange, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents the magnitude of the acceleration vector and associated confidence value. + * + * It shall include the following components: + * + * @field accelerationMagnitudeValue: the magnitude of the acceleration vector. + * + * @field accelerationConfidence: the confidence value of the magnitude value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationMagnitude::= SEQUENCE { + accelerationMagnitudeValue AccelerationMagnitudeValue, + accelerationConfidence AccelerationConfidence +} + +/** + * This DF represents an identifier used to describe a protocol action taken by an ITS-S. + * + * It shall include the following components: + * + * @field originatingStationId: Id of the ITS-S that takes the action. + * + * @field sequenceNumber: a sequence number. + * + * @category: Communication information + * @revision: Created in V2.1.1 based on @ref ActionID. + */ +ActionId ::= SEQUENCE { + originatingStationId StationId, + sequenceNumber SequenceNumber +} + +/** + * This DF represents an identifier used to describe a protocol action taken by an ITS-S. + * + * It shall include the following components: + * + * @field originatingStationId: Id of the ITS-S that takes the action. + * + * @field sequenceNumber: a sequence number. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead. + * @category: Communication information + * @revision: V1.3.1 + */ +ActionID ::= SEQUENCE { + originatingStationId StationID, + sequenceNumber SequenceNumber +} + +/** + * This DF shall contain a list of @ref ActionId. + + * @category: Communication Information + * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1 +*/ +ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId + +/** + * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field altitudeValue: altitude of a geographical point. + * + * @field altitudeConfidence: confidence level of the altitudeValue. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} + +/** + * This DE represents a general container for usage in various types of messages. + * + * It shall include the following components: + * + * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. + * + * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +BasicContainer ::= SEQUENCE { + stationType TrafficParticipantType, + referencePosition ReferencePositionWithConfidence, + ... +} + +/** + * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType . + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF BasicLaneInformation + +/** + * This DF provides basic information about a single lane of a road segment. + * It includes the following components: + * + * @field laneNumber: the number associated to the lane that provides a transversal identification. + * + * @field direction: the direction of traffic flow allowed on the lane. + * + * @field laneWidth: the optional width of the lane. + * + * @field connectingLane: the number of the connecting lane in the next road section, i.e. the number of the lane which the vehicle will use when travelling from one section to the next, + * if it does not actively change lanes. If this component is absent, the lane name number remains the same in the next section. + * + * @field connectingRoadSection: the identifier of the next road section in direction of traffic, that is connecting to the current road section. + * If this component is absent, the connecting road section is the one following the instance where this DF is placed in the @ref RoadConfigurationSectionList. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +BasicLaneInformation::= SEQUENCE{ + laneNumber LanePosition, + direction Direction, + laneWidth LaneWidth OPTIONAL, + connectingLane LanePosition OPTIONAL, + connectingRoadSection RoadSectionId OPTIONAL, + ... +} +((WITH COMPONENTS {..., connectingLane PRESENT}) | + (WITH COMPONENTS {..., connectingLane ABSENT, connectingRoadSection ABSENT})) + +/** + * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angle value which can be estimated as the mean of the current distribution. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Basic information + * @revision: Created in V2.1.1 + */ +CartesianAngle ::= SEQUENCE { + value CartesianAngleValue, + confidence AngleConfidence +} + +/** + * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angular velocity component. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +CartesianAngularVelocityComponent ::= SEQUENCE { + value CartesianAngularVelocityComponentValue, + confidence AngularSpeedConfidence +} + +/** + * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angular acceleration component value. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +CartesianAngularAccelerationComponent ::= SEQUENCE { + value CartesianAngularAccelerationComponentValue, + confidence AngularAccelerationConfidence +} + +/** + * This DF represents a coordinate along with a confidence value in a cartesian reference system. + * + * It shall include the following components: + * + * @field value: the coordinate value, which can be estimated as the mean of the current distribution. + * + * @field confidence: the coordinate confidence value associated to the provided value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateWithConfidence ::= SEQUENCE { + value CartesianCoordinateLarge, + confidence CoordinateConfidence +} + +/** + * This DF represents a position in a two- or three-dimensional cartesian coordinate system. + * + * It shall include the following components: + * + * @field xCoordinate: the X coordinate value. + * + * @field yCoordinate: the Y coordinate value. + * + * @field zCoordinate: the optional Z coordinate value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianPosition3d::=SEQUENCE{ + xCoordinate CartesianCoordinate, + yCoordinate CartesianCoordinate, + zCoordinate CartesianCoordinate OPTIONAL +} + +/** + * This DF represents a position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate. + * + * It shall include the following components: + * + * @field xCoordinate: the X coordinate value with the associated confidence level. + * + * @field yCoordinate: the Y coordinate value with the associated confidence level. + * + * @field zCoordinate: the optional Z coordinate value with the associated confidence level. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianPosition3dWithConfidence::= SEQUENCE{ + xCoordinate CartesianCoordinateWithConfidence, + yCoordinate CartesianCoordinateWithConfidence, + zCoordinate CartesianCoordinateWithConfidence OPTIONAL +} + +/** + * This DF is a representation of the cause code value of a traffic event. + * + * It shall include the following components: + * + * @field causeCode: the main cause of a detected event. + * + * @field subCauseCode: the subordinate cause of a detected event. + * + * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may + * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead. + * + * @category: Traffic information + * @revision: Editorial update in V2.1.1 + */ +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} + +/** + * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. + * + * The following options are available: + * - 0 - reserved for future use, + * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition, + * - 2 - `accident2` - in case the type of event is a road accident, + * - 3 - `roadworks3` - in case the type of event is roadwork, + * - 4 - reserved for future usage, + * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any + * blocking of a road, partial or total, which has not been adequately secured and signposted, + * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion, + * - 7 - `aquaplaning7` - danger of aquaplaning on the road, + * - 8 - reserved for future usage, + * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition, + * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road, + * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road, + * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, + * - 13 - reserved for future usage, + * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way, + * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, + * - 16 - reserved for future usage, + * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition, + * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility, + * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation, + * - 20 - `violence20` - in case the the type of event is human violence on or near the road, + * - 21-25 - reserved for future usage, + * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road, + * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue, + * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, + * - 29-90 - are reserved for future usage, + * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road, + * - 92 - `postCrash92` - in case the type of event is a detected crash, + * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic, + * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle, + * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the + applicable traffic regulations provide it with defined priority rights in traffic. + * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve, + * - 97 - `collisionRisk97` - in case the type of event is a collision risk, + * - 98 - `signalViolation98` - in case the type of event is signal violation, + * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle + * is activated, + * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing. + * - 101-255 - are reserved for future usage. + * + * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2. + * @category: Traffic information + * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1 + */ +CauseCodeChoice::= CHOICE { + reserved0 SubCauseCodeType, + trafficCondition1 TrafficConditionSubCauseCode, + accident2 AccidentSubCauseCode, + roadworks3 RoadworksSubCauseCode, + reserved4 SubCauseCodeType, + impassability5 ImpassabilitySubCauseCode, + adverseWeatherCondition-Adhesion6 AdverseWeatherCondition-AdhesionSubCauseCode, + aquaplaning7 SubCauseCodeType, + reserved8 SubCauseCodeType, + hazardousLocation-SurfaceCondition9 HazardousLocation-SurfaceConditionSubCauseCode, + hazardousLocation-ObstacleOnTheRoad10 HazardousLocation-ObstacleOnTheRoadSubCauseCode, + hazardousLocation-AnimalOnTheRoad11 HazardousLocation-AnimalOnTheRoadSubCauseCode, + humanPresenceOnTheRoad12 HumanPresenceOnTheRoadSubCauseCode, + reserved13 SubCauseCodeType, + wrongWayDriving14 WrongWayDrivingSubCauseCode, + rescueAndRecoveryWorkInProgress15 RescueAndRecoveryWorkInProgressSubCauseCode, + reserved16 SubCauseCodeType, + adverseWeatherCondition-ExtremeWeatherCondition17 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode, + adverseWeatherCondition-Visibility18 AdverseWeatherCondition-VisibilitySubCauseCode, + adverseWeatherCondition-Precipitation19 AdverseWeatherCondition-PrecipitationSubCauseCode, + violence20 SubCauseCodeType, + reserved21 SubCauseCodeType, + reserved22 SubCauseCodeType, + reserved23 SubCauseCodeType, + reserved24 SubCauseCodeType, + reserved25 SubCauseCodeType, + slowVehicle26 SlowVehicleSubCauseCode, + dangerousEndOfQueue27 DangerousEndOfQueueSubCauseCode, + publicTransportVehicleApproaching28 SubCauseCodeType, + reserved29 SubCauseCodeType, + reserved30 SubCauseCodeType, + reserved31 SubCauseCodeType, + reserved32 SubCauseCodeType, + reserved33 SubCauseCodeType, + reserved34 SubCauseCodeType, + reserved35 SubCauseCodeType, + reserved36 SubCauseCodeType, + reserved37 SubCauseCodeType, + reserved38 SubCauseCodeType, + reserved39 SubCauseCodeType, + reserved40 SubCauseCodeType, + reserved41 SubCauseCodeType, + reserved42 SubCauseCodeType, + reserved43 SubCauseCodeType, + reserved44 SubCauseCodeType, + reserved45 SubCauseCodeType, + reserved46 SubCauseCodeType, + reserved47 SubCauseCodeType, + reserved48 SubCauseCodeType, + reserved49 SubCauseCodeType, + reserved50 SubCauseCodeType, + reserved51 SubCauseCodeType, + reserved52 SubCauseCodeType, + reserved53 SubCauseCodeType, + reserved54 SubCauseCodeType, + reserved55 SubCauseCodeType, + reserved56 SubCauseCodeType, + reserved57 SubCauseCodeType, + reserved58 SubCauseCodeType, + reserved59 SubCauseCodeType, + reserved60 SubCauseCodeType, + reserved61 SubCauseCodeType, + reserved62 SubCauseCodeType, + reserved63 SubCauseCodeType, + reserved64 SubCauseCodeType, + reserved65 SubCauseCodeType, + reserved66 SubCauseCodeType, + reserved67 SubCauseCodeType, + reserved68 SubCauseCodeType, + reserved69 SubCauseCodeType, + reserved70 SubCauseCodeType, + reserved71 SubCauseCodeType, + reserved72 SubCauseCodeType, + reserved73 SubCauseCodeType, + reserved74 SubCauseCodeType, + reserved75 SubCauseCodeType, + reserved76 SubCauseCodeType, + reserved77 SubCauseCodeType, + reserved78 SubCauseCodeType, + reserved79 SubCauseCodeType, + reserved80 SubCauseCodeType, + reserved81 SubCauseCodeType, + reserved82 SubCauseCodeType, + reserved83 SubCauseCodeType, + reserved84 SubCauseCodeType, + reserved85 SubCauseCodeType, + reserved86 SubCauseCodeType, + reserved87 SubCauseCodeType, + reserved88 SubCauseCodeType, + reserved89 SubCauseCodeType, + reserved90 SubCauseCodeType, + vehicleBreakdown91 VehicleBreakdownSubCauseCode, + postCrash92 PostCrashSubCauseCode, + humanProblem93 HumanProblemSubCauseCode, + stationaryVehicle94 StationaryVehicleSubCauseCode, + emergencyVehicleApproaching95 EmergencyVehicleApproachingSubCauseCode, + hazardousLocation-DangerousCurve96 HazardousLocation-DangerousCurveSubCauseCode, + collisionRisk97 CollisionRiskSubCauseCode, + signalViolation98 SignalViolationSubCauseCode, + dangerousSituation99 DangerousSituationSubCauseCode, + railwayLevelCrossing100 RailwayLevelCrossingSubCauseCode, + reserved101 SubCauseCodeType, + reserved102 SubCauseCodeType, + reserved103 SubCauseCodeType, + reserved104 SubCauseCodeType, + reserved105 SubCauseCodeType, + reserved106 SubCauseCodeType, + reserved107 SubCauseCodeType, + reserved108 SubCauseCodeType, + reserved109 SubCauseCodeType, + reserved110 SubCauseCodeType, + reserved111 SubCauseCodeType, + reserved112 SubCauseCodeType, + reserved113 SubCauseCodeType, + reserved114 SubCauseCodeType, + reserved115 SubCauseCodeType, + reserved116 SubCauseCodeType, + reserved117 SubCauseCodeType, + reserved118 SubCauseCodeType, + reserved119 SubCauseCodeType, + reserved120 SubCauseCodeType, + reserved121 SubCauseCodeType, + reserved122 SubCauseCodeType, + reserved123 SubCauseCodeType, + reserved124 SubCauseCodeType, + reserved125 SubCauseCodeType, + reserved126 SubCauseCodeType, + reserved127 SubCauseCodeType, + reserved128 SubCauseCodeType + } + +/** + * This DF is an alternative representation of the cause code value of a traffic event. + * + * It shall include the following components: + * + * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code. + + * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. + * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand + * the cause code itself, and is therefore optional. + * + * @category: Traffic information + * @revision: Created in V2.1.1, description amended in V2.2.1 + */ +CauseCodeV2 ::= SEQUENCE { + ccAndScc CauseCodeChoice, + ... +} + +/** + * The DF describes the position of a CEN DSRC road side equipment. + * + * It shall include the following components: + * + * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment. + * + * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. + * + * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment. + * + * @category: Infrastructure information, Communication information + * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId) + */ +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneId ProtectedZoneId OPTIONAL, + ... +} + +/** + * + * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. + * + * It shall include the following components: + * + * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. + * If this component is absent, the externally specified reference position represents the shape's reference point. + * + * @field radius: the radius of the circular area. + * + * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. + * + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +CircularShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + radius StandardLength12b, + height StandardLength12b OPTIONAL +} + +/** + * This DF indicates the opening/closure status of the lanes of a carriageway. + * + * It shall include the following components: + * + * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known. + * It indicates the open/closing status of inner hard shoulder lanes. + * + * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known. + * It indicates the open/closing status of outer hard shoulder lanes. + * + * @field drivingLaneStatus: this information is optional and shall be included if the information is known. + * It indicates the open/closing status of driving lanes. + * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present. + * + * @category: Infrastructure information, Road topology information + * @revision: Description revised in V2.1.1 + */ +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} + +/** + * This DF provides information about the breakup of a cluster. + * + * It shall include the following components: + * + * @field clusterBreakupReason: indicates the reason for breakup. + * + * @field breakupTime: indicates the time of breakup. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterBreakupInfo ::= SEQUENCE { + clusterBreakupReason ClusterBreakupReason, + breakupTime DeltaTimeQuarterSecond, + ... +} + +/** + * This DF provides information about the joining of a cluster. + * + * It shall include the following components: + * + * @field clusterId: indicates the identifier of the cluster. + * + * @field joinTime: indicates the time of joining. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterJoinInfo ::= SEQUENCE { + clusterId Identifier1B, + joinTime DeltaTimeQuarterSecond, + ... +} + +/** + * The DF provides information about the leaving of a cluster. + * + * It shall include the following components: + * + * @field clusterId: indicates the cluster. + * + * @field clusterLeaveReason: indicates the reason for leaving. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterLeaveInfo ::= SEQUENCE { + clusterId Identifier1B, + clusterLeaveReason ClusterLeaveReason, + ... +} + +/** + * This DF represents a column of a lower triangular positive semi-definite matrix and consists of a list of correlation cell values ordered by rows. + * Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1. + * Each column "i" of the lower triangular matrix then contains k-(i-1) values (ordered by rows from 1 to n-1), where "i" refers to the column number count + * starting at 1 from the left. + * + * @category: Sensing Information + * @revision: Created in V2.1.1 +*/ +CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue + +/** + * This DF represents the curvature of the vehicle trajectory and the associated confidence value. + * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. + * + * It shall include the following components: + * + * @field curvatureValue: Detected curvature of the vehicle trajectory. + * + * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} + +/** + * This DF provides a description of dangerous goods being carried by a heavy vehicle. + * + * It shall include the following components: + * + * @field dangerousGoodsType: Type of dangerous goods. + * + * @field unNumber: a 4-digit number that identifies the substance of the dangerous goods as specified in + * United Nations Recommendations on the Transport of Dangerous Goods - Model Regulations [4], + * + * @field elevatedTemperature: whether the carried dangerous goods are transported at high temperature. + * If yes, the value shall be set to TRUE, + * + * @field tunnelsRestricted: whether the heavy vehicle carrying dangerous goods is restricted to enter tunnels. + * If yes, the value shall be set to TRUE, + * + * @field limitedQuantity: whether the carried dangerous goods are packed with limited quantity. + * If yes, the value shall be set to TRUE, + * + * @field emergencyActionCode: physical signage placard at the vehicle that carries information on how an emergency + * service should deal with an incident. This component is optional; it shall be present if the information is available. + * + * @field phoneNumber: contact phone number of assistance service in case of incident or accident. + * This component is optional, it shall be present if the information is available. + * + * @field companyName: name of company that manages the transportation of the dangerous goods. + * This component is optional; it shall be present if the information is available. + * + * @category Vehicle information + * @revision: V1.3.1 + */ +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} + +/** + * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. + * + * It shall include the following components: + * + * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. + * + * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. + * + * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. + * + * @category: GeoReference information + * @revision: V1.3.1 + */ +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} + +/** + * This DF represents a portion of digital map. It shall contain a list of waypoints @ref ReferencePosition. + * + * @category: GeoReference information + * @revision: V1.3.1 + */ +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition + +/** + * + * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred + * on the shape's reference point defined outside of the context of this DF and oriented w.r.t. a + * cartesian coordinate system defined outside of the context of this DF. + * + * It shall include the following components: + * + * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, + * relative to an externally specified reference position. If this component is absent, the + * externally specified reference position represents the shape's reference point. + * + * @field semiMajorAxisLength: half length of the major axis of the ellipse located in the X-Y Plane. + * + * @field semiMinorAxisLength: half length of the minor axis of the ellipse located in the X-Y Plane. + * + * @field orientation: the optional orientation of the major axis of the ellipse, measured with + * positive values turning around the z-axis using the right-hand rule, starting from the X-axis. + * + * @field height: the optional height, present if the shape is a right elliptical cylinder extending + * in the positive Z-axis. + * + * @category: GeoReference information + * @revision: Created in V2.1.1, the type of the field orientation changed and the description revised in V2.2.1 +*/ + +EllipticalShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + semiMajorAxisLength StandardLength12b, + semiMinorAxisLength StandardLength12b, + orientation CartesianAngleValue OPTIONAL, + height StandardLength12b OPTIONAL +} + +/** + * This DF represents the Euler angles which describe the orientation of an object bounding box in a Cartesian coordinate system with an associated confidence level for each angle. + * + * It shall include the following components: + * + * @field zAngle: z-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule, starting from the x-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box before all other rotations. + * + * @field yAngle: optional y-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the y-axis using the right-hand rule, starting from the z-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box after the rotation by zAngle and before the rotation by xAngle. + * + * @field xAngle: optional x-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the x-axis using the right-hand rule, starting from the z-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box after all other rotations. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +EulerAnglesWithConfidence ::= SEQUENCE { + zAngle CartesianAngle, + yAngle CartesianAngle OPTIONAL, + xAngle CartesianAngle OPTIONAL +} + +/** + * + * This DF represents a vehicle category according to the UNECE/TRANS/WP.29/78/Rev.4 [16]. + * The following options are available: + * + * @field euVehicleCategoryL: indicates a vehicle in the L category. + * + * @field euVehicleCategoryM: indicates a vehicle in the M category. + * + * @field euVehicleCategoryN: indicates a vehicle in the N category. + * + * @field euVehicleCategoryO: indicates a vehicle in the O category. + * + * @field euVehicleCategoryT: indicates a vehicle in the T category. + * + * @field euVehicleCategoryG: indicates a vehicle in the G category. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +EuVehicleCategoryCode ::= CHOICE { + euVehicleCategoryL EuVehicleCategoryL, + euVehicleCategoryM EuVehicleCategoryM, + euVehicleCategoryN EuVehicleCategoryN, + euVehicleCategoryO EuVehicleCategoryO, + euVehicleCategoryT NULL, + euVehicleCategoryG NULL +} + +/** + * The DF shall contain a list of @ref EventPoint. + * + * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. + * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. + * + * @category: GeoReference information, Traffic information + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref EventZone instead. + * @revision: Generalized the semantics in V2.1.1 + */ +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint + +/** + * This DF provides information related to an event at a defined position. + * + * It shall include the following components: + * + * @field eventPosition: offset position of a detected event point to a defined position. + * + * @field eventDeltaTime: optional time travelled by the detecting ITS-S since the previous detected event point. + * + * @field informationQuality: Information quality of the detection for this event point. + * + * @category: GeoReference information, Traffic information + * @revision: generalized the semantics in V2.1.1 + */ +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} + +/** + * The DF shall contain a list of @ref EventPoint, where all @ref EventPoint either contain the COMPONENT eventDeltaTime + * or do not contain the COMPONENT eventDeltaTime. + * + * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. + * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. + * + * @category: GeoReference information, Traffic information + * @revision: created in V2.1.1 based on EventHistory + */ +EventZone::= EventHistory + ((WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime PRESENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime ABSENT}))) + +/** + * This DF indicates a geographical position. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical position. + * + * @field longitude: the longitude of the geographical position. + * + * @field altitude: the altitude of the geographical position with default value unavailable. + * +*/ +GeoPosition::= SEQUENCE{ + latitude Latitude, + longitude Longitude, + altitude AltitudeValue DEFAULT unavailable +} + +/** + * This DF represents the top-level DF to represent a lane position. A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * @note: This DF is the most general way to represent a lane position: it provides a complete set of information regarding a transversal (dimensionless) position on the carriageway at a specific + * reference position, i.e. it provides different options and synonyms to represent the lane at which the reference position (the point) is located. A confidence is used to describe the probability + * that the object is located in the provided lane. The dimension of the object or extension of an area are not considered: See @ref OccupiedLanesWithConfidence for describing the occupation of lanes, + * where the dimensions of an object or the extension of an area is considered. + * + * It shall include the following components: + * + * @field lanePositionBased: lane position information for a defined reference position. + * + * @field mapBased: optional lane position information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. + * If present, it shall describe the same reference position using the lane identification in the MAPEM. This component can be used only if a MAPEM is available for the reference position + * (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. + * + * @field confidence: confidence information for expressing the probability that the object is located at the indicated lane. + * If the value of the component lanePositionBased is generated directly from the absolute reference position and reference topology information, + * no sensor shall be indicated in the component usedDetectionInformation of the @ref MetaInformation. + * + * @category: Road Topology information + * @revision: newly created in V2.2.1. The previous DF GeneralizedLanePosition is now renamed to @ref LanePositionOptions. + */ +GeneralizedLanePosition ::= SEQUENCE { + lanePositionBased LanePositionOptions, + mapBased MapPosition OPTIONAL, + confidence MetaInformation, + ... +} + +/** + * This DF represents transversal position information with respect to the road, at an externally defined reference position. It shall contain a set of up to `4` @ref GeneralizedLanePosition. + * Multiple entries can be used to describe several lane positions with the associated confidence, in cases where the reference position cannot be mapped to a single lane. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +GeneralizedLanePositions ::= SEQUENCE (SIZE(1..4)) OF GeneralizedLanePosition + +/** + * This DF represents the Heading in a WGS84 co-ordinates system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field headingValue: the heading value. + * + * @field headingConfidence: the confidence value of the heading value with a predefined confidence level. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead. + * @category: Kinematic Information + * @revision: Description revised in V2.1.1 + */ +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} + + +/** + * This DF provides information associated to heading change indicators such as a change of direction. + * + * It shall include the following components: + * + * @field direction: the direction of heading change value. + * + * @field actionDeltaTime: the period over which a direction change action is performed. + * + * @category: Kinematic Information + * @revision: created in V2.1.1 + */ +HeadingChangeIndication ::= SEQUENCE { + direction TurningDirection, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents a frequency channel + * + * It shall include the following components: + * + * @field centreFrequency: the centre frequency of the channel in 10^(exp+2) Hz (where exp is exponent) + * + * @field channelWidth: width of the channel in 10^exp Hz (where exp is exponent) + * + * @field exponent: exponent of the power of 10 used in the calculation of the components above. + * + * @category: Communication information + * @revision: created in V2.1.1 +*/ +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) +} + +/** + * + * This DF represents a zone inside which the ITS communication should be restricted in order to manage interference. + * + * It shall include the following components: + * + * @field zoneDefinition: contains the geographical definition of the zone. + * + * @field managementInfo: contains interference management information applicable in the zone defined in the component zoneDefinition. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition InterferenceManagementZoneDefinition, + managementInfo InterferenceManagementInfo +} + +/** + * This DF represents the geographical definition of the zone where band sharing occurs. + * + * It shall include the following components: + * + * @field interferenceManagementZoneLatitude: Latitude of the centre point of the interference management zone. + * + * @field interferenceManagementZoneLongitude: Longitude of the centre point of the interference management zone. + * + * @field interferenceManagementZoneId: optional identification of the interference management zone. + * + * @field interferenceManagementZoneShape: shape of the interference management zone placed at the centre point. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, + interferenceManagementZoneLongitude Longitude, + interferenceManagementZoneId ProtectedZoneId OPTIONAL, + interferenceManagementZoneShape Shape + (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL, + ... +} + +/** + * This DF shall contain a list of up to 16 definitions containing interference management information, per affected frequency channels. + * + * @category: Communication information. + * @revision: created in V2.1.1 + */ +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel + + +/** + * This DF contains interference management information for one affected frequency channel. + * + * It shall include the following components: + * + * @field interferenceManagementChannel: frequency channel for which the zone should be applied interference management + * + * @field interferenceManagementZoneType: type of the interference management zone. + * + * @field interferenceManagementMitigationType: optional type of the mitigation to be used in the interference management zone. + * In the case where no mitigation should be applied by the ITS-S, this is indicated by the field interferenceManagementMitigationType being absent. + * + * @field expiryTime: optional time at which the validity of the interference management communication zone will expire. + * This component is present when the interference management is temporarily valid + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType MitigationForTechnologies OPTIONAL, + expiryTime TimestampIts OPTIONAL, + ... +} + +/** + * This DF shall contain a list of up to 16 interference management zones. + * + * **EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone + +/** + * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed. + * It is the duty of that entity to guarantee that the @ref Id is unique within the region. + * + * @field id: the identifier of the intersection + * + * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique. + * @category: Road topology information + * @revision: created in V2.1.1 + */ +IntersectionReferenceId ::= SEQUENCE { + region Identifier2B OPTIONAL, + id Identifier2B +} + +/** + * This DF shall contain a list of waypoints @ref ReferencePosition. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition + +/** + * This DF represents a common message header for application and facilities layer messages. + * It is included at the beginning of an ITS message as the message header. + * + * It shall include the following components: + * + * @field protocolVersion: version of the ITS message. + * + * @field messageId: type of the ITS message. + * + * @field stationId: the identifier of the ITS-S that generated the ITS message. + * + * @category: Communication information + * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. + */ +ItsPduHeader ::= SEQUENCE { + protocolVersion OrdinalNumber1B, + messageId MessageId, + stationId StationId +} + +/** + * This DF provides the reference to the information contained in a IVIM according to ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field serviceProviderId: identifier of the organization that provided the IVIM. + * + * @field iviIdentificationNumber: identifier of the IVIM, as assigned by the organization identified in serviceProviderId. + * + * @category: Communication information + * @revision: Created in V2.2.1 + */ +IvimReference::= SEQUENCE { + serviceProviderId Provider, + iviIdentificationNumber IviIdentificationNumber +} + +/** + * This DF shall contain a list of @ref IvimReference. + * + * @category: Communication information + * @revision: Created in V2.2.1 +*/ +IvimReferences::= SEQUENCE (SIZE(1..8,...)) OF IvimReference + +/** + * This DF indicates a transversal position in resolution of lanes and other associated details. + * + * It shall include the following components: + * + * @field transversalPosition: the transversal position. + * + * @field laneType: the type of the lane identified in the component transversalPosition. By default set to `traffic`. + * + * @field direction: the traffic direction for the lane position relative to a defined reference direction. By default set to `sameDirection`, i.e. following the reference direction. + * + * @category Road topology information + * @revision: direction added in V2.2.1 + */ +LanePositionAndType::= SEQUENCE { + transversalPosition LanePosition, + laneType LaneType DEFAULT traffic, + direction Direction DEFAULT sameDirection, + ... +} + +/** + * This DF represents a set of options to describe a lane position and is the second level DF to represent a lane position. The top-level DFs are @ref GeneralizedLanePosition or @ref OccupiedLanesWithConfidence. + * A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * The following options are available: + * + * @field simplelanePosition: a single lane position without any additional context information. + * + * @field simpleLaneType: a lane type, to be used when the lane position is unknown but the type of lane is known. This can be used in scenarios where a certain confidence about the used lane type is given + * but no or limited knowledge about the absolute lane number is available. For example, a cyclist on a cycle-lane or vehicles on a specific lane that is unique for the part of the road (e.g. a bus lane). + * + * @field detailedlanePosition: a single lane position with additional lane details. + * + * @field lanePositionWithLateralDetails: a single lane position with additional details and the lateral position within the lane. + * + * @field trafficIslandPosition: a position on a traffic island, i.e. between two lanes. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 from the DF GeneralizedLanePosition of V2.1.1. + */ +LanePositionOptions ::= CHOICE { + simplelanePosition LanePosition, + simpleLaneType LaneType, + detailedlanePosition LanePositionAndType, + lanePositionWithLateralDetails LanePositionWithLateralDetails, + trafficIslandPosition TrafficIslandPosition, + ... +} + +/** + * This DF is a third-level DF that represents a lane position and is an extended version of @ref LanePositionAndType that adds the distances to the left and right lane border. + * + * It shall additionally include the following components: + * + * @field distanceToLeftBorder: the distance of the transversal position to the left lane border. The real value shall be rounded to the next lower encoding-value. + * + * @field distanceToRightBorder: the distance of the transversal position to the right lane border. The real value shall be rounded to the next lower encoding-value. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +LanePositionWithLateralDetails ::= SEQUENCE { + COMPONENTS OF LanePositionAndType, + distanceToLeftBorder StandardLength9b, + distanceToRightBorder StandardLength9b, + ... +} + +/** + * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration. + * + * It shall include the following components: + * + * @field lateralAccelerationValue: lateral acceleration value at a point in time. + * + * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} + +/** + * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration. + * + * It shall include the following components: + * + * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time. + + * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category: Vehicle information + * @revision: V1.3.1 + */ +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} + +/** + * This DF represents the estimated position along the longitudinal extension of a carriageway or lane. + * + * It shall include the following components: + * + * @field longitudinalLanePositionValue: the mean value of the longitudinal position along the carriageway or lane w.r.t. an externally defined start position. + * + * @field longitudinalLanePositionConfidence: The confidence value associated to the value. + * + * @category: Road topology information + * @revision: created in V2.1.1, description revised in V2.2.1 + */ +LongitudinalLanePosition ::= SEQUENCE { + longitudinalLanePositionValue LongitudinalLanePositionValue, + longitudinalLanePositionConfidence LongitudinalLanePositionConfidence +} + +/** + * This DF shall contain a list of a lower triangular positive semi-definite matrices. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +LowerTriangularPositiveSemidefiniteMatrices::= SEQUENCE SIZE (1..4) OF LowerTriangularPositiveSemidefiniteMatrix + +/** + * This DF represents a lower triangular positive semi-definite matrix. + * + * It shall include the following components: + * + * @field componentsIncludedIntheMatrix: the indication of which components of a @ref PerceivedObject are included in the matrix. + * This component also implicitly indicates the number n of included components which defines the size (n x n) of the full correlation matrix "A". + * + * @field matrix: the list of cells of the lower triangular positive semi-definite matrix ordered by columns and by rows. + * + * The number of columns to be included "k" is equal to the number of included components "n" indicated by componentsIncludedIntheMatrix minus 1: k = n-1. + * These components shall be included in the order or their appearance in componentsIncludedIntheMatrix. + * Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{ + componentsIncludedIntheMatrix MatrixIncludedComponents, + matrix LowerTriangularPositiveSemidefiniteMatrixColumns +} + +/** + * This DF represents the columns of a lower triangular positive semi-definite matrix, each column not including the main diagonal cell of the matrix. + * Given a matrix "A" of size n x n, the number of @ref CorrelationColumn to be included in the lower triangular matrix is k=n-1. + * + * @category: Sensing information + * @revision: Created in V2.1.1, extension indicator added in V2.2.1 +*/ +LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13,...) OF CorrelationColumn + +/** + * This DF provides information about the configuration of a road section in terms of MAPEM lanes or connections using a list of @ref MapemExtractedElementReference. + + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapemConfiguration::= SEQUENCE(SIZE(1..16,...)) OF MapemElementReference + +/** + * This DF provides references to an element described in a MAPEM according to ETSI TS 103 301 [i.15], such as a lane or connection at a specific intersection or road segment. + * + * It shall include the following components: + * + * @field mapReference: the optional reference to a MAPEM that describes the intersection or road segment. It is absent if the MAPEM topology is known from the context. + * + * @field laneIds: the optional list of the identifiers of the lanes to be referenced. + * + * @field connectionIds: the optional list of the identifiers of the connections to be referenced. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +MapemElementReference::= SEQUENCE { + mapReference MapReference OPTIONAL, + laneIds MapemLaneList OPTIONAL, + connectionIds MapemConnectionList OPTIONAL, + ... +} +((WITH COMPONENTS {..., laneIds PRESENT}) | + (WITH COMPONENTS {..., connectionIds PRESENT })) + +/** + * This DF provides references to MAPEM lanes using a list of @ref Identifier1B. + * + * @category: Road topology information + * @revision: Created in 2.2.1 +*/ +MapemLaneList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B + +/** + * This DF provides references to MAPEM connections using a list of @ref Identifier1B. + * Note: connections are allowed �maneuvers� (e.g. an ingress / egress relation) on an intersection. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapemConnectionList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B + +/** + * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field mapReference: optionally identifies the MAPEM containing the topology information. + * It is absent if the MAPEM topology is known from the context. + * + * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located. + * + * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the + * conflict area of an intersection which connects e.g an ingress with an egress lane. + * + * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection measured from the start of the lane/connection, along the lane. + * + * @category: Road topology information + * @revision: Created in V2.1.1, definition of longitudinalLanePosition amended in V2.2.1 + */ +MapPosition ::= SEQUENCE { + mapReference MapReference OPTIONAL, + laneId Identifier1B OPTIONAL, + connectionId Identifier1B OPTIONAL, + longitudinalLanePosition LongitudinalLanePosition OPTIONAL, + ... +} + ((WITH COMPONENTS {..., laneId PRESENT, connectionId ABSENT }) | + (WITH COMPONENTS {..., laneId ABSENT, connectionId PRESENT })) + +/** + * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15]. + * + * The following options are provided: + * + * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM. + * + * @field intersection: option that identifies the description of an intersection contained in a MAPEM. + * + * @category: Road topology information + * @revision: Created in V2.1.1 + */ +MapReference::= CHOICE { + roadsegment RoadSegmentReferenceId, + intersection IntersectionReferenceId +} + +/** + * This DF shall contain a list of @ref MapReference. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapReferences::= SEQUENCE (SIZE(1..8,...)) OF MapReference + + +/** + * This DE indicates a message rate. + * + * @field mantissa: indicates the mantissa. + * + * @field exponent: indicates the exponent. + * + * The specified message rate is: mantissa*(10^exponent) + * + * @unit: Hz + * @category: Communication information + * @revision: Created in V2.1.1 + */ +MessageRateHz::= SEQUENCE { + mantissa INTEGER (1..100), + exponent INTEGER (-5..2) +} + +/** + * This DF provides information about a message with respect to the segmentation process on facility layer at the sender. + * + * It shall include the following components: + * + * @field totalMsgNo: indicates the total number of messages that have been assembled on the transmitter side to encode the information + * during the same messsage generation process. + * + * @field thisMsgNo: indicates the position of the message within of the total set of messages generated during the same message generation process. + * + * @category: Communication information + * @revision: Created in V2.1.1, description revised in V2.2.1 + */ +MessageSegmentationInfo ::= SEQUENCE { + totalMsgNo CardinalNumber3b, + thisMsgNo OrdinalNumber3b +} + +/** + * This DF provides information about the source of and confidence in information. + * + * It shall include the following components: + * + * @field usedDetectionInformation: the type of sensor(s) that is used to provide the detection information. + * + * @field usedStoredInformation: the type of source of the stored information. + * + * @field confidenceValue: an optional confidence value associated to the information. + * + * @category: Basic information + * @revision: Created in V2.2.1 +*/ +MetaInformation::=SEQUENCE{ + usedDetectionInformation SensorTypes, + usedStoredInformation StoredInformationType, + confidenceValue ConfidenceLevel OPTIONAL, + ... +} + +/** + * This DF shall contain a list of @ref MitigationPerTechnologyClass. + * + * @category: Communication information + * @revision: Created in V2.1.1 +*/ +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass + +/** + * This DF represents a set of mitigation parameters for a specific technology, as specified in ETSI TS 103 724 [24], clause 7. + * + * It shall include the following components: + * + * @field accessTechnologyClass: channel access technology to which this mitigation is intended to be applied. + * + * @field lowDutyCycle: duty cycle limit. + * @unit: 0,01 % steps + * + * @field powerReduction: the delta value of power to be reduced. + * @unit: dB + * + * @field dmcToffLimit: idle time limit as defined in ETSI TS 103 175 [19]. + * @unit: ms + * + * @field dmcTonLimit: Transmission duration limit, as defined in ETSI EN 302 571 [20]. + * @unit: ms + * + * @note: All parameters are optional, as they may not apply to some of the technologies or + * interference management zone types. Specification details are in ETSI TS 103 724 [24], clause 7. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} + +/** + * This DF indicates both the class and associated subclass that best describes an object. + * + * The following options are available: + * + * @field vehicleSubClass: the object is a road vehicle and the specific subclass is specified. + * + * @field vruSubClass: the object is a VRU and the specific subclass is specified. + * + * @field groupSubClass: the object is a VRU group or cluster and the cluster information is specified. + * + * @field otherSubClass: the object is of a different type than the above and the specific subclass is specified. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +ObjectClass ::= CHOICE { + vehicleSubClass TrafficParticipantType (unknown|passengerCar..tram|agricultural), + vruSubClass VruProfileAndSubprofile, + groupSubClass VruClusterInformation + (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}), + otherSubClass OtherSubClass, + ... +} + +/** + * This DF shall contain a list of object classes. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence + +/** + * This DF represents the classification of a detected object together with a confidence level. + * + * It shall include the following components: + * + * @field objectClass: the class of the object. + * + * @field Confidence: the associated confidence level. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectClassWithConfidence ::= SEQUENCE { + objectClass ObjectClass, + confidence ConfidenceLevel +} + +/** + * This DF represents a dimension of an object together with a confidence value. + * + * It shall include the following components: + * + * @field value: the object dimension value which can be estimated as the mean of the current distribution. + * + * @field confidence: the associated confidence value. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectDimension ::= SEQUENCE { + value ObjectDimensionValue, + confidence ObjectDimensionConfidence +} + +/** + * This DF represents a set of lanes which are partially or fully occupied by an object or event at an externally defined reference position. + * + * @note: In contrast to @ref GeneralizedLanePosition, the dimension of the object or event area (width and length) is taken into account to determine the occupancy, + * i.e. this DF describes the lanes which are blocked by an object or event and not the position of the object / event itself. A confidence is used to describe the + * probability that exactly all the provided lanes are occupied. + * + * It shall include the following components: + * + * @field lanePositionBased: a set of up to `4` lanes that are partially or fully occupied by an object or event, ordered by increasing value of @ref LanePosition. + * Lanes that are partially occupied can be described using the component lanePositionWithLateralDetails of @ref Options, with the following constraints: + * The distance to lane borders which are covered by the object / event shall be set to 0. Only the distances to the leftmost and/or rightmost border which are not covered by + * the object / event shall be provided with values > 0. Those values shall be added to the respective instances of @ref LanePositionOptions, i.e. the first entry shall contain the component distanceToLeftBorder > 0 , + * and/or the last entry shall contain the component distanceToRightBorder > 0; the respective other components of these entries shall be set to 0. + * + * @field mapBased: optional lane information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. + * If present, it shall describe the same lane(s) as listed in the component lanePositionBased, but using the lane identification of the MAPEM. This component can be used only if a + * MAPEM is available for the reference position (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. + * + * @field confidence: mandatory confidence information for expressing the probability that all the provided lanes are occupied. It also provides information on how the lane + * information were generated. If none of the sensors were used, the lane information is assumed to be derived directly from the absolute reference position and the related dimension. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +OccupiedLanesWithConfidence::= SEQUENCE { + lanePositionBased SEQUENCE (SIZE(1..4)) OF LanePositionOptions, + mapBased SEQUENCE (SIZE(1..4)) OF MapPosition OPTIONAL, + confidence MetaInformation, + ... +} + +/** + * This DF represents a path with a set of path points. + * It shall contain up to `40` @ref PathPoint. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @category: GeoReference information, Vehicle information + * @revision: created in V2.1.1 based on PathHistory + */ +Path::= SEQUENCE (SIZE(0..40)) OF PathPoint + +/** + * This DF represents estimated/predicted travel time between a position and a predefined reference position. + * + * the following options are available: + * + * @field deltaTimeHighPrecision: delta time with precision of 0,1 s. + * + * @field deltaTimeBigRange: delta time with precision of 10 s. + * + * @category: Basic information + * @revision: Created in V2.2.1 + */ +PathDeltaTimeChoice::= CHOICE { + deltaTimeHighPrecision DeltaTimeTenthOfSecond, + deltaTimeBigRange DeltaTimeTenSeconds, + ... +} + +/** + * This DF represents a path towards a specific point specified in the @ref EventZone. + * + * It shall include the following components: + * + * @field pointOfEventZone: the ordinal number of the point within the DF EventZone, i.e. within the list of EventPoints. + * + * @field path: the associated path towards the point specified in pointOfEventZone. + * The first PathPoint presents an offset delta position with regards to the position of that pointOfEventZone. + * + * @category: GeoReference information + * @revision: Created in V2.2.1 +*/ +PathExtended::= SEQUENCE { + pointOfEventZone INTEGER(1..23), + path Path +} + +/** + * This DF represents a path history with a set of path points. + * It shall contain up to `40` @ref PathPoint. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead. + * @category: GeoReference information, Vehicle information + * @revision: semantics updated in V2.1.1, size corrected to 0..40 in V2.2.1 + */ +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint + +/** + * This DF represents a predicted path or trajectory with a set of predicted points and optional information to generate a shape which is estimated to contain the real path. + * It shall contain up to `16` @ref PathPointPredicted. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @category: GeoReference information + * @revision: created in V2.1.1 , size constraint changed to SIZE(1..16, ...) in V2.2.1 + */ +PathPredicted::= SEQUENCE (SIZE(1..16,...)) OF PathPointPredicted + +/** + * This DF represents a predicted path, predicted trajectory or predicted path zone together with usage information and a prediction confidence. + * + * It shall include the following components: + * + * @field pathPredicted: the predicted path (pathDeltaTime ABSENT) or trajectory (pathDeltaTime PRESENT) and/or the path zone (symmetricAreaOffset PRESENT). + * + * @field usageIndication: an indication of how the predicted path will be used. + * + * @field confidenceLevel: the confidence that the path/trajectory in pathPredicted will occur as predicted. + * + * @category: GeoReference information + * @revision: created in V2.2.1 + */ +PathPredicted2::= SEQUENCE{ + pathPredicted PathPredicted + ((WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset ABSENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset ABSENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset PRESENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset PRESENT}))), + usageIndication UsageIndication, + confidenceLevel ConfidenceLevel, + ... +} + +/** + * This DF represents one or more predicted paths, or trajectories or path zones (zones that include all possible paths/trajectories within its boundaries) using @ref PathPredicted2. + * It shall contain up to `16` @ref PathPredicted2. + * + * @category: GeoReference information + * @revision: V2.2.1 + */ +PathPredictedList ::= SEQUENCE SIZE(1..16,...) OF PathPredicted2 + +/** + * This DF defines an offset waypoint position within a path. + * + * It shall include the following components: + * + * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. + * + * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. + * + * @category GeoReference information + * @revision: semantics updated in V2.1.1 + */ +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} + +/** + * This DF defines a predicted offset position that can be used within a predicted path or trajectory, together with optional data to describe a path zone shape. + * + * It shall include the following components: + * + * @field deltaLatitude: the offset latitude with regards to a pre-defined reference position. + * + * @field deltaLongitude: the offset longitude with regards to a pre-defined reference position. + * + * @field horizontalPositionConfidence: the optional confidence value associated to the horizontal geographical position. + * + * @field deltaAltitude: the optional offset altitude with regards to a pre-defined reference position, with default value unavailable. + * + * @field altitudeConfidence: the optional confidence value associated to the altitude value of the geographical position, with default value unavailable. + * + * @field pathDeltaTime: the optional travel time to the waypoint from the predefined reference position. + + * @field symmetricAreaOffset: the optional symmetric offset to generate a shape, see Annex D for details. + * + * @field asymmetricAreaOffset: the optional asymmetric offset to generate a shape, see Annex D for details. + * + * @category GeoReference information + * @revision: Created in V2.1.1, type of pathDeltaTime changed and optionality added, fields symmetricAreaOffset and asymmetricAreaOffset added in V2.2.1 + */ +PathPointPredicted::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + horizontalPositionConfidence PosConfidenceEllipse OPTIONAL, + deltaAltitude DeltaAltitude DEFAULT unavailable, + altitudeConfidence AltitudeConfidence DEFAULT unavailable, + pathDeltaTime PathDeltaTimeChoice OPTIONAL, + symmetricAreaOffset StandardLength9b OPTIONAL, + asymmetricAreaOffset StandardLength9b OPTIONAL, + ... +} + ((WITH COMPONENTS {..., symmetricAreaOffset ABSENT, asymmetricAreaOffset ABSENT}) | + (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset ABSENT}) | + (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset PRESENT})) + +/** + * This DF represents a list of references to the components of a @ref Traces or @ref TracesExtended DF using the @ref PathId. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +PathReferences ::= SEQUENCE (SIZE(1..14)) OF PathId + +/** + * This DF contains information about a perceived object including its kinematic state and attitude vector in a pre-defined coordinate system and with respect to a reference time. + * + * It shall include the following components: + * + * @field objectId: optional identifier assigned to a detected object. + * + * @field measurementDeltaTime: the time difference from a reference time to the time of the measurement of the object. + * Negative values indicate that the provided object state refers to a point in time before the reference time. + * + * @field position: the position of the geometric centre of the object's bounding box within the pre-defined coordinate system. + * + * @field velocity: the velocity vector of the object within the pre-defined coordinate system. + * + * @field acceleration: the acceleration vector of the object within the pre-defined coordinate system. + * + * @field angles: optional Euler angles of the object bounding box at the time of measurement. + * + * @field zAngularVelocity: optional angular velocity of the object around the z-axis at the time of measurement. + * The angular velocity is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule. + * + * @field lowerTriangularCorrelationMatrices: optional set of lower triangular correlation matrices for selected components of the provided kinematic state and attitude vector. + * + * @field objectDimensionZ: optional z-dimension of object bounding box. + * This dimension shall be measured along the direction of the z-axis after all the rotations have been applied. + * + * @field objectDimensionY: optional y-dimension of the object bounding box. + * This dimension shall be measured along the direction of the y-axis after all the rotations have been applied. + * + * @field objectDimensionX: optional x-dimension of object bounding box. + * This dimension shall be measured along the direction of the x-axis after all the rotations have been applied. + * + * @field objectAge: optional age of the detected and described object, i.e. the difference in time between the moment + * it has been first detected and the reference time of the message. Value `1500` indicates that the object has been observed for more than 1.5s. + * + * @field objectPerceptionQuality: optional confidence associated to the object. + * + * @field sensorIdList: optional list of sensor-IDs which provided the measurement data. + * + * @field classification: optional classification of the described object + * + * @field matchedPosition: optional map-matched position of an object. + * + * @category Sensing information + * @revision: created in V2.1.1 + */ +PerceivedObject ::= SEQUENCE { + objectId Identifier2B OPTIONAL, + measurementDeltaTime DeltaTimeMilliSecondSigned, + position CartesianPosition3dWithConfidence, + velocity Velocity3dWithConfidence OPTIONAL, + acceleration Acceleration3dWithConfidence OPTIONAL, + angles EulerAnglesWithConfidence OPTIONAL, + zAngularVelocity CartesianAngularVelocityComponent OPTIONAL, + lowerTriangularCorrelationMatrices LowerTriangularPositiveSemidefiniteMatrices OPTIONAL, + objectDimensionZ ObjectDimension OPTIONAL, + objectDimensionY ObjectDimension OPTIONAL, + objectDimensionX ObjectDimension OPTIONAL, + objectAge DeltaTimeMilliSecondSigned (0..2047) OPTIONAL, + objectPerceptionQuality ObjectPerceptionQuality OPTIONAL, + sensorIdList SequenceOfIdentifier1B OPTIONAL, + classification ObjectClassDescription OPTIONAL, + mapPosition MapPosition OPTIONAL, + ... +} + +/** + * This DF represents the shape of a polygonal area or of a right prism. + * + * It shall include the following components: + * + * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. + * If this component is absent, the externally specified reference position represents the shape's reference point. + * + * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d. + * All nodes of the polygon shall be considered relative to the shape's reference point. + * + * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis. + * + * @category GeoReference information + * @revision: created in V2.1.1 + * + */ +PolygonalShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)), + height StandardLength12b OPTIONAL +} + +/** + * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a + * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference + * position point for which the position accuracy is evaluated. + * + * It shall include the following components: + * + * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point + * and major axis point of the position accuracy ellipse. + * + * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point + * and minor axis point of the position accuracy ellipse. + * + * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy + * ellipse with regards to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * + * @category GeoReference information + * @revision: V1.3.1 + */ +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} + +/** + * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a + * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference + * position point for which the position accuracy is evaluated. + * + * It shall include the following components: + * + * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point + * and major axis point of the position accuracy ellipse. + * + * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point + * and minor axis point of the position accuracy ellipse. + * + * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy + * ellipse with regards to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * @category GeoReference information + * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse + */ +PositionConfidenceEllipse ::= SEQUENCE { + semiMajorAxisLength SemiAxisLength, + semiMinorAxisLength SemiAxisLength, + semiMajorAxisOrientation Wgs84AngleValue +} + +/** + * This DF shall contain a list of distances @ref PosPillar that refer to the perpendicular distance between centre of vehicle front bumper + * and vehicle pillar A, between neighbour pillars until the last pillar of the vehicle. + * + * Vehicle pillars refer to the vertical or near vertical support of vehicle, + * designated respectively as the A, B, C or D and other pillars moving in side profile view from the front to rear. + * + * The first value of the DF refers to the perpendicular distance from the centre of vehicle front bumper to + * vehicle A pillar. The second value refers to the perpendicular distance from the centre position of A pillar + * to the B pillar of vehicle and so on until the last pillar. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar + +/** + * This DF describes a zone of protection inside which the ITS communication should be restricted. + * + * It shall include the following components: + * + * @field protectedZoneType: type of the protected zone. + * + * @field expiryTime: optional time at which the validity of the protected communication zone will expire. + * + * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone. + * + * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone. + * + * @field protectedZoneRadius: optional radius of the protected communication zone in metres. + * + * @field protectedZoneId: the optional ID of the protected communication zone. + * + * @note: A protected communication zone may be defined around a CEN DSRC road side equipment. + * + * @category: Infrastructure information, Communication information + * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId) + */ +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneId ProtectedZoneId OPTIONAL, + ... +} + +/** + * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU). + * + * It may provide up to 16 protected communication zones information. + * + * @category: Infrastructure information, Communication information + * @revision: V1.3.1 + */ +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone + +/** + * This DF identifies an organization. + * + * It shall include the following components: + * + * @field countryCode: represents the country code that identifies the country of the national registration administrator for issuers according to ISO 14816. + * + * @field providerIdentifier: identifies the organization according to the national ISO 14816 register for issuers. + * + * @note: See https://www.itsstandards.eu/registries/register-of-nra-i-cs1/ for a list of national registration administrators and their respective registers + * + * @category: Communication information + * @revision: Created in V2.2.1 based on ISO 17573-3 [24] + */ +Provider ::= SEQUENCE { + countryCode CountryCode, + providerIdentifier IssuerIdentifier +} + +/** + * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc. + * using a range of activation devices equipped in public transport vehicles. + * + * The activation of the corresponding equipment is triggered by the approach or passage of a public transport + * vehicle at a certain point (e.g. a beacon). + * + * @field ptActivationType: type of activation. + * + * @field ptActicationData: data of activation. + * + * Today there are different payload variants defined for public transport activation-data. The R09.x is one of + * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria) + * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course, + * destination, priority, etc. + * + * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information: + * - Priority Request Information (pre-request, request, ready to start) + * - End of Prioritization procedure + * - Priority request direction + * - Public Transport line number + * - Priority of public transport + * - Route line identifier of the public transport + * - Route number identification + * - Destination of public transport vehicle + * + * Other countries may use different message sets defined by the local administration. + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} + +/** + * This DF describes a radial shape. The circular or spherical sector is constructed by sweeping + * the provided range about the reference position specified outside of the context of this DF or + * about the optional shapeReferencePoint. The range is swept between a horizontal start and a + * horizontal end angle in the X-Y plane of a cartesian coordinate system specified outside of the + * context of this DF, in a right-hand positive angular direction w.r.t. the x-axis. + * A vertical opening angle in the X-Z plane may optionally be provided in a right-hand positive + * angular direction w.r.t. the x-axis. + * + * It shall include the following components: + * + * @field shapeReferencePoint: the optional reference point used for the definition of the shape, + * relative to an externally specified reference position. If this component is absent, the + * externally specified reference position represents the shape's reference point. + * + * @field range: the radial range of the shape from the shape's reference point. + * + * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. + * + * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. + * + * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. + * + * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. + * + * @category GeoReference information + * @revision: created in V2.1.1, names and types of the horizontal opening angles changed, constraint added and description revised in V2.2.1 +*/ +RadialShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + range StandardLength12b, + horizontalOpeningAngleStart CartesianAngleValue, + horizontalOpeningAngleEnd CartesianAngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +} + ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) | + (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT })) + + +/** + * This DF describes a list of radial shapes positioned w.r.t. to an offset position defined + * relative to a reference position specified outside of the context of this DF and oriented w.r.t. + * a cartesian coordinate system specified outside of the context of this DF. + * + * It shall include the following components: + * + * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0). + * + * @field xCoordinate: the x-coordinate of the offset position. + * + * @field yCoordinate: the y-coordinate of the offset position. + * + * @field zCoordinate: the optional z-coordinate of the offset position. + * + * @field radialShapesList: the list of radial shape details. + * + * @category: Georeference information + * @revision: created in V2.1.1, description revised in V2.2.1 + */ +RadialShapes ::= SEQUENCE { + refPointId Identifier1B, + xCoordinate CartesianCoordinateSmall, + yCoordinate CartesianCoordinateSmall, + zCoordinate CartesianCoordinateSmall OPTIONAL, + radialShapesList RadialShapesList +} + +/** + * The DF contains a list of @ref RadialShapeDetails. + * + * @category: Georeference information + * @revision: created in V2.1.1 + */ + +RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails + +/** + * This DF describes radial shape details. The circular sector or cone is + * constructed by sweeping the provided range about the position specified outside of the + * context of this DF. The range is swept between a horizontal start and a horizontal end angle in + * the X-Y plane of a right-hand cartesian coordinate system specified outside of the context of + * this DF, in positive angular direction w.r.t. the x-axis. A vertical opening angle in the X-Z + * plane may optionally be provided in positive angular direction w.r.t. the x-axis. + * + * It shall include the following components: + * + * @field range: the radial range of the sensor from the reference point or sensor point offset. + * + * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. + * + * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. + * + * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. + * + * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. + * + * @category: Georeference information + * @revision: created in V2.1.1, description revised and constraint added in V2.2.1 + */ +RadialShapeDetails ::= SEQUENCE { + range StandardLength12b, + horizontalOpeningAngleStart CartesianAngleValue, + horizontalOpeningAngleEnd CartesianAngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +} + ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) | + (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT })) + +/** + * This DF represents the shape of a rectangular area or a right rectangular prism that is centred + * on a reference position defined outside of the context of this DF and oriented w.r.t. a cartesian + * coordinate system defined outside of the context of this DF. + * + * It shall include the following components: + * + * @field shapeReferencePoint: represents an optional offset point which the rectangle is centred on with + * respect to the reference position. If this component is absent, the externally specified + * reference position represents the shape's reference point. + * + * @field semiLength: represents half the length of the rectangle located in the X-Y Plane. + * + * @field semiBreadth: represents half the breadth of the rectangle located in the X-Y Plane. + * + * @field orientation: represents the optional orientation of the length of the rectangle, + * measured with positive values turning around the Z-axis using the right-hand rule, starting from + * the X-axis. + * + * @field height: represents the optional height, present if the shape is a right rectangular prism + * with height extending in the positive Z-axis. + * + * @category GeoReference information + * @revision: created in V2.1.1, centerPoint renamed to shapeReferencePoint, the type of the field orientation changed and description revised in V2.2.1 + */ +RectangularShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + semiLength StandardLength12b, + semiBreadth StandardLength12b, + orientation CartesianAngleValue OPTIONAL, + height StandardLength12b OPTIONAL +} + +/** + * A position within a geographic coordinate system together with a confidence ellipse. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical point. + * + * @field longitude: the longitude of the geographical point. + * + * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. + * + * @field altitude: the altitude and an altitude accuracy of the geographical point. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref ReferencePositionWithConfidence instead. + * @category: GeoReference information + * @revision: description updated in V2.1.1 + */ +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse, + altitude Altitude +} + +/** + * A position within a geographic coordinate system together with a confidence ellipse. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical point. + * + * @field longitude: the longitude of the geographical point. + * + * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. + * + * @field altitude: the altitude and an altitude accuracy of the geographical point. + * + * @category: GeoReference information + * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. + */ +ReferencePositionWithConfidence ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PositionConfidenceEllipse, + altitude Altitude +} + +/** + * This DF shall contain a list of @ref StationType. to which a certain traffic restriction, e.g. the speed limit, applies. + * + * @category: Infrastructure information, Traffic information + * @revision: V1.3.1 + */ +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType + +/** + * This DF provides configuration information about a road section. + * + * It shall include the following components: + * + * @field roadSectionDefinition: the topological definition of the road section for which the information in the other components applies throughout its entire length. + * + * @field roadType: the optional type of road on which the section is located. + * + * @field laneConfiguration: the optional configuration of the road section in terms of basic information per lane. + * + * @field mapemConfiguration: the optional configuration of the road section in terms of MAPEM lanes or connections. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +RoadConfigurationSection ::= SEQUENCE { + roadSectionDefinition RoadSectionDefinition, + roadType RoadType OPTIONAL, + laneConfiguration BasicLaneConfiguration OPTIONAL, + mapemConfiguration MapemConfiguration OPTIONAL, + ... +} + ((WITH COMPONENTS {..., laneConfiguration PRESENT}) | + (WITH COMPONENTS {..., mapemConfiguration PRESENT})) + +/** + * This DF shall contain a list of @ref RoadConfigurationSection. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +RoadConfigurationSectionList::= SEQUENCE (SIZE(1..8,...)) OF RoadConfigurationSection + +/** + * This DF provides the basic topological definition of a road section. + * + * It shall include the following components: + * + * @field startingPointSection: the position of the starting point of the section. + * + * @field lengthOfSection: the optional length of the section along the road profile (i.e. including curves). + * + * @field endingPointSection: the optional position of the ending point of the section. + * If this component is absent, the ending position is implicitly defined by other means, e.g. the starting point of the next RoadConfigurationSection, or the section�s length. + * + * @field connectedPaths: the identifier(s) of the path(s) having one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. + * + * @field includedPaths: the identifier(s) of the path(s) that covers (either with all its length or with a part of it) a RoadConfigurationSection. + * + * @field isEventZoneIncluded: indicates, if set to TRUE, that the @ref EventZone incl. its reference position covers a RoadConfigurationSection (either with all its length or with a part of it). + * + * @field isEventZoneConnected: indicates, if set to TRUE, that the @ref EventZone incl. its reference position has one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +RoadSectionDefinition::= SEQUENCE { + startingPointSection GeoPosition, + lengthOfSection StandardLength2B OPTIONAL, + endingPointSection GeoPosition OPTIONAL, + connectedPaths PathReferences, + includedPaths PathReferences, + isEventZoneIncluded BOOLEAN, + isEventZoneConnected BOOLEAN, + ... +} + +/** + * This DF represents a unique id for a road segment + * + * It shall include the following components: + * + * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed. + * It is the duty of that entity to guarantee that the @ref Id is unique within the region. + * + * @field id: the identifier of the road segment. + * + * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique. + * @category: GeoReference information + * @revision: created in V2.1.1 + */ +RoadSegmentReferenceId ::= SEQUENCE { + region Identifier2B OPTIONAL, + id Identifier2B +} + +/** + * This DF provides the safe distance indication of a traffic participant with other traffic participant(s). + * + * It shall include the following components: + * + * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S. + * + * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe. + * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe. + * + * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed + * and represented in the nearest 100 ms. This component may be present only if subjectStation is present. + * + * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) + * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 + */ +SafeDistanceIndication ::= SEQUENCE { + subjectStation StationId OPTIONAL, + safeDistanceIndicator SafeDistanceIndicator, + timeToCollision DeltaTimeTenthOfSecond OPTIONAL, + ... +} + +/** + * This DF shall contain a list of DF @ref CartesianPosition3d. + * + * @category: GeoReference information + * @revision: created in V2.1.1 + */ +SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d + +/** + * The DF contains a list of DE @ref Identifier1B. + * + * @category: Basic information + * @revision: created in V2.1.1 +*/ +SequenceOfIdentifier1B ::= SEQUENCE SIZE(1..128, ...) OF Identifier1B + +/** + * The DF contains a list of DF @ref SafeDistanceIndication. + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication + +/** + * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication. + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication + +/** + * This DF provides the definition of a geographical area or volume, based on different options. + * + * It is a choice of the following components: + * + * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box. + * + * @field circular: definition of an area of circular shape or a right circular cylinder. + * + * @field polygonal: definition of an area of polygonal shape or a right prism. + * + * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder. + * + * @field radial: definition of a radial shape. + * + * @field radialList: definition of list of radial shapes. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +Shape::= CHOICE { + rectangular RectangularShape, + circular CircularShape, + polygonal PolygonalShape, + elliptical EllipticalShape, + radial RadialShape, + radialShapes RadialShapes, + ... +} + +/** + * This DF represents the speed and associated confidence value. + * + * It shall include the following components: + * + * @field speedValue: the speed value. + * + * @field speedConfidence: the confidence value of the speed value. + * + * @category: Kinematic information + * @revision: V1.3.1 + */ +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} + +/** + * This DF provides the indication of change in stability. + * + * It shall include the following components: + * + * @field lossProbability: the probability of stability loss. + * + * @field actionDeltaTime: the period over which the the probability of stability loss is estimated. + * + * @category: Kinematic information + * @revision: V2.1.1 + */ +StabilityChangeIndication ::= SEQUENCE { + lossProbability StabilityLossProbability, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents the steering wheel angle of the vehicle at certain point in time. + * + * It shall include the following components: + * + * @field steeringWheelAngleValue: steering wheel angle value. + * + * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} + +/** + * This DF represents one or more paths using @ref Path. + * + * @category: GeoReference information + * @revision: Description revised in V2.1.1. Is is now based on Path and not on PathHistory + */ +Traces ::= SEQUENCE SIZE(1..7) OF Path + +/** + * This DF represents one or more paths using @ref PathExtended. + * + * @category: GeoReference information + * @revision: Created in V2.2.1 + */ +TracesExtended ::= SEQUENCE SIZE(1..7) OF PathExtended + +/** + * Ths DF represents the a position on a traffic island between two lanes. + * + * It shall include the following components: + * + * @field oneSide: represents one lane. + * + * @field otherSide: represents the other lane. + * + * @category: Road Topology information + * @revision: Created in V2.1.1 + */ +TrafficIslandPosition ::= SEQUENCE { + oneSide LanePositionAndType, + otherSide LanePositionAndType, + ... +} + +/** + * This DF provides detailed information about an attached trailer. + * + * It shall include the following components: + * + * @field refPointId: identifier of the reference point of the trailer. + * + * @field hitchPointOffset: optional position of the hitch point in negative x-direction (according to ISO 8855) from the + * vehicle Reference Point. + * + * @field frontOverhang: optional length of the trailer overhang in the positive x direction (according to ISO 8855) from the + * trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer + * is not overhanging to the front with respect to the trailer reference point. + * + * @field rearOverhang: optional length of the trailer overhang in the negative x direction (according to ISO 8855) from the + * trailer Reference Point indicated by the refPointID. + * + * @field trailerWidth: optional width of the trailer. + * + * @field hitchAngle: optional Value and confidence value of the angle between the trailer orientation (corresponding to the x + * direction of the ISO 8855 [21] coordinate system centered on the trailer) and the direction of + * the segment having as end points the reference point of the trailer and the reference point of + * the pulling vehicle, which can be another trailer or a vehicle looking on the horizontal plane + * xy, described in the local Cartesian coordinate system of the trailer. The + * angle is measured with negative values considering the trailer orientation turning clockwise + * starting from the segment direction. The angle value accuracy is provided with the + * confidence level of 95 %. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +TrailerData ::= SEQUENCE { + refPointId Identifier1B, + hitchPointOffset StandardLength1B, + frontOverhang StandardLength1B OPTIONAL, + rearOverhang StandardLength1B OPTIONAL, + trailerWidth VehicleWidth OPTIONAL, + hitchAngle CartesianAngle, + ... +} + +/** + * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss. + * + * It shall include the following components: + * + * @field subjectStation: indicates the subject station. + * + * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory + * with the trajectory of the station indicated in the component subjectStation. + * + * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory + * with the trajectory of the station indicated in the component subjectStation. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionIndication ::= SEQUENCE { + subjectStation StationId OPTIONAL, + trajectoryInterceptionProbability TrajectoryInterceptionProbability, + trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL, + ... +} + +/** + * This DF together with its sub DFs Ext1, Ext2 and the DE Ext3 provides the custom (i.e. not ASN.1 standard) definition of an integer with variable lenght, that can be used for example to encode the ITS-AID. + * + * @category: Basic information + * @revision: Created in V2.1.1 + */ +VarLengthNumber::=CHOICE{ + content [0] INTEGER(0..127), -- one octet length + extension [1] Ext1 + } +Ext1::=CHOICE{ + content [0] INTEGER(128..16511), -- two octets length + extension [1] Ext2 +} +Ext2::=CHOICE{ + content [0] INTEGER(16512..2113663), -- three octets length + extension [1] Ext3 + } +Ext3::= INTEGER(2113664..270549119,...) -- four and more octets length + +/** + * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value. + * + * It shall include the following components: + * + * @field verticalAccelerationValue: vertical acceleration value at a point in time. + * + * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} + +/** + * This DF provides information related to the identification of a vehicle. + * + * It shall include the following components: + * + * @field wMInumber: World Manufacturer Identifier (WMI) code. + * + * @field vDS: Vehicle Descriptor Section (VDS). + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} + +/** + * This DF represents the length of vehicle and accuracy indication information. + * + * It shall include the following components: + * + * @field vehicleLengthValue: length of vehicle. + * + * @field vehicleLengthConfidenceIndication: indication of the length value confidence. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead. + * @category: Vehicle information + * @revision: V1.3.1 + */ +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} + +/** + * This DF represents the length of vehicle and accuracy indication information. + * + * It shall include the following components: + * + * @field vehicleLengthValue: length of vehicle. + * + * @field trailerPresenceInformation: information about the trailer presence. + * + * @category: Vehicle information + * @revision: created in V2.1.1 based on @ref VehicleLength but using @ref TrailerPresenceInformation. + */ +VehicleLengthV2 ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + trailerPresenceInformation TrailerPresenceInformation +} + +/** + * This DF represents a velocity vector with associated confidence value. + * + * The following options are available: + * + * @field polarVelocity: the representation of the velocity vector in a polar or cylindrical coordinate system. + * + * @field cartesianVelocity: the representation of the velocity vector in a cartesian coordinate system. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +Velocity3dWithConfidence::= CHOICE{ + polarVelocity VelocityPolarWithZ, + cartesianVelocity VelocityCartesian +} + +/** + * This DF represents a velocity vector in a cartesian coordinate system. + + * It shall include the following components: + * + * @field xVelocity: the x component of the velocity vector with the associated confidence value. + * + * @field yVelocity: the y component of the velocity vector with the associated confidence value. + * + * @field zVelocity: the optional z component of the velocity vector with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +VelocityCartesian::= SEQUENCE { + xVelocity VelocityComponent, + yVelocity VelocityComponent, + zVelocity VelocityComponent OPTIONAL +} + +/** + * This DF represents a component of the velocity vector and the associated confidence value. + * + * It shall include the following components: + * + * @field value: the value of the component. + * + * @field confidence: the confidence value of the value. + * + * @category: Kinematic information + * @revision: V2.1.1 + */ +VelocityComponent ::= SEQUENCE { + value VelocityComponentValue, + confidence SpeedConfidence +} + +/** + * This DF represents a velocity vector in a polar or cylindrical coordinate system. + * + * It shall include the following components: + * + * @field velocityMagnitude: magnitude of the velocity vector on the reference plane, with the associated confidence value. + * + * @field velocityDirection: polar angle of the velocity vector on the reference plane, with the associated confidence value. + * + * @field zVelocity: the optional z component of the velocity vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +VelocityPolarWithZ::= SEQUENCE { + velocityMagnitude Speed, + velocityDirection CartesianAngle, + zVelocity VelocityComponent OPTIONAL +} + +/** + * This DF provides information about a VRU cluster. + * + * It shall include the following components: + * + * @field clusterId: optional identifier of a VRU cluster. + * + * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box, per default inside an East-North-Up coordinate system + * centered around a reference point defined outside of the context of this DF. + * + * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, e.g. the known members in the cluster + 1 (for the cluster leader) . + * + * @field clusterProfiles: optionally identifies all the VRU profile types that are estimated to be within the cluster. + * if this component is absent it means that the information is unavailable. + * + * @category: VRU information + * @revision: Created in V2.1.1, description revised in V2.2.1 +*/ +VruClusterInformation ::= SEQUENCE { + clusterId Identifier1B OPTIONAL, + clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL, + clusterCardinalitySize CardinalNumber1B, + clusterProfiles VruClusterProfiles OPTIONAL, + ... +} + +/** + * This DF represents the status of the exterior light switches of a VRU. + * This DF is an extension of the vehicular DE @ref ExteriorLights. + * + * It shall include the following components: + * + * @field vehicular: represents the status of the exterior light switches of a road vehicle. + * + * @field vruSpecific: represents the status of the exterior light switches of a VRU. + * + * @category: VRU information + * @revision: created in V2.1.1 + */ +VruExteriorLights ::= SEQUENCE { + vehicular ExteriorLights, + vruSpecific VruSpecificExteriorLights, + ... +} + +/** + * This DF indicates the profile of a VRU including sub-profile information + * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]: + * + * @field pedestrian: VRU Profile 1 - Pedestrian. + * + * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist. + * + * @field motorcyclist: VRU Profile 3 - Motorcyclist. + * + * @field animal: VRU Profile 4 - Animal. + * + * @category: VRU information + * @revision: Created in V2.1.1 + */ +VruProfileAndSubprofile ::= CHOICE { + pedestrian VruSubProfilePedestrian, + bicyclistAndLightVruVehicle VruSubProfileBicyclist, + motorcyclist VruSubProfileMotorcyclist, + animal VruSubProfileAnimal, + ... +} + +/** + * This DF represents an angular component along with a confidence value in the WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field value: the angle value, which can be estimated as the mean of the current distribution. + * + * @field confidence: the confidence value associated to the angle value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +Wgs84Angle ::= SEQUENCE { + value Wgs84AngleValue, + confidence Wgs84AngleConfidence +} + + +/** + * This DF represents a yaw rate of vehicle at a point in time. + * + * It shall include the following components: + * + * @field yawRateValue: yaw rate value at a point in time. + * + * @field yawRateConfidence: confidence value associated to the yaw rate value. + * + * @category: Vehicle Information + * @revision: V1.3.1 + */ +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} + +------------------------------------------ +/** + * ## References: + * 1. ETSI TS 103 900: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2: Specification of Cooperative Awareness Basic Service; Release 2". + * 2. ETSI TS 103 831: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3: Specifications of Decentralized Environmental Notification Basic Service"; Release 2. + * 3. [European Agreement (Applicable as from 1 January 2011): "Concerning the International Carriage of Dangerous Goods by Road"](http://www.unece.org/trans/danger/publi/adr/adr2011/11ContentsE.html). + * 4. [United Nations: "Recommendations on the Transport of Dangerous Goods - Model Regulations", Twelfth revised edition](http://www.unece.org/trans/danger/publi/unrec/12_e.html). + * 5. ETSI TS 101 539-1: "Intelligent Transport Systems (ITS); V2X Applications; Part 1: Road Hazard Signalling (RHS) application requirements specification". + * 6. ISO 3779 (2011-07): "Road vehicles - Vehicle identification number (VIN) Content and structure". + * 7. VDV recommendation 420 (1992): "Technical Requirements for Automatic Vehicle Location / Control Systems - Radio Data Transmission (BON Version) with Supplement 1 and Supplement 2". + * 8. ISO 1176:1990: "Road vehicles - Masses - Vocabulary and codes". + * 9. ETSI TS 103 916 Intelligent Transport Systems (ITS); Parking Availability Service Specification; Release 2 + * 10. void + * 11. void + * 12. ETSI TS 103 300-3: "Intelligent Transport Systems (ITS); Vulnerable Road Users (VRU) awareness; Part 3: Specification of VRU awareness basic service; Release 2" + * 13. ETSI TS 103 724: "Intelligent Transport Systems (ITS); Facilities layer function; Interference Management Zone Message (IMZM); Release 2" + * 14. ETSI TS 102 792: "Intelligent Transport Systems (ITS); Mitigation techniques to avoid interference between European CEN Dedicated Short Range Communication (CEN DSRC) equipment and Intelligent Transport Systems (ITS) operating in the 5 GHz frequency range". + * 15. ETSI TS 103 301: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Facilities layer protocols and communication requirements for infrastructure services; Release 2". + * 16. UNECE/TRANS/WP.29/78/Rev.4: "Consolidated Resolution on the Construction of Vehicles (R.E.3)". + * 17. ETSI EN 302 890-1: "Intelligent Transport Systems (ITS); Facilities layer function; Part 1: Services Announcement (SA) specification". + * 18. ETSI TS 103 300-2 "Intelligent Transport System (ITS); Vulnerable Road Users (VRU) awareness; Part 2: Functional Architecture and Requirements definition; Release 2" + * 19. ETSI TS 103 175: "Intelligent Transport Systems (ITS); Cross Layer DCC Management Entity for operation in the ITS G5A and ITS G5B medium" + * 20. ETSI EN 302 571: "Intelligent Transport Systems (ITS); Radiocommunications equipment operating in the 5 855 MHz to 5 925 MHz frequency band; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU" + * 21. ISO 8855: "Road vehicles - Vehicle dynamics and road-holding ability - Vocabulary". + * 22. ISO 3833: "Road vehicles - Types - Terms and definitions". + * 23. ISO 14816:2015 + Amd1:2019: " Road transport and traffic telematics � Automatic vehicle and equipment identification � Numbering and data structure" + * 24. ISO 17573-3: "Electronic fee collection � System architecture for vehicle-related tolling � Part 3: Data dictionary" + * 25. ISO 3166-1: "Codes for the representation of names of countries and their subdivisions � Part 1: Country code" +*/ + +END + diff --git a/asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn b/asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn new file mode 100644 index 000000000..608543378 --- /dev/null +++ b/asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn @@ -0,0 +1,54 @@ +CPM-OriginatingStationContainers {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationContainers (2) major-version-1 (1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +CartesianAngle, MapReference, Speed, StationType, TrailerData, Wgs84Angle +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-1 (1)} +; + +/** + * This DF represents the Originating Vehicle Container + * + * It shall include the following components: + * + * @field orientationAngle: the angle and angle accuracy of the absolute orientation of the disseminating vehicle in the WGS84 coordinate system with respect to true North. + * + * @field pitchAngle: the optional angle and angle accuracy between the ground plane and the current orientation of the vehicle's x-axis with respect to the ground plane about the y-axis according to the ISO 8855. + * + * @field rollAngle: the optional angle and angle accuracy between the ground plane and the current orientation of a vehicle's y-axis with respect to the ground plane about the x-axis according to the ISO 8855 + * + * @field trailerData: information about the trailer dimensions and orientation in case a trailer is present. + * +*/ +OriginatingVehicleContainer ::= SEQUENCE { + orientationAngle Wgs84Angle, + pitchAngle CartesianAngle OPTIONAL, + rollAngle CartesianAngle OPTIONAL, + trailerDataSet TrailerDataSet OPTIONAL, + ... +} + +/** + * This DF represents the Originating RSU Container. + * + * It shall include the following components: + * + * @field mapReference: identifies the MAPEM containing the topology information reference in the Perceived Object Container + * +*/ +OriginatingRsuContainer ::= SEQUENCE{ + mapReference MapReference OPTIONAL, + ... +} + +/** + * This DF represents a list of trailer data. + * +*/ +TrailerDataSet::= SEQUENCE SIZE(1..8,...) OF TrailerData (WITH COMPONENTS {... ,frontOverhang ABSENT, rearOverhang ABSENT, trailerWidth ABSENT}) + +END diff --git a/asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn b/asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn new file mode 100644 index 000000000..33eb6906c --- /dev/null +++ b/asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn @@ -0,0 +1,171 @@ +CPM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) major-version-1 (1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +ItsPduHeader, MessageRateHz, MessageSegmentationInfo, OrdinalNumber1B, ReferencePosition, StationType, TimestampIts +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-1 (1)} +WITH SUCCESSORS + +OriginatingRsuContainer, OriginatingVehicleContainer +FROM CPM-OriginatingStationContainers {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationContainers (2) major-version-1 (1) minor-version-1(1)} +WITH SUCCESSORS + +SensorInformationContainer +FROM CPM-SensorInformationContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformationContainer (3) major-version-1 (1) minor-version-1(1)} +WITH SUCCESSORS + +PerceptionRegionContainer +FROM CPM-PerceptionRegionContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceptionRegionContainer (5) major-version-1 (1) minor-version-1(1)} +WITH SUCCESSORS + +PerceivedObjectContainer +FROM CPM-PerceivedObjectContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObjectContainer (4) major-version-1 (1) minor-version-1(1)} +WITH SUCCESSORS + +; + +/** + * This DF represents the Collective Perception Message (CPM) and is the top level Protocol Data Unit. + * + * It shall include the following components: + * + * @field header: the common message header for the facilities layer message. + * + * @field payload: the payload of the message. + * +*/ +CollectivePerceptionMessage ::= SEQUENCE { + header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cpm)}), + payload CpmPayload +} + +/** + * This DF represents the payload of the CPM. + * + * It shall include the following components: + * + * @field managementContainer: the management container. + * + * @field cpmContainers: the list of CPM containers, including its container type identifier and including either one or none of originatingVehicleContainer and/or originatingRsuContainer. + * +*/ +CpmPayload ::= SEQUENCE { + managementContainer ManagementContainer, + cpmContainers ConstraintWrappedCpmContainers, + ... +} + +/** + * This DF represents the management container of the CPM. + * The management container provides basic information about the originating ITS-S, which are not specific to a specific type of station. + * + * It shall include the following components: + * + * @field referenceTime: the reference time for all time related information in the CPM. + * + * @field messageRateRange: the planned or expected range of the CPM generation rate. + * + * @field segmentationInfo: information regarding the message segmentation on facility layer. + * + * @field referencePosition: the reference position for all position related information in the CPM. + * +*/ +ManagementContainer ::= SEQUENCE { + referenceTime TimestampIts, + referencePosition ReferencePosition, + segmentationInfo MessageSegmentationInfo OPTIONAL, + messageRateRange MessageRateRange OPTIONAL, + ... +} + +/** + * This information object class is an abstract template to instantiate containers. + * + * It shall include the following components: + * + * @field &id: the identifier of the container type. + * + * @field &Type: the container content. + * +*/ + +CPM-CONTAINER-ID-AND-TYPE ::= CLASS { + &id CpmContainerId UNIQUE, + &Type +} WITH SYNTAX {&Type IDENTIFIED BY &id} + +/** + * This DE represents the identifier of the container type. + * +*/ +CpmContainerId ::= INTEGER (1..16) + +/** + * These value assignements represent specific values of the container type identifier. +*/ +originatingVehicleContainer CpmContainerId ::= 1 +originatingRsuContainer CpmContainerId ::= 2 +sensorInformationContainer CpmContainerId ::= 3 +perceptionRegionContainer CpmContainerId ::= 4 +perceivedObjectContainer CpmContainerId ::= 5 + + +/** + * This information object set represents the association between the container type and the container content. +*/ +CpmContainers CPM-CONTAINER-ID-AND-TYPE ::= { + {OriginatingVehicleContainer IDENTIFIED BY originatingVehicleContainer} | + {OriginatingRsuContainer IDENTIFIED BY originatingRsuContainer} | + {SensorInformationContainer IDENTIFIED BY sensorInformationContainer} | + {PerceptionRegionContainer IDENTIFIED BY perceptionRegionContainer} | + {PerceivedObjectContainer IDENTIFIED BY perceivedObjectContainer}, + ... +} + +/** + * This DF represents a CPM container preceded by its type identifier and a lenght indicator. + * + * It shall include the following components: + * + * @field containerId: the identifier of the container type. + * + * @field containerData: the container content consistent with the container type. + * +*/ +WrappedCpmContainer ::= SEQUENCE { + containerId CPM-CONTAINER-ID-AND-TYPE.&id( {CpmContainers} ), + containerData CPM-CONTAINER-ID-AND-TYPE.&Type( {CpmContainers}{@containerId} ) +} + +/** + * This DF represents a list of CPM containers, each with their type identifier. +*/ +WrappedCpmContainers::= SEQUENCE SIZE(1..8,...) OF WrappedCpmContainer + +/** + * This DF represents a list of CPM containers, each with their type identifier with an additional constraint. +*/ +ConstraintWrappedCpmContainers ::= WrappedCpmContainers + ((WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 1)})) | + (WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 2)}))) + +/** + * This DF represents the planned or expected range of the message generation rate. + * + * It shall include the following components: + * + * @field messageRateMin: the minimum planned or expected message rate. + * + * @field messageRateMax: the maximum planned or expected message rate. + * +*/ +MessageRateRange::= SEQUENCE{ + messageRateMin MessageRateHz, + messageRateMax MessageRateHz +} + +END diff --git a/asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn b/asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn new file mode 100644 index 000000000..2f80e53fb --- /dev/null +++ b/asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn @@ -0,0 +1,34 @@ +CPM-PerceivedObjectContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObjectContainer (4) major-version-1 (1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +CardinalNumber1B, PerceivedObject +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-1 (1)} +; + +/** + * This DF represents the Perceived Object Container + * + * It shall include the following components: + * + * @field numberOfPerceivedObjects: the total number of perceived objects at the time of generating the message. + * + * @field perceivedObjects: the list of perceived objects. + * +*/ +PerceivedObjectContainer ::= SEQUENCE { + numberOfPerceivedObjects CardinalNumber1B, + perceivedObjects PerceivedObjects, + ... +} + +/** @brief Perceived Objects + * This DF provides a list of perceived objects represented in the coordinate system in which the y-axis corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. +*/ +PerceivedObjects::= SEQUENCE SIZE(0..255, ...) OF PerceivedObject (WITH COMPONENTS {... ,objectId PRESENT}) + +END diff --git a/asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn b/asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn new file mode 100644 index 000000000..c0a0e5b03 --- /dev/null +++ b/asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn @@ -0,0 +1,54 @@ +CPM-PerceptionRegionContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceptionRegionContainer (5) major-version-1 (1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +CardinalNumber1B, DeltaTimeMilliSecondSigned, Identifier2B, Shape, ConfidenceLevel, SensorType, SequenceOfIdentifier1B +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-1 (1)} +; + +/** + * This DF represents the Perception Region Container as a list of perception region information objects. +*/ +PerceptionRegionContainer ::= SEQUENCE SIZE(1..256, ...) OF PerceptionRegion + +/** + * This DF represents the actual perception capabilities available to the transmitting ITS-S, offering additional (often dynamic) details to the information provided in the sensor information container. + * + * It shall include the following components: + + * @field measurementDeltaTime: difference between the time of estimation of the perception region and the reference time. Positive values indicates that the provided information refers to a point in time after the reference time. + * + * @field perceptionRegionConfidence: the perception confidence. + * + * @field perceptionRegionShape: specification of the shape of the perception region. + * + * @field shadowingApplies: indicates if the standard shadowing approach applies to the described perception region. + * + * @field sensorIdList: the optional list of identifiers of the sensors which are involved in perceiving the region. + * + * @field numberOfPerceivedObjects: the optional number of perceived objects contained in the perception region specified in the component perceptionRegionShape. + * + * @field perceivedObjectIds: the optional list of identifiers of the objects specified in the Perceived Object Container that are contained in the perception region specified in the component perceptionRegionShape. + * +*/ +PerceptionRegion ::= SEQUENCE { + measurementDeltaTime DeltaTimeMilliSecondSigned, + perceptionRegionConfidence ConfidenceLevel, + perceptionRegionShape Shape, + shadowingApplies BOOLEAN, + sensorIdList SequenceOfIdentifier1B OPTIONAL, + numberOfPerceivedObjects CardinalNumber1B OPTIONAL, + perceivedObjectIds PerceivedObjectIds OPTIONAL, + ... +} + +/** + * This DF represents a list of identifiers of perceived objects. +*/ +PerceivedObjectIds::= SEQUENCE SIZE(0..255, ...) OF Identifier2B + +END diff --git a/asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn b/asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn new file mode 100644 index 000000000..e0c85348f --- /dev/null +++ b/asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn @@ -0,0 +1,47 @@ +CPM-SensorInformationContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformationContainer (3) major-version-1 (1) minor-version-1(1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +Shape, ConfidenceLevel, Identifier1B, SensorType +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-1 (1) } +; + +/** + * This DF represents the Sensor Information Container as a list of information objects about the sensors or data fusion systems from which the station provides information about detected objects. +*/ +SensorInformationContainer ::= SEQUENCE SIZE(1..128, ...) OF SensorInformation + + +/** + * This DF represents the characteristics of a single sensor or data fusion system. + * + * It shall include the following components: + * + * @field sensorId: identifier of the sensor or data fusion system used to relate the perceived object in the Perceived Object Container to the sensor that detected it. + * this identifier shall uniquely identify the sensor inside the CPM, but may be changed from one CPM to the next. + * + * @field sensorType: the type of the sensor. + * + * @field perceptionRegionShape: the perception region of the sensor. + * + * @field perceptionRegionConfidence: the homogeneous perception region confidence that can be assumed for the entire perception region shape of this sensor. + * + * @field shadowingApplies: indicates if the standard shadowing approach applies to the described perception region. + * +*/ + +SensorInformation ::= SEQUENCE { + sensorId Identifier1B, + sensorType SensorType, + perceptionRegionShape Shape OPTIONAL, + perceptionRegionConfidence ConfidenceLevel OPTIONAL, + shadowingApplies BOOLEAN, + ... +} + + +END diff --git a/asn1/release2/TS103324v211/README.md b/asn1/release2/TS103324v211/README.md new file mode 100644 index 000000000..535186cf2 --- /dev/null +++ b/asn1/release2/TS103324v211/README.md @@ -0,0 +1,4 @@ +The TS 103324 v2.1.1 CPM ASN1 files are copied from its [ETSI repository](https://forge.etsi.org/rep/ITS/asn1/cpm_ts103324/-/tree/v2.1.1). +For compatibility with CDD 2.2.1, the CDD import lines are manually patched from "major-version-3" to "major-version-4". + +See [ETSI License](https://forge.etsi.org/rep/ITS/asn1/cpm_ts103324/-/blob/v2.1.1/LICENSE) for copyright details. diff --git a/asn1/release2/TS103831v221-DENM.asn b/asn1/release2/TS103831v221-DENM.asn new file mode 100644 index 000000000..e307cb93a --- /dev/null +++ b/asn1/release2/TS103831v221-DENM.asn @@ -0,0 +1,394 @@ +--! @options: no-fields-header + +DENM-PDU-Description {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) denmPduRelease2 (103831) + major-version-2 (2) minor-version-2 (2)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +ActionId, ActionIdList, CauseCodeV2, ClosedLanes, DangerousGoodsExtended, DeltaReferencePosition, DeltaTimeMilliSecondPositive, DeltaTimeSecond, +EnergyStorageType, EventZone, GeneralizedLanePositions, HeightLonCarr, InformationQuality, ItsPduHeader, IvimReferences, LanePosition, +LightBarSirenInUse, ItineraryPath, MapReferences, MetaInformation, NumberOfOccupants, ObjectFace, OccupiedLanesWithConfidence, PerceivedObject, +Position1d, PosLonCarr, PosCentMass, PositionOfPillars, PositioningSolutionType, PosFrontAx, PositionOfOccupants, PathPredictedList, +RequestResponseIndication, ReferencePosition, RestrictedTypes, RoadConfigurationSectionList, RoadType, StandardLength3b,StandardLength12b, +StationType, Speed, SpeedLimit, StationId, StationarySince, TimestampIts, Traces, TracesExtended, TrafficDirection, TrafficRule, TurningRadius, +Temperature, VehicleMass, VehicleIdentification, Wgs84Angle, WheelBaseVehicle + +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) + major-version-4 (4) minor-version-1 (1)} WITH SUCCESSORS +; + +/** + * This type represents the DENM PDU. + * + * It shall include the following components: + * + * @field header: the header of the DENM PDU. + * + * @field denm: the payload of the DENM PDU. +*/ +DENM ::= SEQUENCE { + header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(denm)}), + denm DenmPayload +} + +/** + * This type represents the DENM payload. + * + * It shall include the following components: + * + * @field management: the Management Container. + * + * @field situation: the optional Situation Container. + * + * @field location: the optional Location Container. + * + * @field alacarte: the optional ALaCarte Container . + * +*/ +DenmPayload ::= SEQUENCE { + management ManagementContainer, + situation SituationContainer OPTIONAL, + location LocationContainer OPTIONAL, + alacarte AlacarteContainer OPTIONAL +} +((WITH COMPONENTS {..., management (WITH COMPONENTS {..., termination ABSENT}), situation PRESENT, location PRESENT}) | + (WITH COMPONENTS {..., management (WITH COMPONENTS {..., termination PRESENT}), situation ABSENT, location ABSENT, alacarte ABSENT})) + +/** + * This type represents the Management Container. + * + * It shall include the following components: + * + * @field actionId: the identifier of the DENM. + * + * @field detectionTime: the time at which the event is detected. + * + * @field referenceTime: the time at which a new DENM, an update DENM or a cancellation DENM is generated + * + * @field termination: the optional termination type of the DENM. + * + * @field eventPosition: the geographical position used in the definition of the awareness area / relevance zone, see clause 6.1.3. + * + * @field awarenessDistance: the optional radius of the circular awareness area, with centre at the event position or at any of the + * event history points as defined in clause 6.1.3.1. + * + * @field trafficDirection: the optional traffic direction along which the receiving ITS-S may encounter the event, + * as defined in clause 6.1.3. + * + * @field validityDuration: the validity duration of a DENM. This component represents a time offset in the unit of second since detectionTime. + * + * @field transmissionInterval: the optional time interval for DENM transmission as defined by the originating ITS-S. + * If the component is not present in DENM, a default value defaultValidity is assumed. + * + * @field stationType: the station type information of the originating ITS-S. + * +*/ +ManagementContainer ::= SEQUENCE { + actionId ActionId, + detectionTime TimestampIts, + referenceTime TimestampIts, + termination Termination OPTIONAL, + eventPosition ReferencePosition, + awarenessDistance StandardLength3b OPTIONAL, + trafficDirection TrafficDirection OPTIONAL, + validityDuration DeltaTimeSecond DEFAULT defaultValidity, + transmissionInterval DeltaTimeMilliSecondPositive OPTIONAL, + stationType StationType, + ... +} + +/** + * This type represents the situation container. + * + * It shall include the following components: + * + * @field informationQuality: the quality level of the information provided by the ITS-S application of the originating ITS-S. + * It indicates the probability of the detected event being truly existent at the event position. + * + * @field eventType: the event type, including direct cause and sub cause. + * + * @field linkedCause: the optional type of a linked event co-existing at the same time and the same place (same event zone), + * including direct cause and sub cause of the linked event, for which no other DENM is sent out. + * + * @field eventZone: an optional list of EventPoint, using the position indicated in the component eventPosition of the Management container + * as the reference position for the first EventPoint. + * + * @field linkedDenms: the optional list of DF ActionId, pointing to DENMs that are semantically connected because applying to consecutive + * event zones at the same time. + * + * @field eventEnd: the end position of the event along the road that is affected by the event w.r.t. the component eventPosition of the + * Management container. This end position is represented by the length of the event along the road. + * +*/ +SituationContainer ::= SEQUENCE { + informationQuality InformationQuality, + eventType CauseCodeV2, + linkedCause CauseCodeV2 OPTIONAL, + eventZone EventZone OPTIONAL, + ..., +[[ linkedDenms ActionIdList OPTIONAL, + eventEnd Position1d OPTIONAL ]] +} + ((WITH COMPONENTS {..., eventZone PRESENT, eventEnd ABSENT}) | + (WITH COMPONENTS {..., eventZone ABSENT, eventEnd PRESENT}) | + (WITH COMPONENTS {..., eventZone ABSENT, eventEnd ABSENT})) + + + +/** + * This type represents the Location Container. + * + * It shall include the following components: + * + * @field eventSpeed: optional speed of a detected dynamic event and the confidence of the speed information. + * + * @field eventPositionHeading: the optional heading of a dynamic event and the confidence of the heading information. + * + * @field detectionZonesToEventPosition: the detection zone information approaching the event position, see clause 6.1.3.3. + * + * @field roadType: the optional road type information at the event position. + * + * @field lanePositions: the optional lane(s) where the event is located, at the position indicated by the component eventPosition + * of the Management container and for a given reference direction. + * + * @field occupiedLanes: the optional lane(s) that are fully or partially occupied by the event, at the position indicated by the + * component eventPosition of the Management container and for a given reference direction. + * + * @field linkedIvims: the optional list of DF IvimReference, pointing to IVIMs that are semantically connected because providing information + * applying to the road segment(s) covered by the components detectionZonesToEventPosition, detectionZonesToSpecifiedEventPoint and + * the SituationContainer component eventZone. + * + * @field linkedMapem: the optional list of DF Mapreference, pointing to MAPEMs that are semantically connected because providing information + * applying to the road segment(s) covered by the component detectionZonesToEventPosition, detectionZonesToSpecifiedEventPoint and + * the SituationContainer component eventZone. + * + * @field detectionZonesToSpecifiedEventPoint: the optional detection zone information approaching towards a + * specified event point, see clause 6.1.3.3. + * + * @field predictedPaths: the optional list of future paths or trajectories that the event may move along or zones that the event may occupy. + * +*/ +LocationContainer ::= SEQUENCE { + eventSpeed Speed OPTIONAL, + eventPositionHeading Wgs84Angle OPTIONAL, + detectionZonesToEventPosition Traces, + roadType RoadType OPTIONAL, + ..., +[[ lanePositions GeneralizedLanePositions OPTIONAL, + occupiedLanes OccupiedLanesWithConfidence OPTIONAL, + linkedIvims IvimReferences OPTIONAL, + linkedMapems MapReferences OPTIONAL, + detectionZonesToSpecifiedEventPoint TracesExtended OPTIONAL, + predictedPaths PathPredictedList OPTIONAL ]] +} + +/** + * This type contains detailed information about the vehicle in which the originating ITS-S is mounted, for mitigating the consequences + * of a collision. + * + * It shall include the following components: + * + * @field heightLonCarrLeft: the height of the left longitudinal carrier of the vehicle from base to top. + * + * @field heightLonCarrRight: the height of the right longitudinal carrier of the vehicle from base to top. + * + * @field posLonCarrLeft: the position of the left longitudinal carrier of vehicle. + * + * @field posLonCarrRight: the position of the right longitudinal carrier of vehicle. + * + * @field positionOfPillars: information about the vertical support of the vehicle in which the originating ITS-S is mounted. It shall be + * included for passenger vehicles only. + * + * @field posCentMass: the position of the centre of mass of the vehicle. + * + * @field wheelBaseVehicle: the wheel base of the vehicle. + * + * @field turningRadius: the turning radius of the vehicle. + * + * @field posFrontAx: the position of the front axle of the vehicle. + * + * @field positionOfOccupants: indicates whether an in-vehicle seat is occupied at the moment of generation of the message. + * + * @field vehicleMass: the mass of the unloaded vehicle + * + * @field requestResponseIndication: indicates whether the originating ITS-S transmitting the impactReduction component is requesting + * the receiving ITS-S to provide also its impactReduction component. + * +*/ +ImpactReductionContainer ::= SEQUENCE { + heightLonCarrLeft HeightLonCarr, + heightLonCarrRight HeightLonCarr, + posLonCarrLeft PosLonCarr, + posLonCarrRight PosLonCarr, + positionOfPillars PositionOfPillars, + posCentMass PosCentMass, + wheelBaseVehicle WheelBaseVehicle, + turningRadius TurningRadius, + posFrontAx PosFrontAx, + positionOfOccupants PositionOfOccupants, + vehicleMass VehicleMass, + requestResponseIndication RequestResponseIndication +} + +/** + * This type contains detailed information about an object with which a vehicle and/or the traffic is likely to collide. + * + * It shall include the following components: + * + * @field perceivedPreCrashObject: information about a perceived object in the East, North, Up reference frame. + * + * @field objectStationId: the optional station Id of the object for which the information is provided. + * + * @field timeToCollision: the optional estimated time to collision of a vehicle with the object. + * + * @field impactSection: indication of the object's section where the impact will most likely occur. + * When the target object is likely to be a vehicle, then this component should be present, otherwise it should not be provided. + * + * @field estimatedBrakingDistance: the optional estimated distance in which the vehicle would need to come to a complete hold, + * if no obstruction was in the way. +*/ +PreCrashContainer ::= SEQUENCE { + perceivedPreCrashObject PerceivedObject, + objectStationId StationId OPTIONAL, + timeToCollision DeltaTimeMilliSecondPositive OPTIONAL, + impactSection ObjectFace OPTIONAL, + estimatedBrakingDistance StandardLength12b OPTIONAL, + ... +} + +/** + * This type contains detailed information about the configuration of road section(s) that are geographically related to the event. + * + * It shall include the following components: + * + * @field roadConfigurationConfidence: information about the source of the road configuration and the confidence in the information. + * + * @field roadConfigurationSectionList: a list of road configuration information per applicable road section. +* +*/ +RoadConfigurationContainer ::= SEQUENCE { + roadConfigurationConfidence MetaInformation, + roadConfigurationSectionList RoadConfigurationSectionList, + ... +} + +/** + * This type contains detailed information of a roadwork zone and specific access conditions. + * + * It shall include the following components: + * + * @field lightBarSirenInUse: optionally indicates whether a roadwork vehicle has switched on the light bar or siren. + * It is used when the roadwork involves a specific roadwork vehicle + * + * @field closedLanes: optionally indicates whether the roadwork has caused the closure of one or several driving lanes. + * Optionally, it may indicate whether a hard shoulder lane is closed to traffic or can be used for specific usage (e.g. for stopping). + * + * @field restriction: the optional type(s) of vehicles that are restricted to access the road work zone. + * More than one vehicle types may be provided by this component if the restriction apply to multiple vehicle types. + * + * @field speedLimit: the optional speed limitation applied to the roadwork zone. + * + * @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. + * + * @field recommendedPath: the optional recommended itinerary in order to contour the roadworks zone. If present, a recommended path + * shall be a list of path points in the order from the starting point closest to the roadworks zone to the end point of the recommended path. + * + * @field startingPointSpeedLimit: the optional effective starting position of a speed limit being applied to the roadwork zone, + * with respect to the component eventPosition on the Management Container. + * This component shall be present if the speed limit is applied at a certain distance prior to the roadwork zone starting position. + * + * @field trafficFlowRule: optionally indicates the side of the road to which the traffic should flow around a roadwork. + * + * @field referenceDenms: an optional sequence of actionIds for different DENMs that describe the same event. + * If it is available, it indicates the actionIds of all other DENMs describing this event. + * +*/ +RoadWorksContainerExtended ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse OPTIONAL, + closedLanes ClosedLanes OPTIONAL, + restriction RestrictedTypes OPTIONAL, + speedLimit SpeedLimit OPTIONAL, + incidentIndication CauseCodeV2 OPTIONAL, + recommendedPath ItineraryPath OPTIONAL, + startingPointSpeedLimit DeltaReferencePosition OPTIONAL, + trafficFlowRule TrafficRule OPTIONAL, + referenceDenms ActionIdList OPTIONAL +} + +/** + * This type contains detailed information about a stationary vehicle. + * + * It shall include the following components: + * + * @field stationarySince: the optional time duration of the stationary vehicle being stationary. + * + * @field stationaryCause: optional additional information to describe causes of the stationary vehicle event such as human problem. + * + * @field carryingDangerousGoods: optional information on the type of dangerous goods, the required emergency action and other information. + * + * @field numberOfOccupants: the optional estimated number of occupants involved in the stationary vehicle event. + * + * @field vehicleIdentification: the optional identification of the stationary vehicle. + * + * @field energyStorageType: the optional vehicle energy storage type information of the stationary vehicle, such as electric, diesel, etc. + * +*/ +StationaryVehicleContainer ::= SEQUENCE { + stationarySince StationarySince OPTIONAL, + stationaryCause CauseCodeV2 OPTIONAL, + carryingDangerousGoods DangerousGoodsExtended OPTIONAL, + numberOfOccupants NumberOfOccupants OPTIONAL, + vehicleIdentification VehicleIdentification OPTIONAL, + energyStorageType EnergyStorageType OPTIONAL +} + +/** + * This type represents the A La Carte Container. + * + * It shall include the following components: + * + * @field lanePosition: the optional lane position of the event. + * + * @field impactReduction: optional vehicle data for collision mitigation. + * + * @field externalTemperature: optional the ambient temperature at the event position. + * + * @field roadWorks: optional information of the roadwork zone. + * + * @field positioningSolution: optionally indicates the technical solution being used by the originating ITS-S to estimate the event position. + * + * @field stationaryVehicle: optional information about a stationary vehicle. + * + * @field roadConfiguration: optional information about the configuration of the road. + * + * @field precrash: the optional information about perceived objects that represent hazards and/or could be subject of collisions. + * +*/ +AlacarteContainer ::= SEQUENCE { + lanePosition LanePosition OPTIONAL, + impactReduction ImpactReductionContainer OPTIONAL, + externalTemperature Temperature OPTIONAL, + roadWorks RoadWorksContainerExtended OPTIONAL, + positioningSolution PositioningSolutionType OPTIONAL, + stationaryVehicle StationaryVehicleContainer OPTIONAL, + ..., +[[ roadConfiguration RoadConfigurationContainer OPTIONAL, + preCrash PreCrashContainer OPTIONAL ]] +} + +/** + * This type specifies the default value for DENM validity duration used for DENM protocol operation. +*/ +defaultValidity INTEGER ::= 600 + +/** + * This indicates the termination type of generated DENM, i.e. if it is a cancellation DENM or a negation DENM +*/ + +Termination ::= ENUMERATED {isCancellation(0), isNegation (1)} + +END diff --git a/asn1/release2/TS103900v211-CAM.asn b/asn1/release2/TS103900v211-CAM.asn new file mode 100644 index 000000000..97add3ac7 --- /dev/null +++ b/asn1/release2/TS103900v211-CAM.asn @@ -0,0 +1,336 @@ +CAM-PDU-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) camPduRelease2 (103900) major-version-2 (2) minor-version-1 (1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS +ItsPduHeader, CauseCodeV2, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, Heading, LanePosition, EmergencyPriority, EmbarkationStatus, Speed, +DriveDirection, AccelerationComponent, StationType, ExteriorLights, DangerousGoodsBasic, SpecialTransportType, LightBarSirenInUse, +VehicleRole, VehicleLength, VehicleWidth, Path, RoadworksSubCauseCode, ClosedLanes, TrafficRule, SpeedLimit, SteeringWheelAngle, PerformanceClass, YawRate, +PtActivation, ProtectedCommunicationZonesRSU, CenDsrcTollingZone, GenerationDeltaTime, BasicContainer + +FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)} WITH SUCCESSORS +; + + +-- The root data frame for cooperative awareness messages + +/** +* This type represents the CAM PDU. +* +* It shall include the following componenets: +* +* @field header: the header of the CAM PDU. +* +* @field cam: the payload of the CAM PDU. +*/ + +CAM ::= SEQUENCE { + header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cam)}), + cam CamPayload +} + +/** +* This type represents the CAM payload. +* +* It shall include the following components: +* +* @field generationDeltaTime: Time corresponding to the time of the reference position in the CAM, considered as time of the CAM generation. +* +* @field camParameters: The sequence of CAM mandatory and optional container. +* +*/ +CamPayload ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + camParameters CamParameters +} + +/** +* @field basicContainer: the mandatory basic container of the CAM. +* +* @field highFrequencyContainer: the mandatory container represents the high frequency of the CAM. +* +* @field lowFrequencyContainer: the optional conatainer represents the low frequency of the CAM. +* +* @field specialVehicleContainer: The special container of the CAM shall be present as defined in clause 6.1.2. +* The content of the container shall be set according to the value of the vehicleRole component as specified in Table 5. +*/ +CamParameters ::= SEQUENCE { + basicContainer BasicContainer, + highFrequencyContainer HighFrequencyContainer, + lowFrequencyContainer LowFrequencyContainer OPTIONAL, + specialVehicleContainer SpecialVehicleContainer OPTIONAL, + ... +} + +/** +* This type represents the high frequency container. +* +* It shall include the following components: +* +* @field basicVehicleContainerHighFrequency: The mandatory high frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. +* +* @field rsuContainerHighFrequency: The mandatory high frequency container of CAM when the type of the originating ITS-S is RSU ITS-S. +*/ +HighFrequencyContainer ::= CHOICE { + basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, + rsuContainerHighFrequency RSUContainerHighFrequency, + ... +} + +/** +* This type represents the low frequency container. +* +* It shall include the following components: +* +* The low frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. It shall be present as defined in clause 6.1.2. +*/ + LowFrequencyContainer ::= CHOICE { + basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, + ... +} + +/** +* This type represent the Special Vehicle Container. +* +* It shall include the following components: +* +* @field publicTransportContainer: If the vehicleRole component is set to publicTransport(1) this container shall be present. +* +* @field specialTransportContainer: If the vehicleRole component is set to specialTransport(2) this container shall be present. +* +* @field dangerousGoodsContainer: If the vehicleRole component is set to dangerousGoods(3) this container shall be present. +* +* @field roadWorksContainerBasic: If the vehicleRole component is set to roadWork(4) this container shall be present. +* +* @field rescueContainer: If the vehicleRole component is set to rescue(5) this container shall be present. +* +* @field emergencyContainer: If the vehicleRole component is set to emergency(6) this container shall be present. +* +* @field safetyCarContainer: If the vehicleRole component is set to safetyCar(7) this container shall be present. +*/ +SpecialVehicleContainer ::= CHOICE { + publicTransportContainer PublicTransportContainer, + specialTransportContainer SpecialTransportContainer, + dangerousGoodsContainer DangerousGoodsContainer, + roadWorksContainerBasic RoadWorksContainerBasic, + rescueContainer RescueContainer, + emergencyContainer EmergencyContainer, + safetyCarContainer SafetyCarContainer, + ... +} + +/** +* This type contains detaild information of the Basic Vehicle Container High Frequency. +* +* It shall include the following components: +* +* @field heading: It represent the heading and heading accuracy of the vehicle movement of the originating ITS-S with regards to the true north. +* The heading accuracy provided in the heading Confidence value shall provide the accuracy of the measured vehicle heading with a confidence level +* of 95 %. Otherwise, the value of the headingConfidence shall be set to unavailable. +* +* @field speed: It represent driving speed and speed accuracy of the originating ITS-S. The speed accuracy provided in the speedConfidence shall +* provide the accuracy of the speed value with a confidence level of 95 %. Otherwise, the speedConfidence shall be set to unavailable. +* +* @field driveDirection: This component represent the vehicle drive direction (forward or backward) of the originating ITS-S. +* +* @field vehicleLength: This component represent the vehicle length value and vehicle length confidence indication of the vehicle ITS-S that +* originate the CAM. +* +* @field vehicleWidth: This component represents the Vehicle Width of the vehicle ITS-S that originates the CAM excluding side mirrors and possible +* similar extensions. +* +* @field longitudinalAcceleration: It represent the vehicle Longitudinal Acceleration of the originating ITS-S in the centre of the mass of the +* empty vehicle. It shall include the measured vehicle longitudinal acceleration and its accuracy value with the confidence level of 95 %. +* Otherwise, the longitudinalAccelerationConfidence shall be set to unavailable. +* +* @field curvature: this component reppresent the actual trajectory of the vehicle. +* +* @field curvatureCalculationMode: It indicates whether vehicle yaw-rate is used in the calculation of the curvature of the vehicle ITS-S that +* originates the CAM. +* +* @field yawRate: It denotes the vehicle rotation around the centre of mass of the empty vehicle. The leading sign denotes the direction of +* rotation. The value is negative if the motion is clockwise when viewing from the top. +* yawRateConfidence denotes the accuracy for the 95 % confidence level for the measured yawRateValue. Otherwise, the value of yawRateConfidence +* shall be set to unavailable. +* +* @field accelerationControl: an optional component which represents the current status of the vehcile mechnanisms controlling the longitudinal movement of the vehcile ITS-S +* (e.g. brake pedal, gas pedal, etc. engaged) that originate the CAM. +* +* @field lanePosition: an optional component which represents the lanePosition of the referencePosition of a vehicle. This component shall be present if the data is +* available at the originating ITS-S. +* +* @field steeringWheelAngle: an optional component which indicates the steering wheel angle and accuracy as measured at the vehicle ITS-S that originates the CAM. +* +* @field lateralAcceleration: an optional component which represents the vehicle lateral acceleration of the originating ITS-S in the centre of the mass of the empty vehicle. +* It shall include the measured vehicle lateral acceleration and its accuracy value with the confidence level of 95%. +* +* @field verticalAcceleration: an optional component which indicates the originating ITS-S in the centre of the mass of the empty vehicle. +* +* @field performanceClass: an optional component characterizes the maximum age of the CAM data elements with regard to the generation delta time. +* +* @field cenDsrcTollingZone: an optional component which represents the information about the position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency band. +*/ +BasicVehicleContainerHighFrequency ::= SEQUENCE { + heading Heading, + speed Speed, + driveDirection DriveDirection, + vehicleLength VehicleLength, + vehicleWidth VehicleWidth, + longitudinalAcceleration AccelerationComponent, + curvature Curvature, + curvatureCalculationMode CurvatureCalculationMode, + yawRate YawRate, + accelerationControl AccelerationControl OPTIONAL, + lanePosition LanePosition OPTIONAL, + steeringWheelAngle SteeringWheelAngle OPTIONAL, + lateralAcceleration AccelerationComponent OPTIONAL, + verticalAcceleration AccelerationComponent OPTIONAL, + performanceClass PerformanceClass OPTIONAL, + cenDsrcTollingZone CenDsrcTollingZone OPTIONAL +} + +/** +* This type contains detaild information of the Basic Vehicle Container Low Frequency. +* +* It shall include the following components: +* +* @field vehicleRole: represent the role of the vehicle ITS-S that originates the CAM. Only values 0 to 7 shall be used. +* +* @field exteriorLights: represent the status of the most important exterior lights switches of the vehicle ITS-S that originates the CAM. +* +* @field pathHistory: which represents the vehicle's recent movement over some past time and/or distance. It consists of a list of path points, +* each represented as DF PathPoint. The list of path points may consist of up to 23 elements. +*/ +BasicVehicleContainerLowFrequency ::= SEQUENCE { + vehicleRole VehicleRole, + exteriorLights ExteriorLights, + pathHistory Path (SIZE (0..23)) +} + +/** +* This type contains detaild information of the Public Transport Container. +* +* It shall include the following components: +* +* @field embarkationStatus: It indicates whether the passenger embarkation is currently ongoing. +* +* @field ptActivation: an optional component used for controlling traffic lights, barriers, bollards, etc. +*/ +PublicTransportContainer ::= SEQUENCE { + embarkationStatus EmbarkationStatus, + ptActivation PtActivation OPTIONAL +} + +/** +* This type contains detaild information of the Special Transport Container. +* +* It shall include the following components: +* +* @field specialTransportType: which indicates whether the originating ITS-S is mounted on a special transport vehicle with heavy or oversized load +* or both. It shall be present if the data is available in originating ITS-S. +* +* @field lightBarSirenInUse: indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +*/ +SpecialTransportContainer ::= SEQUENCE { + specialTransportType SpecialTransportType, + lightBarSirenInUse LightBarSirenInUse +} + +/** +* This type contains detaild information of the Dangerous Goods Container. +* +* It shall include the following components: +* +* @field dangerousGoodsBasic: identifies the type of the dangerous goods transported by the vehicle that originates the CAM. It shall be present if +* the data is available in the originating ITS S. +*/ + DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } + + /** +* This type contains detaild information of the Road Works Container Basic. +* +* It shall include the following components: +* +* @field roadworksSubCauseCode: The optional component, in case the originating ITS-S is mounted to a vehicle ITS-S participating to roadwork. It +* provides information on the type of roadwork that it is currently undertaking. This component shall be present if the data is available in +* originating ITS S. +* +* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +* +* @field closedLanes: an optional component which provides information about the opening/closure status of the lanes ahead. Lanes are counted from +* the outside boarder of the road. If a lane is closed to traffic, the corresponding bit shall be set to 1. +*/ + RoadWorksContainerBasic ::= SEQUENCE { + roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, + lightBarSirenInUse LightBarSirenInUse, + closedLanes ClosedLanes OPTIONAL + } + +/** +* This type contains detaild information of the Rescue Container. +* +* It shall include the following components: +* +* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +*/ +RescueContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse +} + +/** +* This type contains detaild information of the Emergency Container. +* +* It shall include the following components: +* +* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +* +* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +* +* @field emergencyPriority: the optional component represent right of way indicator of the vehicle ITS-S that originates the CAM PDU. +*/ +EmergencyContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCodeV2 OPTIONAL, + emergencyPriority EmergencyPriority OPTIONAL +} + +/** +* This type contains detaild information of the Safety Car Container. +* +* It shall include the following components: +* +* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +* +* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +* +* @field trafficRule: an optional rule indicates whether vehicles are allowed to overtake a safety car that is originating this CAM. +* +* @field speedLimit: an optional speed indicates whether a speed limit is applied to vehicles following the safety car. +*/ +SafetyCarContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCodeV2 OPTIONAL, + trafficRule TrafficRule OPTIONAL, + speedLimit SpeedLimit OPTIONAL +} + +/** +* This type contains detaild information of the RSU Container High Frequency. +* +* It shall include the following components: +* +* @field protectedCommunicationZonesRSU: an optional Information about position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency +* band. If this information is provided by RSUs a receiving vehicle ITS-S is prepared to adopt mitigation techniques when being in the vicinity of +* CEN DSRC tolling stations. + +*/ +RSUContainerHighFrequency ::= SEQUENCE { + protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, + ... +} + +END diff --git a/vanetza/asn1/CMakeLists.txt b/vanetza/asn1/CMakeLists.txt index 1ca4b912f..c40eea469 100644 --- a/vanetza/asn1/CMakeLists.txt +++ b/vanetza/asn1/CMakeLists.txt @@ -1,8 +1,10 @@ set(_its_asn1_source_file "asn1c_its_sources.txt") +set(_its_r2_asn1_source_file "asn1c_its_r2_sources.txt") set(_sec_asn1_source_file "asn1c_security_sources.txt") set(_support_asn1_source_file "asn1c_support_sources.txt") set(_its_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/its") +set(_its_r2_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/its/r2") set(_sec_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/security") set(_support_asn1_dir "${CMAKE_CURRENT_SOURCE_DIR}/support") @@ -29,6 +31,17 @@ if(VANETZA_ASN1_WITH_ASN1C) ${PROJECT_SOURCE_DIR}/asn1/TS103301v211-IVIM.asn ) + set(_its_r2_asn1_files + ${PROJECT_SOURCE_DIR}/asn1/release2/TS102894-2v221-CDD.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103831v221-DENM.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103900v211-CAM.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn + ${PROJECT_SOURCE_DIR}/asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn + ) + option(VANETZA_ASN1_WITH_ISO "Fetch ISO ASN.1 files for a more complete ITS message set" OFF) if(VANETZA_ASN1_WITH_ISO) set(_iso_asn1_files @@ -84,6 +97,20 @@ if(VANETZA_ASN1_WITH_ASN1C) -P collect_asn1c_sources.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM) + add_custom_command(OUTPUT ${_its_r2_asn1_dir} + DEPENDS ${_its_r2_asn1_files} + COMMAND ${CMAKE_COMMAND} -E make_directory ${_its_r2_asn1_dir} + COMMAND ${ASN1C_EXECUTABLE} ${_asn1c_flags} -fprefix=Vanetza_ITS2_ -R -D ${_its_r2_asn1_dir} ${_its_r2_asn1_files} + COMMAND ${CMAKE_COMMAND} -DASN1C_OUTPUT_DIR=its/r2 -DASN1C_PREFIX=Vanetza_ITS2_ + -P ${CMAKE_CURRENT_SOURCE_DIR}/remove_prefix_from_filename.cmake + COMMENT "Generating code from ITS Release 2 application ASN.1 modules (CDD, CA, DEN)" VERBATIM + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + add_custom_command(OUTPUT "${_its_r2_asn1_source_file}" + DEPENDS ${_its_r2_asn1_dir} + COMMAND ${CMAKE_COMMAND} -DASN1C_OUTPUT_DIR=its/r2 -DASN1C_SOURCE_FILE=${_its_r2_asn1_source_file} + -P collect_asn1c_sources.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM) + add_custom_command(OUTPUT "${_sec_asn1_dir}" DEPENDS ${_sec_asn1_files} ${_pki_asn1_files} COMMAND ${CMAKE_COMMAND} -E make_directory ${_sec_asn1_dir} @@ -101,6 +128,7 @@ if(VANETZA_ASN1_WITH_ASN1C) add_custom_target(generate_asn1c DEPENDS "${_support_asn1_dir}" "${_support_asn1_source_file}" "${_its_asn1_dir}" "${_its_asn1_source_file}" + "${_its_r2_asn1_dir}" "${_its_r2_asn1_source_file}" "${_sec_asn1_dir}" "${_sec_asn1_source_file}" VERBATIM) add_custom_command(TARGET generate_asn1c POST_BUILD @@ -113,6 +141,11 @@ if(VANETZA_ASN1_WITH_ASN1C) -P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake COMMENT "Patching generated ITS application asn1c files" WORKING_DIRECTORY ${_its_asn1_dir} VERBATIM) + add_custom_command(TARGET generate_asn1c POST_BUILD + COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_ITS2_ + -P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake + COMMENT "Patching generated ITS Release 2 asn1c files" + WORKING_DIRECTORY ${_its_r2_asn1_dir} VERBATIM) add_custom_command(TARGET generate_asn1c POST_BUILD COMMAND ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DASN1C_PREFIX=Vanetza_Security_ -P ${CMAKE_CURRENT_SOURCE_DIR}/patch_asn1c_generated.cmake @@ -141,6 +174,10 @@ if(VANETZA_ASN1_WITH_ASN1C) -DASN1C_OUTPUT_DIR=${_its_asn1_dir} -DASN1C_SOURCE_FILE=${_its_asn1_source_file} -P clean_asn1c.cmake + COMMAND ${CMAKE_COMMAND} + -DASN1C_OUTPUT_DIR=${_its_r2_asn1_dir} + -DASN1C_SOURCE_FILE=${_its_r2_asn1_source_file} + -P clean_asn1c.cmake COMMAND ${CMAKE_COMMAND} -DASN1C_OUTPUT_DIR=${_sec_asn1_dir} -DASN1C_SOURCE_FILE=${_sec_asn1_source_file} @@ -150,7 +187,8 @@ if(VANETZA_ASN1_WITH_ASN1C) endif() function(add_asn1_component NAME) - set(_source_file "asn1c_${NAME}_sources.txt") + string(REPLACE "/" "_" NAME_ESCAPED "${NAME}") + set(_source_file "asn1c_${NAME_ESCAPED}_sources.txt") file(STRINGS "${_source_file}" _sources REGEX "^[^#]+") if (NOT _sources) message(AUTHOR_WARNING "source file ${_source_file} is empty, fix this now!") @@ -158,8 +196,8 @@ function(add_asn1_component NAME) "#error \"generated ${NAME} ASN.1 source files are missing\"") set(_sources ${CMAKE_CURRENT_BINARY_DIR}/asn1_${NAME}_no_sources.c) endif() - add_vanetza_component(asn1_${NAME} ${_sources}) - set_target_properties(asn1_${NAME} PROPERTIES C_STANDARD 11) + add_vanetza_component(asn1_${NAME_ESCAPED} ${_sources}) + set_target_properties(asn1_${NAME_ESCAPED} PROPERTIES C_STANDARD 11) if ("${NAME}" STREQUAL "support") target_include_directories(asn1_support PUBLIC @@ -169,7 +207,7 @@ function(add_asn1_component NAME) target_compile_definitions(asn1_support PUBLIC HAVE_NETINET_IN_H) endif() else() - target_link_libraries(asn1_${NAME} PUBLIC asn1_support) + target_link_libraries(asn1_${NAME_ESCAPED} PUBLIC asn1_support) endif() # Silence warnings in code generated by asn1c @@ -187,6 +225,7 @@ endfunction() add_asn1_component(support) target_sources(asn1_support PRIVATE memory.c) add_asn1_component(its) +add_asn1_component(its/r2) add_asn1_component(security) add_vanetza_component(asn1 asn1c_wrapper.cpp) diff --git a/vanetza/asn1/asn1c_its_r2_sources.txt b/vanetza/asn1/asn1c_its_r2_sources.txt new file mode 100644 index 000000000..83414a05a --- /dev/null +++ b/vanetza/asn1/asn1c_its_r2_sources.txt @@ -0,0 +1,387 @@ +# generated file +its/r2/Acceleration3dWithConfidence.c +its/r2/AccelerationCartesian.c +its/r2/AccelerationChange.c +its/r2/AccelerationChangeIndication.c +its/r2/AccelerationComponent.c +its/r2/AccelerationConfidence.c +its/r2/AccelerationControl.c +its/r2/AccelerationMagnitude.c +its/r2/AccelerationMagnitudeValue.c +its/r2/AccelerationPolarWithZ.c +its/r2/AccelerationValue.c +its/r2/AccessTechnologyClass.c +its/r2/AccidentSubCauseCode.c +its/r2/ActionID.c +its/r2/ActionId.c +its/r2/ActionIdList.c +its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.c +its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c +its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c +its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c +its/r2/AirHumidity.c +its/r2/AlacarteContainer.c +its/r2/Altitude.c +its/r2/AltitudeConfidence.c +its/r2/AltitudeValue.c +its/r2/AngleConfidence.c +its/r2/AngularAccelerationConfidence.c +its/r2/AngularSpeedConfidence.c +its/r2/AxlesCount.c +its/r2/BarometricPressure.c +its/r2/BasicContainer.c +its/r2/BasicLaneConfiguration.c +its/r2/BasicLaneInformation.c +its/r2/BasicVehicleContainerHighFrequency.c +its/r2/BasicVehicleContainerLowFrequency.c +its/r2/BogiesCount.c +its/r2/CAM.c +its/r2/CPM-PDU-Descriptions_ManagementContainer.c +its/r2/CamParameters.c +its/r2/CamPayload.c +its/r2/CardinalNumber1B.c +its/r2/CardinalNumber3b.c +its/r2/CartesianAngle.c +its/r2/CartesianAngleValue.c +its/r2/CartesianAngularAccelerationComponent.c +its/r2/CartesianAngularAccelerationComponentValue.c +its/r2/CartesianAngularVelocityComponent.c +its/r2/CartesianAngularVelocityComponentValue.c +its/r2/CartesianCoordinate.c +its/r2/CartesianCoordinateLarge.c +its/r2/CartesianCoordinateSmall.c +its/r2/CartesianCoordinateWithConfidence.c +its/r2/CartesianPosition3d.c +its/r2/CartesianPosition3dWithConfidence.c +its/r2/CauseCode.c +its/r2/CauseCodeChoice.c +its/r2/CauseCodeType.c +its/r2/CauseCodeV2.c +its/r2/CenDsrcTollingZone.c +its/r2/CenDsrcTollingZoneID.c +its/r2/CircularShape.c +its/r2/ClosedLanes.c +its/r2/ClusterBreakupInfo.c +its/r2/ClusterBreakupReason.c +its/r2/ClusterJoinInfo.c +its/r2/ClusterLeaveInfo.c +its/r2/ClusterLeaveReason.c +its/r2/CollectivePerceptionMessage.c +its/r2/CollisionRiskSubCauseCode.c +its/r2/ConfidenceLevel.c +its/r2/ConstraintWrappedCpmContainers.c +its/r2/CoordinateConfidence.c +its/r2/CorrelationCellValue.c +its/r2/CorrelationColumn.c +its/r2/CountryCode.c +its/r2/CpmContainerId.c +its/r2/CpmPayload.c +its/r2/Curvature.c +its/r2/CurvatureCalculationMode.c +its/r2/CurvatureConfidence.c +its/r2/CurvatureValue.c +its/r2/DENM-PDU-Description_ManagementContainer.c +its/r2/DENM.c +its/r2/DangerousEndOfQueueSubCauseCode.c +its/r2/DangerousGoodsBasic.c +its/r2/DangerousGoodsContainer.c +its/r2/DangerousGoodsExtended.c +its/r2/DangerousSituationSubCauseCode.c +its/r2/DeltaAltitude.c +its/r2/DeltaLatitude.c +its/r2/DeltaLongitude.c +its/r2/DeltaReferencePosition.c +its/r2/DeltaTimeMilliSecondPositive.c +its/r2/DeltaTimeMilliSecondSigned.c +its/r2/DeltaTimeQuarterSecond.c +its/r2/DeltaTimeSecond.c +its/r2/DeltaTimeTenSeconds.c +its/r2/DeltaTimeTenthOfSecond.c +its/r2/DenmPayload.c +its/r2/DigitalMap.c +its/r2/Direction.c +its/r2/DriveDirection.c +its/r2/DrivingLaneStatus.c +its/r2/EllipticalShape.c +its/r2/EmbarkationStatus.c +its/r2/EmergencyContainer.c +its/r2/EmergencyPriority.c +its/r2/EmergencyVehicleApproachingSubCauseCode.c +its/r2/EnergyStorageType.c +its/r2/EuVehicleCategoryCode.c +its/r2/EuVehicleCategoryL.c +its/r2/EuVehicleCategoryM.c +its/r2/EuVehicleCategoryN.c +its/r2/EuVehicleCategoryO.c +its/r2/EulerAnglesWithConfidence.c +its/r2/EventHistory.c +its/r2/EventPoint.c +its/r2/EventZone.c +its/r2/Ext1.c +its/r2/Ext2.c +its/r2/Ext3.c +its/r2/ExteriorLights.c +its/r2/GeneralizedLanePosition.c +its/r2/GeneralizedLanePositions.c +its/r2/GenerationDeltaTime.c +its/r2/GeoPosition.c +its/r2/HardShoulderStatus.c +its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c +its/r2/HazardousLocation-DangerousCurveSubCauseCode.c +its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c +its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c +its/r2/Heading.c +its/r2/HeadingChangeIndication.c +its/r2/HeadingConfidence.c +its/r2/HeadingValue.c +its/r2/HeightLonCarr.c +its/r2/HighFrequencyContainer.c +its/r2/HumanPresenceOnTheRoadSubCauseCode.c +its/r2/HumanProblemSubCauseCode.c +its/r2/Identifier1B.c +its/r2/Identifier2B.c +its/r2/ImpactReductionContainer.c +its/r2/ImpassabilitySubCauseCode.c +its/r2/InformationQuality.c +its/r2/InterferenceManagementChannel.c +its/r2/InterferenceManagementInfo.c +its/r2/InterferenceManagementInfoPerChannel.c +its/r2/InterferenceManagementZone.c +its/r2/InterferenceManagementZoneDefinition.c +its/r2/InterferenceManagementZoneType.c +its/r2/InterferenceManagementZones.c +its/r2/IntersectionReferenceId.c +its/r2/Iso3833VehicleType.c +its/r2/IssuerIdentifier.c +its/r2/ItineraryPath.c +its/r2/ItsPduHeader.c +its/r2/IviIdentificationNumber.c +its/r2/IvimReference.c +its/r2/IvimReferences.c +its/r2/LanePosition.c +its/r2/LanePositionAndType.c +its/r2/LanePositionOptions.c +its/r2/LanePositionWithLateralDetails.c +its/r2/LaneType.c +its/r2/LaneWidth.c +its/r2/LateralAcceleration.c +its/r2/LateralAccelerationValue.c +its/r2/Latitude.c +its/r2/LightBarSirenInUse.c +its/r2/LocationContainer.c +its/r2/Longitude.c +its/r2/LongitudinalAcceleration.c +its/r2/LongitudinalAccelerationValue.c +its/r2/LongitudinalLanePosition.c +its/r2/LongitudinalLanePositionConfidence.c +its/r2/LongitudinalLanePositionValue.c +its/r2/LowFrequencyContainer.c +its/r2/LowerTriangularPositiveSemidefiniteMatrices.c +its/r2/LowerTriangularPositiveSemidefiniteMatrix.c +its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c +its/r2/MapPosition.c +its/r2/MapReference.c +its/r2/MapReferences.c +its/r2/MapemConfiguration.c +its/r2/MapemConnectionList.c +its/r2/MapemElementReference.c +its/r2/MapemLaneList.c +its/r2/MatrixIncludedComponents.c +its/r2/MessageId.c +its/r2/MessageRateHz.c +its/r2/MessageRateRange.c +its/r2/MessageSegmentationInfo.c +its/r2/MetaInformation.c +its/r2/MitigationForTechnologies.c +its/r2/MitigationPerTechnologyClass.c +its/r2/NumberOfOccupants.c +its/r2/ObjectClass.c +its/r2/ObjectClassDescription.c +its/r2/ObjectClassWithConfidence.c +its/r2/ObjectDimension.c +its/r2/ObjectDimensionConfidence.c +its/r2/ObjectDimensionValue.c +its/r2/ObjectFace.c +its/r2/ObjectPerceptionQuality.c +its/r2/OccupiedLanesWithConfidence.c +its/r2/OpeningDaysHours.c +its/r2/OrdinalNumber1B.c +its/r2/OrdinalNumber3b.c +its/r2/OriginatingRsuContainer.c +its/r2/OriginatingVehicleContainer.c +its/r2/OtherSubClass.c +its/r2/Path.c +its/r2/PathDeltaTime.c +its/r2/PathDeltaTimeChoice.c +its/r2/PathExtended.c +its/r2/PathHistory.c +its/r2/PathId.c +its/r2/PathPoint.c +its/r2/PathPointPredicted.c +its/r2/PathPredicted.c +its/r2/PathPredicted2.c +its/r2/PathPredictedList.c +its/r2/PathReferences.c +its/r2/PerceivedObject.c +its/r2/PerceivedObjectContainer.c +its/r2/PerceivedObjectIds.c +its/r2/PerceivedObjects.c +its/r2/PerceptionRegion.c +its/r2/PerceptionRegionContainer.c +its/r2/PerformanceClass.c +its/r2/PhoneNumber.c +its/r2/PolygonalShape.c +its/r2/PosCentMass.c +its/r2/PosConfidenceEllipse.c +its/r2/PosFrontAx.c +its/r2/PosLonCarr.c +its/r2/PosPillar.c +its/r2/Position1d.c +its/r2/PositionConfidenceEllipse.c +its/r2/PositionOfOccupants.c +its/r2/PositionOfPillars.c +its/r2/PositioningSolutionType.c +its/r2/PostCrashSubCauseCode.c +its/r2/PreCrashContainer.c +its/r2/PrecipitationIntensity.c +its/r2/ProtectedCommunicationZone.c +its/r2/ProtectedCommunicationZonesRSU.c +its/r2/ProtectedZoneId.c +its/r2/ProtectedZoneRadius.c +its/r2/ProtectedZoneType.c +its/r2/Provider.c +its/r2/PtActivation.c +its/r2/PtActivationData.c +its/r2/PtActivationType.c +its/r2/PublicTransportContainer.c +its/r2/RSUContainerHighFrequency.c +its/r2/RadialShape.c +its/r2/RadialShapeDetails.c +its/r2/RadialShapes.c +its/r2/RadialShapesList.c +its/r2/RailwayLevelCrossingSubCauseCode.c +its/r2/RectangularShape.c +its/r2/ReferencePosition.c +its/r2/ReferencePositionWithConfidence.c +its/r2/RelevanceDistance.c +its/r2/RelevanceTrafficDirection.c +its/r2/RequestResponseIndication.c +its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.c +its/r2/RescueContainer.c +its/r2/RestrictedTypes.c +its/r2/RoadConfigurationContainer.c +its/r2/RoadConfigurationSection.c +its/r2/RoadConfigurationSectionList.c +its/r2/RoadSectionDefinition.c +its/r2/RoadSectionId.c +its/r2/RoadSegmentReferenceId.c +its/r2/RoadType.c +its/r2/RoadWorksContainerBasic.c +its/r2/RoadWorksContainerExtended.c +its/r2/RoadworksSubCauseCode.c +its/r2/SafeDistanceIndication.c +its/r2/SafeDistanceIndicator.c +its/r2/SafetyCarContainer.c +its/r2/SemiAxisLength.c +its/r2/SensorInformation.c +its/r2/SensorInformationContainer.c +its/r2/SensorType.c +its/r2/SensorTypes.c +its/r2/SequenceNumber.c +its/r2/SequenceOfCartesianPosition3d.c +its/r2/SequenceOfIdentifier1B.c +its/r2/SequenceOfSafeDistanceIndication.c +its/r2/SequenceOfTrajectoryInterceptionIndication.c +its/r2/Shape.c +its/r2/SignalViolationSubCauseCode.c +its/r2/SituationContainer.c +its/r2/SlowVehicleSubCauseCode.c +its/r2/SpecialTransportContainer.c +its/r2/SpecialTransportType.c +its/r2/SpecialVehicleContainer.c +its/r2/Speed.c +its/r2/SpeedConfidence.c +its/r2/SpeedLimit.c +its/r2/SpeedValue.c +its/r2/StabilityChangeIndication.c +its/r2/StabilityLossProbability.c +its/r2/StandardLength12b.c +its/r2/StandardLength1B.c +its/r2/StandardLength2B.c +its/r2/StandardLength3b.c +its/r2/StandardLength9b.c +its/r2/StationID.c +its/r2/StationId.c +its/r2/StationType.c +its/r2/StationarySince.c +its/r2/StationaryVehicleContainer.c +its/r2/StationaryVehicleSubCauseCode.c +its/r2/SteeringWheelAngle.c +its/r2/SteeringWheelAngleConfidence.c +its/r2/SteeringWheelAngleValue.c +its/r2/StoredInformationType.c +its/r2/SubCauseCodeType.c +its/r2/Temperature.c +its/r2/Termination.c +its/r2/TimestampIts.c +its/r2/Traces.c +its/r2/TracesExtended.c +its/r2/TrafficConditionSubCauseCode.c +its/r2/TrafficDirection.c +its/r2/TrafficIslandPosition.c +its/r2/TrafficParticipantType.c +its/r2/TrafficRule.c +its/r2/TrailerData.c +its/r2/TrailerDataSet.c +its/r2/TrailerPresenceInformation.c +its/r2/TrajectoryInterceptionConfidence.c +its/r2/TrajectoryInterceptionIndication.c +its/r2/TrajectoryInterceptionProbability.c +its/r2/TransmissionInterval.c +its/r2/TurningDirection.c +its/r2/TurningRadius.c +its/r2/UsageIndication.c +its/r2/VDS.c +its/r2/ValidityDuration.c +its/r2/VarLengthNumber.c +its/r2/VehicleBreakdownSubCauseCode.c +its/r2/VehicleHeight.c +its/r2/VehicleIdentification.c +its/r2/VehicleLength.c +its/r2/VehicleLengthConfidenceIndication.c +its/r2/VehicleLengthV2.c +its/r2/VehicleLengthValue.c +its/r2/VehicleMass.c +its/r2/VehicleRole.c +its/r2/VehicleWidth.c +its/r2/Velocity3dWithConfidence.c +its/r2/VelocityCartesian.c +its/r2/VelocityComponent.c +its/r2/VelocityComponentValue.c +its/r2/VelocityPolarWithZ.c +its/r2/VerticalAcceleration.c +its/r2/VerticalAccelerationValue.c +its/r2/VruClusterInformation.c +its/r2/VruClusterProfiles.c +its/r2/VruDeviceUsage.c +its/r2/VruEnvironment.c +its/r2/VruExteriorLights.c +its/r2/VruMovementControl.c +its/r2/VruProfileAndSubprofile.c +its/r2/VruSizeClass.c +its/r2/VruSpecificExteriorLights.c +its/r2/VruSubProfileAnimal.c +its/r2/VruSubProfileBicyclist.c +its/r2/VruSubProfileMotorcyclist.c +its/r2/VruSubProfilePedestrian.c +its/r2/WMInumber.c +its/r2/Wgs84Angle.c +its/r2/Wgs84AngleConfidence.c +its/r2/Wgs84AngleValue.c +its/r2/WheelBaseVehicle.c +its/r2/WrappedCpmContainer.c +its/r2/WrappedCpmContainers.c +its/r2/WrongWayDrivingSubCauseCode.c +its/r2/YawRate.c +its/r2/YawRateConfidence.c +its/r2/YawRateValue.c diff --git a/vanetza/asn1/its/r2/Acceleration3dWithConfidence.c b/vanetza/asn1/its/r2/Acceleration3dWithConfidence.c new file mode 100644 index 000000000..46eb84ea6 --- /dev/null +++ b/vanetza/asn1/its/r2/Acceleration3dWithConfidence.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Acceleration3dWithConfidence.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_Acceleration3dWithConfidence_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_Vanetza_ITS2_Acceleration3dWithConfidence_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_Vanetza_ITS2_Acceleration3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Acceleration3dWithConfidence, choice.polarAcceleration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "polarAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Acceleration3dWithConfidence, choice.cartesianAcceleration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationCartesian, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cartesianAcceleration" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Acceleration3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* polarAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cartesianAcceleration */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Acceleration3dWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_Acceleration3dWithConfidence), + offsetof(struct Vanetza_ITS2_Acceleration3dWithConfidence, _asn_ctx), + offsetof(struct Vanetza_ITS2_Acceleration3dWithConfidence, present), + sizeof(((struct Vanetza_ITS2_Acceleration3dWithConfidence *)0)->present), + asn_MAP_Vanetza_ITS2_Acceleration3dWithConfidence_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Acceleration3dWithConfidence = { + "Acceleration3dWithConfidence", + "Acceleration3dWithConfidence", + &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_Vanetza_ITS2_Acceleration3dWithConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Acceleration3dWithConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_Acceleration3dWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Acceleration3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Acceleration3dWithConfidence.h b/vanetza/asn1/its/r2/Acceleration3dWithConfidence.h new file mode 100644 index 000000000..abda59a4a --- /dev/null +++ b/vanetza/asn1/its/r2/Acceleration3dWithConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Acceleration3dWithConfidence_H_ +#define _Vanetza_ITS2_Acceleration3dWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationPolarWithZ.h" +#include "AccelerationCartesian.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Acceleration3dWithConfidence_PR { + Vanetza_ITS2_Acceleration3dWithConfidence_PR_NOTHING, /* No components present */ + Vanetza_ITS2_Acceleration3dWithConfidence_PR_polarAcceleration, + Vanetza_ITS2_Acceleration3dWithConfidence_PR_cartesianAcceleration +} Vanetza_ITS2_Acceleration3dWithConfidence_PR; + +/* Vanetza_ITS2_Acceleration3dWithConfidence */ +typedef struct Vanetza_ITS2_Acceleration3dWithConfidence { + Vanetza_ITS2_Acceleration3dWithConfidence_PR present; + union Vanetza_ITS2_Acceleration3dWithConfidence_u { + Vanetza_ITS2_AccelerationPolarWithZ_t polarAcceleration; + Vanetza_ITS2_AccelerationCartesian_t cartesianAcceleration; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Acceleration3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Acceleration3dWithConfidence; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Acceleration3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Acceleration3dWithConfidence_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Acceleration3dWithConfidence_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Acceleration3dWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationCartesian.c b/vanetza/asn1/its/r2/AccelerationCartesian.c new file mode 100644 index 000000000..36c06bc93 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationCartesian.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationCartesian.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationCartesian_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationCartesian, xAcceleration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationCartesian, yAcceleration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yAcceleration" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_AccelerationCartesian, zAcceleration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zAcceleration" + }, +}; +static const int asn_MAP_Vanetza_ITS2_AccelerationCartesian_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AccelerationCartesian_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zAcceleration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationCartesian_specs_1 = { + sizeof(struct Vanetza_ITS2_AccelerationCartesian), + offsetof(struct Vanetza_ITS2_AccelerationCartesian, _asn_ctx), + asn_MAP_Vanetza_ITS2_AccelerationCartesian_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_AccelerationCartesian_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationCartesian = { + "AccelerationCartesian", + "AccelerationCartesian", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationCartesian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationCartesian_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AccelerationCartesian_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AccelerationCartesian_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationCartesian.h b/vanetza/asn1/its/r2/AccelerationCartesian.h new file mode 100644 index 000000000..5a724124a --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationCartesian.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationCartesian_H_ +#define _Vanetza_ITS2_AccelerationCartesian_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationComponent.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_AccelerationComponent; + +/* Vanetza_ITS2_AccelerationCartesian */ +typedef struct Vanetza_ITS2_AccelerationCartesian { + Vanetza_ITS2_AccelerationComponent_t xAcceleration; + Vanetza_ITS2_AccelerationComponent_t yAcceleration; + struct Vanetza_ITS2_AccelerationComponent *zAcceleration; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AccelerationCartesian_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationCartesian; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationCartesian_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationCartesian_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "AccelerationComponent.h" + +#endif /* _Vanetza_ITS2_AccelerationCartesian_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationChange.c b/vanetza/asn1/its/r2/AccelerationChange.c new file mode 100644 index 000000000..d3fd73896 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationChange.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationChange.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_Vanetza_ITS2_AccelerationChange_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_Vanetza_ITS2_AccelerationChange_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_Vanetza_ITS2_AccelerationChange_value2enum_1[] = { + { 0, 10, "accelerate" }, + { 1, 10, "decelerate" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_AccelerationChange_enum2value_1[] = { + 0, /* accelerate(0) */ + 1 /* decelerate(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AccelerationChange_specs_1 = { + asn_MAP_Vanetza_ITS2_AccelerationChange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_AccelerationChange_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_Vanetza_ITS2_AccelerationChange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationChange = { + "AccelerationChange", + "AccelerationChange", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationChange_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccelerationChange_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccelerationChange_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_AccelerationChange_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationChange.h b/vanetza/asn1/its/r2/AccelerationChange.h new file mode 100644 index 000000000..d23ed4a2b --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationChange.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationChange_H_ +#define _Vanetza_ITS2_AccelerationChange_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccelerationChange { + Vanetza_ITS2_AccelerationChange_accelerate = 0, + Vanetza_ITS2_AccelerationChange_decelerate = 1 +} e_Vanetza_ITS2_AccelerationChange; + +/* Vanetza_ITS2_AccelerationChange */ +typedef long Vanetza_ITS2_AccelerationChange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationChange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationChange; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AccelerationChange_specs_1; +asn_struct_free_f Vanetza_ITS2_AccelerationChange_free; +asn_struct_print_f Vanetza_ITS2_AccelerationChange_print; +asn_constr_check_f Vanetza_ITS2_AccelerationChange_constraint; +ber_type_decoder_f Vanetza_ITS2_AccelerationChange_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccelerationChange_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccelerationChange_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccelerationChange_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccelerationChange_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccelerationChange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationChange_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationChangeIndication.c b/vanetza/asn1/its/r2/AccelerationChangeIndication.c new file mode 100644 index 000000000..766ee38c8 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationChangeIndication, accelOrDecel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationChange, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelOrDecel" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AccelerationChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelOrDecel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationChangeIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_AccelerationChangeIndication), + offsetof(struct Vanetza_ITS2_AccelerationChangeIndication, _asn_ctx), + asn_MAP_Vanetza_ITS2_AccelerationChangeIndication_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_Vanetza_ITS2_AccelerationChangeIndication = { + "AccelerationChangeIndication", + "AccelerationChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationChangeIndication_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AccelerationChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AccelerationChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationChangeIndication.h b/vanetza/asn1/its/r2/AccelerationChangeIndication.h new file mode 100644 index 000000000..7263d894b --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationChangeIndication_H_ +#define _Vanetza_ITS2_AccelerationChangeIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationChange.h" +#include "DeltaTimeTenthOfSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_AccelerationChangeIndication */ +typedef struct Vanetza_ITS2_AccelerationChangeIndication { + Vanetza_ITS2_AccelerationChange_t accelOrDecel; + Vanetza_ITS2_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AccelerationChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationChangeIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationComponent.c b/vanetza/asn1/its/r2/AccelerationComponent.c new file mode 100644 index 000000000..8ebf24d1b --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationComponent.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AccelerationComponent_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_Vanetza_ITS2_AccelerationComponent_specs_1 = { + sizeof(struct Vanetza_ITS2_AccelerationComponent), + offsetof(struct Vanetza_ITS2_AccelerationComponent, _asn_ctx), + asn_MAP_Vanetza_ITS2_AccelerationComponent_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_Vanetza_ITS2_AccelerationComponent = { + "AccelerationComponent", + "AccelerationComponent", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationComponent_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AccelerationComponent_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AccelerationComponent_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationComponent.h b/vanetza/asn1/its/r2/AccelerationComponent.h new file mode 100644 index 000000000..cf6980b37 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationComponent_H_ +#define _Vanetza_ITS2_AccelerationComponent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationValue.h" +#include "AccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_AccelerationComponent */ +typedef struct Vanetza_ITS2_AccelerationComponent { + Vanetza_ITS2_AccelerationValue_t value; + Vanetza_ITS2_AccelerationConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AccelerationComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationComponent_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationConfidence.c b/vanetza/asn1/its/r2/AccelerationConfidence.c new file mode 100644 index 000000000..95f64ce28 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationConfidence.h" + +int +Vanetza_ITS2_AccelerationConfidence_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 <= 102L)) { + /* 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_Vanetza_ITS2_AccelerationConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..102) */, + -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_Vanetza_ITS2_AccelerationConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 102 } /* (0..102) */, + { 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_Vanetza_ITS2_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AccelerationConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationConfidence.h b/vanetza/asn1/its/r2/AccelerationConfidence.h new file mode 100644 index 000000000..bfd844364 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationConfidence_H_ +#define _Vanetza_ITS2_AccelerationConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccelerationConfidence { + Vanetza_ITS2_AccelerationConfidence_outOfRange = 101, + Vanetza_ITS2_AccelerationConfidence_unavailable = 102 +} e_Vanetza_ITS2_AccelerationConfidence; + +/* Vanetza_ITS2_AccelerationConfidence */ +typedef long Vanetza_ITS2_AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationConfidence; +asn_struct_free_f Vanetza_ITS2_AccelerationConfidence_free; +asn_struct_print_f Vanetza_ITS2_AccelerationConfidence_print; +asn_constr_check_f Vanetza_ITS2_AccelerationConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_AccelerationConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccelerationConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccelerationConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccelerationConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccelerationConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationControl.c b/vanetza/asn1/its/r2/AccelerationControl.c new file mode 100644 index 000000000..df1c51627 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationControl.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationControl.h" + +int +Vanetza_ITS2_AccelerationControl_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_Vanetza_ITS2_AccelerationControl_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationControl_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_AccelerationControl_constr_1 CC_NOTUSED = { + 7}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationControl_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccelerationControl_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccelerationControl_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_AccelerationControl_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AccelerationControl_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationControl.h b/vanetza/asn1/its/r2/AccelerationControl.h new file mode 100644 index 000000000..4d344f3cd --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationControl.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationControl_H_ +#define _Vanetza_ITS2_AccelerationControl_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccelerationControl { + Vanetza_ITS2_AccelerationControl_brakePedalEngaged = 0, + Vanetza_ITS2_AccelerationControl_gasPedalEngaged = 1, + Vanetza_ITS2_AccelerationControl_emergencyBrakeEngaged = 2, + Vanetza_ITS2_AccelerationControl_collisionWarningEngaged = 3, + Vanetza_ITS2_AccelerationControl_accEngaged = 4, + Vanetza_ITS2_AccelerationControl_cruiseControlEngaged = 5, + Vanetza_ITS2_AccelerationControl_speedLimiterEngaged = 6 +} e_Vanetza_ITS2_AccelerationControl; + +/* Vanetza_ITS2_AccelerationControl */ +typedef BIT_STRING_t Vanetza_ITS2_AccelerationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationControl; +asn_struct_free_f Vanetza_ITS2_AccelerationControl_free; +asn_struct_print_f Vanetza_ITS2_AccelerationControl_print; +asn_constr_check_f Vanetza_ITS2_AccelerationControl_constraint; +ber_type_decoder_f Vanetza_ITS2_AccelerationControl_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccelerationControl_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccelerationControl_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccelerationControl_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccelerationControl_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationControl_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationMagnitude.c b/vanetza/asn1/its/r2/AccelerationMagnitude.c new file mode 100644 index 000000000..d6c219b29 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationMagnitude.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationMagnitude.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationMagnitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationMagnitude, accelerationMagnitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelerationMagnitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationMagnitude, accelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AccelerationMagnitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelerationMagnitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* accelerationConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationMagnitude_specs_1 = { + sizeof(struct Vanetza_ITS2_AccelerationMagnitude), + offsetof(struct Vanetza_ITS2_AccelerationMagnitude, _asn_ctx), + asn_MAP_Vanetza_ITS2_AccelerationMagnitude_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_Vanetza_ITS2_AccelerationMagnitude = { + "AccelerationMagnitude", + "AccelerationMagnitude", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitude_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AccelerationMagnitude_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AccelerationMagnitude_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationMagnitude.h b/vanetza/asn1/its/r2/AccelerationMagnitude.h new file mode 100644 index 000000000..9b2b888f7 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationMagnitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationMagnitude_H_ +#define _Vanetza_ITS2_AccelerationMagnitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationMagnitudeValue.h" +#include "AccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_AccelerationMagnitude */ +typedef struct Vanetza_ITS2_AccelerationMagnitude { + Vanetza_ITS2_AccelerationMagnitudeValue_t accelerationMagnitudeValue; + Vanetza_ITS2_AccelerationConfidence_t accelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AccelerationMagnitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationMagnitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationMagnitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationMagnitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationMagnitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationMagnitudeValue.c b/vanetza/asn1/its/r2/AccelerationMagnitudeValue.c new file mode 100644 index 000000000..ad8487eec --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationMagnitudeValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationMagnitudeValue.h" + +int +Vanetza_ITS2_AccelerationMagnitudeValue_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 <= 161L)) { + /* 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_Vanetza_ITS2_AccelerationMagnitudeValue_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..161) */, + -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_Vanetza_ITS2_AccelerationMagnitudeValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 161 } /* (0..161) */, + { 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_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue = { + "AccelerationMagnitudeValue", + "AccelerationMagnitudeValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccelerationMagnitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccelerationMagnitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AccelerationMagnitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationMagnitudeValue.h b/vanetza/asn1/its/r2/AccelerationMagnitudeValue.h new file mode 100644 index 000000000..f9f3c3a57 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationMagnitudeValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationMagnitudeValue_H_ +#define _Vanetza_ITS2_AccelerationMagnitudeValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccelerationMagnitudeValue { + Vanetza_ITS2_AccelerationMagnitudeValue_positiveOutOfRange = 160, + Vanetza_ITS2_AccelerationMagnitudeValue_unavailable = 161 +} e_Vanetza_ITS2_AccelerationMagnitudeValue; + +/* Vanetza_ITS2_AccelerationMagnitudeValue */ +typedef long Vanetza_ITS2_AccelerationMagnitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationMagnitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationMagnitudeValue; +asn_struct_free_f Vanetza_ITS2_AccelerationMagnitudeValue_free; +asn_struct_print_f Vanetza_ITS2_AccelerationMagnitudeValue_print; +asn_constr_check_f Vanetza_ITS2_AccelerationMagnitudeValue_constraint; +ber_type_decoder_f Vanetza_ITS2_AccelerationMagnitudeValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccelerationMagnitudeValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccelerationMagnitudeValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccelerationMagnitudeValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccelerationMagnitudeValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccelerationMagnitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationMagnitudeValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationPolarWithZ.c b/vanetza/asn1/its/r2/AccelerationPolarWithZ.c new file mode 100644 index 000000000..c4eb18fd6 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationPolarWithZ.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationPolarWithZ.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationPolarWithZ_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationPolarWithZ, accelerationMagnitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationMagnitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelerationMagnitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_AccelerationPolarWithZ, accelerationDirection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelerationDirection" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_AccelerationPolarWithZ, zAcceleration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zAcceleration" + }, +}; +static const int asn_MAP_Vanetza_ITS2_AccelerationPolarWithZ_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AccelerationPolarWithZ_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accelerationMagnitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* accelerationDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zAcceleration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationPolarWithZ_specs_1 = { + sizeof(struct Vanetza_ITS2_AccelerationPolarWithZ), + offsetof(struct Vanetza_ITS2_AccelerationPolarWithZ, _asn_ctx), + asn_MAP_Vanetza_ITS2_AccelerationPolarWithZ_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_AccelerationPolarWithZ_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ = { + "AccelerationPolarWithZ", + "AccelerationPolarWithZ", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AccelerationPolarWithZ_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AccelerationPolarWithZ_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationPolarWithZ.h b/vanetza/asn1/its/r2/AccelerationPolarWithZ.h new file mode 100644 index 000000000..31c24ee96 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationPolarWithZ.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationPolarWithZ_H_ +#define _Vanetza_ITS2_AccelerationPolarWithZ_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccelerationMagnitude.h" +#include "CartesianAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_AccelerationComponent; + +/* Vanetza_ITS2_AccelerationPolarWithZ */ +typedef struct Vanetza_ITS2_AccelerationPolarWithZ { + Vanetza_ITS2_AccelerationMagnitude_t accelerationMagnitude; + Vanetza_ITS2_CartesianAngle_t accelerationDirection; + struct Vanetza_ITS2_AccelerationComponent *zAcceleration; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AccelerationPolarWithZ_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationPolarWithZ; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AccelerationPolarWithZ_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AccelerationPolarWithZ_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "AccelerationComponent.h" + +#endif /* _Vanetza_ITS2_AccelerationPolarWithZ_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccelerationValue.c b/vanetza/asn1/its/r2/AccelerationValue.c new file mode 100644 index 000000000..5f4675474 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccelerationValue.h" + +int +Vanetza_ITS2_AccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_Vanetza_ITS2_AccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -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_Vanetza_ITS2_AccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_Vanetza_ITS2_AccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationValue = { + "AccelerationValue", + "AccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccelerationValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AccelerationValue.h b/vanetza/asn1/its/r2/AccelerationValue.h new file mode 100644 index 000000000..ef2887346 --- /dev/null +++ b/vanetza/asn1/its/r2/AccelerationValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccelerationValue_H_ +#define _Vanetza_ITS2_AccelerationValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccelerationValue { + Vanetza_ITS2_AccelerationValue_negativeOutOfRange = -160, + Vanetza_ITS2_AccelerationValue_positiveOutOfRange = 160, + Vanetza_ITS2_AccelerationValue_unavailable = 161 +} e_Vanetza_ITS2_AccelerationValue; + +/* Vanetza_ITS2_AccelerationValue */ +typedef long Vanetza_ITS2_AccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccelerationValue; +asn_struct_free_f Vanetza_ITS2_AccelerationValue_free; +asn_struct_print_f Vanetza_ITS2_AccelerationValue_print; +asn_constr_check_f Vanetza_ITS2_AccelerationValue_constraint; +ber_type_decoder_f Vanetza_ITS2_AccelerationValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccelerationValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccelerationValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccelerationValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccelerationValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccelerationValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccessTechnologyClass.c b/vanetza/asn1/its/r2/AccessTechnologyClass.c new file mode 100644 index 000000000..86d10d779 --- /dev/null +++ b/vanetza/asn1/its/r2/AccessTechnologyClass.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccessTechnologyClass.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_Vanetza_ITS2_AccessTechnologyClass_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_Vanetza_ITS2_AccessTechnologyClass_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_Vanetza_ITS2_AccessTechnologyClass_value2enum_1[] = { + { 0, 3, "any" }, + { 1, 10, "itsg5Class" }, + { 2, 11, "ltev2xClass" }, + { 3, 10, "nrv2xClass" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_AccessTechnologyClass_enum2value_1[] = { + 0, /* any(0) */ + 1, /* itsg5Class(1) */ + 2, /* ltev2xClass(2) */ + 3 /* nrv2xClass(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AccessTechnologyClass_specs_1 = { + asn_MAP_Vanetza_ITS2_AccessTechnologyClass_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_AccessTechnologyClass_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_Vanetza_ITS2_AccessTechnologyClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccessTechnologyClass = { + "AccessTechnologyClass", + "AccessTechnologyClass", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccessTechnologyClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccessTechnologyClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccessTechnologyClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_AccessTechnologyClass_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AccessTechnologyClass.h b/vanetza/asn1/its/r2/AccessTechnologyClass.h new file mode 100644 index 000000000..5672543c5 --- /dev/null +++ b/vanetza/asn1/its/r2/AccessTechnologyClass.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccessTechnologyClass_H_ +#define _Vanetza_ITS2_AccessTechnologyClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccessTechnologyClass { + Vanetza_ITS2_AccessTechnologyClass_any = 0, + Vanetza_ITS2_AccessTechnologyClass_itsg5Class = 1, + Vanetza_ITS2_AccessTechnologyClass_ltev2xClass = 2, + Vanetza_ITS2_AccessTechnologyClass_nrv2xClass = 3 + /* + * Enumeration is extensible + */ +} e_Vanetza_ITS2_AccessTechnologyClass; + +/* Vanetza_ITS2_AccessTechnologyClass */ +typedef long Vanetza_ITS2_AccessTechnologyClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccessTechnologyClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccessTechnologyClass; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AccessTechnologyClass_specs_1; +asn_struct_free_f Vanetza_ITS2_AccessTechnologyClass_free; +asn_struct_print_f Vanetza_ITS2_AccessTechnologyClass_print; +asn_constr_check_f Vanetza_ITS2_AccessTechnologyClass_constraint; +ber_type_decoder_f Vanetza_ITS2_AccessTechnologyClass_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccessTechnologyClass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccessTechnologyClass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccessTechnologyClass_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccessTechnologyClass_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccessTechnologyClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccessTechnologyClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AccidentSubCauseCode.c b/vanetza/asn1/its/r2/AccidentSubCauseCode.c new file mode 100644 index 000000000..6e1c37885 --- /dev/null +++ b/vanetza/asn1/its/r2/AccidentSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AccidentSubCauseCode.h" + +int +Vanetza_ITS2_AccidentSubCauseCode_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_Vanetza_ITS2_AccidentSubCauseCode_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_Vanetza_ITS2_AccidentSubCauseCode_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_Vanetza_ITS2_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AccidentSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AccidentSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AccidentSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AccidentSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AccidentSubCauseCode.h b/vanetza/asn1/its/r2/AccidentSubCauseCode.h new file mode 100644 index 000000000..a5bd8ae14 --- /dev/null +++ b/vanetza/asn1/its/r2/AccidentSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AccidentSubCauseCode_H_ +#define _Vanetza_ITS2_AccidentSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AccidentSubCauseCode { + Vanetza_ITS2_AccidentSubCauseCode_unavailable = 0, + Vanetza_ITS2_AccidentSubCauseCode_multiVehicleAccident = 1, + Vanetza_ITS2_AccidentSubCauseCode_heavyAccident = 2, + Vanetza_ITS2_AccidentSubCauseCode_accidentInvolvingLorry = 3, + Vanetza_ITS2_AccidentSubCauseCode_accidentInvolvingBus = 4, + Vanetza_ITS2_AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + Vanetza_ITS2_AccidentSubCauseCode_accidentOnOppositeLane = 6, + Vanetza_ITS2_AccidentSubCauseCode_unsecuredAccident = 7, + Vanetza_ITS2_AccidentSubCauseCode_assistanceRequested = 8 +} e_Vanetza_ITS2_AccidentSubCauseCode; + +/* Vanetza_ITS2_AccidentSubCauseCode */ +typedef long Vanetza_ITS2_AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AccidentSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AccidentSubCauseCode; +asn_struct_free_f Vanetza_ITS2_AccidentSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_AccidentSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_AccidentSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_AccidentSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_AccidentSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AccidentSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_AccidentSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_AccidentSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AccidentSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ActionID.c b/vanetza/asn1/its/r2/ActionID.c new file mode 100644 index 000000000..51b7a914b --- /dev/null +++ b/vanetza/asn1/its/r2/ActionID.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ActionID.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ActionID, originatingStationId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "originatingStationId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SequenceNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ActionID_specs_1 = { + sizeof(struct Vanetza_ITS2_ActionID), + offsetof(struct Vanetza_ITS2_ActionID, _asn_ctx), + asn_MAP_Vanetza_ITS2_ActionID_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_Vanetza_ITS2_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ActionID_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ActionID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionID_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ActionID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionID_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ActionID_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ActionID.h b/vanetza/asn1/its/r2/ActionID.h new file mode 100644 index 000000000..26ba05483 --- /dev/null +++ b/vanetza/asn1/its/r2/ActionID.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ActionID_H_ +#define _Vanetza_ITS2_ActionID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationID.h" +#include "SequenceNumber.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ActionID */ +typedef struct Vanetza_ITS2_ActionID { + Vanetza_ITS2_StationID_t originatingStationId; + Vanetza_ITS2_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ActionID_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ActionId.c b/vanetza/asn1/its/r2/ActionId.c new file mode 100644 index 000000000..04d5d4885 --- /dev/null +++ b/vanetza/asn1/its/r2/ActionId.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ActionId.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ActionId_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ActionId, originatingStationId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "originatingStationId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ActionId, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SequenceNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sequenceNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ActionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ActionId_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ActionId_specs_1 = { + sizeof(struct Vanetza_ITS2_ActionId), + offsetof(struct Vanetza_ITS2_ActionId, _asn_ctx), + asn_MAP_Vanetza_ITS2_ActionId_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_Vanetza_ITS2_ActionId = { + "ActionId", + "ActionId", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ActionId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ActionId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ActionId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ActionId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionId_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ActionId_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ActionId_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ActionId.h b/vanetza/asn1/its/r2/ActionId.h new file mode 100644 index 000000000..a6816f330 --- /dev/null +++ b/vanetza/asn1/its/r2/ActionId.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ActionId_H_ +#define _Vanetza_ITS2_ActionId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationId.h" +#include "SequenceNumber.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ActionId */ +typedef struct Vanetza_ITS2_ActionId { + Vanetza_ITS2_StationId_t originatingStationId; + Vanetza_ITS2_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ActionId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ActionId; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ActionId_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ActionId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ActionId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ActionIdList.c b/vanetza/asn1/its/r2/ActionIdList.c new file mode 100644 index 000000000..674b09306 --- /dev/null +++ b/vanetza/asn1/its/r2/ActionIdList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ActionIdList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_ActionIdList_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_Vanetza_ITS2_ActionIdList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_ActionIdList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ActionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ActionIdList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ActionIdList_specs_1 = { + sizeof(struct Vanetza_ITS2_ActionIdList), + offsetof(struct Vanetza_ITS2_ActionIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ActionIdList = { + "ActionIdList", + "ActionIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_ActionIdList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ActionIdList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionIdList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ActionIdList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ActionIdList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ActionIdList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ActionIdList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ActionIdList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_ActionIdList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_ActionIdList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ActionIdList.h b/vanetza/asn1/its/r2/ActionIdList.h new file mode 100644 index 000000000..23f6d38ce --- /dev/null +++ b/vanetza/asn1/its/r2/ActionIdList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ActionIdList_H_ +#define _Vanetza_ITS2_ActionIdList_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 Vanetza_ITS2_ActionId; + +/* Vanetza_ITS2_ActionIdList */ +typedef struct Vanetza_ITS2_ActionIdList { + A_SEQUENCE_OF(struct Vanetza_ITS2_ActionId) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ActionIdList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ActionIdList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ActionIdList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ActionIdList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ActionIdList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ActionId.h" + +#endif /* _Vanetza_ITS2_ActionIdList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.c b/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 000000000..683eccfb7 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.h b/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 000000000..52f4c8a00 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-AdhesionSubCauseCode.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode { + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* Vanetza_ITS2_AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 000000000..bc180a6e3 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..619213f89 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* Vanetza_ITS2_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c b/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 000000000..440883f99 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.h b/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 000000000..2ff0c242b --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-PrecipitationSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode { + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* Vanetza_ITS2_AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c b/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 000000000..0d734917d --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_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_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.h b/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 000000000..0b6104623 --- /dev/null +++ b/vanetza/asn1/its/r2/AdverseWeatherCondition-VisibilitySubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode { + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* Vanetza_ITS2_AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AirHumidity.c b/vanetza/asn1/its/r2/AirHumidity.c new file mode 100644 index 000000000..19ff0ee5d --- /dev/null +++ b/vanetza/asn1/its/r2/AirHumidity.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AirHumidity.h" + +int +Vanetza_ITS2_AirHumidity_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 <= 1001L)) { + /* 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_Vanetza_ITS2_AirHumidity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1001) */, + -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_Vanetza_ITS2_AirHumidity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1001 } /* (1..1001) */, + { 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_Vanetza_ITS2_AirHumidity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AirHumidity = { + "AirHumidity", + "AirHumidity", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AirHumidity_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AirHumidity_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AirHumidity_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AirHumidity_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AirHumidity_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AirHumidity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AirHumidity_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AirHumidity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AirHumidity_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AirHumidity.h b/vanetza/asn1/its/r2/AirHumidity.h new file mode 100644 index 000000000..a790917c9 --- /dev/null +++ b/vanetza/asn1/its/r2/AirHumidity.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AirHumidity_H_ +#define _Vanetza_ITS2_AirHumidity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AirHumidity { + Vanetza_ITS2_AirHumidity_oneHundredPercent = 1000, + Vanetza_ITS2_AirHumidity_unavailable = 1001 +} e_Vanetza_ITS2_AirHumidity; + +/* Vanetza_ITS2_AirHumidity */ +typedef long Vanetza_ITS2_AirHumidity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AirHumidity; +asn_struct_free_f Vanetza_ITS2_AirHumidity_free; +asn_struct_print_f Vanetza_ITS2_AirHumidity_print; +asn_constr_check_f Vanetza_ITS2_AirHumidity_constraint; +ber_type_decoder_f Vanetza_ITS2_AirHumidity_decode_ber; +der_type_encoder_f Vanetza_ITS2_AirHumidity_encode_der; +xer_type_decoder_f Vanetza_ITS2_AirHumidity_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AirHumidity_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AirHumidity_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AirHumidity_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AirHumidity_encode_oer; +per_type_decoder_f Vanetza_ITS2_AirHumidity_decode_uper; +per_type_encoder_f Vanetza_ITS2_AirHumidity_encode_uper; +per_type_decoder_f Vanetza_ITS2_AirHumidity_decode_aper; +per_type_encoder_f Vanetza_ITS2_AirHumidity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AirHumidity_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AlacarteContainer.c b/vanetza/asn1/its/r2/AlacarteContainer.c new file mode 100644 index 000000000..5b7f6dc32 --- /dev/null +++ b/vanetza/asn1/its/r2/AlacarteContainer.c @@ -0,0 +1,288 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AlacarteContainer.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ext1_9[] = { + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_AlacarteContainer__ext1, roadConfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadConfigurationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_AlacarteContainer__ext1, preCrash), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PreCrashContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "preCrash" + }, +}; +static const int asn_MAP_Vanetza_ITS2_ext1_oms_9[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ext1_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* preCrash */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ext1_specs_9 = { + sizeof(struct Vanetza_ITS2_AlacarteContainer__ext1), + offsetof(struct Vanetza_ITS2_AlacarteContainer__ext1, _asn_ctx), + asn_MAP_Vanetza_ITS2_ext1_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_ext1_oms_9, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ext1_tags_9, + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_9) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_9) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_9[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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ext1_9, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AlacarteContainer_1[] = { + { ATF_POINTER, 7, offsetof(struct Vanetza_ITS2_AlacarteContainer, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lanePosition" + }, + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_AlacarteContainer, impactReduction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ImpactReductionContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "impactReduction" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_AlacarteContainer, externalTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Temperature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "externalTemperature" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_AlacarteContainer, roadWorks), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadWorks" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_AlacarteContainer, positioningSolution), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PositioningSolutionType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positioningSolution" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_AlacarteContainer, stationaryVehicle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StationaryVehicleContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationaryVehicle" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_AlacarteContainer, ext1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ext1_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_Vanetza_ITS2_AlacarteContainer_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_AlacarteContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* impactReduction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* externalTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorks */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positioningSolution */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* stationaryVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AlacarteContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_AlacarteContainer), + offsetof(struct Vanetza_ITS2_AlacarteContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_AlacarteContainer_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_AlacarteContainer_oms_1, /* Optional members */ + 6, 1, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AlacarteContainer = { + "AlacarteContainer", + "AlacarteContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AlacarteContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AlacarteContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_AlacarteContainer_1, + 7, /* Elements count */ + &asn_SPC_Vanetza_ITS2_AlacarteContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AlacarteContainer.h b/vanetza/asn1/its/r2/AlacarteContainer.h new file mode 100644 index 000000000..3e4ed7cda --- /dev/null +++ b/vanetza/asn1/its/r2/AlacarteContainer.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AlacarteContainer_H_ +#define _Vanetza_ITS2_AlacarteContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePosition.h" +#include "Temperature.h" +#include "PositioningSolutionType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_ImpactReductionContainer; +struct Vanetza_ITS2_RoadWorksContainerExtended; +struct Vanetza_ITS2_StationaryVehicleContainer; +struct Vanetza_ITS2_RoadConfigurationContainer; +struct Vanetza_ITS2_PreCrashContainer; + +/* Vanetza_ITS2_AlacarteContainer */ +typedef struct Vanetza_ITS2_AlacarteContainer { + Vanetza_ITS2_LanePosition_t *lanePosition; /* OPTIONAL */ + struct Vanetza_ITS2_ImpactReductionContainer *impactReduction; /* OPTIONAL */ + Vanetza_ITS2_Temperature_t *externalTemperature; /* OPTIONAL */ + struct Vanetza_ITS2_RoadWorksContainerExtended *roadWorks; /* OPTIONAL */ + Vanetza_ITS2_PositioningSolutionType_t *positioningSolution; /* OPTIONAL */ + struct Vanetza_ITS2_StationaryVehicleContainer *stationaryVehicle; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct Vanetza_ITS2_AlacarteContainer__ext1 { + struct Vanetza_ITS2_RoadConfigurationContainer *roadConfiguration; /* OPTIONAL */ + struct Vanetza_ITS2_PreCrashContainer *preCrash; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_AlacarteContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AlacarteContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_AlacarteContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_AlacarteContainer_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ImpactReductionContainer.h" +#include "RoadWorksContainerExtended.h" +#include "StationaryVehicleContainer.h" +#include "RoadConfigurationContainer.h" +#include "PreCrashContainer.h" + +#endif /* _Vanetza_ITS2_AlacarteContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Altitude.c b/vanetza/asn1/its/r2/Altitude.c new file mode 100644 index 000000000..c483ba91d --- /dev/null +++ b/vanetza/asn1/its/r2/Altitude.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Altitude.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "altitudeValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "altitudeConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Altitude_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* altitudeValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* altitudeConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Altitude_specs_1 = { + sizeof(struct Vanetza_ITS2_Altitude), + offsetof(struct Vanetza_ITS2_Altitude, _asn_ctx), + asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Altitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Altitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Altitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Altitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Altitude_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Altitude.h b/vanetza/asn1/its/r2/Altitude.h new file mode 100644 index 000000000..ba4f13ed2 --- /dev/null +++ b/vanetza/asn1/its/r2/Altitude.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Altitude_H_ +#define _Vanetza_ITS2_Altitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AltitudeValue.h" +#include "AltitudeConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Altitude */ +typedef struct Vanetza_ITS2_Altitude { + Vanetza_ITS2_AltitudeValue_t altitudeValue; + Vanetza_ITS2_AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Altitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AltitudeConfidence.c b/vanetza/asn1/its/r2/AltitudeConfidence.c new file mode 100644 index 000000000..ffab429b6 --- /dev/null +++ b/vanetza/asn1/its/r2/AltitudeConfidence.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_AltitudeConfidence_specs_1 = { + asn_MAP_Vanetza_ITS2_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AltitudeConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AltitudeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AltitudeConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AltitudeConfidence.h b/vanetza/asn1/its/r2/AltitudeConfidence.h new file mode 100644 index 000000000..b108db5c8 --- /dev/null +++ b/vanetza/asn1/its/r2/AltitudeConfidence.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AltitudeConfidence_H_ +#define _Vanetza_ITS2_AltitudeConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AltitudeConfidence { + Vanetza_ITS2_AltitudeConfidence_alt_000_01 = 0, + Vanetza_ITS2_AltitudeConfidence_alt_000_02 = 1, + Vanetza_ITS2_AltitudeConfidence_alt_000_05 = 2, + Vanetza_ITS2_AltitudeConfidence_alt_000_10 = 3, + Vanetza_ITS2_AltitudeConfidence_alt_000_20 = 4, + Vanetza_ITS2_AltitudeConfidence_alt_000_50 = 5, + Vanetza_ITS2_AltitudeConfidence_alt_001_00 = 6, + Vanetza_ITS2_AltitudeConfidence_alt_002_00 = 7, + Vanetza_ITS2_AltitudeConfidence_alt_005_00 = 8, + Vanetza_ITS2_AltitudeConfidence_alt_010_00 = 9, + Vanetza_ITS2_AltitudeConfidence_alt_020_00 = 10, + Vanetza_ITS2_AltitudeConfidence_alt_050_00 = 11, + Vanetza_ITS2_AltitudeConfidence_alt_100_00 = 12, + Vanetza_ITS2_AltitudeConfidence_alt_200_00 = 13, + Vanetza_ITS2_AltitudeConfidence_outOfRange = 14, + Vanetza_ITS2_AltitudeConfidence_unavailable = 15 +} e_Vanetza_ITS2_AltitudeConfidence; + +/* Vanetza_ITS2_AltitudeConfidence */ +typedef long Vanetza_ITS2_AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AltitudeConfidence_specs_1; +asn_struct_free_f Vanetza_ITS2_AltitudeConfidence_free; +asn_struct_print_f Vanetza_ITS2_AltitudeConfidence_print; +asn_constr_check_f Vanetza_ITS2_AltitudeConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_AltitudeConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_AltitudeConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AltitudeConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_AltitudeConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_AltitudeConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AltitudeConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AltitudeValue.c b/vanetza/asn1/its/r2/AltitudeValue.c new file mode 100644 index 000000000..daf88360a --- /dev/null +++ b/vanetza/asn1/its/r2/AltitudeValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AltitudeValue.h" + +int +Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AltitudeValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AltitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AltitudeValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AltitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AltitudeValue.h b/vanetza/asn1/its/r2/AltitudeValue.h new file mode 100644 index 000000000..d096ad56e --- /dev/null +++ b/vanetza/asn1/its/r2/AltitudeValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AltitudeValue_H_ +#define _Vanetza_ITS2_AltitudeValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AltitudeValue { + Vanetza_ITS2_AltitudeValue_negativeOutOfRange = -100000, + Vanetza_ITS2_AltitudeValue_postiveOutOfRange = 800000, + Vanetza_ITS2_AltitudeValue_unavailable = 800001 +} e_Vanetza_ITS2_AltitudeValue; + +/* Vanetza_ITS2_AltitudeValue */ +typedef long Vanetza_ITS2_AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AltitudeValue; +asn_struct_free_f Vanetza_ITS2_AltitudeValue_free; +asn_struct_print_f Vanetza_ITS2_AltitudeValue_print; +asn_constr_check_f Vanetza_ITS2_AltitudeValue_constraint; +ber_type_decoder_f Vanetza_ITS2_AltitudeValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_AltitudeValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AltitudeValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_AltitudeValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_AltitudeValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AltitudeValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AngleConfidence.c b/vanetza/asn1/its/r2/AngleConfidence.c new file mode 100644 index 000000000..192e61642 --- /dev/null +++ b/vanetza/asn1/its/r2/AngleConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AngleConfidence.h" + +int +Vanetza_ITS2_AngleConfidence_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 <= 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_Vanetza_ITS2_AngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_AngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_AngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngleConfidence = { + "AngleConfidence", + "AngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AngleConfidence.h b/vanetza/asn1/its/r2/AngleConfidence.h new file mode 100644 index 000000000..c0424116e --- /dev/null +++ b/vanetza/asn1/its/r2/AngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AngleConfidence_H_ +#define _Vanetza_ITS2_AngleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AngleConfidence { + Vanetza_ITS2_AngleConfidence_outOfRange = 126, + Vanetza_ITS2_AngleConfidence_unavailable = 127 +} e_Vanetza_ITS2_AngleConfidence; + +/* Vanetza_ITS2_AngleConfidence */ +typedef long Vanetza_ITS2_AngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngleConfidence; +asn_struct_free_f Vanetza_ITS2_AngleConfidence_free; +asn_struct_print_f Vanetza_ITS2_AngleConfidence_print; +asn_constr_check_f Vanetza_ITS2_AngleConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_AngleConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_AngleConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AngleConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_AngleConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_AngleConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_AngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AngleConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AngularAccelerationConfidence.c b/vanetza/asn1/its/r2/AngularAccelerationConfidence.c new file mode 100644 index 000000000..cd324ccc5 --- /dev/null +++ b/vanetza/asn1/its/r2/AngularAccelerationConfidence.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AngularAccelerationConfidence.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_Vanetza_ITS2_AngularAccelerationConfidence_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_Vanetza_ITS2_AngularAccelerationConfidence_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_Vanetza_ITS2_AngularAccelerationConfidence_value2enum_1[] = { + { 0, 16, "degSecSquared-01" }, + { 1, 16, "degSecSquared-02" }, + { 2, 16, "degSecSquared-05" }, + { 3, 16, "degSecSquared-10" }, + { 4, 16, "degSecSquared-20" }, + { 5, 16, "degSecSquared-50" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_AngularAccelerationConfidence_enum2value_1[] = { + 0, /* degSecSquared-01(0) */ + 1, /* degSecSquared-02(1) */ + 2, /* degSecSquared-05(2) */ + 3, /* degSecSquared-10(3) */ + 4, /* degSecSquared-20(4) */ + 5, /* degSecSquared-50(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AngularAccelerationConfidence_specs_1 = { + asn_MAP_Vanetza_ITS2_AngularAccelerationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_AngularAccelerationConfidence_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_Vanetza_ITS2_AngularAccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence = { + "AngularAccelerationConfidence", + "AngularAccelerationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AngularAccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AngularAccelerationConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_AngularAccelerationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AngularAccelerationConfidence.h b/vanetza/asn1/its/r2/AngularAccelerationConfidence.h new file mode 100644 index 000000000..1114f654b --- /dev/null +++ b/vanetza/asn1/its/r2/AngularAccelerationConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AngularAccelerationConfidence_H_ +#define _Vanetza_ITS2_AngularAccelerationConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AngularAccelerationConfidence { + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_01 = 0, + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_02 = 1, + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_05 = 2, + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_10 = 3, + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_20 = 4, + Vanetza_ITS2_AngularAccelerationConfidence_degSecSquared_50 = 5, + Vanetza_ITS2_AngularAccelerationConfidence_outOfRange = 6, + Vanetza_ITS2_AngularAccelerationConfidence_unavailable = 7 +} e_Vanetza_ITS2_AngularAccelerationConfidence; + +/* Vanetza_ITS2_AngularAccelerationConfidence */ +typedef long Vanetza_ITS2_AngularAccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AngularAccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AngularAccelerationConfidence_specs_1; +asn_struct_free_f Vanetza_ITS2_AngularAccelerationConfidence_free; +asn_struct_print_f Vanetza_ITS2_AngularAccelerationConfidence_print; +asn_constr_check_f Vanetza_ITS2_AngularAccelerationConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_AngularAccelerationConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_AngularAccelerationConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AngularAccelerationConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_AngularAccelerationConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_AngularAccelerationConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_AngularAccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AngularAccelerationConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AngularSpeedConfidence.c b/vanetza/asn1/its/r2/AngularSpeedConfidence.c new file mode 100644 index 000000000..89272b496 --- /dev/null +++ b/vanetza/asn1/its/r2/AngularSpeedConfidence.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AngularSpeedConfidence.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_Vanetza_ITS2_AngularSpeedConfidence_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_Vanetza_ITS2_AngularSpeedConfidence_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_Vanetza_ITS2_AngularSpeedConfidence_value2enum_1[] = { + { 0, 9, "degSec-01" }, + { 1, 9, "degSec-02" }, + { 2, 9, "degSec-05" }, + { 3, 9, "degSec-10" }, + { 4, 9, "degSec-20" }, + { 5, 9, "degSec-50" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_AngularSpeedConfidence_enum2value_1[] = { + 0, /* degSec-01(0) */ + 1, /* degSec-02(1) */ + 2, /* degSec-05(2) */ + 3, /* degSec-10(3) */ + 4, /* degSec-20(4) */ + 5, /* degSec-50(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AngularSpeedConfidence_specs_1 = { + asn_MAP_Vanetza_ITS2_AngularSpeedConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_AngularSpeedConfidence_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_Vanetza_ITS2_AngularSpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngularSpeedConfidence = { + "AngularSpeedConfidence", + "AngularSpeedConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AngularSpeedConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AngularSpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AngularSpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_AngularSpeedConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/AngularSpeedConfidence.h b/vanetza/asn1/its/r2/AngularSpeedConfidence.h new file mode 100644 index 000000000..089967cff --- /dev/null +++ b/vanetza/asn1/its/r2/AngularSpeedConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AngularSpeedConfidence_H_ +#define _Vanetza_ITS2_AngularSpeedConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AngularSpeedConfidence { + Vanetza_ITS2_AngularSpeedConfidence_degSec_01 = 0, + Vanetza_ITS2_AngularSpeedConfidence_degSec_02 = 1, + Vanetza_ITS2_AngularSpeedConfidence_degSec_05 = 2, + Vanetza_ITS2_AngularSpeedConfidence_degSec_10 = 3, + Vanetza_ITS2_AngularSpeedConfidence_degSec_20 = 4, + Vanetza_ITS2_AngularSpeedConfidence_degSec_50 = 5, + Vanetza_ITS2_AngularSpeedConfidence_outOfRange = 6, + Vanetza_ITS2_AngularSpeedConfidence_unavailable = 7 +} e_Vanetza_ITS2_AngularSpeedConfidence; + +/* Vanetza_ITS2_AngularSpeedConfidence */ +typedef long Vanetza_ITS2_AngularSpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_AngularSpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AngularSpeedConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_AngularSpeedConfidence_specs_1; +asn_struct_free_f Vanetza_ITS2_AngularSpeedConfidence_free; +asn_struct_print_f Vanetza_ITS2_AngularSpeedConfidence_print; +asn_constr_check_f Vanetza_ITS2_AngularSpeedConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_AngularSpeedConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_AngularSpeedConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AngularSpeedConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_AngularSpeedConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_AngularSpeedConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_AngularSpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AngularSpeedConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/AxlesCount.c b/vanetza/asn1/its/r2/AxlesCount.c new file mode 100644 index 000000000..03840edda --- /dev/null +++ b/vanetza/asn1/its/r2/AxlesCount.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "AxlesCount.h" + +int +Vanetza_ITS2_AxlesCount_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 >= 2L && value <= 1002L)) { + /* 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_Vanetza_ITS2_AxlesCount_constr_1 CC_NOTUSED = { + { 2, 1 } /* (2..1002) */, + -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_Vanetza_ITS2_AxlesCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 2, 1002 } /* (2..1002) */, + { 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_Vanetza_ITS2_AxlesCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AxlesCount = { + "AxlesCount", + "AxlesCount", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_AxlesCount_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_AxlesCount_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AxlesCount_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_AxlesCount_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_AxlesCount_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_AxlesCount_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_AxlesCount_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_AxlesCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_AxlesCount_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/AxlesCount.h b/vanetza/asn1/its/r2/AxlesCount.h new file mode 100644 index 000000000..48a0e554e --- /dev/null +++ b/vanetza/asn1/its/r2/AxlesCount.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_AxlesCount_H_ +#define _Vanetza_ITS2_AxlesCount_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_AxlesCount { + Vanetza_ITS2_AxlesCount_outOfRange = 1001, + Vanetza_ITS2_AxlesCount_unavailable = 1002 +} e_Vanetza_ITS2_AxlesCount; + +/* Vanetza_ITS2_AxlesCount */ +typedef long Vanetza_ITS2_AxlesCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_AxlesCount; +asn_struct_free_f Vanetza_ITS2_AxlesCount_free; +asn_struct_print_f Vanetza_ITS2_AxlesCount_print; +asn_constr_check_f Vanetza_ITS2_AxlesCount_constraint; +ber_type_decoder_f Vanetza_ITS2_AxlesCount_decode_ber; +der_type_encoder_f Vanetza_ITS2_AxlesCount_encode_der; +xer_type_decoder_f Vanetza_ITS2_AxlesCount_decode_xer; +xer_type_encoder_f Vanetza_ITS2_AxlesCount_encode_xer; +jer_type_encoder_f Vanetza_ITS2_AxlesCount_encode_jer; +oer_type_decoder_f Vanetza_ITS2_AxlesCount_decode_oer; +oer_type_encoder_f Vanetza_ITS2_AxlesCount_encode_oer; +per_type_decoder_f Vanetza_ITS2_AxlesCount_decode_uper; +per_type_encoder_f Vanetza_ITS2_AxlesCount_encode_uper; +per_type_decoder_f Vanetza_ITS2_AxlesCount_decode_aper; +per_type_encoder_f Vanetza_ITS2_AxlesCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_AxlesCount_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BarometricPressure.c b/vanetza/asn1/its/r2/BarometricPressure.c new file mode 100644 index 000000000..a6870a18a --- /dev/null +++ b/vanetza/asn1/its/r2/BarometricPressure.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BarometricPressure.h" + +int +Vanetza_ITS2_BarometricPressure_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 >= 2999L && value <= 12002L)) { + /* 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_Vanetza_ITS2_BarometricPressure_constr_1 CC_NOTUSED = { + { 2, 1 } /* (2999..12002) */, + -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_Vanetza_ITS2_BarometricPressure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 2999, 12002 } /* (2999..12002) */, + { 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_Vanetza_ITS2_BarometricPressure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BarometricPressure = { + "BarometricPressure", + "BarometricPressure", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BarometricPressure_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_BarometricPressure_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_BarometricPressure_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_BarometricPressure_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/BarometricPressure.h b/vanetza/asn1/its/r2/BarometricPressure.h new file mode 100644 index 000000000..9f37cad4f --- /dev/null +++ b/vanetza/asn1/its/r2/BarometricPressure.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BarometricPressure_H_ +#define _Vanetza_ITS2_BarometricPressure_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_BarometricPressure { + Vanetza_ITS2_BarometricPressure_outOfRangelower = 2999, + Vanetza_ITS2_BarometricPressure_outOfRangeUpper = 12001, + Vanetza_ITS2_BarometricPressure_unavailable = 12002 +} e_Vanetza_ITS2_BarometricPressure; + +/* Vanetza_ITS2_BarometricPressure */ +typedef long Vanetza_ITS2_BarometricPressure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BarometricPressure; +asn_struct_free_f Vanetza_ITS2_BarometricPressure_free; +asn_struct_print_f Vanetza_ITS2_BarometricPressure_print; +asn_constr_check_f Vanetza_ITS2_BarometricPressure_constraint; +ber_type_decoder_f Vanetza_ITS2_BarometricPressure_decode_ber; +der_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_der; +xer_type_decoder_f Vanetza_ITS2_BarometricPressure_decode_xer; +xer_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_xer; +jer_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_jer; +oer_type_decoder_f Vanetza_ITS2_BarometricPressure_decode_oer; +oer_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_oer; +per_type_decoder_f Vanetza_ITS2_BarometricPressure_decode_uper; +per_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_uper; +per_type_decoder_f Vanetza_ITS2_BarometricPressure_decode_aper; +per_type_encoder_f Vanetza_ITS2_BarometricPressure_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_BarometricPressure_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BasicContainer.c b/vanetza/asn1/its/r2/BasicContainer.c new file mode 100644 index 000000000..d661b8085 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BasicContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficParticipantType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referencePosition" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_BasicContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_BasicContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referencePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_BasicContainer), + offsetof(struct Vanetza_ITS2_BasicContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_BasicContainer_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_Vanetza_ITS2_BasicContainer = { + "BasicContainer", + "BasicContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_BasicContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BasicContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BasicContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BasicContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_BasicContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_BasicContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/BasicContainer.h b/vanetza/asn1/its/r2/BasicContainer.h new file mode 100644 index 000000000..97539fbc4 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BasicContainer_H_ +#define _Vanetza_ITS2_BasicContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TrafficParticipantType.h" +#include "ReferencePositionWithConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_BasicContainer */ +typedef struct Vanetza_ITS2_BasicContainer { + Vanetza_ITS2_TrafficParticipantType_t stationType; + Vanetza_ITS2_ReferencePositionWithConfidence_t referencePosition; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_BasicContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_BasicContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BasicLaneConfiguration.c b/vanetza/asn1/its/r2/BasicLaneConfiguration.c new file mode 100644 index 000000000..0501f8574 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicLaneConfiguration.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BasicLaneConfiguration.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_BasicLaneConfiguration_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_Vanetza_ITS2_BasicLaneConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_BasicLaneConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_BasicLaneInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_BasicLaneConfiguration_specs_1 = { + sizeof(struct Vanetza_ITS2_BasicLaneConfiguration), + offsetof(struct Vanetza_ITS2_BasicLaneConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicLaneConfiguration = { + "BasicLaneConfiguration", + "BasicLaneConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicLaneConfiguration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_BasicLaneConfiguration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_BasicLaneConfiguration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_BasicLaneConfiguration_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_BasicLaneConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/BasicLaneConfiguration.h b/vanetza/asn1/its/r2/BasicLaneConfiguration.h new file mode 100644 index 000000000..0c186bea7 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicLaneConfiguration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BasicLaneConfiguration_H_ +#define _Vanetza_ITS2_BasicLaneConfiguration_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 Vanetza_ITS2_BasicLaneInformation; + +/* Vanetza_ITS2_BasicLaneConfiguration */ +typedef struct Vanetza_ITS2_BasicLaneConfiguration { + A_SEQUENCE_OF(struct Vanetza_ITS2_BasicLaneInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_BasicLaneConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicLaneConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_BasicLaneConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicLaneConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_BasicLaneConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "BasicLaneInformation.h" + +#endif /* _Vanetza_ITS2_BasicLaneConfiguration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BasicLaneInformation.c b/vanetza/asn1/its/r2/BasicLaneInformation.c new file mode 100644 index 000000000..0e9675d8a --- /dev/null +++ b/vanetza/asn1/its/r2/BasicLaneInformation.c @@ -0,0 +1,170 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BasicLaneInformation.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_BasicLaneInformation_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_Vanetza_ITS2_BasicLaneInformation_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicLaneInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicLaneInformation, laneNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicLaneInformation, direction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Direction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_BasicLaneInformation, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneWidth" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_BasicLaneInformation, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectingLane" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_BasicLaneInformation, connectingRoadSection), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadSectionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectingRoadSection" + }, +}; +static const int asn_MAP_Vanetza_ITS2_BasicLaneInformation_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_BasicLaneInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* laneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneWidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* connectingLane */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* connectingRoadSection */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicLaneInformation_specs_1 = { + sizeof(struct Vanetza_ITS2_BasicLaneInformation), + offsetof(struct Vanetza_ITS2_BasicLaneInformation, _asn_ctx), + asn_MAP_Vanetza_ITS2_BasicLaneInformation_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_BasicLaneInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicLaneInformation = { + "BasicLaneInformation", + "BasicLaneInformation", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicLaneInformation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_BasicLaneInformation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_BasicLaneInformation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_BasicLaneInformation_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_BasicLaneInformation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/BasicLaneInformation.h b/vanetza/asn1/its/r2/BasicLaneInformation.h new file mode 100644 index 000000000..12dcc5ea7 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicLaneInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BasicLaneInformation_H_ +#define _Vanetza_ITS2_BasicLaneInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePosition.h" +#include "Direction.h" +#include "LaneWidth.h" +#include "RoadSectionId.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_BasicLaneInformation */ +typedef struct Vanetza_ITS2_BasicLaneInformation { + Vanetza_ITS2_LanePosition_t laneNumber; + Vanetza_ITS2_Direction_t direction; + Vanetza_ITS2_LaneWidth_t *laneWidth; /* OPTIONAL */ + Vanetza_ITS2_LanePosition_t *connectingLane; /* OPTIONAL */ + Vanetza_ITS2_RoadSectionId_t *connectingRoadSection; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_BasicLaneInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicLaneInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicLaneInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicLaneInformation_1[5]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_BasicLaneInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_BasicLaneInformation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.c b/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.c new file mode 100644 index 000000000..304c42262 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.c @@ -0,0 +1,389 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BasicVehicleContainerHighFrequency.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicVehicleContainerHighFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heading" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speed" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, driveDirection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DriveDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "driveDirection" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, vehicleLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, vehicleWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, longitudinalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalAcceleration" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, curvature), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Curvature, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "curvature" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, curvatureCalculationMode), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CurvatureCalculationMode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "curvatureCalculationMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, yawRate), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yawRate" + }, + { ATF_POINTER, 7, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, accelerationControl), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationControl, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accelerationControl" + }, + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, lanePosition), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lanePosition" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, steeringWheelAngle), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringWheelAngle" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, lateralAcceleration), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lateralAcceleration" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, verticalAcceleration), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccelerationComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalAcceleration" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, performanceClass), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PerformanceClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "performanceClass" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, cenDsrcTollingZone), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CenDsrcTollingZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cenDsrcTollingZone" + }, +}; +static const int asn_MAP_Vanetza_ITS2_BasicVehicleContainerHighFrequency_oms_1[] = { 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_BasicVehicleContainerHighFrequency_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 }, /* driveDirection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* vehicleLength */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* longitudinalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* curvature */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* curvatureCalculationMode */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* yawRate */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* accelerationControl */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* steeringWheelAngle */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* lateralAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* verticalAcceleration */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* performanceClass */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* cenDsrcTollingZone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicVehicleContainerHighFrequency_specs_1 = { + sizeof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency), + offsetof(struct Vanetza_ITS2_BasicVehicleContainerHighFrequency, _asn_ctx), + asn_MAP_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_BasicVehicleContainerHighFrequency_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency = { + "BasicVehicleContainerHighFrequency", + "BasicVehicleContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_BasicVehicleContainerHighFrequency_1, + 16, /* Elements count */ + &asn_SPC_Vanetza_ITS2_BasicVehicleContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.h b/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.h new file mode 100644 index 000000000..748e7aa40 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicVehicleContainerHighFrequency.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BasicVehicleContainerHighFrequency_H_ +#define _Vanetza_ITS2_BasicVehicleContainerHighFrequency_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Heading.h" +#include "Speed.h" +#include "DriveDirection.h" +#include "VehicleLength.h" +#include "VehicleWidth.h" +#include "AccelerationComponent.h" +#include "Curvature.h" +#include "CurvatureCalculationMode.h" +#include "YawRate.h" +#include "AccelerationControl.h" +#include "LanePosition.h" +#include "PerformanceClass.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_SteeringWheelAngle; +struct Vanetza_ITS2_AccelerationComponent; +struct Vanetza_ITS2_CenDsrcTollingZone; + +/* Vanetza_ITS2_BasicVehicleContainerHighFrequency */ +typedef struct Vanetza_ITS2_BasicVehicleContainerHighFrequency { + Vanetza_ITS2_Heading_t heading; + Vanetza_ITS2_Speed_t speed; + Vanetza_ITS2_DriveDirection_t driveDirection; + Vanetza_ITS2_VehicleLength_t vehicleLength; + Vanetza_ITS2_VehicleWidth_t vehicleWidth; + Vanetza_ITS2_AccelerationComponent_t longitudinalAcceleration; + Vanetza_ITS2_Curvature_t curvature; + Vanetza_ITS2_CurvatureCalculationMode_t curvatureCalculationMode; + Vanetza_ITS2_YawRate_t yawRate; + Vanetza_ITS2_AccelerationControl_t *accelerationControl; /* OPTIONAL */ + Vanetza_ITS2_LanePosition_t *lanePosition; /* OPTIONAL */ + struct Vanetza_ITS2_SteeringWheelAngle *steeringWheelAngle; /* OPTIONAL */ + struct Vanetza_ITS2_AccelerationComponent *lateralAcceleration; /* OPTIONAL */ + struct Vanetza_ITS2_AccelerationComponent *verticalAcceleration; /* OPTIONAL */ + Vanetza_ITS2_PerformanceClass_t *performanceClass; /* OPTIONAL */ + struct Vanetza_ITS2_CenDsrcTollingZone *cenDsrcTollingZone; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_BasicVehicleContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicVehicleContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicVehicleContainerHighFrequency_1[16]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "SteeringWheelAngle.h" +#include "AccelerationComponent.h" +#include "CenDsrcTollingZone.h" + +#endif /* _Vanetza_ITS2_BasicVehicleContainerHighFrequency_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.c b/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.c new file mode 100644 index 000000000..446930731 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BasicVehicleContainerLowFrequency.h" + +static int +memb_Vanetza_ITS2_pathHistory_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 <= 23UL)) { + /* 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_memb_Vanetza_ITS2_pathHistory_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..23)) */}; +#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_Vanetza_ITS2_pathHistory_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 23 } /* (SIZE(0..23)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicVehicleContainerLowFrequency_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerLowFrequency, vehicleRole), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleRole, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleRole" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerLowFrequency, exteriorLights), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "exteriorLights" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_BasicVehicleContainerLowFrequency, pathHistory), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Path, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_pathHistory_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_pathHistory_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_pathHistory_constraint_1 + }, + 0, 0, /* No default value */ + "pathHistory" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleRole */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* exteriorLights */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pathHistory */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicVehicleContainerLowFrequency_specs_1 = { + sizeof(struct Vanetza_ITS2_BasicVehicleContainerLowFrequency), + offsetof(struct Vanetza_ITS2_BasicVehicleContainerLowFrequency, _asn_ctx), + asn_MAP_Vanetza_ITS2_BasicVehicleContainerLowFrequency_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_Vanetza_ITS2_BasicVehicleContainerLowFrequency = { + "BasicVehicleContainerLowFrequency", + "BasicVehicleContainerLowFrequency", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_BasicVehicleContainerLowFrequency_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_BasicVehicleContainerLowFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.h b/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.h new file mode 100644 index 000000000..caa6c27c2 --- /dev/null +++ b/vanetza/asn1/its/r2/BasicVehicleContainerLowFrequency.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BasicVehicleContainerLowFrequency_H_ +#define _Vanetza_ITS2_BasicVehicleContainerLowFrequency_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleRole.h" +#include "ExteriorLights.h" +#include "Path.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_BasicVehicleContainerLowFrequency */ +typedef struct Vanetza_ITS2_BasicVehicleContainerLowFrequency { + Vanetza_ITS2_VehicleRole_t vehicleRole; + Vanetza_ITS2_ExteriorLights_t exteriorLights; + Vanetza_ITS2_Path_t pathHistory; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_BasicVehicleContainerLowFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_BasicVehicleContainerLowFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_BasicVehicleContainerLowFrequency_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_BasicVehicleContainerLowFrequency_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/BogiesCount.c b/vanetza/asn1/its/r2/BogiesCount.c new file mode 100644 index 000000000..277835019 --- /dev/null +++ b/vanetza/asn1/its/r2/BogiesCount.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "BogiesCount.h" + +int +Vanetza_ITS2_BogiesCount_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 >= 2L && 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_Vanetza_ITS2_BogiesCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (2..101) */, + -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_Vanetza_ITS2_BogiesCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 2, 101 } /* (2..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_Vanetza_ITS2_BogiesCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BogiesCount = { + "BogiesCount", + "BogiesCount", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_BogiesCount_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_BogiesCount_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BogiesCount_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_BogiesCount_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_BogiesCount_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_BogiesCount_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_BogiesCount_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_BogiesCount_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_BogiesCount_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/BogiesCount.h b/vanetza/asn1/its/r2/BogiesCount.h new file mode 100644 index 000000000..cc61f06aa --- /dev/null +++ b/vanetza/asn1/its/r2/BogiesCount.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_BogiesCount_H_ +#define _Vanetza_ITS2_BogiesCount_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_BogiesCount { + Vanetza_ITS2_BogiesCount_outOfRange = 100, + Vanetza_ITS2_BogiesCount_unavailable = 101 +} e_Vanetza_ITS2_BogiesCount; + +/* Vanetza_ITS2_BogiesCount */ +typedef long Vanetza_ITS2_BogiesCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_BogiesCount; +asn_struct_free_f Vanetza_ITS2_BogiesCount_free; +asn_struct_print_f Vanetza_ITS2_BogiesCount_print; +asn_constr_check_f Vanetza_ITS2_BogiesCount_constraint; +ber_type_decoder_f Vanetza_ITS2_BogiesCount_decode_ber; +der_type_encoder_f Vanetza_ITS2_BogiesCount_encode_der; +xer_type_decoder_f Vanetza_ITS2_BogiesCount_decode_xer; +xer_type_encoder_f Vanetza_ITS2_BogiesCount_encode_xer; +jer_type_encoder_f Vanetza_ITS2_BogiesCount_encode_jer; +oer_type_decoder_f Vanetza_ITS2_BogiesCount_decode_oer; +oer_type_encoder_f Vanetza_ITS2_BogiesCount_encode_oer; +per_type_decoder_f Vanetza_ITS2_BogiesCount_decode_uper; +per_type_encoder_f Vanetza_ITS2_BogiesCount_encode_uper; +per_type_decoder_f Vanetza_ITS2_BogiesCount_decode_aper; +per_type_encoder_f Vanetza_ITS2_BogiesCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_BogiesCount_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CAM.c b/vanetza/asn1/its/r2/CAM.c new file mode 100644 index 000000000..ce62b45da --- /dev/null +++ b/vanetza/asn1/its/r2/CAM.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CAM.h" + +static int +memb_Vanetza_ITS2_header_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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_CAM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CAM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ItsPduHeader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_header_constraint_1 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CAM, cam), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CamPayload, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cam" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CAM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cam */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CAM_specs_1 = { + sizeof(struct Vanetza_ITS2_CAM), + offsetof(struct Vanetza_ITS2_CAM, _asn_ctx), + asn_MAP_Vanetza_ITS2_CAM_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_Vanetza_ITS2_CAM = { + "CAM", + "CAM", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CAM_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CAM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CAM_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CAM_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CAM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CAM_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CAM_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CAM_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CAM.h b/vanetza/asn1/its/r2/CAM.h new file mode 100644 index 000000000..cfd8a25ab --- /dev/null +++ b/vanetza/asn1/its/r2/CAM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CAM_H_ +#define _Vanetza_ITS2_CAM_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "CamPayload.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CAM */ +typedef struct Vanetza_ITS2_CAM { + Vanetza_ITS2_ItsPduHeader_t header; + Vanetza_ITS2_CamPayload_t cam; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CAM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CAM; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CAM_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.c b/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.c new file mode 100644 index 000000000..7d15aa52f --- /dev/null +++ b/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CPM-PDU-Descriptions_ManagementContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, referenceTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TimestampIts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referenceTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, referencePosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referencePosition" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, segmentationInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MessageSegmentationInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "segmentationInfo" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, messageRateRange), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MessageRateRange, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageRateRange" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* referencePosition */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* segmentationInfo */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* messageRateRange */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer), + offsetof(struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer = { + "ManagementContainer", + "ManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.h b/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.h new file mode 100644 index 000000000..04887fec9 --- /dev/null +++ b/vanetza/asn1/its/r2/CPM-PDU-Descriptions_ManagementContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_H_ +#define _Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TimestampIts.h" +#include "ReferencePosition.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MessageSegmentationInfo; +struct Vanetza_ITS2_MessageRateRange; + +/* Vanetza_ITS2_CPM-PDU-Descriptions_ManagementContainer */ +typedef struct Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer { + Vanetza_ITS2_TimestampIts_t referenceTime; + Vanetza_ITS2_ReferencePosition_t referencePosition; + struct Vanetza_ITS2_MessageSegmentationInfo *segmentationInfo; /* OPTIONAL */ + struct Vanetza_ITS2_MessageRateRange *messageRateRange; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MessageSegmentationInfo.h" +#include "MessageRateRange.h" + +#endif /* _Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CamParameters.c b/vanetza/asn1/its/r2/CamParameters.c new file mode 100644 index 000000000..a9a8c33d3 --- /dev/null +++ b/vanetza/asn1/its/r2/CamParameters.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CamParameters.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CamParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CamParameters, basicContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_BasicContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CamParameters, highFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HighFrequencyContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "highFrequencyContainer" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_CamParameters, lowFrequencyContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LowFrequencyContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lowFrequencyContainer" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CamParameters, specialVehicleContainer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SpecialVehicleContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "specialVehicleContainer" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CamParameters_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CamParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CamParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* highFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lowFrequencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* specialVehicleContainer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CamParameters_specs_1 = { + sizeof(struct Vanetza_ITS2_CamParameters), + offsetof(struct Vanetza_ITS2_CamParameters, _asn_ctx), + asn_MAP_Vanetza_ITS2_CamParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CamParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CamParameters = { + "CamParameters", + "CamParameters", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CamParameters_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CamParameters_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CamParameters_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CamParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CamParameters_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CamParameters_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CamParameters_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CamParameters_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CamParameters.h b/vanetza/asn1/its/r2/CamParameters.h new file mode 100644 index 000000000..eb34833bf --- /dev/null +++ b/vanetza/asn1/its/r2/CamParameters.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CamParameters_H_ +#define _Vanetza_ITS2_CamParameters_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicContainer.h" +#include "HighFrequencyContainer.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_LowFrequencyContainer; +struct Vanetza_ITS2_SpecialVehicleContainer; + +/* Vanetza_ITS2_CamParameters */ +typedef struct Vanetza_ITS2_CamParameters { + Vanetza_ITS2_BasicContainer_t basicContainer; + Vanetza_ITS2_HighFrequencyContainer_t highFrequencyContainer; + struct Vanetza_ITS2_LowFrequencyContainer *lowFrequencyContainer; /* OPTIONAL */ + struct Vanetza_ITS2_SpecialVehicleContainer *specialVehicleContainer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CamParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CamParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CamParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CamParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "LowFrequencyContainer.h" +#include "SpecialVehicleContainer.h" + +#endif /* _Vanetza_ITS2_CamParameters_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CamPayload.c b/vanetza/asn1/its/r2/CamPayload.c new file mode 100644 index 000000000..a0ac1239c --- /dev/null +++ b/vanetza/asn1/its/r2/CamPayload.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CamPayload.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CamPayload_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CamPayload, generationDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_GenerationDeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "generationDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CamPayload, camParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CamParameters, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "camParameters" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CamPayload_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CamPayload_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* generationDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* camParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CamPayload_specs_1 = { + sizeof(struct Vanetza_ITS2_CamPayload), + offsetof(struct Vanetza_ITS2_CamPayload, _asn_ctx), + asn_MAP_Vanetza_ITS2_CamPayload_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_Vanetza_ITS2_CamPayload = { + "CamPayload", + "CamPayload", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CamPayload_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CamPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CamPayload_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CamPayload_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CamPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CamPayload_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CamPayload_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CamPayload_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CamPayload.h b/vanetza/asn1/its/r2/CamPayload.h new file mode 100644 index 000000000..ad10a59d2 --- /dev/null +++ b/vanetza/asn1/its/r2/CamPayload.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CamPayload_H_ +#define _Vanetza_ITS2_CamPayload_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GenerationDeltaTime.h" +#include "CamParameters.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CamPayload */ +typedef struct Vanetza_ITS2_CamPayload { + Vanetza_ITS2_GenerationDeltaTime_t generationDeltaTime; + Vanetza_ITS2_CamParameters_t camParameters; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CamPayload_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CamPayload; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CamPayload_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CamPayload_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CamPayload_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CardinalNumber1B.c b/vanetza/asn1/its/r2/CardinalNumber1B.c new file mode 100644 index 000000000..d057225ca --- /dev/null +++ b/vanetza/asn1/its/r2/CardinalNumber1B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CardinalNumber1B.h" + +int +Vanetza_ITS2_CardinalNumber1B_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_Vanetza_ITS2_CardinalNumber1B_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_Vanetza_ITS2_CardinalNumber1B_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_Vanetza_ITS2_CardinalNumber1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CardinalNumber1B = { + "CardinalNumber1B", + "CardinalNumber1B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber1B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CardinalNumber1B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CardinalNumber1B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CardinalNumber1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CardinalNumber1B.h b/vanetza/asn1/its/r2/CardinalNumber1B.h new file mode 100644 index 000000000..da208b995 --- /dev/null +++ b/vanetza/asn1/its/r2/CardinalNumber1B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CardinalNumber1B_H_ +#define _Vanetza_ITS2_CardinalNumber1B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CardinalNumber1B */ +typedef long Vanetza_ITS2_CardinalNumber1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CardinalNumber1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CardinalNumber1B; +asn_struct_free_f Vanetza_ITS2_CardinalNumber1B_free; +asn_struct_print_f Vanetza_ITS2_CardinalNumber1B_print; +asn_constr_check_f Vanetza_ITS2_CardinalNumber1B_constraint; +ber_type_decoder_f Vanetza_ITS2_CardinalNumber1B_decode_ber; +der_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_der; +xer_type_decoder_f Vanetza_ITS2_CardinalNumber1B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CardinalNumber1B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_oer; +per_type_decoder_f Vanetza_ITS2_CardinalNumber1B_decode_uper; +per_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_uper; +per_type_decoder_f Vanetza_ITS2_CardinalNumber1B_decode_aper; +per_type_encoder_f Vanetza_ITS2_CardinalNumber1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CardinalNumber1B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CardinalNumber3b.c b/vanetza/asn1/its/r2/CardinalNumber3b.c new file mode 100644 index 000000000..acc782dc7 --- /dev/null +++ b/vanetza/asn1/its/r2/CardinalNumber3b.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CardinalNumber3b.h" + +int +Vanetza_ITS2_CardinalNumber3b_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 <= 8L)) { + /* 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_Vanetza_ITS2_CardinalNumber3b_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -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_Vanetza_ITS2_CardinalNumber3b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { 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_Vanetza_ITS2_CardinalNumber3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CardinalNumber3b = { + "CardinalNumber3b", + "CardinalNumber3b", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CardinalNumber3b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CardinalNumber3b_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CardinalNumber3b_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CardinalNumber3b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CardinalNumber3b.h b/vanetza/asn1/its/r2/CardinalNumber3b.h new file mode 100644 index 000000000..c005ef360 --- /dev/null +++ b/vanetza/asn1/its/r2/CardinalNumber3b.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CardinalNumber3b_H_ +#define _Vanetza_ITS2_CardinalNumber3b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CardinalNumber3b */ +typedef long Vanetza_ITS2_CardinalNumber3b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CardinalNumber3b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CardinalNumber3b; +asn_struct_free_f Vanetza_ITS2_CardinalNumber3b_free; +asn_struct_print_f Vanetza_ITS2_CardinalNumber3b_print; +asn_constr_check_f Vanetza_ITS2_CardinalNumber3b_constraint; +ber_type_decoder_f Vanetza_ITS2_CardinalNumber3b_decode_ber; +der_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_der; +xer_type_decoder_f Vanetza_ITS2_CardinalNumber3b_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CardinalNumber3b_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_oer; +per_type_decoder_f Vanetza_ITS2_CardinalNumber3b_decode_uper; +per_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_uper; +per_type_decoder_f Vanetza_ITS2_CardinalNumber3b_decode_aper; +per_type_encoder_f Vanetza_ITS2_CardinalNumber3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CardinalNumber3b_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngle.c b/vanetza/asn1/its/r2/CartesianAngle.c new file mode 100644 index 000000000..36162036a --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngle.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AngleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianAngle_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_Vanetza_ITS2_CartesianAngle_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianAngle), + offsetof(struct Vanetza_ITS2_CartesianAngle, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianAngle_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_Vanetza_ITS2_CartesianAngle = { + "CartesianAngle", + "CartesianAngle", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngle_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianAngle_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianAngle_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngle.h b/vanetza/asn1/its/r2/CartesianAngle.h new file mode 100644 index 000000000..41e859ef3 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngle_H_ +#define _Vanetza_ITS2_CartesianAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianAngleValue.h" +#include "AngleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CartesianAngle */ +typedef struct Vanetza_ITS2_CartesianAngle { + Vanetza_ITS2_CartesianAngleValue_t value; + Vanetza_ITS2_AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngle_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngleValue.c b/vanetza/asn1/its/r2/CartesianAngleValue.c new file mode 100644 index 000000000..e969bb32f --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngleValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngleValue.h" + +int +Vanetza_ITS2_CartesianAngleValue_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 <= 3601L)) { + /* 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_Vanetza_ITS2_CartesianAngleValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -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_Vanetza_ITS2_CartesianAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_Vanetza_ITS2_CartesianAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngleValue = { + "CartesianAngleValue", + "CartesianAngleValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngleValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianAngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianAngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngleValue.h b/vanetza/asn1/its/r2/CartesianAngleValue.h new file mode 100644 index 000000000..e08f58708 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngleValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngleValue_H_ +#define _Vanetza_ITS2_CartesianAngleValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianAngleValue { + Vanetza_ITS2_CartesianAngleValue_valueNotUsed = 3600, + Vanetza_ITS2_CartesianAngleValue_unavailable = 3601 +} e_Vanetza_ITS2_CartesianAngleValue; + +/* Vanetza_ITS2_CartesianAngleValue */ +typedef long Vanetza_ITS2_CartesianAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngleValue; +asn_struct_free_f Vanetza_ITS2_CartesianAngleValue_free; +asn_struct_print_f Vanetza_ITS2_CartesianAngleValue_print; +asn_constr_check_f Vanetza_ITS2_CartesianAngleValue_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianAngleValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianAngleValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianAngleValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianAngleValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianAngleValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngleValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.c b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.c new file mode 100644 index 000000000..56609eaf3 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngularAccelerationComponent.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianAngularAccelerationComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngularAccelerationComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngularAccelerationComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AngularAccelerationConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianAngularAccelerationComponent_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* value */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianAngularAccelerationComponent_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianAngularAccelerationComponent), + offsetof(struct Vanetza_ITS2_CartesianAngularAccelerationComponent, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianAngularAccelerationComponent_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_Vanetza_ITS2_CartesianAngularAccelerationComponent = { + "CartesianAngularAccelerationComponent", + "CartesianAngularAccelerationComponent", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianAngularAccelerationComponent_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianAngularAccelerationComponent_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.h b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.h new file mode 100644 index 000000000..c3e4f016b --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponent.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngularAccelerationComponent_H_ +#define _Vanetza_ITS2_CartesianAngularAccelerationComponent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianAngularAccelerationComponentValue.h" +#include "AngularAccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CartesianAngularAccelerationComponent */ +typedef struct Vanetza_ITS2_CartesianAngularAccelerationComponent { + Vanetza_ITS2_CartesianAngularAccelerationComponentValue_t value; + Vanetza_ITS2_AngularAccelerationConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianAngularAccelerationComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponent; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngularAccelerationComponent_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.c b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.c new file mode 100644 index 000000000..9de860109 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngularAccelerationComponentValue.h" + +int +Vanetza_ITS2_CartesianAngularAccelerationComponentValue_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 >= -255L && value <= 256L)) { + /* 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_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-255..256) */, + -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_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -255, 256 } /* (-255..256) */, + { 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_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue = { + "CartesianAngularAccelerationComponentValue", + "CartesianAngularAccelerationComponentValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.h b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.h new file mode 100644 index 000000000..315a90aac --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularAccelerationComponentValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngularAccelerationComponentValue_H_ +#define _Vanetza_ITS2_CartesianAngularAccelerationComponentValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianAngularAccelerationComponentValue { + Vanetza_ITS2_CartesianAngularAccelerationComponentValue_negativeOutOfRange = -255, + Vanetza_ITS2_CartesianAngularAccelerationComponentValue_positiveOutOfRange = 255, + Vanetza_ITS2_CartesianAngularAccelerationComponentValue_unavailable = 256 +} e_Vanetza_ITS2_CartesianAngularAccelerationComponentValue; + +/* Vanetza_ITS2_CartesianAngularAccelerationComponentValue */ +typedef long Vanetza_ITS2_CartesianAngularAccelerationComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularAccelerationComponentValue; +asn_struct_free_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_free; +asn_struct_print_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_print; +asn_constr_check_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianAngularAccelerationComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngularAccelerationComponentValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.c b/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.c new file mode 100644 index 000000000..2a6dd927c --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngularVelocityComponent.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianAngularVelocityComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngularVelocityComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianAngularVelocityComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AngularSpeedConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianAngularVelocityComponent_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_Vanetza_ITS2_CartesianAngularVelocityComponent_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianAngularVelocityComponent), + offsetof(struct Vanetza_ITS2_CartesianAngularVelocityComponent, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianAngularVelocityComponent_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_Vanetza_ITS2_CartesianAngularVelocityComponent = { + "CartesianAngularVelocityComponent", + "CartesianAngularVelocityComponent", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianAngularVelocityComponent_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianAngularVelocityComponent_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.h b/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.h new file mode 100644 index 000000000..222297b26 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularVelocityComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngularVelocityComponent_H_ +#define _Vanetza_ITS2_CartesianAngularVelocityComponent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianAngularVelocityComponentValue.h" +#include "AngularSpeedConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CartesianAngularVelocityComponent */ +typedef struct Vanetza_ITS2_CartesianAngularVelocityComponent { + Vanetza_ITS2_CartesianAngularVelocityComponentValue_t value; + Vanetza_ITS2_AngularSpeedConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianAngularVelocityComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianAngularVelocityComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianAngularVelocityComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngularVelocityComponent_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.c b/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.c new file mode 100644 index 000000000..36251e212 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianAngularVelocityComponentValue.h" + +int +Vanetza_ITS2_CartesianAngularVelocityComponentValue_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 >= -255L && value <= 256L)) { + /* 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_Vanetza_ITS2_CartesianAngularVelocityComponentValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-255..256) */, + -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_Vanetza_ITS2_CartesianAngularVelocityComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -255, 256 } /* (-255..256) */, + { 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_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue = { + "CartesianAngularVelocityComponentValue", + "CartesianAngularVelocityComponentValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianAngularVelocityComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianAngularVelocityComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianAngularVelocityComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.h b/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.h new file mode 100644 index 000000000..e549aae52 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianAngularVelocityComponentValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianAngularVelocityComponentValue_H_ +#define _Vanetza_ITS2_CartesianAngularVelocityComponentValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianAngularVelocityComponentValue { + Vanetza_ITS2_CartesianAngularVelocityComponentValue_negativeOutofRange = -255, + Vanetza_ITS2_CartesianAngularVelocityComponentValue_positiveOutOfRange = 255, + Vanetza_ITS2_CartesianAngularVelocityComponentValue_unavailable = 256 +} e_Vanetza_ITS2_CartesianAngularVelocityComponentValue; + +/* Vanetza_ITS2_CartesianAngularVelocityComponentValue */ +typedef long Vanetza_ITS2_CartesianAngularVelocityComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianAngularVelocityComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponentValue; +asn_struct_free_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_free; +asn_struct_print_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_print; +asn_constr_check_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianAngularVelocityComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianAngularVelocityComponentValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianCoordinate.c b/vanetza/asn1/its/r2/CartesianCoordinate.c new file mode 100644 index 000000000..b4007eba4 --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinate.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianCoordinate.h" + +int +Vanetza_ITS2_CartesianCoordinate_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_Vanetza_ITS2_CartesianCoordinate_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_Vanetza_ITS2_CartesianCoordinate_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_Vanetza_ITS2_CartesianCoordinate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinate = { + "CartesianCoordinate", + "CartesianCoordinate", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinate_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianCoordinate_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianCoordinate_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianCoordinate_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianCoordinate.h b/vanetza/asn1/its/r2/CartesianCoordinate.h new file mode 100644 index 000000000..2ba38db4a --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinate.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianCoordinate_H_ +#define _Vanetza_ITS2_CartesianCoordinate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianCoordinate { + Vanetza_ITS2_CartesianCoordinate_negativeOutOfRange = -32768, + Vanetza_ITS2_CartesianCoordinate_positiveOutOfRange = 32767 +} e_Vanetza_ITS2_CartesianCoordinate; + +/* Vanetza_ITS2_CartesianCoordinate */ +typedef long Vanetza_ITS2_CartesianCoordinate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianCoordinate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinate; +asn_struct_free_f Vanetza_ITS2_CartesianCoordinate_free; +asn_struct_print_f Vanetza_ITS2_CartesianCoordinate_print; +asn_constr_check_f Vanetza_ITS2_CartesianCoordinate_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianCoordinate_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianCoordinate_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianCoordinate_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinate_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinate_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianCoordinate_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianCoordinateLarge.c b/vanetza/asn1/its/r2/CartesianCoordinateLarge.c new file mode 100644 index 000000000..1fbccabae --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateLarge.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianCoordinateLarge.h" + +int +Vanetza_ITS2_CartesianCoordinateLarge_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_Vanetza_ITS2_CartesianCoordinateLarge_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_Vanetza_ITS2_CartesianCoordinateLarge_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_Vanetza_ITS2_CartesianCoordinateLarge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge = { + "CartesianCoordinateLarge", + "CartesianCoordinateLarge", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianCoordinateLarge_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianCoordinateLarge_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianCoordinateLarge_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianCoordinateLarge.h b/vanetza/asn1/its/r2/CartesianCoordinateLarge.h new file mode 100644 index 000000000..7d8b9ce8c --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateLarge.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianCoordinateLarge_H_ +#define _Vanetza_ITS2_CartesianCoordinateLarge_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianCoordinateLarge { + Vanetza_ITS2_CartesianCoordinateLarge_negativeOutOfRange = -131072, + Vanetza_ITS2_CartesianCoordinateLarge_positiveOutOfRange = 131071 +} e_Vanetza_ITS2_CartesianCoordinateLarge; + +/* Vanetza_ITS2_CartesianCoordinateLarge */ +typedef long Vanetza_ITS2_CartesianCoordinateLarge_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianCoordinateLarge_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge; +asn_struct_free_f Vanetza_ITS2_CartesianCoordinateLarge_free; +asn_struct_print_f Vanetza_ITS2_CartesianCoordinateLarge_print; +asn_constr_check_f Vanetza_ITS2_CartesianCoordinateLarge_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianCoordinateLarge_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianCoordinateLarge_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianCoordinateLarge_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinateLarge_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinateLarge_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinateLarge_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianCoordinateLarge_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianCoordinateSmall.c b/vanetza/asn1/its/r2/CartesianCoordinateSmall.c new file mode 100644 index 000000000..d7dbd7c0e --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateSmall.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianCoordinateSmall.h" + +int +Vanetza_ITS2_CartesianCoordinateSmall_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 >= -3094L && value <= 1001L)) { + /* 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_Vanetza_ITS2_CartesianCoordinateSmall_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-3094..1001) */, + -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_Vanetza_ITS2_CartesianCoordinateSmall_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, -3094, 1001 } /* (-3094..1001) */, + { 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_Vanetza_ITS2_CartesianCoordinateSmall_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall = { + "CartesianCoordinateSmall", + "CartesianCoordinateSmall", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CartesianCoordinateSmall_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CartesianCoordinateSmall_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CartesianCoordinateSmall_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianCoordinateSmall.h b/vanetza/asn1/its/r2/CartesianCoordinateSmall.h new file mode 100644 index 000000000..cb4c3e51e --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateSmall.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianCoordinateSmall_H_ +#define _Vanetza_ITS2_CartesianCoordinateSmall_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CartesianCoordinateSmall { + Vanetza_ITS2_CartesianCoordinateSmall_negativeOutOfRange = -3094, + Vanetza_ITS2_CartesianCoordinateSmall_positiveOutOfRange = 1001 +} e_Vanetza_ITS2_CartesianCoordinateSmall; + +/* Vanetza_ITS2_CartesianCoordinateSmall */ +typedef long Vanetza_ITS2_CartesianCoordinateSmall_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CartesianCoordinateSmall_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall; +asn_struct_free_f Vanetza_ITS2_CartesianCoordinateSmall_free; +asn_struct_print_f Vanetza_ITS2_CartesianCoordinateSmall_print; +asn_constr_check_f Vanetza_ITS2_CartesianCoordinateSmall_constraint; +ber_type_decoder_f Vanetza_ITS2_CartesianCoordinateSmall_decode_ber; +der_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_der; +xer_type_decoder_f Vanetza_ITS2_CartesianCoordinateSmall_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CartesianCoordinateSmall_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_oer; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinateSmall_decode_uper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_uper; +per_type_decoder_f Vanetza_ITS2_CartesianCoordinateSmall_decode_aper; +per_type_encoder_f Vanetza_ITS2_CartesianCoordinateSmall_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianCoordinateSmall_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.c b/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.c new file mode 100644 index 000000000..b536182fd --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianCoordinateWithConfidence.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianCoordinateWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianCoordinateWithConfidence, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateLarge, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianCoordinateWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CoordinateConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianCoordinateWithConfidence_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_Vanetza_ITS2_CartesianCoordinateWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianCoordinateWithConfidence), + offsetof(struct Vanetza_ITS2_CartesianCoordinateWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianCoordinateWithConfidence_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_Vanetza_ITS2_CartesianCoordinateWithConfidence = { + "CartesianCoordinateWithConfidence", + "CartesianCoordinateWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianCoordinateWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianCoordinateWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.h b/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.h new file mode 100644 index 000000000..25218a51e --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianCoordinateWithConfidence.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianCoordinateWithConfidence_H_ +#define _Vanetza_ITS2_CartesianCoordinateWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianCoordinateLarge.h" +#include "CoordinateConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CartesianCoordinateWithConfidence */ +typedef struct Vanetza_ITS2_CartesianCoordinateWithConfidence { + Vanetza_ITS2_CartesianCoordinateLarge_t value; + Vanetza_ITS2_CoordinateConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianCoordinateWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianCoordinateWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianCoordinateWithConfidence_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianCoordinateWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianPosition3d.c b/vanetza/asn1/its/r2/CartesianPosition3d.c new file mode 100644 index 000000000..df5cd545e --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianPosition3d.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianPosition3d.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianPosition3d_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianPosition3d, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianPosition3d, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CartesianPosition3d, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinate, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zCoordinate" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CartesianPosition3d_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianPosition3d_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zCoordinate */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianPosition3d_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianPosition3d), + offsetof(struct Vanetza_ITS2_CartesianPosition3d, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianPosition3d_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CartesianPosition3d_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianPosition3d = { + "CartesianPosition3d", + "CartesianPosition3d", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3d_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianPosition3d_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianPosition3d_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianPosition3d.h b/vanetza/asn1/its/r2/CartesianPosition3d.h new file mode 100644 index 000000000..c2eb33a6c --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianPosition3d.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianPosition3d_H_ +#define _Vanetza_ITS2_CartesianPosition3d_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianCoordinate.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CartesianPosition3d */ +typedef struct Vanetza_ITS2_CartesianPosition3d { + Vanetza_ITS2_CartesianCoordinate_t xCoordinate; + Vanetza_ITS2_CartesianCoordinate_t yCoordinate; + Vanetza_ITS2_CartesianCoordinate_t *zCoordinate; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianPosition3d_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianPosition3d; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianPosition3d_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianPosition3d_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CartesianPosition3d_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.c b/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.c new file mode 100644 index 000000000..dffe00d3e --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CartesianPosition3dWithConfidence.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianPosition3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianPosition3dWithConfidence, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CartesianPosition3dWithConfidence, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CartesianPosition3dWithConfidence, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zCoordinate" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CartesianPosition3dWithConfidence_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CartesianPosition3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zCoordinate */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianPosition3dWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_CartesianPosition3dWithConfidence), + offsetof(struct Vanetza_ITS2_CartesianPosition3dWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_CartesianPosition3dWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CartesianPosition3dWithConfidence_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence = { + "CartesianPosition3dWithConfidence", + "CartesianPosition3dWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CartesianPosition3dWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CartesianPosition3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.h b/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.h new file mode 100644 index 000000000..df9268bab --- /dev/null +++ b/vanetza/asn1/its/r2/CartesianPosition3dWithConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CartesianPosition3dWithConfidence_H_ +#define _Vanetza_ITS2_CartesianPosition3dWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianCoordinateWithConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianCoordinateWithConfidence; + +/* Vanetza_ITS2_CartesianPosition3dWithConfidence */ +typedef struct Vanetza_ITS2_CartesianPosition3dWithConfidence { + Vanetza_ITS2_CartesianCoordinateWithConfidence_t xCoordinate; + Vanetza_ITS2_CartesianCoordinateWithConfidence_t yCoordinate; + struct Vanetza_ITS2_CartesianCoordinateWithConfidence *zCoordinate; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CartesianPosition3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CartesianPosition3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CartesianPosition3dWithConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianCoordinateWithConfidence.h" + +#endif /* _Vanetza_ITS2_CartesianPosition3dWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CauseCode.c b/vanetza/asn1/its/r2/CauseCode.c new file mode 100644 index 000000000..272f824d5 --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCode.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CauseCode.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "causeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subCauseCode" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CauseCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* causeCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* subCauseCode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CauseCode_specs_1 = { + sizeof(struct Vanetza_ITS2_CauseCode), + offsetof(struct Vanetza_ITS2_CauseCode, _asn_ctx), + asn_MAP_Vanetza_ITS2_CauseCode_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_Vanetza_ITS2_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCode_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CauseCode.h b/vanetza/asn1/its/r2/CauseCode.h new file mode 100644 index 000000000..cca99e0f5 --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CauseCode_H_ +#define _Vanetza_ITS2_CauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CauseCodeType.h" +#include "SubCauseCodeType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CauseCode */ +typedef struct Vanetza_ITS2_CauseCode { + Vanetza_ITS2_CauseCodeType_t causeCode; + Vanetza_ITS2_SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CauseCodeChoice.c b/vanetza/asn1/its/r2/CauseCodeChoice.c new file mode 100644 index 000000000..44cd20dfb --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeChoice.c @@ -0,0 +1,2769 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CauseCodeChoice.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_CauseCodeChoice_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_Vanetza_ITS2_CauseCodeChoice_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 128 } /* (0..128) */, + { 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_Vanetza_ITS2_CauseCodeChoice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved0" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.trafficCondition1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trafficCondition1" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.accident2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccidentSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accident2" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.roadworks3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadworks3" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved4" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.impassability5), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "impassability5" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.adverseWeatherCondition_Adhesion6), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "adverseWeatherCondition-Adhesion6" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.aquaplaning7), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "aquaplaning7" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved8), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved8" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.hazardousLocation_SurfaceCondition9), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hazardousLocation-SurfaceCondition9" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.hazardousLocation_ObstacleOnTheRoad10), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hazardousLocation-ObstacleOnTheRoad10" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.hazardousLocation_AnimalOnTheRoad11), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hazardousLocation-AnimalOnTheRoad11" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.humanPresenceOnTheRoad12), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "humanPresenceOnTheRoad12" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved13), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved13" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.wrongWayDriving14), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wrongWayDriving14" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.rescueAndRecoveryWorkInProgress15), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rescueAndRecoveryWorkInProgress15" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved16), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved16" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.adverseWeatherCondition_ExtremeWeatherCondition17), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "adverseWeatherCondition-ExtremeWeatherCondition17" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.adverseWeatherCondition_Visibility18), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "adverseWeatherCondition-Visibility18" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.adverseWeatherCondition_Precipitation19), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "adverseWeatherCondition-Precipitation19" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.violence20), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "violence20" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved21), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved21" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved22), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved22" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved23), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved23" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved24), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved24" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved25), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved25" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.slowVehicle26), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "slowVehicle26" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.dangerousEndOfQueue27), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dangerousEndOfQueue27" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.publicTransportVehicleApproaching28), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "publicTransportVehicleApproaching28" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved29), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved29" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved30), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved30" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved31), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved31" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved32), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved32" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved33), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved33" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved34), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved34" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved35), + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved35" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved36), + (ASN_TAG_CLASS_CONTEXT | (36 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved36" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved37), + (ASN_TAG_CLASS_CONTEXT | (37 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved37" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved38), + (ASN_TAG_CLASS_CONTEXT | (38 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved38" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved39), + (ASN_TAG_CLASS_CONTEXT | (39 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved39" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved40), + (ASN_TAG_CLASS_CONTEXT | (40 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved40" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved41), + (ASN_TAG_CLASS_CONTEXT | (41 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved41" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved42), + (ASN_TAG_CLASS_CONTEXT | (42 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved42" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved43), + (ASN_TAG_CLASS_CONTEXT | (43 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved43" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved44), + (ASN_TAG_CLASS_CONTEXT | (44 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved44" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved45), + (ASN_TAG_CLASS_CONTEXT | (45 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved45" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved46), + (ASN_TAG_CLASS_CONTEXT | (46 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved46" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved47), + (ASN_TAG_CLASS_CONTEXT | (47 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved47" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved48), + (ASN_TAG_CLASS_CONTEXT | (48 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved48" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved49), + (ASN_TAG_CLASS_CONTEXT | (49 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved49" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved50), + (ASN_TAG_CLASS_CONTEXT | (50 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved50" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved51), + (ASN_TAG_CLASS_CONTEXT | (51 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved51" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved52), + (ASN_TAG_CLASS_CONTEXT | (52 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved52" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved53), + (ASN_TAG_CLASS_CONTEXT | (53 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved53" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved54), + (ASN_TAG_CLASS_CONTEXT | (54 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved54" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved55), + (ASN_TAG_CLASS_CONTEXT | (55 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved55" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved56), + (ASN_TAG_CLASS_CONTEXT | (56 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved56" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved57), + (ASN_TAG_CLASS_CONTEXT | (57 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved57" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved58), + (ASN_TAG_CLASS_CONTEXT | (58 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved58" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved59), + (ASN_TAG_CLASS_CONTEXT | (59 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved59" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved60), + (ASN_TAG_CLASS_CONTEXT | (60 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved60" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved61), + (ASN_TAG_CLASS_CONTEXT | (61 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved61" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved62), + (ASN_TAG_CLASS_CONTEXT | (62 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved62" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved63), + (ASN_TAG_CLASS_CONTEXT | (63 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved63" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved64), + (ASN_TAG_CLASS_CONTEXT | (64 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved64" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved65), + (ASN_TAG_CLASS_CONTEXT | (65 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved65" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved66), + (ASN_TAG_CLASS_CONTEXT | (66 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved66" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved67), + (ASN_TAG_CLASS_CONTEXT | (67 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved67" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved68), + (ASN_TAG_CLASS_CONTEXT | (68 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved68" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved69), + (ASN_TAG_CLASS_CONTEXT | (69 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved69" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved70), + (ASN_TAG_CLASS_CONTEXT | (70 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved70" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved71), + (ASN_TAG_CLASS_CONTEXT | (71 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved71" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved72), + (ASN_TAG_CLASS_CONTEXT | (72 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved72" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved73), + (ASN_TAG_CLASS_CONTEXT | (73 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved73" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved74), + (ASN_TAG_CLASS_CONTEXT | (74 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved74" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved75), + (ASN_TAG_CLASS_CONTEXT | (75 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved75" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved76), + (ASN_TAG_CLASS_CONTEXT | (76 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved76" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved77), + (ASN_TAG_CLASS_CONTEXT | (77 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved77" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved78), + (ASN_TAG_CLASS_CONTEXT | (78 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved78" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved79), + (ASN_TAG_CLASS_CONTEXT | (79 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved79" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved80), + (ASN_TAG_CLASS_CONTEXT | (80 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved80" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved81), + (ASN_TAG_CLASS_CONTEXT | (81 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved81" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved82), + (ASN_TAG_CLASS_CONTEXT | (82 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved82" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved83), + (ASN_TAG_CLASS_CONTEXT | (83 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved83" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved84), + (ASN_TAG_CLASS_CONTEXT | (84 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved84" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved85), + (ASN_TAG_CLASS_CONTEXT | (85 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved85" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved86), + (ASN_TAG_CLASS_CONTEXT | (86 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved86" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved87), + (ASN_TAG_CLASS_CONTEXT | (87 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved87" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved88), + (ASN_TAG_CLASS_CONTEXT | (88 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved88" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved89), + (ASN_TAG_CLASS_CONTEXT | (89 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved89" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved90), + (ASN_TAG_CLASS_CONTEXT | (90 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved90" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.vehicleBreakdown91), + (ASN_TAG_CLASS_CONTEXT | (91 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleBreakdown91" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.postCrash92), + (ASN_TAG_CLASS_CONTEXT | (92 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "postCrash92" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.humanProblem93), + (ASN_TAG_CLASS_CONTEXT | (93 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "humanProblem93" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.stationaryVehicle94), + (ASN_TAG_CLASS_CONTEXT | (94 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationaryVehicle94" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.emergencyVehicleApproaching95), + (ASN_TAG_CLASS_CONTEXT | (95 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emergencyVehicleApproaching95" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.hazardousLocation_DangerousCurve96), + (ASN_TAG_CLASS_CONTEXT | (96 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hazardousLocation-DangerousCurve96" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.collisionRisk97), + (ASN_TAG_CLASS_CONTEXT | (97 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "collisionRisk97" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.signalViolation98), + (ASN_TAG_CLASS_CONTEXT | (98 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "signalViolation98" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.dangerousSituation99), + (ASN_TAG_CLASS_CONTEXT | (99 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dangerousSituation99" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.railwayLevelCrossing100), + (ASN_TAG_CLASS_CONTEXT | (100 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "railwayLevelCrossing100" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved101), + (ASN_TAG_CLASS_CONTEXT | (101 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved101" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved102), + (ASN_TAG_CLASS_CONTEXT | (102 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved102" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved103), + (ASN_TAG_CLASS_CONTEXT | (103 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved103" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved104), + (ASN_TAG_CLASS_CONTEXT | (104 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved104" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved105), + (ASN_TAG_CLASS_CONTEXT | (105 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved105" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved106), + (ASN_TAG_CLASS_CONTEXT | (106 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved106" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved107), + (ASN_TAG_CLASS_CONTEXT | (107 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved107" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved108), + (ASN_TAG_CLASS_CONTEXT | (108 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved108" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved109), + (ASN_TAG_CLASS_CONTEXT | (109 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved109" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved110), + (ASN_TAG_CLASS_CONTEXT | (110 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved110" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved111), + (ASN_TAG_CLASS_CONTEXT | (111 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved111" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved112), + (ASN_TAG_CLASS_CONTEXT | (112 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved112" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved113), + (ASN_TAG_CLASS_CONTEXT | (113 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved113" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved114), + (ASN_TAG_CLASS_CONTEXT | (114 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved114" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved115), + (ASN_TAG_CLASS_CONTEXT | (115 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved115" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved116), + (ASN_TAG_CLASS_CONTEXT | (116 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved116" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved117), + (ASN_TAG_CLASS_CONTEXT | (117 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved117" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved118), + (ASN_TAG_CLASS_CONTEXT | (118 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved118" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved119), + (ASN_TAG_CLASS_CONTEXT | (119 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved119" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved120), + (ASN_TAG_CLASS_CONTEXT | (120 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved120" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved121), + (ASN_TAG_CLASS_CONTEXT | (121 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved121" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved122), + (ASN_TAG_CLASS_CONTEXT | (122 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved122" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved123), + (ASN_TAG_CLASS_CONTEXT | (123 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved123" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved124), + (ASN_TAG_CLASS_CONTEXT | (124 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved124" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved125), + (ASN_TAG_CLASS_CONTEXT | (125 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved125" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved126), + (ASN_TAG_CLASS_CONTEXT | (126 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved126" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved127), + (ASN_TAG_CLASS_CONTEXT | (127 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved127" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeChoice, choice.reserved128), + (ASN_TAG_CLASS_CONTEXT | (128 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SubCauseCodeType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "reserved128" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CauseCodeChoice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reserved0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trafficCondition1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* accident2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadworks3 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reserved4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* impassability5 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* adverseWeatherCondition-Adhesion6 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* aquaplaning7 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* reserved8 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* hazardousLocation-SurfaceCondition9 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* hazardousLocation-ObstacleOnTheRoad10 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* hazardousLocation-AnimalOnTheRoad11 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* humanPresenceOnTheRoad12 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* reserved13 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* wrongWayDriving14 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* rescueAndRecoveryWorkInProgress15 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* reserved16 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* adverseWeatherCondition-ExtremeWeatherCondition17 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* adverseWeatherCondition-Visibility18 */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* adverseWeatherCondition-Precipitation19 */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* violence20 */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* reserved21 */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* reserved22 */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* reserved23 */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* reserved24 */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* reserved25 */ + { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* slowVehicle26 */ + { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* dangerousEndOfQueue27 */ + { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* publicTransportVehicleApproaching28 */ + { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* reserved29 */ + { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 }, /* reserved30 */ + { (ASN_TAG_CLASS_CONTEXT | (31 << 2)), 31, 0, 0 }, /* reserved31 */ + { (ASN_TAG_CLASS_CONTEXT | (32 << 2)), 32, 0, 0 }, /* reserved32 */ + { (ASN_TAG_CLASS_CONTEXT | (33 << 2)), 33, 0, 0 }, /* reserved33 */ + { (ASN_TAG_CLASS_CONTEXT | (34 << 2)), 34, 0, 0 }, /* reserved34 */ + { (ASN_TAG_CLASS_CONTEXT | (35 << 2)), 35, 0, 0 }, /* reserved35 */ + { (ASN_TAG_CLASS_CONTEXT | (36 << 2)), 36, 0, 0 }, /* reserved36 */ + { (ASN_TAG_CLASS_CONTEXT | (37 << 2)), 37, 0, 0 }, /* reserved37 */ + { (ASN_TAG_CLASS_CONTEXT | (38 << 2)), 38, 0, 0 }, /* reserved38 */ + { (ASN_TAG_CLASS_CONTEXT | (39 << 2)), 39, 0, 0 }, /* reserved39 */ + { (ASN_TAG_CLASS_CONTEXT | (40 << 2)), 40, 0, 0 }, /* reserved40 */ + { (ASN_TAG_CLASS_CONTEXT | (41 << 2)), 41, 0, 0 }, /* reserved41 */ + { (ASN_TAG_CLASS_CONTEXT | (42 << 2)), 42, 0, 0 }, /* reserved42 */ + { (ASN_TAG_CLASS_CONTEXT | (43 << 2)), 43, 0, 0 }, /* reserved43 */ + { (ASN_TAG_CLASS_CONTEXT | (44 << 2)), 44, 0, 0 }, /* reserved44 */ + { (ASN_TAG_CLASS_CONTEXT | (45 << 2)), 45, 0, 0 }, /* reserved45 */ + { (ASN_TAG_CLASS_CONTEXT | (46 << 2)), 46, 0, 0 }, /* reserved46 */ + { (ASN_TAG_CLASS_CONTEXT | (47 << 2)), 47, 0, 0 }, /* reserved47 */ + { (ASN_TAG_CLASS_CONTEXT | (48 << 2)), 48, 0, 0 }, /* reserved48 */ + { (ASN_TAG_CLASS_CONTEXT | (49 << 2)), 49, 0, 0 }, /* reserved49 */ + { (ASN_TAG_CLASS_CONTEXT | (50 << 2)), 50, 0, 0 }, /* reserved50 */ + { (ASN_TAG_CLASS_CONTEXT | (51 << 2)), 51, 0, 0 }, /* reserved51 */ + { (ASN_TAG_CLASS_CONTEXT | (52 << 2)), 52, 0, 0 }, /* reserved52 */ + { (ASN_TAG_CLASS_CONTEXT | (53 << 2)), 53, 0, 0 }, /* reserved53 */ + { (ASN_TAG_CLASS_CONTEXT | (54 << 2)), 54, 0, 0 }, /* reserved54 */ + { (ASN_TAG_CLASS_CONTEXT | (55 << 2)), 55, 0, 0 }, /* reserved55 */ + { (ASN_TAG_CLASS_CONTEXT | (56 << 2)), 56, 0, 0 }, /* reserved56 */ + { (ASN_TAG_CLASS_CONTEXT | (57 << 2)), 57, 0, 0 }, /* reserved57 */ + { (ASN_TAG_CLASS_CONTEXT | (58 << 2)), 58, 0, 0 }, /* reserved58 */ + { (ASN_TAG_CLASS_CONTEXT | (59 << 2)), 59, 0, 0 }, /* reserved59 */ + { (ASN_TAG_CLASS_CONTEXT | (60 << 2)), 60, 0, 0 }, /* reserved60 */ + { (ASN_TAG_CLASS_CONTEXT | (61 << 2)), 61, 0, 0 }, /* reserved61 */ + { (ASN_TAG_CLASS_CONTEXT | (62 << 2)), 62, 0, 0 }, /* reserved62 */ + { (ASN_TAG_CLASS_CONTEXT | (63 << 2)), 63, 0, 0 }, /* reserved63 */ + { (ASN_TAG_CLASS_CONTEXT | (64 << 2)), 64, 0, 0 }, /* reserved64 */ + { (ASN_TAG_CLASS_CONTEXT | (65 << 2)), 65, 0, 0 }, /* reserved65 */ + { (ASN_TAG_CLASS_CONTEXT | (66 << 2)), 66, 0, 0 }, /* reserved66 */ + { (ASN_TAG_CLASS_CONTEXT | (67 << 2)), 67, 0, 0 }, /* reserved67 */ + { (ASN_TAG_CLASS_CONTEXT | (68 << 2)), 68, 0, 0 }, /* reserved68 */ + { (ASN_TAG_CLASS_CONTEXT | (69 << 2)), 69, 0, 0 }, /* reserved69 */ + { (ASN_TAG_CLASS_CONTEXT | (70 << 2)), 70, 0, 0 }, /* reserved70 */ + { (ASN_TAG_CLASS_CONTEXT | (71 << 2)), 71, 0, 0 }, /* reserved71 */ + { (ASN_TAG_CLASS_CONTEXT | (72 << 2)), 72, 0, 0 }, /* reserved72 */ + { (ASN_TAG_CLASS_CONTEXT | (73 << 2)), 73, 0, 0 }, /* reserved73 */ + { (ASN_TAG_CLASS_CONTEXT | (74 << 2)), 74, 0, 0 }, /* reserved74 */ + { (ASN_TAG_CLASS_CONTEXT | (75 << 2)), 75, 0, 0 }, /* reserved75 */ + { (ASN_TAG_CLASS_CONTEXT | (76 << 2)), 76, 0, 0 }, /* reserved76 */ + { (ASN_TAG_CLASS_CONTEXT | (77 << 2)), 77, 0, 0 }, /* reserved77 */ + { (ASN_TAG_CLASS_CONTEXT | (78 << 2)), 78, 0, 0 }, /* reserved78 */ + { (ASN_TAG_CLASS_CONTEXT | (79 << 2)), 79, 0, 0 }, /* reserved79 */ + { (ASN_TAG_CLASS_CONTEXT | (80 << 2)), 80, 0, 0 }, /* reserved80 */ + { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 81, 0, 0 }, /* reserved81 */ + { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), 82, 0, 0 }, /* reserved82 */ + { (ASN_TAG_CLASS_CONTEXT | (83 << 2)), 83, 0, 0 }, /* reserved83 */ + { (ASN_TAG_CLASS_CONTEXT | (84 << 2)), 84, 0, 0 }, /* reserved84 */ + { (ASN_TAG_CLASS_CONTEXT | (85 << 2)), 85, 0, 0 }, /* reserved85 */ + { (ASN_TAG_CLASS_CONTEXT | (86 << 2)), 86, 0, 0 }, /* reserved86 */ + { (ASN_TAG_CLASS_CONTEXT | (87 << 2)), 87, 0, 0 }, /* reserved87 */ + { (ASN_TAG_CLASS_CONTEXT | (88 << 2)), 88, 0, 0 }, /* reserved88 */ + { (ASN_TAG_CLASS_CONTEXT | (89 << 2)), 89, 0, 0 }, /* reserved89 */ + { (ASN_TAG_CLASS_CONTEXT | (90 << 2)), 90, 0, 0 }, /* reserved90 */ + { (ASN_TAG_CLASS_CONTEXT | (91 << 2)), 91, 0, 0 }, /* vehicleBreakdown91 */ + { (ASN_TAG_CLASS_CONTEXT | (92 << 2)), 92, 0, 0 }, /* postCrash92 */ + { (ASN_TAG_CLASS_CONTEXT | (93 << 2)), 93, 0, 0 }, /* humanProblem93 */ + { (ASN_TAG_CLASS_CONTEXT | (94 << 2)), 94, 0, 0 }, /* stationaryVehicle94 */ + { (ASN_TAG_CLASS_CONTEXT | (95 << 2)), 95, 0, 0 }, /* emergencyVehicleApproaching95 */ + { (ASN_TAG_CLASS_CONTEXT | (96 << 2)), 96, 0, 0 }, /* hazardousLocation-DangerousCurve96 */ + { (ASN_TAG_CLASS_CONTEXT | (97 << 2)), 97, 0, 0 }, /* collisionRisk97 */ + { (ASN_TAG_CLASS_CONTEXT | (98 << 2)), 98, 0, 0 }, /* signalViolation98 */ + { (ASN_TAG_CLASS_CONTEXT | (99 << 2)), 99, 0, 0 }, /* dangerousSituation99 */ + { (ASN_TAG_CLASS_CONTEXT | (100 << 2)), 100, 0, 0 }, /* railwayLevelCrossing100 */ + { (ASN_TAG_CLASS_CONTEXT | (101 << 2)), 101, 0, 0 }, /* reserved101 */ + { (ASN_TAG_CLASS_CONTEXT | (102 << 2)), 102, 0, 0 }, /* reserved102 */ + { (ASN_TAG_CLASS_CONTEXT | (103 << 2)), 103, 0, 0 }, /* reserved103 */ + { (ASN_TAG_CLASS_CONTEXT | (104 << 2)), 104, 0, 0 }, /* reserved104 */ + { (ASN_TAG_CLASS_CONTEXT | (105 << 2)), 105, 0, 0 }, /* reserved105 */ + { (ASN_TAG_CLASS_CONTEXT | (106 << 2)), 106, 0, 0 }, /* reserved106 */ + { (ASN_TAG_CLASS_CONTEXT | (107 << 2)), 107, 0, 0 }, /* reserved107 */ + { (ASN_TAG_CLASS_CONTEXT | (108 << 2)), 108, 0, 0 }, /* reserved108 */ + { (ASN_TAG_CLASS_CONTEXT | (109 << 2)), 109, 0, 0 }, /* reserved109 */ + { (ASN_TAG_CLASS_CONTEXT | (110 << 2)), 110, 0, 0 }, /* reserved110 */ + { (ASN_TAG_CLASS_CONTEXT | (111 << 2)), 111, 0, 0 }, /* reserved111 */ + { (ASN_TAG_CLASS_CONTEXT | (112 << 2)), 112, 0, 0 }, /* reserved112 */ + { (ASN_TAG_CLASS_CONTEXT | (113 << 2)), 113, 0, 0 }, /* reserved113 */ + { (ASN_TAG_CLASS_CONTEXT | (114 << 2)), 114, 0, 0 }, /* reserved114 */ + { (ASN_TAG_CLASS_CONTEXT | (115 << 2)), 115, 0, 0 }, /* reserved115 */ + { (ASN_TAG_CLASS_CONTEXT | (116 << 2)), 116, 0, 0 }, /* reserved116 */ + { (ASN_TAG_CLASS_CONTEXT | (117 << 2)), 117, 0, 0 }, /* reserved117 */ + { (ASN_TAG_CLASS_CONTEXT | (118 << 2)), 118, 0, 0 }, /* reserved118 */ + { (ASN_TAG_CLASS_CONTEXT | (119 << 2)), 119, 0, 0 }, /* reserved119 */ + { (ASN_TAG_CLASS_CONTEXT | (120 << 2)), 120, 0, 0 }, /* reserved120 */ + { (ASN_TAG_CLASS_CONTEXT | (121 << 2)), 121, 0, 0 }, /* reserved121 */ + { (ASN_TAG_CLASS_CONTEXT | (122 << 2)), 122, 0, 0 }, /* reserved122 */ + { (ASN_TAG_CLASS_CONTEXT | (123 << 2)), 123, 0, 0 }, /* reserved123 */ + { (ASN_TAG_CLASS_CONTEXT | (124 << 2)), 124, 0, 0 }, /* reserved124 */ + { (ASN_TAG_CLASS_CONTEXT | (125 << 2)), 125, 0, 0 }, /* reserved125 */ + { (ASN_TAG_CLASS_CONTEXT | (126 << 2)), 126, 0, 0 }, /* reserved126 */ + { (ASN_TAG_CLASS_CONTEXT | (127 << 2)), 127, 0, 0 }, /* reserved127 */ + { (ASN_TAG_CLASS_CONTEXT | (128 << 2)), 128, 0, 0 } /* reserved128 */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_CauseCodeChoice_specs_1 = { + sizeof(struct Vanetza_ITS2_CauseCodeChoice), + offsetof(struct Vanetza_ITS2_CauseCodeChoice, _asn_ctx), + offsetof(struct Vanetza_ITS2_CauseCodeChoice, present), + sizeof(((struct Vanetza_ITS2_CauseCodeChoice *)0)->present), + asn_MAP_Vanetza_ITS2_CauseCodeChoice_tag2el_1, + 129, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCodeChoice = { + "CauseCodeChoice", + "CauseCodeChoice", + &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_Vanetza_ITS2_CauseCodeChoice_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CauseCodeChoice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_CauseCodeChoice_1, + 129, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CauseCodeChoice_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CauseCodeChoice.h b/vanetza/asn1/its/r2/CauseCodeChoice.h new file mode 100644 index 000000000..474d946af --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeChoice.h @@ -0,0 +1,332 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CauseCodeChoice_H_ +#define _Vanetza_ITS2_CauseCodeChoice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SubCauseCodeType.h" +#include "TrafficConditionSubCauseCode.h" +#include "AccidentSubCauseCode.h" +#include "RoadworksSubCauseCode.h" +#include "ImpassabilitySubCauseCode.h" +#include "AdverseWeatherCondition-AdhesionSubCauseCode.h" +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" +#include "HumanPresenceOnTheRoadSubCauseCode.h" +#include "WrongWayDrivingSubCauseCode.h" +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" +#include "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" +#include "AdverseWeatherCondition-VisibilitySubCauseCode.h" +#include "AdverseWeatherCondition-PrecipitationSubCauseCode.h" +#include "SlowVehicleSubCauseCode.h" +#include "DangerousEndOfQueueSubCauseCode.h" +#include "VehicleBreakdownSubCauseCode.h" +#include "PostCrashSubCauseCode.h" +#include "HumanProblemSubCauseCode.h" +#include "StationaryVehicleSubCauseCode.h" +#include "EmergencyVehicleApproachingSubCauseCode.h" +#include "HazardousLocation-DangerousCurveSubCauseCode.h" +#include "CollisionRiskSubCauseCode.h" +#include "SignalViolationSubCauseCode.h" +#include "DangerousSituationSubCauseCode.h" +#include "RailwayLevelCrossingSubCauseCode.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CauseCodeChoice_PR { + Vanetza_ITS2_CauseCodeChoice_PR_NOTHING, /* No components present */ + Vanetza_ITS2_CauseCodeChoice_PR_reserved0, + Vanetza_ITS2_CauseCodeChoice_PR_trafficCondition1, + Vanetza_ITS2_CauseCodeChoice_PR_accident2, + Vanetza_ITS2_CauseCodeChoice_PR_roadworks3, + Vanetza_ITS2_CauseCodeChoice_PR_reserved4, + Vanetza_ITS2_CauseCodeChoice_PR_impassability5, + Vanetza_ITS2_CauseCodeChoice_PR_adverseWeatherCondition_Adhesion6, + Vanetza_ITS2_CauseCodeChoice_PR_aquaplaning7, + Vanetza_ITS2_CauseCodeChoice_PR_reserved8, + Vanetza_ITS2_CauseCodeChoice_PR_hazardousLocation_SurfaceCondition9, + Vanetza_ITS2_CauseCodeChoice_PR_hazardousLocation_ObstacleOnTheRoad10, + Vanetza_ITS2_CauseCodeChoice_PR_hazardousLocation_AnimalOnTheRoad11, + Vanetza_ITS2_CauseCodeChoice_PR_humanPresenceOnTheRoad12, + Vanetza_ITS2_CauseCodeChoice_PR_reserved13, + Vanetza_ITS2_CauseCodeChoice_PR_wrongWayDriving14, + Vanetza_ITS2_CauseCodeChoice_PR_rescueAndRecoveryWorkInProgress15, + Vanetza_ITS2_CauseCodeChoice_PR_reserved16, + Vanetza_ITS2_CauseCodeChoice_PR_adverseWeatherCondition_ExtremeWeatherCondition17, + Vanetza_ITS2_CauseCodeChoice_PR_adverseWeatherCondition_Visibility18, + Vanetza_ITS2_CauseCodeChoice_PR_adverseWeatherCondition_Precipitation19, + Vanetza_ITS2_CauseCodeChoice_PR_violence20, + Vanetza_ITS2_CauseCodeChoice_PR_reserved21, + Vanetza_ITS2_CauseCodeChoice_PR_reserved22, + Vanetza_ITS2_CauseCodeChoice_PR_reserved23, + Vanetza_ITS2_CauseCodeChoice_PR_reserved24, + Vanetza_ITS2_CauseCodeChoice_PR_reserved25, + Vanetza_ITS2_CauseCodeChoice_PR_slowVehicle26, + Vanetza_ITS2_CauseCodeChoice_PR_dangerousEndOfQueue27, + Vanetza_ITS2_CauseCodeChoice_PR_publicTransportVehicleApproaching28, + Vanetza_ITS2_CauseCodeChoice_PR_reserved29, + Vanetza_ITS2_CauseCodeChoice_PR_reserved30, + Vanetza_ITS2_CauseCodeChoice_PR_reserved31, + Vanetza_ITS2_CauseCodeChoice_PR_reserved32, + Vanetza_ITS2_CauseCodeChoice_PR_reserved33, + Vanetza_ITS2_CauseCodeChoice_PR_reserved34, + Vanetza_ITS2_CauseCodeChoice_PR_reserved35, + Vanetza_ITS2_CauseCodeChoice_PR_reserved36, + Vanetza_ITS2_CauseCodeChoice_PR_reserved37, + Vanetza_ITS2_CauseCodeChoice_PR_reserved38, + Vanetza_ITS2_CauseCodeChoice_PR_reserved39, + Vanetza_ITS2_CauseCodeChoice_PR_reserved40, + Vanetza_ITS2_CauseCodeChoice_PR_reserved41, + Vanetza_ITS2_CauseCodeChoice_PR_reserved42, + Vanetza_ITS2_CauseCodeChoice_PR_reserved43, + Vanetza_ITS2_CauseCodeChoice_PR_reserved44, + Vanetza_ITS2_CauseCodeChoice_PR_reserved45, + Vanetza_ITS2_CauseCodeChoice_PR_reserved46, + Vanetza_ITS2_CauseCodeChoice_PR_reserved47, + Vanetza_ITS2_CauseCodeChoice_PR_reserved48, + Vanetza_ITS2_CauseCodeChoice_PR_reserved49, + Vanetza_ITS2_CauseCodeChoice_PR_reserved50, + Vanetza_ITS2_CauseCodeChoice_PR_reserved51, + Vanetza_ITS2_CauseCodeChoice_PR_reserved52, + Vanetza_ITS2_CauseCodeChoice_PR_reserved53, + Vanetza_ITS2_CauseCodeChoice_PR_reserved54, + Vanetza_ITS2_CauseCodeChoice_PR_reserved55, + Vanetza_ITS2_CauseCodeChoice_PR_reserved56, + Vanetza_ITS2_CauseCodeChoice_PR_reserved57, + Vanetza_ITS2_CauseCodeChoice_PR_reserved58, + Vanetza_ITS2_CauseCodeChoice_PR_reserved59, + Vanetza_ITS2_CauseCodeChoice_PR_reserved60, + Vanetza_ITS2_CauseCodeChoice_PR_reserved61, + Vanetza_ITS2_CauseCodeChoice_PR_reserved62, + Vanetza_ITS2_CauseCodeChoice_PR_reserved63, + Vanetza_ITS2_CauseCodeChoice_PR_reserved64, + Vanetza_ITS2_CauseCodeChoice_PR_reserved65, + Vanetza_ITS2_CauseCodeChoice_PR_reserved66, + Vanetza_ITS2_CauseCodeChoice_PR_reserved67, + Vanetza_ITS2_CauseCodeChoice_PR_reserved68, + Vanetza_ITS2_CauseCodeChoice_PR_reserved69, + Vanetza_ITS2_CauseCodeChoice_PR_reserved70, + Vanetza_ITS2_CauseCodeChoice_PR_reserved71, + Vanetza_ITS2_CauseCodeChoice_PR_reserved72, + Vanetza_ITS2_CauseCodeChoice_PR_reserved73, + Vanetza_ITS2_CauseCodeChoice_PR_reserved74, + Vanetza_ITS2_CauseCodeChoice_PR_reserved75, + Vanetza_ITS2_CauseCodeChoice_PR_reserved76, + Vanetza_ITS2_CauseCodeChoice_PR_reserved77, + Vanetza_ITS2_CauseCodeChoice_PR_reserved78, + Vanetza_ITS2_CauseCodeChoice_PR_reserved79, + Vanetza_ITS2_CauseCodeChoice_PR_reserved80, + Vanetza_ITS2_CauseCodeChoice_PR_reserved81, + Vanetza_ITS2_CauseCodeChoice_PR_reserved82, + Vanetza_ITS2_CauseCodeChoice_PR_reserved83, + Vanetza_ITS2_CauseCodeChoice_PR_reserved84, + Vanetza_ITS2_CauseCodeChoice_PR_reserved85, + Vanetza_ITS2_CauseCodeChoice_PR_reserved86, + Vanetza_ITS2_CauseCodeChoice_PR_reserved87, + Vanetza_ITS2_CauseCodeChoice_PR_reserved88, + Vanetza_ITS2_CauseCodeChoice_PR_reserved89, + Vanetza_ITS2_CauseCodeChoice_PR_reserved90, + Vanetza_ITS2_CauseCodeChoice_PR_vehicleBreakdown91, + Vanetza_ITS2_CauseCodeChoice_PR_postCrash92, + Vanetza_ITS2_CauseCodeChoice_PR_humanProblem93, + Vanetza_ITS2_CauseCodeChoice_PR_stationaryVehicle94, + Vanetza_ITS2_CauseCodeChoice_PR_emergencyVehicleApproaching95, + Vanetza_ITS2_CauseCodeChoice_PR_hazardousLocation_DangerousCurve96, + Vanetza_ITS2_CauseCodeChoice_PR_collisionRisk97, + Vanetza_ITS2_CauseCodeChoice_PR_signalViolation98, + Vanetza_ITS2_CauseCodeChoice_PR_dangerousSituation99, + Vanetza_ITS2_CauseCodeChoice_PR_railwayLevelCrossing100, + Vanetza_ITS2_CauseCodeChoice_PR_reserved101, + Vanetza_ITS2_CauseCodeChoice_PR_reserved102, + Vanetza_ITS2_CauseCodeChoice_PR_reserved103, + Vanetza_ITS2_CauseCodeChoice_PR_reserved104, + Vanetza_ITS2_CauseCodeChoice_PR_reserved105, + Vanetza_ITS2_CauseCodeChoice_PR_reserved106, + Vanetza_ITS2_CauseCodeChoice_PR_reserved107, + Vanetza_ITS2_CauseCodeChoice_PR_reserved108, + Vanetza_ITS2_CauseCodeChoice_PR_reserved109, + Vanetza_ITS2_CauseCodeChoice_PR_reserved110, + Vanetza_ITS2_CauseCodeChoice_PR_reserved111, + Vanetza_ITS2_CauseCodeChoice_PR_reserved112, + Vanetza_ITS2_CauseCodeChoice_PR_reserved113, + Vanetza_ITS2_CauseCodeChoice_PR_reserved114, + Vanetza_ITS2_CauseCodeChoice_PR_reserved115, + Vanetza_ITS2_CauseCodeChoice_PR_reserved116, + Vanetza_ITS2_CauseCodeChoice_PR_reserved117, + Vanetza_ITS2_CauseCodeChoice_PR_reserved118, + Vanetza_ITS2_CauseCodeChoice_PR_reserved119, + Vanetza_ITS2_CauseCodeChoice_PR_reserved120, + Vanetza_ITS2_CauseCodeChoice_PR_reserved121, + Vanetza_ITS2_CauseCodeChoice_PR_reserved122, + Vanetza_ITS2_CauseCodeChoice_PR_reserved123, + Vanetza_ITS2_CauseCodeChoice_PR_reserved124, + Vanetza_ITS2_CauseCodeChoice_PR_reserved125, + Vanetza_ITS2_CauseCodeChoice_PR_reserved126, + Vanetza_ITS2_CauseCodeChoice_PR_reserved127, + Vanetza_ITS2_CauseCodeChoice_PR_reserved128 +} Vanetza_ITS2_CauseCodeChoice_PR; + +/* Vanetza_ITS2_CauseCodeChoice */ +typedef struct Vanetza_ITS2_CauseCodeChoice { + Vanetza_ITS2_CauseCodeChoice_PR present; + union Vanetza_ITS2_CauseCodeChoice_u { + Vanetza_ITS2_SubCauseCodeType_t reserved0; + Vanetza_ITS2_TrafficConditionSubCauseCode_t trafficCondition1; + Vanetza_ITS2_AccidentSubCauseCode_t accident2; + Vanetza_ITS2_RoadworksSubCauseCode_t roadworks3; + Vanetza_ITS2_SubCauseCodeType_t reserved4; + Vanetza_ITS2_ImpassabilitySubCauseCode_t impassability5; + Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode_t adverseWeatherCondition_Adhesion6; + Vanetza_ITS2_SubCauseCodeType_t aquaplaning7; + Vanetza_ITS2_SubCauseCodeType_t reserved8; + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_t hazardousLocation_SurfaceCondition9; + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t hazardousLocation_ObstacleOnTheRoad10; + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_t hazardousLocation_AnimalOnTheRoad11; + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_t humanPresenceOnTheRoad12; + Vanetza_ITS2_SubCauseCodeType_t reserved13; + Vanetza_ITS2_WrongWayDrivingSubCauseCode_t wrongWayDriving14; + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_t rescueAndRecoveryWorkInProgress15; + Vanetza_ITS2_SubCauseCodeType_t reserved16; + Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t adverseWeatherCondition_ExtremeWeatherCondition17; + Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode_t adverseWeatherCondition_Visibility18; + Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode_t adverseWeatherCondition_Precipitation19; + Vanetza_ITS2_SubCauseCodeType_t violence20; + Vanetza_ITS2_SubCauseCodeType_t reserved21; + Vanetza_ITS2_SubCauseCodeType_t reserved22; + Vanetza_ITS2_SubCauseCodeType_t reserved23; + Vanetza_ITS2_SubCauseCodeType_t reserved24; + Vanetza_ITS2_SubCauseCodeType_t reserved25; + Vanetza_ITS2_SlowVehicleSubCauseCode_t slowVehicle26; + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_t dangerousEndOfQueue27; + Vanetza_ITS2_SubCauseCodeType_t publicTransportVehicleApproaching28; + Vanetza_ITS2_SubCauseCodeType_t reserved29; + Vanetza_ITS2_SubCauseCodeType_t reserved30; + Vanetza_ITS2_SubCauseCodeType_t reserved31; + Vanetza_ITS2_SubCauseCodeType_t reserved32; + Vanetza_ITS2_SubCauseCodeType_t reserved33; + Vanetza_ITS2_SubCauseCodeType_t reserved34; + Vanetza_ITS2_SubCauseCodeType_t reserved35; + Vanetza_ITS2_SubCauseCodeType_t reserved36; + Vanetza_ITS2_SubCauseCodeType_t reserved37; + Vanetza_ITS2_SubCauseCodeType_t reserved38; + Vanetza_ITS2_SubCauseCodeType_t reserved39; + Vanetza_ITS2_SubCauseCodeType_t reserved40; + Vanetza_ITS2_SubCauseCodeType_t reserved41; + Vanetza_ITS2_SubCauseCodeType_t reserved42; + Vanetza_ITS2_SubCauseCodeType_t reserved43; + Vanetza_ITS2_SubCauseCodeType_t reserved44; + Vanetza_ITS2_SubCauseCodeType_t reserved45; + Vanetza_ITS2_SubCauseCodeType_t reserved46; + Vanetza_ITS2_SubCauseCodeType_t reserved47; + Vanetza_ITS2_SubCauseCodeType_t reserved48; + Vanetza_ITS2_SubCauseCodeType_t reserved49; + Vanetza_ITS2_SubCauseCodeType_t reserved50; + Vanetza_ITS2_SubCauseCodeType_t reserved51; + Vanetza_ITS2_SubCauseCodeType_t reserved52; + Vanetza_ITS2_SubCauseCodeType_t reserved53; + Vanetza_ITS2_SubCauseCodeType_t reserved54; + Vanetza_ITS2_SubCauseCodeType_t reserved55; + Vanetza_ITS2_SubCauseCodeType_t reserved56; + Vanetza_ITS2_SubCauseCodeType_t reserved57; + Vanetza_ITS2_SubCauseCodeType_t reserved58; + Vanetza_ITS2_SubCauseCodeType_t reserved59; + Vanetza_ITS2_SubCauseCodeType_t reserved60; + Vanetza_ITS2_SubCauseCodeType_t reserved61; + Vanetza_ITS2_SubCauseCodeType_t reserved62; + Vanetza_ITS2_SubCauseCodeType_t reserved63; + Vanetza_ITS2_SubCauseCodeType_t reserved64; + Vanetza_ITS2_SubCauseCodeType_t reserved65; + Vanetza_ITS2_SubCauseCodeType_t reserved66; + Vanetza_ITS2_SubCauseCodeType_t reserved67; + Vanetza_ITS2_SubCauseCodeType_t reserved68; + Vanetza_ITS2_SubCauseCodeType_t reserved69; + Vanetza_ITS2_SubCauseCodeType_t reserved70; + Vanetza_ITS2_SubCauseCodeType_t reserved71; + Vanetza_ITS2_SubCauseCodeType_t reserved72; + Vanetza_ITS2_SubCauseCodeType_t reserved73; + Vanetza_ITS2_SubCauseCodeType_t reserved74; + Vanetza_ITS2_SubCauseCodeType_t reserved75; + Vanetza_ITS2_SubCauseCodeType_t reserved76; + Vanetza_ITS2_SubCauseCodeType_t reserved77; + Vanetza_ITS2_SubCauseCodeType_t reserved78; + Vanetza_ITS2_SubCauseCodeType_t reserved79; + Vanetza_ITS2_SubCauseCodeType_t reserved80; + Vanetza_ITS2_SubCauseCodeType_t reserved81; + Vanetza_ITS2_SubCauseCodeType_t reserved82; + Vanetza_ITS2_SubCauseCodeType_t reserved83; + Vanetza_ITS2_SubCauseCodeType_t reserved84; + Vanetza_ITS2_SubCauseCodeType_t reserved85; + Vanetza_ITS2_SubCauseCodeType_t reserved86; + Vanetza_ITS2_SubCauseCodeType_t reserved87; + Vanetza_ITS2_SubCauseCodeType_t reserved88; + Vanetza_ITS2_SubCauseCodeType_t reserved89; + Vanetza_ITS2_SubCauseCodeType_t reserved90; + Vanetza_ITS2_VehicleBreakdownSubCauseCode_t vehicleBreakdown91; + Vanetza_ITS2_PostCrashSubCauseCode_t postCrash92; + Vanetza_ITS2_HumanProblemSubCauseCode_t humanProblem93; + Vanetza_ITS2_StationaryVehicleSubCauseCode_t stationaryVehicle94; + Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_t emergencyVehicleApproaching95; + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_t hazardousLocation_DangerousCurve96; + Vanetza_ITS2_CollisionRiskSubCauseCode_t collisionRisk97; + Vanetza_ITS2_SignalViolationSubCauseCode_t signalViolation98; + Vanetza_ITS2_DangerousSituationSubCauseCode_t dangerousSituation99; + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_t railwayLevelCrossing100; + Vanetza_ITS2_SubCauseCodeType_t reserved101; + Vanetza_ITS2_SubCauseCodeType_t reserved102; + Vanetza_ITS2_SubCauseCodeType_t reserved103; + Vanetza_ITS2_SubCauseCodeType_t reserved104; + Vanetza_ITS2_SubCauseCodeType_t reserved105; + Vanetza_ITS2_SubCauseCodeType_t reserved106; + Vanetza_ITS2_SubCauseCodeType_t reserved107; + Vanetza_ITS2_SubCauseCodeType_t reserved108; + Vanetza_ITS2_SubCauseCodeType_t reserved109; + Vanetza_ITS2_SubCauseCodeType_t reserved110; + Vanetza_ITS2_SubCauseCodeType_t reserved111; + Vanetza_ITS2_SubCauseCodeType_t reserved112; + Vanetza_ITS2_SubCauseCodeType_t reserved113; + Vanetza_ITS2_SubCauseCodeType_t reserved114; + Vanetza_ITS2_SubCauseCodeType_t reserved115; + Vanetza_ITS2_SubCauseCodeType_t reserved116; + Vanetza_ITS2_SubCauseCodeType_t reserved117; + Vanetza_ITS2_SubCauseCodeType_t reserved118; + Vanetza_ITS2_SubCauseCodeType_t reserved119; + Vanetza_ITS2_SubCauseCodeType_t reserved120; + Vanetza_ITS2_SubCauseCodeType_t reserved121; + Vanetza_ITS2_SubCauseCodeType_t reserved122; + Vanetza_ITS2_SubCauseCodeType_t reserved123; + Vanetza_ITS2_SubCauseCodeType_t reserved124; + Vanetza_ITS2_SubCauseCodeType_t reserved125; + Vanetza_ITS2_SubCauseCodeType_t reserved126; + Vanetza_ITS2_SubCauseCodeType_t reserved127; + Vanetza_ITS2_SubCauseCodeType_t reserved128; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CauseCodeChoice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCodeChoice; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_CauseCodeChoice_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CauseCodeChoice_1[129]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CauseCodeChoice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CauseCodeChoice_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CauseCodeType.c b/vanetza/asn1/its/r2/CauseCodeType.c new file mode 100644 index 000000000..82a0c9908 --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CauseCodeType.h" + +int +Vanetza_ITS2_CauseCodeType_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_Vanetza_ITS2_CauseCodeType_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_Vanetza_ITS2_CauseCodeType_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_Vanetza_ITS2_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCodeType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CauseCodeType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CauseCodeType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CauseCodeType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CauseCodeType.h b/vanetza/asn1/its/r2/CauseCodeType.h new file mode 100644 index 000000000..5bac464f6 --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeType.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CauseCodeType_H_ +#define _Vanetza_ITS2_CauseCodeType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CauseCodeType { + Vanetza_ITS2_CauseCodeType_trafficCondition = 1, + Vanetza_ITS2_CauseCodeType_accident = 2, + Vanetza_ITS2_CauseCodeType_roadworks = 3, + Vanetza_ITS2_CauseCodeType_impassability = 5, + Vanetza_ITS2_CauseCodeType_adverseWeatherCondition_Adhesion = 6, + Vanetza_ITS2_CauseCodeType_aquaplaning = 7, + Vanetza_ITS2_CauseCodeType_hazardousLocation_SurfaceCondition = 9, + Vanetza_ITS2_CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + Vanetza_ITS2_CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + Vanetza_ITS2_CauseCodeType_humanPresenceOnTheRoad = 12, + Vanetza_ITS2_CauseCodeType_wrongWayDriving = 14, + Vanetza_ITS2_CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + Vanetza_ITS2_CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + Vanetza_ITS2_CauseCodeType_adverseWeatherCondition_Visibility = 18, + Vanetza_ITS2_CauseCodeType_adverseWeatherCondition_Precipitation = 19, + Vanetza_ITS2_CauseCodeType_violence = 20, + Vanetza_ITS2_CauseCodeType_slowVehicle = 26, + Vanetza_ITS2_CauseCodeType_dangerousEndOfQueue = 27, + Vanetza_ITS2_CauseCodeType_publicTransportVehicleApproaching = 28, + Vanetza_ITS2_CauseCodeType_vehicleBreakdown = 91, + Vanetza_ITS2_CauseCodeType_postCrash = 92, + Vanetza_ITS2_CauseCodeType_humanProblem = 93, + Vanetza_ITS2_CauseCodeType_stationaryVehicle = 94, + Vanetza_ITS2_CauseCodeType_emergencyVehicleApproaching = 95, + Vanetza_ITS2_CauseCodeType_hazardousLocation_DangerousCurve = 96, + Vanetza_ITS2_CauseCodeType_collisionRisk = 97, + Vanetza_ITS2_CauseCodeType_signalViolation = 98, + Vanetza_ITS2_CauseCodeType_dangerousSituation = 99, + Vanetza_ITS2_CauseCodeType_railwayLevelCrossing = 100 +} e_Vanetza_ITS2_CauseCodeType; + +/* Vanetza_ITS2_CauseCodeType */ +typedef long Vanetza_ITS2_CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCodeType; +asn_struct_free_f Vanetza_ITS2_CauseCodeType_free; +asn_struct_print_f Vanetza_ITS2_CauseCodeType_print; +asn_constr_check_f Vanetza_ITS2_CauseCodeType_constraint; +ber_type_decoder_f Vanetza_ITS2_CauseCodeType_decode_ber; +der_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_der; +xer_type_decoder_f Vanetza_ITS2_CauseCodeType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CauseCodeType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_oer; +per_type_decoder_f Vanetza_ITS2_CauseCodeType_decode_uper; +per_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_uper; +per_type_decoder_f Vanetza_ITS2_CauseCodeType_decode_aper; +per_type_encoder_f Vanetza_ITS2_CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CauseCodeType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CauseCodeV2.c b/vanetza/asn1/its/r2/CauseCodeV2.c new file mode 100644 index 000000000..75289a57d --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeV2.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CauseCodeV2.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CauseCodeV2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CauseCodeV2, ccAndScc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeChoice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ccAndScc" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CauseCodeV2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ccAndScc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CauseCodeV2_specs_1 = { + sizeof(struct Vanetza_ITS2_CauseCodeV2), + offsetof(struct Vanetza_ITS2_CauseCodeV2, _asn_ctx), + asn_MAP_Vanetza_ITS2_CauseCodeV2_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_Vanetza_ITS2_CauseCodeV2 = { + "CauseCodeV2", + "CauseCodeV2", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CauseCodeV2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CauseCodeV2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CauseCodeV2_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CauseCodeV2_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CauseCodeV2.h b/vanetza/asn1/its/r2/CauseCodeV2.h new file mode 100644 index 000000000..1c7830605 --- /dev/null +++ b/vanetza/asn1/its/r2/CauseCodeV2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CauseCodeV2_H_ +#define _Vanetza_ITS2_CauseCodeV2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CauseCodeChoice.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CauseCodeV2 */ +typedef struct Vanetza_ITS2_CauseCodeV2 { + Vanetza_ITS2_CauseCodeChoice_t ccAndScc; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CauseCodeV2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CauseCodeV2; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CauseCodeV2_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CauseCodeV2_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CauseCodeV2_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CenDsrcTollingZone.c b/vanetza/asn1/its/r2/CenDsrcTollingZone.c new file mode 100644 index 000000000..08d578e23 --- /dev/null +++ b/vanetza/asn1/its/r2/CenDsrcTollingZone.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CenDsrcTollingZone.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CenDsrcTollingZone, cenDsrcTollingZoneId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedZoneId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cenDsrcTollingZoneId" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CenDsrcTollingZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cenDsrcTollingZoneId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CenDsrcTollingZone_specs_1 = { + sizeof(struct Vanetza_ITS2_CenDsrcTollingZone), + offsetof(struct Vanetza_ITS2_CenDsrcTollingZone, _asn_ctx), + asn_MAP_Vanetza_ITS2_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZone_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CenDsrcTollingZone.h b/vanetza/asn1/its/r2/CenDsrcTollingZone.h new file mode 100644 index 000000000..03a19f4ee --- /dev/null +++ b/vanetza/asn1/its/r2/CenDsrcTollingZone.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CenDsrcTollingZone_H_ +#define _Vanetza_ITS2_CenDsrcTollingZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneId.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CenDsrcTollingZone */ +typedef struct Vanetza_ITS2_CenDsrcTollingZone { + Vanetza_ITS2_Latitude_t protectedZoneLatitude; + Vanetza_ITS2_Longitude_t protectedZoneLongitude; + Vanetza_ITS2_ProtectedZoneId_t *cenDsrcTollingZoneId; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CenDsrcTollingZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CenDsrcTollingZone_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CenDsrcTollingZone_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CenDsrcTollingZone_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CenDsrcTollingZoneID.c b/vanetza/asn1/its/r2/CenDsrcTollingZoneID.c new file mode 100644 index 000000000..a5da28b91 --- /dev/null +++ b/vanetza/asn1/its/r2/CenDsrcTollingZoneID.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CenDsrcTollingZoneID.h" + +int +Vanetza_ITS2_CenDsrcTollingZoneID_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 <= 134217727L)) { + /* 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 Vanetza_ITS2_ProtectedZoneId, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -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_Vanetza_ITS2_CenDsrcTollingZoneID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { 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_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CenDsrcTollingZoneID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CenDsrcTollingZoneID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CenDsrcTollingZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CenDsrcTollingZoneID.h b/vanetza/asn1/its/r2/CenDsrcTollingZoneID.h new file mode 100644 index 000000000..d25126b62 --- /dev/null +++ b/vanetza/asn1/its/r2/CenDsrcTollingZoneID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CenDsrcTollingZoneID_H_ +#define _Vanetza_ITS2_CenDsrcTollingZoneID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtectedZoneId.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CenDsrcTollingZoneID */ +typedef Vanetza_ITS2_ProtectedZoneId_t Vanetza_ITS2_CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CenDsrcTollingZoneID; +asn_struct_free_f Vanetza_ITS2_CenDsrcTollingZoneID_free; +asn_struct_print_f Vanetza_ITS2_CenDsrcTollingZoneID_print; +asn_constr_check_f Vanetza_ITS2_CenDsrcTollingZoneID_constraint; +ber_type_decoder_f Vanetza_ITS2_CenDsrcTollingZoneID_decode_ber; +der_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_der; +xer_type_decoder_f Vanetza_ITS2_CenDsrcTollingZoneID_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CenDsrcTollingZoneID_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_oer; +per_type_decoder_f Vanetza_ITS2_CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f Vanetza_ITS2_CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f Vanetza_ITS2_CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CenDsrcTollingZoneID_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CircularShape.c b/vanetza/asn1/its/r2/CircularShape.c new file mode 100644 index 000000000..e304eda66 --- /dev/null +++ b/vanetza/asn1/its/r2/CircularShape.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CircularShape.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CircularShape_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CircularShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CircularShape, radius), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radius" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_CircularShape, height), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, +}; +static const int asn_MAP_Vanetza_ITS2_CircularShape_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CircularShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CircularShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radius */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CircularShape_specs_1 = { + sizeof(struct Vanetza_ITS2_CircularShape), + offsetof(struct Vanetza_ITS2_CircularShape, _asn_ctx), + asn_MAP_Vanetza_ITS2_CircularShape_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_CircularShape_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CircularShape = { + "CircularShape", + "CircularShape", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CircularShape_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CircularShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CircularShape_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CircularShape_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CircularShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CircularShape_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CircularShape_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CircularShape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CircularShape.h b/vanetza/asn1/its/r2/CircularShape.h new file mode 100644 index 000000000..f8ba8bf9d --- /dev/null +++ b/vanetza/asn1/its/r2/CircularShape.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CircularShape_H_ +#define _Vanetza_ITS2_CircularShape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StandardLength12b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_CircularShape */ +typedef struct Vanetza_ITS2_CircularShape { + struct Vanetza_ITS2_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t radius; + Vanetza_ITS2_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CircularShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CircularShape; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CircularShape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CircularShape_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_CircularShape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClosedLanes.c b/vanetza/asn1/its/r2/ClosedLanes.c new file mode 100644 index 000000000..9dd917502 --- /dev/null +++ b/vanetza/asn1/its/r2/ClosedLanes.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClosedLanes.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HardShoulderStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "innerhardShoulderStatus" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HardShoulderStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "outerhardShoulderStatus" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DrivingLaneStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "drivingLaneStatus" + }, +}; +static const int asn_MAP_Vanetza_ITS2_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ClosedLanes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* innerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* outerhardShoulderStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drivingLaneStatus */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ClosedLanes_specs_1 = { + sizeof(struct Vanetza_ITS2_ClosedLanes), + offsetof(struct Vanetza_ITS2_ClosedLanes, _asn_ctx), + asn_MAP_Vanetza_ITS2_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClosedLanes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClosedLanes_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ClosedLanes.h b/vanetza/asn1/its/r2/ClosedLanes.h new file mode 100644 index 000000000..9cf7ec6f7 --- /dev/null +++ b/vanetza/asn1/its/r2/ClosedLanes.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClosedLanes_H_ +#define _Vanetza_ITS2_ClosedLanes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HardShoulderStatus.h" +#include "DrivingLaneStatus.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ClosedLanes */ +typedef struct Vanetza_ITS2_ClosedLanes { + Vanetza_ITS2_HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + Vanetza_ITS2_HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + Vanetza_ITS2_DrivingLaneStatus_t *drivingLaneStatus; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClosedLanes; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ClosedLanes_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ClosedLanes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClosedLanes_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClusterBreakupInfo.c b/vanetza/asn1/its/r2/ClusterBreakupInfo.c new file mode 100644 index 000000000..7c6d35f47 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterBreakupInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClusterBreakupInfo.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ClusterBreakupInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterBreakupInfo, clusterBreakupReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ClusterBreakupReason, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterBreakupReason" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterBreakupInfo, breakupTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "breakupTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ClusterBreakupInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterBreakupReason */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* breakupTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ClusterBreakupInfo_specs_1 = { + sizeof(struct Vanetza_ITS2_ClusterBreakupInfo), + offsetof(struct Vanetza_ITS2_ClusterBreakupInfo, _asn_ctx), + asn_MAP_Vanetza_ITS2_ClusterBreakupInfo_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_Vanetza_ITS2_ClusterBreakupInfo = { + "ClusterBreakupInfo", + "ClusterBreakupInfo", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupInfo_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ClusterBreakupInfo_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ClusterBreakupInfo_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ClusterBreakupInfo.h b/vanetza/asn1/its/r2/ClusterBreakupInfo.h new file mode 100644 index 000000000..c44b02d13 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterBreakupInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClusterBreakupInfo_H_ +#define _Vanetza_ITS2_ClusterBreakupInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ClusterBreakupReason.h" +#include "DeltaTimeQuarterSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ClusterBreakupInfo */ +typedef struct Vanetza_ITS2_ClusterBreakupInfo { + Vanetza_ITS2_ClusterBreakupReason_t clusterBreakupReason; + Vanetza_ITS2_DeltaTimeQuarterSecond_t breakupTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ClusterBreakupInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterBreakupInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClusterBreakupInfo_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClusterBreakupReason.c b/vanetza/asn1/its/r2/ClusterBreakupReason.c new file mode 100644 index 000000000..0ab5998c5 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterBreakupReason.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClusterBreakupReason.h" + +int +Vanetza_ITS2_ClusterBreakupReason_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_Vanetza_ITS2_ClusterBreakupReason_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_Vanetza_ITS2_ClusterBreakupReason_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_Vanetza_ITS2_ClusterBreakupReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterBreakupReason = { + "ClusterBreakupReason", + "ClusterBreakupReason", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterBreakupReason_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ClusterBreakupReason_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ClusterBreakupReason_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ClusterBreakupReason_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ClusterBreakupReason.h b/vanetza/asn1/its/r2/ClusterBreakupReason.h new file mode 100644 index 000000000..6d45f44f2 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterBreakupReason.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClusterBreakupReason_H_ +#define _Vanetza_ITS2_ClusterBreakupReason_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ClusterBreakupReason { + Vanetza_ITS2_ClusterBreakupReason_notProvided = 0, + Vanetza_ITS2_ClusterBreakupReason_clusteringPurposeCompleted = 1, + Vanetza_ITS2_ClusterBreakupReason_leaderMovedOutOfClusterBoundingBox = 2, + Vanetza_ITS2_ClusterBreakupReason_joiningAnotherCluster = 3, + Vanetza_ITS2_ClusterBreakupReason_enteringLowRiskAreaBasedOnMaps = 4, + Vanetza_ITS2_ClusterBreakupReason_receptionOfCpmContainingCluster = 5 +} e_Vanetza_ITS2_ClusterBreakupReason; + +/* Vanetza_ITS2_ClusterBreakupReason */ +typedef long Vanetza_ITS2_ClusterBreakupReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ClusterBreakupReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterBreakupReason; +asn_struct_free_f Vanetza_ITS2_ClusterBreakupReason_free; +asn_struct_print_f Vanetza_ITS2_ClusterBreakupReason_print; +asn_constr_check_f Vanetza_ITS2_ClusterBreakupReason_constraint; +ber_type_decoder_f Vanetza_ITS2_ClusterBreakupReason_decode_ber; +der_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_der; +xer_type_decoder_f Vanetza_ITS2_ClusterBreakupReason_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ClusterBreakupReason_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_oer; +per_type_decoder_f Vanetza_ITS2_ClusterBreakupReason_decode_uper; +per_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_uper; +per_type_decoder_f Vanetza_ITS2_ClusterBreakupReason_decode_aper; +per_type_encoder_f Vanetza_ITS2_ClusterBreakupReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClusterBreakupReason_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClusterJoinInfo.c b/vanetza/asn1/its/r2/ClusterJoinInfo.c new file mode 100644 index 000000000..2f4d4f06b --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterJoinInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClusterJoinInfo.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ClusterJoinInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterJoinInfo, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterJoinInfo, joinTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "joinTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ClusterJoinInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* joinTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ClusterJoinInfo_specs_1 = { + sizeof(struct Vanetza_ITS2_ClusterJoinInfo), + offsetof(struct Vanetza_ITS2_ClusterJoinInfo, _asn_ctx), + asn_MAP_Vanetza_ITS2_ClusterJoinInfo_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_Vanetza_ITS2_ClusterJoinInfo = { + "ClusterJoinInfo", + "ClusterJoinInfo", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClusterJoinInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterJoinInfo_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ClusterJoinInfo_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ClusterJoinInfo_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ClusterJoinInfo.h b/vanetza/asn1/its/r2/ClusterJoinInfo.h new file mode 100644 index 000000000..097b437c4 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterJoinInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClusterJoinInfo_H_ +#define _Vanetza_ITS2_ClusterJoinInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "DeltaTimeQuarterSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ClusterJoinInfo */ +typedef struct Vanetza_ITS2_ClusterJoinInfo { + Vanetza_ITS2_Identifier1B_t clusterId; + Vanetza_ITS2_DeltaTimeQuarterSecond_t joinTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ClusterJoinInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterJoinInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClusterJoinInfo_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClusterLeaveInfo.c b/vanetza/asn1/its/r2/ClusterLeaveInfo.c new file mode 100644 index 000000000..44c786dd3 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterLeaveInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClusterLeaveInfo.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ClusterLeaveInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterLeaveInfo, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ClusterLeaveInfo, clusterLeaveReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ClusterLeaveReason, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterLeaveReason" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ClusterLeaveInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* clusterLeaveReason */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ClusterLeaveInfo_specs_1 = { + sizeof(struct Vanetza_ITS2_ClusterLeaveInfo), + offsetof(struct Vanetza_ITS2_ClusterLeaveInfo, _asn_ctx), + asn_MAP_Vanetza_ITS2_ClusterLeaveInfo_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_Vanetza_ITS2_ClusterLeaveInfo = { + "ClusterLeaveInfo", + "ClusterLeaveInfo", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveInfo_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ClusterLeaveInfo_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ClusterLeaveInfo_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ClusterLeaveInfo.h b/vanetza/asn1/its/r2/ClusterLeaveInfo.h new file mode 100644 index 000000000..0331f8ed3 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterLeaveInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClusterLeaveInfo_H_ +#define _Vanetza_ITS2_ClusterLeaveInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "ClusterLeaveReason.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ClusterLeaveInfo */ +typedef struct Vanetza_ITS2_ClusterLeaveInfo { + Vanetza_ITS2_Identifier1B_t clusterId; + Vanetza_ITS2_ClusterLeaveReason_t clusterLeaveReason; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ClusterLeaveInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterLeaveInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClusterLeaveInfo_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ClusterLeaveReason.c b/vanetza/asn1/its/r2/ClusterLeaveReason.c new file mode 100644 index 000000000..4bcd20c65 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterLeaveReason.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ClusterLeaveReason.h" + +int +Vanetza_ITS2_ClusterLeaveReason_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_Vanetza_ITS2_ClusterLeaveReason_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_Vanetza_ITS2_ClusterLeaveReason_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_Vanetza_ITS2_ClusterLeaveReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterLeaveReason = { + "ClusterLeaveReason", + "ClusterLeaveReason", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ClusterLeaveReason_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ClusterLeaveReason_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ClusterLeaveReason_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ClusterLeaveReason_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ClusterLeaveReason.h b/vanetza/asn1/its/r2/ClusterLeaveReason.h new file mode 100644 index 000000000..a50d54b20 --- /dev/null +++ b/vanetza/asn1/its/r2/ClusterLeaveReason.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ClusterLeaveReason_H_ +#define _Vanetza_ITS2_ClusterLeaveReason_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ClusterLeaveReason { + Vanetza_ITS2_ClusterLeaveReason_notProvided = 0, + Vanetza_ITS2_ClusterLeaveReason_clusterLeaderLost = 1, + Vanetza_ITS2_ClusterLeaveReason_clusterDisbandedByLeader = 2, + Vanetza_ITS2_ClusterLeaveReason_outOfClusterBoundingBox = 3, + Vanetza_ITS2_ClusterLeaveReason_outOfClusterSpeedRange = 4, + Vanetza_ITS2_ClusterLeaveReason_joiningAnotherCluster = 5, + Vanetza_ITS2_ClusterLeaveReason_cancelledJoin = 6, + Vanetza_ITS2_ClusterLeaveReason_failedJoin = 7, + Vanetza_ITS2_ClusterLeaveReason_safetyCondition = 8 +} e_Vanetza_ITS2_ClusterLeaveReason; + +/* Vanetza_ITS2_ClusterLeaveReason */ +typedef long Vanetza_ITS2_ClusterLeaveReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ClusterLeaveReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ClusterLeaveReason; +asn_struct_free_f Vanetza_ITS2_ClusterLeaveReason_free; +asn_struct_print_f Vanetza_ITS2_ClusterLeaveReason_print; +asn_constr_check_f Vanetza_ITS2_ClusterLeaveReason_constraint; +ber_type_decoder_f Vanetza_ITS2_ClusterLeaveReason_decode_ber; +der_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_der; +xer_type_decoder_f Vanetza_ITS2_ClusterLeaveReason_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ClusterLeaveReason_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_oer; +per_type_decoder_f Vanetza_ITS2_ClusterLeaveReason_decode_uper; +per_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_uper; +per_type_decoder_f Vanetza_ITS2_ClusterLeaveReason_decode_aper; +per_type_encoder_f Vanetza_ITS2_ClusterLeaveReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ClusterLeaveReason_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CollectivePerceptionMessage.c b/vanetza/asn1/its/r2/CollectivePerceptionMessage.c new file mode 100644 index 000000000..4c1f7f145 --- /dev/null +++ b/vanetza/asn1/its/r2/CollectivePerceptionMessage.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CollectivePerceptionMessage.h" + +static int +memb_Vanetza_ITS2_header_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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_CollectivePerceptionMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CollectivePerceptionMessage, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ItsPduHeader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_header_constraint_1 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CollectivePerceptionMessage, payload), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CpmPayload, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "payload" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CollectivePerceptionMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* payload */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CollectivePerceptionMessage_specs_1 = { + sizeof(struct Vanetza_ITS2_CollectivePerceptionMessage), + offsetof(struct Vanetza_ITS2_CollectivePerceptionMessage, _asn_ctx), + asn_MAP_Vanetza_ITS2_CollectivePerceptionMessage_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_Vanetza_ITS2_CollectivePerceptionMessage = { + "CollectivePerceptionMessage", + "CollectivePerceptionMessage", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CollectivePerceptionMessage_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CollectivePerceptionMessage_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CollectivePerceptionMessage.h b/vanetza/asn1/its/r2/CollectivePerceptionMessage.h new file mode 100644 index 000000000..1be675563 --- /dev/null +++ b/vanetza/asn1/its/r2/CollectivePerceptionMessage.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CollectivePerceptionMessage_H_ +#define _Vanetza_ITS2_CollectivePerceptionMessage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "CpmPayload.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CollectivePerceptionMessage */ +typedef struct Vanetza_ITS2_CollectivePerceptionMessage { + Vanetza_ITS2_ItsPduHeader_t header; + Vanetza_ITS2_CpmPayload_t payload; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CollectivePerceptionMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CollectivePerceptionMessage; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CollectivePerceptionMessage_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.c b/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.c new file mode 100644 index 000000000..73ff348cb --- /dev/null +++ b/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CollisionRiskSubCauseCode.h" + +int +Vanetza_ITS2_CollisionRiskSubCauseCode_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_Vanetza_ITS2_CollisionRiskSubCauseCode_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_Vanetza_ITS2_CollisionRiskSubCauseCode_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_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CollisionRiskSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CollisionRiskSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CollisionRiskSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.h b/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.h new file mode 100644 index 000000000..d51a65544 --- /dev/null +++ b/vanetza/asn1/its/r2/CollisionRiskSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CollisionRiskSubCauseCode_H_ +#define _Vanetza_ITS2_CollisionRiskSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CollisionRiskSubCauseCode { + Vanetza_ITS2_CollisionRiskSubCauseCode_unavailable = 0, + Vanetza_ITS2_CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + Vanetza_ITS2_CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + Vanetza_ITS2_CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + Vanetza_ITS2_CollisionRiskSubCauseCode_vulnerableRoadUser = 4, + Vanetza_ITS2_CollisionRiskSubCauseCode_collisionRiskWithPedestrian = 5, + Vanetza_ITS2_CollisionRiskSubCauseCode_collisionRiskWithCyclist = 6, + Vanetza_ITS2_CollisionRiskSubCauseCode_collisionRiskWithMotorVehicle = 7 +} e_Vanetza_ITS2_CollisionRiskSubCauseCode; + +/* Vanetza_ITS2_CollisionRiskSubCauseCode */ +typedef long Vanetza_ITS2_CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CollisionRiskSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CollisionRiskSubCauseCode; +asn_struct_free_f Vanetza_ITS2_CollisionRiskSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_CollisionRiskSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_CollisionRiskSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CollisionRiskSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ConfidenceLevel.c b/vanetza/asn1/its/r2/ConfidenceLevel.c new file mode 100644 index 000000000..e3e5bcec6 --- /dev/null +++ b/vanetza/asn1/its/r2/ConfidenceLevel.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ConfidenceLevel.h" + +int +Vanetza_ITS2_ConfidenceLevel_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 <= 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_Vanetza_ITS2_ConfidenceLevel_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_ConfidenceLevel_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 101 } /* (1..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_Vanetza_ITS2_ConfidenceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ConfidenceLevel = { + "ConfidenceLevel", + "ConfidenceLevel", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ConfidenceLevel_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ConfidenceLevel_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ConfidenceLevel_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ConfidenceLevel_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ConfidenceLevel.h b/vanetza/asn1/its/r2/ConfidenceLevel.h new file mode 100644 index 000000000..fe735d817 --- /dev/null +++ b/vanetza/asn1/its/r2/ConfidenceLevel.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ConfidenceLevel_H_ +#define _Vanetza_ITS2_ConfidenceLevel_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ConfidenceLevel { + Vanetza_ITS2_ConfidenceLevel_unavailable = 101 +} e_Vanetza_ITS2_ConfidenceLevel; + +/* Vanetza_ITS2_ConfidenceLevel */ +typedef long Vanetza_ITS2_ConfidenceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ConfidenceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ConfidenceLevel; +asn_struct_free_f Vanetza_ITS2_ConfidenceLevel_free; +asn_struct_print_f Vanetza_ITS2_ConfidenceLevel_print; +asn_constr_check_f Vanetza_ITS2_ConfidenceLevel_constraint; +ber_type_decoder_f Vanetza_ITS2_ConfidenceLevel_decode_ber; +der_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_der; +xer_type_decoder_f Vanetza_ITS2_ConfidenceLevel_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ConfidenceLevel_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_oer; +per_type_decoder_f Vanetza_ITS2_ConfidenceLevel_decode_uper; +per_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_uper; +per_type_decoder_f Vanetza_ITS2_ConfidenceLevel_decode_aper; +per_type_encoder_f Vanetza_ITS2_ConfidenceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ConfidenceLevel_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.c b/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.c new file mode 100644 index 000000000..e0beb62dc --- /dev/null +++ b/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ConstraintWrappedCpmContainers.h" + +int +Vanetza_ITS2_ConstraintWrappedCpmContainers_constraint(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; + } +} + +/* + * This type is implemented using Vanetza_ITS2_WrappedCpmContainers, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_ConstraintWrappedCpmContainers_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_Vanetza_ITS2_ConstraintWrappedCpmContainers_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) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers = { + "ConstraintWrappedCpmContainers", + "ConstraintWrappedCpmContainers", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ConstraintWrappedCpmContainers_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ConstraintWrappedCpmContainers_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ConstraintWrappedCpmContainers_constraint + }, + asn_MBR_Vanetza_ITS2_WrappedCpmContainers_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_WrappedCpmContainers_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.h b/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.h new file mode 100644 index 000000000..4c7a4d348 --- /dev/null +++ b/vanetza/asn1/its/r2/ConstraintWrappedCpmContainers.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ConstraintWrappedCpmContainers_H_ +#define _Vanetza_ITS2_ConstraintWrappedCpmContainers_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "WrappedCpmContainers.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ConstraintWrappedCpmContainers */ +typedef Vanetza_ITS2_WrappedCpmContainers_t Vanetza_ITS2_ConstraintWrappedCpmContainers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ConstraintWrappedCpmContainers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers; +asn_struct_free_f Vanetza_ITS2_ConstraintWrappedCpmContainers_free; +asn_struct_print_f Vanetza_ITS2_ConstraintWrappedCpmContainers_print; +asn_constr_check_f Vanetza_ITS2_ConstraintWrappedCpmContainers_constraint; +ber_type_decoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_decode_ber; +der_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_der; +xer_type_decoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_oer; +per_type_decoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_decode_uper; +per_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_uper; +per_type_decoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_decode_aper; +per_type_encoder_f Vanetza_ITS2_ConstraintWrappedCpmContainers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ConstraintWrappedCpmContainers_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CoordinateConfidence.c b/vanetza/asn1/its/r2/CoordinateConfidence.c new file mode 100644 index 000000000..e9e0b7895 --- /dev/null +++ b/vanetza/asn1/its/r2/CoordinateConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CoordinateConfidence.h" + +int +Vanetza_ITS2_CoordinateConfidence_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 <= 4096L)) { + /* 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_Vanetza_ITS2_CoordinateConfidence_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..4096) */, + -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_Vanetza_ITS2_CoordinateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 1, 4096 } /* (1..4096) */, + { 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_Vanetza_ITS2_CoordinateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CoordinateConfidence = { + "CoordinateConfidence", + "CoordinateConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CoordinateConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CoordinateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CoordinateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CoordinateConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CoordinateConfidence.h b/vanetza/asn1/its/r2/CoordinateConfidence.h new file mode 100644 index 000000000..d5f0526e9 --- /dev/null +++ b/vanetza/asn1/its/r2/CoordinateConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CoordinateConfidence_H_ +#define _Vanetza_ITS2_CoordinateConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CoordinateConfidence { + Vanetza_ITS2_CoordinateConfidence_outOfRange = 4095, + Vanetza_ITS2_CoordinateConfidence_unavailable = 4096 +} e_Vanetza_ITS2_CoordinateConfidence; + +/* Vanetza_ITS2_CoordinateConfidence */ +typedef long Vanetza_ITS2_CoordinateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CoordinateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CoordinateConfidence; +asn_struct_free_f Vanetza_ITS2_CoordinateConfidence_free; +asn_struct_print_f Vanetza_ITS2_CoordinateConfidence_print; +asn_constr_check_f Vanetza_ITS2_CoordinateConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_CoordinateConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_CoordinateConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CoordinateConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_CoordinateConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_CoordinateConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_CoordinateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CoordinateConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CorrelationCellValue.c b/vanetza/asn1/its/r2/CorrelationCellValue.c new file mode 100644 index 000000000..330fff584 --- /dev/null +++ b/vanetza/asn1/its/r2/CorrelationCellValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CorrelationCellValue.h" + +int +Vanetza_ITS2_CorrelationCellValue_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 >= -100L && 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_Vanetza_ITS2_CorrelationCellValue_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-100..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_Vanetza_ITS2_CorrelationCellValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -100, 101 } /* (-100..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_Vanetza_ITS2_CorrelationCellValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CorrelationCellValue = { + "CorrelationCellValue", + "CorrelationCellValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CorrelationCellValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CorrelationCellValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CorrelationCellValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CorrelationCellValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CorrelationCellValue.h b/vanetza/asn1/its/r2/CorrelationCellValue.h new file mode 100644 index 000000000..bc30f5c7d --- /dev/null +++ b/vanetza/asn1/its/r2/CorrelationCellValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CorrelationCellValue_H_ +#define _Vanetza_ITS2_CorrelationCellValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CorrelationCellValue { + Vanetza_ITS2_CorrelationCellValue_full_negative_correlation = -100, + Vanetza_ITS2_CorrelationCellValue_no_correlation = 0, + Vanetza_ITS2_CorrelationCellValue_full_positive_correlation = 100, + Vanetza_ITS2_CorrelationCellValue_unavailable = 101 +} e_Vanetza_ITS2_CorrelationCellValue; + +/* Vanetza_ITS2_CorrelationCellValue */ +typedef long Vanetza_ITS2_CorrelationCellValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CorrelationCellValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CorrelationCellValue; +asn_struct_free_f Vanetza_ITS2_CorrelationCellValue_free; +asn_struct_print_f Vanetza_ITS2_CorrelationCellValue_print; +asn_constr_check_f Vanetza_ITS2_CorrelationCellValue_constraint; +ber_type_decoder_f Vanetza_ITS2_CorrelationCellValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_CorrelationCellValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CorrelationCellValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_CorrelationCellValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_CorrelationCellValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_CorrelationCellValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CorrelationCellValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CorrelationColumn.c b/vanetza/asn1/its/r2/CorrelationColumn.c new file mode 100644 index 000000000..e2006f088 --- /dev/null +++ b/vanetza/asn1/its/r2/CorrelationColumn.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CorrelationColumn.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_CorrelationColumn_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_Vanetza_ITS2_CorrelationColumn_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 13 } /* (SIZE(1..13,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CorrelationColumn_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_CorrelationCellValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_CorrelationColumn_specs_1 = { + sizeof(struct Vanetza_ITS2_CorrelationColumn), + offsetof(struct Vanetza_ITS2_CorrelationColumn, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CorrelationColumn = { + "CorrelationColumn", + "CorrelationColumn", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CorrelationColumn_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CorrelationColumn_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CorrelationColumn_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_CorrelationColumn_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_CorrelationColumn_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CorrelationColumn.h b/vanetza/asn1/its/r2/CorrelationColumn.h new file mode 100644 index 000000000..c48070c76 --- /dev/null +++ b/vanetza/asn1/its/r2/CorrelationColumn.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CorrelationColumn_H_ +#define _Vanetza_ITS2_CorrelationColumn_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CorrelationCellValue.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CorrelationColumn */ +typedef struct Vanetza_ITS2_CorrelationColumn { + A_SEQUENCE_OF(Vanetza_ITS2_CorrelationCellValue_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CorrelationColumn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CorrelationColumn; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_CorrelationColumn_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CorrelationColumn_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CorrelationColumn_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CorrelationColumn_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CountryCode.c b/vanetza/asn1/its/r2/CountryCode.c new file mode 100644 index 000000000..970c2cc7f --- /dev/null +++ b/vanetza/asn1/its/r2/CountryCode.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CountryCode.h" + +int +Vanetza_ITS2_CountryCode_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_Vanetza_ITS2_CountryCode_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_Vanetza_ITS2_CountryCode_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_CountryCode_constr_1 CC_NOTUSED = { + 10}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_CountryCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CountryCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CountryCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CountryCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CountryCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CountryCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_CountryCode_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CountryCode_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CountryCode.h b/vanetza/asn1/its/r2/CountryCode.h new file mode 100644 index 000000000..4a19b3296 --- /dev/null +++ b/vanetza/asn1/its/r2/CountryCode.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CountryCode_H_ +#define _Vanetza_ITS2_CountryCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CountryCode */ +typedef BIT_STRING_t Vanetza_ITS2_CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CountryCode; +asn_struct_free_f Vanetza_ITS2_CountryCode_free; +asn_struct_print_f Vanetza_ITS2_CountryCode_print; +asn_constr_check_f Vanetza_ITS2_CountryCode_constraint; +ber_type_decoder_f Vanetza_ITS2_CountryCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_CountryCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_CountryCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CountryCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CountryCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CountryCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CountryCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_CountryCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_CountryCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_CountryCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CountryCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CpmContainerId.c b/vanetza/asn1/its/r2/CpmContainerId.c new file mode 100644 index 000000000..d58508dff --- /dev/null +++ b/vanetza/asn1/its/r2/CpmContainerId.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CpmContainerId.h" + +int +Vanetza_ITS2_CpmContainerId_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 <= 16L)) { + /* 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_Vanetza_ITS2_CpmContainerId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -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_Vanetza_ITS2_CpmContainerId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..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 ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CpmContainerId = { + "CpmContainerId", + "CpmContainerId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CpmContainerId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CpmContainerId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CpmContainerId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CpmContainerId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CpmContainerId.h b/vanetza/asn1/its/r2/CpmContainerId.h new file mode 100644 index 000000000..099db9ce2 --- /dev/null +++ b/vanetza/asn1/its/r2/CpmContainerId.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CpmContainerId_H_ +#define _Vanetza_ITS2_CpmContainerId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CpmContainerId */ +typedef long Vanetza_ITS2_CpmContainerId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CpmContainerId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CpmContainerId; +asn_struct_free_f Vanetza_ITS2_CpmContainerId_free; +asn_struct_print_f Vanetza_ITS2_CpmContainerId_print; +asn_constr_check_f Vanetza_ITS2_CpmContainerId_constraint; +ber_type_decoder_f Vanetza_ITS2_CpmContainerId_decode_ber; +der_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_der; +xer_type_decoder_f Vanetza_ITS2_CpmContainerId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CpmContainerId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_oer; +per_type_decoder_f Vanetza_ITS2_CpmContainerId_decode_uper; +per_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_uper; +per_type_decoder_f Vanetza_ITS2_CpmContainerId_decode_aper; +per_type_encoder_f Vanetza_ITS2_CpmContainerId_encode_aper; +#define Vanetza_ITS2_CpmContainerId_originatingVehicleContainer ((Vanetza_ITS2_CpmContainerId_t)1) +#define Vanetza_ITS2_CpmContainerId_originatingRsuContainer ((Vanetza_ITS2_CpmContainerId_t)2) +#define Vanetza_ITS2_CpmContainerId_sensorInformationContainer ((Vanetza_ITS2_CpmContainerId_t)3) +#define Vanetza_ITS2_CpmContainerId_perceptionRegionContainer ((Vanetza_ITS2_CpmContainerId_t)4) +#define Vanetza_ITS2_CpmContainerId_perceivedObjectContainer ((Vanetza_ITS2_CpmContainerId_t)5) + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CpmContainerId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CpmPayload.c b/vanetza/asn1/its/r2/CpmPayload.c new file mode 100644 index 000000000..ddd886938 --- /dev/null +++ b/vanetza/asn1/its/r2/CpmPayload.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CpmPayload.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CpmPayload_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CpmPayload, managementContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "managementContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_CpmPayload, cpmContainers), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConstraintWrappedCpmContainers, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cpmContainers" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CpmPayload_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_CpmPayload_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* managementContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cpmContainers */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CpmPayload_specs_1 = { + sizeof(struct Vanetza_ITS2_CpmPayload), + offsetof(struct Vanetza_ITS2_CpmPayload, _asn_ctx), + asn_MAP_Vanetza_ITS2_CpmPayload_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_Vanetza_ITS2_CpmPayload = { + "CpmPayload", + "CpmPayload", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_CpmPayload_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CpmPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CpmPayload_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CpmPayload_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CpmPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CpmPayload_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_CpmPayload_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_CpmPayload_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CpmPayload.h b/vanetza/asn1/its/r2/CpmPayload.h new file mode 100644 index 000000000..2ebd0ce18 --- /dev/null +++ b/vanetza/asn1/its/r2/CpmPayload.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CpmPayload_H_ +#define _Vanetza_ITS2_CpmPayload_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CPM-PDU-Descriptions_ManagementContainer.h" +#include "ConstraintWrappedCpmContainers.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_CpmPayload */ +typedef struct Vanetza_ITS2_CpmPayload { + Vanetza_ITS2_CPM_PDU_Descriptions_ManagementContainer_t managementContainer; + Vanetza_ITS2_ConstraintWrappedCpmContainers_t cpmContainers; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_CpmPayload_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CpmPayload; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_CpmPayload_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_CpmPayload_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CpmPayload_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Curvature.c b/vanetza/asn1/its/r2/Curvature.c new file mode 100644 index 000000000..81715091b --- /dev/null +++ b/vanetza/asn1/its/r2/Curvature.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Curvature.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CurvatureValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "curvatureValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CurvatureConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "curvatureConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Curvature_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* curvatureValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* curvatureConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Curvature_specs_1 = { + sizeof(struct Vanetza_ITS2_Curvature), + offsetof(struct Vanetza_ITS2_Curvature, _asn_ctx), + asn_MAP_Vanetza_ITS2_Curvature_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_Vanetza_ITS2_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Curvature_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Curvature_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Curvature_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Curvature_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Curvature_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Curvature_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Curvature.h b/vanetza/asn1/its/r2/Curvature.h new file mode 100644 index 000000000..22cc8d96a --- /dev/null +++ b/vanetza/asn1/its/r2/Curvature.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Curvature_H_ +#define _Vanetza_ITS2_Curvature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CurvatureValue.h" +#include "CurvatureConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Curvature */ +typedef struct Vanetza_ITS2_Curvature { + Vanetza_ITS2_CurvatureValue_t curvatureValue; + Vanetza_ITS2_CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Curvature; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Curvature_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Curvature_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Curvature_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CurvatureCalculationMode.c b/vanetza/asn1/its/r2/CurvatureCalculationMode.c new file mode 100644 index 000000000..90acfbdc5 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureCalculationMode.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CurvatureCalculationMode.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_Vanetza_ITS2_CurvatureCalculationMode_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_Vanetza_ITS2_CurvatureCalculationMode_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) */ +static const asn_INTEGER_enum_map_t asn_MAP_Vanetza_ITS2_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_CurvatureCalculationMode_enum2value_1[] = { + 2, /* unavailable(2) */ + 1, /* yawRateNotUsed(1) */ + 0 /* yawRateUsed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_CurvatureCalculationMode_specs_1 = { + asn_MAP_Vanetza_ITS2_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_CurvatureCalculationMode_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureCalculationMode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CurvatureCalculationMode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CurvatureCalculationMode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CurvatureCalculationMode.h b/vanetza/asn1/its/r2/CurvatureCalculationMode.h new file mode 100644 index 000000000..078e6ce45 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureCalculationMode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CurvatureCalculationMode_H_ +#define _Vanetza_ITS2_CurvatureCalculationMode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CurvatureCalculationMode { + Vanetza_ITS2_CurvatureCalculationMode_yawRateUsed = 0, + Vanetza_ITS2_CurvatureCalculationMode_yawRateNotUsed = 1, + Vanetza_ITS2_CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_Vanetza_ITS2_CurvatureCalculationMode; + +/* Vanetza_ITS2_CurvatureCalculationMode */ +typedef long Vanetza_ITS2_CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CurvatureCalculationMode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureCalculationMode; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_CurvatureCalculationMode_specs_1; +asn_struct_free_f Vanetza_ITS2_CurvatureCalculationMode_free; +asn_struct_print_f Vanetza_ITS2_CurvatureCalculationMode_print; +asn_constr_check_f Vanetza_ITS2_CurvatureCalculationMode_constraint; +ber_type_decoder_f Vanetza_ITS2_CurvatureCalculationMode_decode_ber; +der_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_der; +xer_type_decoder_f Vanetza_ITS2_CurvatureCalculationMode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CurvatureCalculationMode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_oer; +per_type_decoder_f Vanetza_ITS2_CurvatureCalculationMode_decode_uper; +per_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_uper; +per_type_decoder_f Vanetza_ITS2_CurvatureCalculationMode_decode_aper; +per_type_encoder_f Vanetza_ITS2_CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CurvatureCalculationMode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CurvatureConfidence.c b/vanetza/asn1/its/r2/CurvatureConfidence.c new file mode 100644 index 000000000..b3f83ef05 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureConfidence.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CurvatureConfidence.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_Vanetza_ITS2_CurvatureConfidence_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_Vanetza_ITS2_CurvatureConfidence_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_Vanetza_ITS2_CurvatureConfidence_value2enum_1[] = { + { 0, 19, "onePerMeter-0-00002" }, + { 1, 18, "onePerMeter-0-0001" }, + { 2, 18, "onePerMeter-0-0005" }, + { 3, 17, "onePerMeter-0-002" }, + { 4, 16, "onePerMeter-0-01" }, + { 5, 15, "onePerMeter-0-1" }, + { 6, 10, "outOfRange" }, + { 7, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_CurvatureConfidence_enum2value_1[] = { + 0, /* onePerMeter-0-00002(0) */ + 1, /* onePerMeter-0-0001(1) */ + 2, /* onePerMeter-0-0005(2) */ + 3, /* onePerMeter-0-002(3) */ + 4, /* onePerMeter-0-01(4) */ + 5, /* onePerMeter-0-1(5) */ + 6, /* outOfRange(6) */ + 7 /* unavailable(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_CurvatureConfidence_specs_1 = { + asn_MAP_Vanetza_ITS2_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_CurvatureConfidence_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_Vanetza_ITS2_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CurvatureConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CurvatureConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/CurvatureConfidence.h b/vanetza/asn1/its/r2/CurvatureConfidence.h new file mode 100644 index 000000000..472553c34 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureConfidence.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CurvatureConfidence_H_ +#define _Vanetza_ITS2_CurvatureConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CurvatureConfidence { + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_00002 = 0, + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_0001 = 1, + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_0005 = 2, + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_002 = 3, + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_01 = 4, + Vanetza_ITS2_CurvatureConfidence_onePerMeter_0_1 = 5, + Vanetza_ITS2_CurvatureConfidence_outOfRange = 6, + Vanetza_ITS2_CurvatureConfidence_unavailable = 7 +} e_Vanetza_ITS2_CurvatureConfidence; + +/* Vanetza_ITS2_CurvatureConfidence */ +typedef long Vanetza_ITS2_CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_CurvatureConfidence_specs_1; +asn_struct_free_f Vanetza_ITS2_CurvatureConfidence_free; +asn_struct_print_f Vanetza_ITS2_CurvatureConfidence_print; +asn_constr_check_f Vanetza_ITS2_CurvatureConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_CurvatureConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_CurvatureConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CurvatureConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_CurvatureConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_CurvatureConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CurvatureConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/CurvatureValue.c b/vanetza/asn1/its/r2/CurvatureValue.c new file mode 100644 index 000000000..fc2c0c129 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "CurvatureValue.h" + +int +Vanetza_ITS2_CurvatureValue_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 >= -1023L && 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_Vanetza_ITS2_CurvatureValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-1023..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_Vanetza_ITS2_CurvatureValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, -1023, 1023 } /* (-1023..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_Vanetza_ITS2_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_CurvatureValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_CurvatureValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_CurvatureValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_CurvatureValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/CurvatureValue.h b/vanetza/asn1/its/r2/CurvatureValue.h new file mode 100644 index 000000000..b81d8bfb9 --- /dev/null +++ b/vanetza/asn1/its/r2/CurvatureValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_CurvatureValue_H_ +#define _Vanetza_ITS2_CurvatureValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_CurvatureValue { + Vanetza_ITS2_CurvatureValue_outOfRangeNegative = -1023, + Vanetza_ITS2_CurvatureValue_straight = 0, + Vanetza_ITS2_CurvatureValue_outOfRangePositive = 1022, + Vanetza_ITS2_CurvatureValue_unavailable = 1023 +} e_Vanetza_ITS2_CurvatureValue; + +/* Vanetza_ITS2_CurvatureValue */ +typedef long Vanetza_ITS2_CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_CurvatureValue; +asn_struct_free_f Vanetza_ITS2_CurvatureValue_free; +asn_struct_print_f Vanetza_ITS2_CurvatureValue_print; +asn_constr_check_f Vanetza_ITS2_CurvatureValue_constraint; +ber_type_decoder_f Vanetza_ITS2_CurvatureValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_CurvatureValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_CurvatureValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_CurvatureValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_CurvatureValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_CurvatureValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.c b/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.c new file mode 100644 index 000000000..b3b84fd8e --- /dev/null +++ b/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.c @@ -0,0 +1,286 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DENM-PDU-Description_ManagementContainer.h" + +static int asn_DFL_9_cmp_600(const void *sptr) { + const Vanetza_ITS2_DeltaTimeSecond_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 600 */ + return (*st != 600); +} +static int asn_DFL_9_set_600(void **sptr) { + Vanetza_ITS2_DeltaTimeSecond_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 600 */ + *st = 600; + return 0; +} +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, actionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ActionId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, detectionTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TimestampIts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, referenceTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TimestampIts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referenceTime" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, termination), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Termination, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "termination" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, awarenessDistance), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength3b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "awarenessDistance" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, trafficDirection), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trafficDirection" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, validityDuration), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_9_cmp_600, /* Compare DEFAULT 600 */ + &asn_DFL_9_set_600, /* Set DEFAULT 600 */ + "validityDuration" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, transmissionInterval), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transmissionInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, stationType), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationType" + }, +}; +static const int asn_MAP_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_oms_1[] = { 3, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* actionId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* detectionTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referenceTime */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* termination */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* awarenessDistance */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* trafficDirection */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* validityDuration */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* transmissionInterval */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* stationType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer), + offsetof(struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer = { + "ManagementContainer", + "ManagementContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_1, + 10, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.h b/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.h new file mode 100644 index 000000000..f8121eec1 --- /dev/null +++ b/vanetza/asn1/its/r2/DENM-PDU-Description_ManagementContainer.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_H_ +#define _Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ActionId.h" +#include "TimestampIts.h" +#include "Termination.h" +#include "ReferencePosition.h" +#include "StandardLength3b.h" +#include "TrafficDirection.h" +#include "DeltaTimeSecond.h" +#include "DeltaTimeMilliSecondPositive.h" +#include "StationType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DENM-PDU-Description_ManagementContainer */ +typedef struct Vanetza_ITS2_DENM_PDU_Description_ManagementContainer { + Vanetza_ITS2_ActionId_t actionId; + Vanetza_ITS2_TimestampIts_t detectionTime; + Vanetza_ITS2_TimestampIts_t referenceTime; + Vanetza_ITS2_Termination_t *termination; /* OPTIONAL */ + Vanetza_ITS2_ReferencePosition_t eventPosition; + Vanetza_ITS2_StandardLength3b_t *awarenessDistance; /* OPTIONAL */ + Vanetza_ITS2_TrafficDirection_t *trafficDirection; /* OPTIONAL */ + Vanetza_ITS2_DeltaTimeSecond_t *validityDuration; /* DEFAULT 600 */ + Vanetza_ITS2_DeltaTimeMilliSecondPositive_t *transmissionInterval; /* OPTIONAL */ + Vanetza_ITS2_StationType_t stationType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DENM.c b/vanetza/asn1/its/r2/DENM.c new file mode 100644 index 000000000..310898363 --- /dev/null +++ b/vanetza/asn1/its/r2/DENM.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DENM.h" + +static int +memb_Vanetza_ITS2_header_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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_header_constr_2 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_Vanetza_ITS2_DENM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ItsPduHeader, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_header_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_header_constraint_1 + }, + 0, 0, /* No default value */ + "header" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DENM, denm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DenmPayload, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "denm" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DENM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DENM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* denm */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DENM_specs_1 = { + sizeof(struct Vanetza_ITS2_DENM), + offsetof(struct Vanetza_ITS2_DENM, _asn_ctx), + asn_MAP_Vanetza_ITS2_DENM_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_Vanetza_ITS2_DENM = { + "DENM", + "DENM", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DENM_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DENM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DENM_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DENM_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DENM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DENM_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DENM_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DENM_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DENM.h b/vanetza/asn1/its/r2/DENM.h new file mode 100644 index 000000000..99302d33a --- /dev/null +++ b/vanetza/asn1/its/r2/DENM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DENM_H_ +#define _Vanetza_ITS2_DENM_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ItsPduHeader.h" +#include "DenmPayload.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DENM */ +typedef struct Vanetza_ITS2_DENM { + Vanetza_ITS2_ItsPduHeader_t header; + Vanetza_ITS2_DenmPayload_t denm; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DENM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DENM; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DENM_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.c b/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 000000000..8ce539156 --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DangerousEndOfQueueSubCauseCode.h" + +int +Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_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_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_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_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_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_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.h b/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..76deb07c9 --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousEndOfQueueSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_H_ +#define _Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DangerousEndOfQueueSubCauseCode { + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_unavailable = 0, + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode; + +/* Vanetza_ITS2_DangerousEndOfQueueSubCauseCode */ +typedef long Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DangerousEndOfQueueSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DangerousGoodsBasic.c b/vanetza/asn1/its/r2/DangerousGoodsBasic.c new file mode 100644 index 000000000..cae85209b --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsBasic.c @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DangerousGoodsBasic.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_Vanetza_ITS2_DangerousGoodsBasic_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_Vanetza_ITS2_DangerousGoodsBasic_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { 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_Vanetza_ITS2_DangerousGoodsBasic_value2enum_1[] = { + { 0, 11, "explosives1" }, + { 1, 11, "explosives2" }, + { 2, 11, "explosives3" }, + { 3, 11, "explosives4" }, + { 4, 11, "explosives5" }, + { 5, 11, "explosives6" }, + { 6, 14, "flammableGases" }, + { 7, 17, "nonFlammableGases" }, + { 8, 10, "toxicGases" }, + { 9, 16, "flammableLiquids" }, + { 10, 15, "flammableSolids" }, + { 11, 39, "substancesLiableToSpontaneousCombustion" }, + { 12, 52, "substancesEmittingFlammableGasesUponContactWithWater" }, + { 13, 19, "oxidizingSubstances" }, + { 14, 16, "organicPeroxides" }, + { 15, 15, "toxicSubstances" }, + { 16, 20, "infectiousSubstances" }, + { 17, 19, "radioactiveMaterial" }, + { 18, 19, "corrosiveSubstances" }, + { 19, 32, "miscellaneousDangerousSubstances" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_DangerousGoodsBasic_enum2value_1[] = { + 18, /* corrosiveSubstances(18) */ + 0, /* explosives1(0) */ + 1, /* explosives2(1) */ + 2, /* explosives3(2) */ + 3, /* explosives4(3) */ + 4, /* explosives5(4) */ + 5, /* explosives6(5) */ + 6, /* flammableGases(6) */ + 9, /* flammableLiquids(9) */ + 10, /* flammableSolids(10) */ + 16, /* infectiousSubstances(16) */ + 19, /* miscellaneousDangerousSubstances(19) */ + 7, /* nonFlammableGases(7) */ + 14, /* organicPeroxides(14) */ + 13, /* oxidizingSubstances(13) */ + 17, /* radioactiveMaterial(17) */ + 12, /* substancesEmittingFlammableGasesUponContactWithWater(12) */ + 11, /* substancesLiableToSpontaneousCombustion(11) */ + 8, /* toxicGases(8) */ + 15 /* toxicSubstances(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsBasic_specs_1 = { + asn_MAP_Vanetza_ITS2_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_DangerousGoodsBasic_enum2value_1, /* N => "tag"; sorted by N */ + 20, /* 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_Vanetza_ITS2_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsBasic_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DangerousGoodsBasic_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DangerousGoodsBasic_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DangerousGoodsBasic.h b/vanetza/asn1/its/r2/DangerousGoodsBasic.h new file mode 100644 index 000000000..15efe9a9e --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsBasic.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DangerousGoodsBasic_H_ +#define _Vanetza_ITS2_DangerousGoodsBasic_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DangerousGoodsBasic { + Vanetza_ITS2_DangerousGoodsBasic_explosives1 = 0, + Vanetza_ITS2_DangerousGoodsBasic_explosives2 = 1, + Vanetza_ITS2_DangerousGoodsBasic_explosives3 = 2, + Vanetza_ITS2_DangerousGoodsBasic_explosives4 = 3, + Vanetza_ITS2_DangerousGoodsBasic_explosives5 = 4, + Vanetza_ITS2_DangerousGoodsBasic_explosives6 = 5, + Vanetza_ITS2_DangerousGoodsBasic_flammableGases = 6, + Vanetza_ITS2_DangerousGoodsBasic_nonFlammableGases = 7, + Vanetza_ITS2_DangerousGoodsBasic_toxicGases = 8, + Vanetza_ITS2_DangerousGoodsBasic_flammableLiquids = 9, + Vanetza_ITS2_DangerousGoodsBasic_flammableSolids = 10, + Vanetza_ITS2_DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + Vanetza_ITS2_DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + Vanetza_ITS2_DangerousGoodsBasic_oxidizingSubstances = 13, + Vanetza_ITS2_DangerousGoodsBasic_organicPeroxides = 14, + Vanetza_ITS2_DangerousGoodsBasic_toxicSubstances = 15, + Vanetza_ITS2_DangerousGoodsBasic_infectiousSubstances = 16, + Vanetza_ITS2_DangerousGoodsBasic_radioactiveMaterial = 17, + Vanetza_ITS2_DangerousGoodsBasic_corrosiveSubstances = 18, + Vanetza_ITS2_DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_Vanetza_ITS2_DangerousGoodsBasic; + +/* Vanetza_ITS2_DangerousGoodsBasic */ +typedef long Vanetza_ITS2_DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsBasic_specs_1; +asn_struct_free_f Vanetza_ITS2_DangerousGoodsBasic_free; +asn_struct_print_f Vanetza_ITS2_DangerousGoodsBasic_print; +asn_constr_check_f Vanetza_ITS2_DangerousGoodsBasic_constraint; +ber_type_decoder_f Vanetza_ITS2_DangerousGoodsBasic_decode_ber; +der_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_der; +xer_type_decoder_f Vanetza_ITS2_DangerousGoodsBasic_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DangerousGoodsBasic_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_oer; +per_type_decoder_f Vanetza_ITS2_DangerousGoodsBasic_decode_uper; +per_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_uper; +per_type_decoder_f Vanetza_ITS2_DangerousGoodsBasic_decode_aper; +per_type_encoder_f Vanetza_ITS2_DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DangerousGoodsBasic_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DangerousGoodsContainer.c b/vanetza/asn1/its/r2/DangerousGoodsContainer.c new file mode 100644 index 000000000..c86e8763e --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsContainer.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DangerousGoodsContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DangerousGoodsContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsContainer, dangerousGoodsBasic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousGoodsBasic, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dangerousGoodsBasic" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DangerousGoodsContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dangerousGoodsBasic */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_DangerousGoodsContainer), + offsetof(struct Vanetza_ITS2_DangerousGoodsContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_DangerousGoodsContainer_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_Vanetza_ITS2_DangerousGoodsContainer = { + "DangerousGoodsContainer", + "DangerousGoodsContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DangerousGoodsContainer_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DangerousGoodsContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DangerousGoodsContainer.h b/vanetza/asn1/its/r2/DangerousGoodsContainer.h new file mode 100644 index 000000000..5fe5b3437 --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DangerousGoodsContainer_H_ +#define _Vanetza_ITS2_DangerousGoodsContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DangerousGoodsContainer */ +typedef struct Vanetza_ITS2_DangerousGoodsContainer { + Vanetza_ITS2_DangerousGoodsBasic_t dangerousGoodsBasic; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DangerousGoodsContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousGoodsContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DangerousGoodsContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DangerousGoodsContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DangerousGoodsExtended.c b/vanetza/asn1/its/r2/DangerousGoodsExtended.c new file mode 100644 index 000000000..f46662bfb --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsExtended.c @@ -0,0 +1,354 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DangerousGoodsExtended.h" + +static int check_permitted_alphabet_7(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_Vanetza_ITS2_unNumber_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 <= 9999L)) { + /* 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_Vanetza_ITS2_emergencyActionCode_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 <= 24UL) + && !check_permitted_alphabet_7(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_Vanetza_ITS2_companyName_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_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 = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1UL && size <= 24UL)) { + /* 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_Vanetza_ITS2_unNumber_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -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_Vanetza_ITS2_unNumber_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { 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_Vanetza_ITS2_emergencyActionCode_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..24)) */}; +#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_Vanetza_ITS2_emergencyActionCode_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 5, 5, 1, 24 } /* (SIZE(1..24)) */, + 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_Vanetza_ITS2_companyName_constr_9 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) +static asn_per_constraints_t asn_PER_memb_Vanetza_ITS2_companyName_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousGoodsBasic, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dangerousGoodsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, unNumber), + (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_Vanetza_ITS2_unNumber_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_unNumber_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_unNumber_constraint_1 + }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, elevatedTemperature), + (ASN_TAG_CLASS_CONTEXT | (2 << 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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elevatedTemperature" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, tunnelsRestricted), + (ASN_TAG_CLASS_CONTEXT | (3 << 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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "tunnelsRestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, limitedQuantity), + (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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "limitedQuantity" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, emergencyActionCode), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IA5String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_emergencyActionCode_constr_7, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_emergencyActionCode_constr_7, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_emergencyActionCode_constraint_1 + }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PhoneNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "phoneNumber" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, companyName), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_companyName_constr_9, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_companyName_constr_9, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_companyName_constraint_1 + }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_Vanetza_ITS2_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DangerousGoodsExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dangerousGoodsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* unNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* elevatedTemperature */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tunnelsRestricted */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* limitedQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyActionCode */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* phoneNumber */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* companyName */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsExtended_specs_1 = { + sizeof(struct Vanetza_ITS2_DangerousGoodsExtended), + offsetof(struct Vanetza_ITS2_DangerousGoodsExtended, _asn_ctx), + asn_MAP_Vanetza_ITS2_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousGoodsExtended_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DangerousGoodsExtended.h b/vanetza/asn1/its/r2/DangerousGoodsExtended.h new file mode 100644 index 000000000..d408fc3c5 --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousGoodsExtended.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DangerousGoodsExtended_H_ +#define _Vanetza_ITS2_DangerousGoodsExtended_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DangerousGoodsBasic.h" +#include "NativeInteger.h" +#include "BOOLEAN.h" +#include "IA5String.h" +#include "PhoneNumber.h" +#include "UTF8String.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DangerousGoodsExtended */ +typedef struct Vanetza_ITS2_DangerousGoodsExtended { + Vanetza_ITS2_DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + Vanetza_ITS2_PhoneNumber_t *phoneNumber; /* OPTIONAL */ + UTF8String_t *companyName; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousGoodsExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DangerousGoodsExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DangerousGoodsExtended_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DangerousGoodsExtended_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.c b/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.c new file mode 100644 index 000000000..400806821 --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DangerousSituationSubCauseCode.h" + +int +Vanetza_ITS2_DangerousSituationSubCauseCode_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_Vanetza_ITS2_DangerousSituationSubCauseCode_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_Vanetza_ITS2_DangerousSituationSubCauseCode_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_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DangerousSituationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DangerousSituationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DangerousSituationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.h b/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.h new file mode 100644 index 000000000..a5fa874ff --- /dev/null +++ b/vanetza/asn1/its/r2/DangerousSituationSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DangerousSituationSubCauseCode_H_ +#define _Vanetza_ITS2_DangerousSituationSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DangerousSituationSubCauseCode { + Vanetza_ITS2_DangerousSituationSubCauseCode_unavailable = 0, + Vanetza_ITS2_DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + Vanetza_ITS2_DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + Vanetza_ITS2_DangerousSituationSubCauseCode_espEngaged = 3, + Vanetza_ITS2_DangerousSituationSubCauseCode_absEngaged = 4, + Vanetza_ITS2_DangerousSituationSubCauseCode_ebEngaged = 5, + Vanetza_ITS2_DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + Vanetza_ITS2_DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_Vanetza_ITS2_DangerousSituationSubCauseCode; + +/* Vanetza_ITS2_DangerousSituationSubCauseCode */ +typedef long Vanetza_ITS2_DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DangerousSituationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DangerousSituationSubCauseCode; +asn_struct_free_f Vanetza_ITS2_DangerousSituationSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_DangerousSituationSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_DangerousSituationSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DangerousSituationSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaAltitude.c b/vanetza/asn1/its/r2/DeltaAltitude.c new file mode 100644 index 000000000..0949d1f20 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaAltitude.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaAltitude.h" + +int +Vanetza_ITS2_DeltaAltitude_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 >= -12700L && value <= 12800L)) { + /* 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_Vanetza_ITS2_DeltaAltitude_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-12700..12800) */, + -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_Vanetza_ITS2_DeltaAltitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -12700, 12800 } /* (-12700..12800) */, + { 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_Vanetza_ITS2_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaAltitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaAltitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaAltitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaAltitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaAltitude.h b/vanetza/asn1/its/r2/DeltaAltitude.h new file mode 100644 index 000000000..96ccdf473 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaAltitude.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaAltitude_H_ +#define _Vanetza_ITS2_DeltaAltitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DeltaAltitude { + Vanetza_ITS2_DeltaAltitude_negativeOutOfRange = -12700, + Vanetza_ITS2_DeltaAltitude_positiveOutOfRange = 12799, + Vanetza_ITS2_DeltaAltitude_unavailable = 12800 +} e_Vanetza_ITS2_DeltaAltitude; + +/* Vanetza_ITS2_DeltaAltitude */ +typedef long Vanetza_ITS2_DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaAltitude; +asn_struct_free_f Vanetza_ITS2_DeltaAltitude_free; +asn_struct_print_f Vanetza_ITS2_DeltaAltitude_print; +asn_constr_check_f Vanetza_ITS2_DeltaAltitude_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaAltitude_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaAltitude_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaAltitude_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaAltitude_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaAltitude_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaAltitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaLatitude.c b/vanetza/asn1/its/r2/DeltaLatitude.c new file mode 100644 index 000000000..6874d8533 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaLatitude.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaLatitude.h" + +int +Vanetza_ITS2_DeltaLatitude_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 >= -131071L && value <= 131072L)) { + /* 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_Vanetza_ITS2_DeltaLatitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -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_Vanetza_ITS2_DeltaLatitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { 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_Vanetza_ITS2_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaLatitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaLatitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaLatitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaLatitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaLatitude.h b/vanetza/asn1/its/r2/DeltaLatitude.h new file mode 100644 index 000000000..9785ffabc --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaLatitude.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaLatitude_H_ +#define _Vanetza_ITS2_DeltaLatitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DeltaLatitude { + Vanetza_ITS2_DeltaLatitude_unavailable = 131072 +} e_Vanetza_ITS2_DeltaLatitude; + +/* Vanetza_ITS2_DeltaLatitude */ +typedef long Vanetza_ITS2_DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaLatitude; +asn_struct_free_f Vanetza_ITS2_DeltaLatitude_free; +asn_struct_print_f Vanetza_ITS2_DeltaLatitude_print; +asn_constr_check_f Vanetza_ITS2_DeltaLatitude_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaLatitude_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaLatitude_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaLatitude_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaLatitude_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaLatitude_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaLatitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaLongitude.c b/vanetza/asn1/its/r2/DeltaLongitude.c new file mode 100644 index 000000000..e99596f59 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaLongitude.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaLongitude.h" + +int +Vanetza_ITS2_DeltaLongitude_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 >= -131071L && value <= 131072L)) { + /* 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_Vanetza_ITS2_DeltaLongitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-131071..131072) */, + -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_Vanetza_ITS2_DeltaLongitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, -131071, 131072 } /* (-131071..131072) */, + { 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_Vanetza_ITS2_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaLongitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaLongitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaLongitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaLongitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaLongitude.h b/vanetza/asn1/its/r2/DeltaLongitude.h new file mode 100644 index 000000000..477dbcac8 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaLongitude.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaLongitude_H_ +#define _Vanetza_ITS2_DeltaLongitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DeltaLongitude { + Vanetza_ITS2_DeltaLongitude_unavailable = 131072 +} e_Vanetza_ITS2_DeltaLongitude; + +/* Vanetza_ITS2_DeltaLongitude */ +typedef long Vanetza_ITS2_DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaLongitude; +asn_struct_free_f Vanetza_ITS2_DeltaLongitude_free; +asn_struct_print_f Vanetza_ITS2_DeltaLongitude_print; +asn_constr_check_f Vanetza_ITS2_DeltaLongitude_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaLongitude_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaLongitude_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaLongitude_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaLongitude_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaLongitude_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaLongitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaReferencePosition.c b/vanetza/asn1/its/r2/DeltaReferencePosition.c new file mode 100644 index 000000000..e14fd9b6f --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaReferencePosition.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaLatitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaLongitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaAltitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaAltitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DeltaReferencePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* deltaAltitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DeltaReferencePosition_specs_1 = { + sizeof(struct Vanetza_ITS2_DeltaReferencePosition), + offsetof(struct Vanetza_ITS2_DeltaReferencePosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_DeltaReferencePosition_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_Vanetza_ITS2_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaReferencePosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaReferencePosition.h b/vanetza/asn1/its/r2/DeltaReferencePosition.h new file mode 100644 index 000000000..061eac080 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaReferencePosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaReferencePosition_H_ +#define _Vanetza_ITS2_DeltaReferencePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DeltaReferencePosition */ +typedef struct Vanetza_ITS2_DeltaReferencePosition { + Vanetza_ITS2_DeltaLatitude_t deltaLatitude; + Vanetza_ITS2_DeltaLongitude_t deltaLongitude; + Vanetza_ITS2_DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaReferencePosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.c b/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.c new file mode 100644 index 000000000..0d69e0922 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeMilliSecondPositive.h" + +int +Vanetza_ITS2_DeltaTimeMilliSecondPositive_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 <= 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_Vanetza_ITS2_DeltaTimeMilliSecondPositive_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..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_Vanetza_ITS2_DeltaTimeMilliSecondPositive_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..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_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive = { + "DeltaTimeMilliSecondPositive", + "DeltaTimeMilliSecondPositive", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeMilliSecondPositive_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeMilliSecondPositive_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeMilliSecondPositive_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.h b/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.h new file mode 100644 index 000000000..2bf6792fe --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeMilliSecondPositive.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeMilliSecondPositive_H_ +#define _Vanetza_ITS2_DeltaTimeMilliSecondPositive_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DeltaTimeMilliSecondPositive */ +typedef long Vanetza_ITS2_DeltaTimeMilliSecondPositive_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeMilliSecondPositive_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive; +asn_struct_free_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondPositive_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeMilliSecondPositive_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.c b/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.c new file mode 100644 index 000000000..aea854067 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeMilliSecondSigned.h" + +int +Vanetza_ITS2_DeltaTimeMilliSecondSigned_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_Vanetza_ITS2_DeltaTimeMilliSecondSigned_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_Vanetza_ITS2_DeltaTimeMilliSecondSigned_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_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned = { + "DeltaTimeMilliSecondSigned", + "DeltaTimeMilliSecondSigned", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeMilliSecondSigned_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeMilliSecondSigned_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeMilliSecondSigned_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.h b/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.h new file mode 100644 index 000000000..bfb1132b1 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeMilliSecondSigned.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeMilliSecondSigned_H_ +#define _Vanetza_ITS2_DeltaTimeMilliSecondSigned_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DeltaTimeMilliSecondSigned */ +typedef long Vanetza_ITS2_DeltaTimeMilliSecondSigned_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeMilliSecondSigned_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned; +asn_struct_free_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeMilliSecondSigned_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeMilliSecondSigned_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.c b/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.c new file mode 100644 index 000000000..366f584dd --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeQuarterSecond.h" + +int +Vanetza_ITS2_DeltaTimeQuarterSecond_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_Vanetza_ITS2_DeltaTimeQuarterSecond_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_Vanetza_ITS2_DeltaTimeQuarterSecond_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_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond = { + "DeltaTimeQuarterSecond", + "DeltaTimeQuarterSecond", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeQuarterSecond_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeQuarterSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeQuarterSecond_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.h b/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.h new file mode 100644 index 000000000..1af860086 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeQuarterSecond.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeQuarterSecond_H_ +#define _Vanetza_ITS2_DeltaTimeQuarterSecond_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DeltaTimeQuarterSecond { + Vanetza_ITS2_DeltaTimeQuarterSecond_unavailable = 255 +} e_Vanetza_ITS2_DeltaTimeQuarterSecond; + +/* Vanetza_ITS2_DeltaTimeQuarterSecond */ +typedef long Vanetza_ITS2_DeltaTimeQuarterSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeQuarterSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeQuarterSecond; +asn_struct_free_f Vanetza_ITS2_DeltaTimeQuarterSecond_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeQuarterSecond_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeQuarterSecond_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeQuarterSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeQuarterSecond_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeSecond.c b/vanetza/asn1/its/r2/DeltaTimeSecond.c new file mode 100644 index 000000000..d6f11b632 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeSecond.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeSecond.h" + +int +Vanetza_ITS2_DeltaTimeSecond_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 <= 86400L)) { + /* 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_Vanetza_ITS2_DeltaTimeSecond_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -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_Vanetza_ITS2_DeltaTimeSecond_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { 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_Vanetza_ITS2_DeltaTimeSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeSecond = { + "DeltaTimeSecond", + "DeltaTimeSecond", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeSecond_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeSecond_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeSecond.h b/vanetza/asn1/its/r2/DeltaTimeSecond.h new file mode 100644 index 000000000..224987a0a --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeSecond.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeSecond_H_ +#define _Vanetza_ITS2_DeltaTimeSecond_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DeltaTimeSecond */ +typedef long Vanetza_ITS2_DeltaTimeSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeSecond; +asn_struct_free_f Vanetza_ITS2_DeltaTimeSecond_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeSecond_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeSecond_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeSecond_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeSecond_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeSecond_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeSecond_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeSecond_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeSecond_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeTenSeconds.c b/vanetza/asn1/its/r2/DeltaTimeTenSeconds.c new file mode 100644 index 000000000..3ce19797a --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeTenSeconds.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeTenSeconds.h" + +int +Vanetza_ITS2_DeltaTimeTenSeconds_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_Vanetza_ITS2_DeltaTimeTenSeconds_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_Vanetza_ITS2_DeltaTimeTenSeconds_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_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds = { + "DeltaTimeTenSeconds", + "DeltaTimeTenSeconds", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeTenSeconds_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeTenSeconds_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeTenSeconds_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeTenSeconds.h b/vanetza/asn1/its/r2/DeltaTimeTenSeconds.h new file mode 100644 index 000000000..20839f99f --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeTenSeconds.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeTenSeconds_H_ +#define _Vanetza_ITS2_DeltaTimeTenSeconds_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DeltaTimeTenSeconds */ +typedef long Vanetza_ITS2_DeltaTimeTenSeconds_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeTenSeconds_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds; +asn_struct_free_f Vanetza_ITS2_DeltaTimeTenSeconds_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeTenSeconds_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeTenSeconds_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeTenSeconds_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeTenSeconds_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeTenSeconds_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeTenSeconds_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeTenSeconds_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeTenSeconds_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeTenSeconds_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.c b/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.c new file mode 100644 index 000000000..b50402e53 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DeltaTimeTenthOfSecond.h" + +int +Vanetza_ITS2_DeltaTimeTenthOfSecond_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_Vanetza_ITS2_DeltaTimeTenthOfSecond_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_Vanetza_ITS2_DeltaTimeTenthOfSecond_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_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond = { + "DeltaTimeTenthOfSecond", + "DeltaTimeTenthOfSecond", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DeltaTimeTenthOfSecond_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DeltaTimeTenthOfSecond_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DeltaTimeTenthOfSecond_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.h b/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.h new file mode 100644 index 000000000..f4f976e63 --- /dev/null +++ b/vanetza/asn1/its/r2/DeltaTimeTenthOfSecond.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DeltaTimeTenthOfSecond_H_ +#define _Vanetza_ITS2_DeltaTimeTenthOfSecond_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DeltaTimeTenthOfSecond { + Vanetza_ITS2_DeltaTimeTenthOfSecond_unavailable = 127 +} e_Vanetza_ITS2_DeltaTimeTenthOfSecond; + +/* Vanetza_ITS2_DeltaTimeTenthOfSecond */ +typedef long Vanetza_ITS2_DeltaTimeTenthOfSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DeltaTimeTenthOfSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond; +asn_struct_free_f Vanetza_ITS2_DeltaTimeTenthOfSecond_free; +asn_struct_print_f Vanetza_ITS2_DeltaTimeTenthOfSecond_print; +asn_constr_check_f Vanetza_ITS2_DeltaTimeTenthOfSecond_constraint; +ber_type_decoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_decode_ber; +der_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_der; +xer_type_decoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_oer; +per_type_decoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_decode_uper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_uper; +per_type_decoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_decode_aper; +per_type_encoder_f Vanetza_ITS2_DeltaTimeTenthOfSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DeltaTimeTenthOfSecond_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DenmPayload.c b/vanetza/asn1/its/r2/DenmPayload.c new file mode 100644 index 000000000..3131afd97 --- /dev/null +++ b/vanetza/asn1/its/r2/DenmPayload.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DenmPayload.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_DenmPayload_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_Vanetza_ITS2_DenmPayload_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DenmPayload_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_DenmPayload, management), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DENM_PDU_Description_ManagementContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "management" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_DenmPayload, situation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SituationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "situation" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_DenmPayload, location), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LocationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "location" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_DenmPayload, alacarte), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AlacarteContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "alacarte" + }, +}; +static const int asn_MAP_Vanetza_ITS2_DenmPayload_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DenmPayload_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_DenmPayload_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* management */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* situation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* location */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* alacarte */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DenmPayload_specs_1 = { + sizeof(struct Vanetza_ITS2_DenmPayload), + offsetof(struct Vanetza_ITS2_DenmPayload, _asn_ctx), + asn_MAP_Vanetza_ITS2_DenmPayload_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_DenmPayload_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DenmPayload = { + "DenmPayload", + "DenmPayload", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_DenmPayload_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DenmPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DenmPayload_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DenmPayload_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DenmPayload_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DenmPayload_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DenmPayload_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DenmPayload_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_DenmPayload_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_DenmPayload_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DenmPayload.h b/vanetza/asn1/its/r2/DenmPayload.h new file mode 100644 index 000000000..4b9b0a8a9 --- /dev/null +++ b/vanetza/asn1/its/r2/DenmPayload.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DenmPayload_H_ +#define _Vanetza_ITS2_DenmPayload_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DENM-PDU-Description_ManagementContainer.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_SituationContainer; +struct Vanetza_ITS2_LocationContainer; +struct Vanetza_ITS2_AlacarteContainer; + +/* Vanetza_ITS2_DenmPayload */ +typedef struct Vanetza_ITS2_DenmPayload { + Vanetza_ITS2_DENM_PDU_Description_ManagementContainer_t management; + struct Vanetza_ITS2_SituationContainer *situation; /* OPTIONAL */ + struct Vanetza_ITS2_LocationContainer *location; /* OPTIONAL */ + struct Vanetza_ITS2_AlacarteContainer *alacarte; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DenmPayload_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DenmPayload; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_DenmPayload_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DenmPayload_1[4]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DenmPayload_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "SituationContainer.h" +#include "LocationContainer.h" +#include "AlacarteContainer.h" + +#endif /* _Vanetza_ITS2_DenmPayload_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DigitalMap.c b/vanetza/asn1/its/r2/DigitalMap.c new file mode 100644 index 000000000..b742024be --- /dev/null +++ b/vanetza/asn1/its/r2/DigitalMap.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DigitalMap.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_DigitalMap_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +#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_Vanetza_ITS2_DigitalMap_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_DigitalMap_specs_1 = { + sizeof(struct Vanetza_ITS2_DigitalMap), + offsetof(struct Vanetza_ITS2_DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_DigitalMap_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DigitalMap_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DigitalMap_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DigitalMap_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DigitalMap_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DigitalMap_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DigitalMap.h b/vanetza/asn1/its/r2/DigitalMap.h new file mode 100644 index 000000000..6677d9e8c --- /dev/null +++ b/vanetza/asn1/its/r2/DigitalMap.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DigitalMap_H_ +#define _Vanetza_ITS2_DigitalMap_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 Vanetza_ITS2_ReferencePosition; + +/* Vanetza_ITS2_DigitalMap */ +typedef struct Vanetza_ITS2_DigitalMap { + A_SEQUENCE_OF(struct Vanetza_ITS2_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DigitalMap; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ReferencePosition.h" + +#endif /* _Vanetza_ITS2_DigitalMap_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Direction.c b/vanetza/asn1/its/r2/Direction.c new file mode 100644 index 000000000..09d5c2359 --- /dev/null +++ b/vanetza/asn1/its/r2/Direction.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Direction.h" + +int +Vanetza_ITS2_Direction_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 <= 3L)) { + /* 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_Vanetza_ITS2_Direction_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -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_Vanetza_ITS2_Direction_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 ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Direction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Direction = { + "Direction", + "Direction", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Direction_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Direction_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Direction_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Direction_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Direction_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Direction_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Direction_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Direction_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Direction_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Direction.h b/vanetza/asn1/its/r2/Direction.h new file mode 100644 index 000000000..a4ff95567 --- /dev/null +++ b/vanetza/asn1/its/r2/Direction.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Direction_H_ +#define _Vanetza_ITS2_Direction_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Direction { + Vanetza_ITS2_Direction_sameDirection = 0, + Vanetza_ITS2_Direction_oppositeDirection = 1, + Vanetza_ITS2_Direction_bothDirections = 2, + Vanetza_ITS2_Direction_unavailable = 3 +} e_Vanetza_ITS2_Direction; + +/* Vanetza_ITS2_Direction */ +typedef long Vanetza_ITS2_Direction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Direction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Direction; +asn_struct_free_f Vanetza_ITS2_Direction_free; +asn_struct_print_f Vanetza_ITS2_Direction_print; +asn_constr_check_f Vanetza_ITS2_Direction_constraint; +ber_type_decoder_f Vanetza_ITS2_Direction_decode_ber; +der_type_encoder_f Vanetza_ITS2_Direction_encode_der; +xer_type_decoder_f Vanetza_ITS2_Direction_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Direction_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Direction_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Direction_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Direction_encode_oer; +per_type_decoder_f Vanetza_ITS2_Direction_decode_uper; +per_type_encoder_f Vanetza_ITS2_Direction_encode_uper; +per_type_decoder_f Vanetza_ITS2_Direction_decode_aper; +per_type_encoder_f Vanetza_ITS2_Direction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Direction_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DriveDirection.c b/vanetza/asn1/its/r2/DriveDirection.c new file mode 100644 index 000000000..6cdb45c39 --- /dev/null +++ b/vanetza/asn1/its/r2/DriveDirection.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DriveDirection.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_Vanetza_ITS2_DriveDirection_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_Vanetza_ITS2_DriveDirection_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_Vanetza_ITS2_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_DriveDirection_specs_1 = { + asn_MAP_Vanetza_ITS2_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_DriveDirection_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_Vanetza_ITS2_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_DriveDirection_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DriveDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DriveDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DriveDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DriveDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DriveDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DriveDirection.h b/vanetza/asn1/its/r2/DriveDirection.h new file mode 100644 index 000000000..99a86d875 --- /dev/null +++ b/vanetza/asn1/its/r2/DriveDirection.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DriveDirection_H_ +#define _Vanetza_ITS2_DriveDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_DriveDirection { + Vanetza_ITS2_DriveDirection_forward = 0, + Vanetza_ITS2_DriveDirection_backward = 1, + Vanetza_ITS2_DriveDirection_unavailable = 2 +} e_Vanetza_ITS2_DriveDirection; + +/* Vanetza_ITS2_DriveDirection */ +typedef long Vanetza_ITS2_DriveDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DriveDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DriveDirection; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_DriveDirection_specs_1; +asn_struct_free_f Vanetza_ITS2_DriveDirection_free; +asn_struct_print_f Vanetza_ITS2_DriveDirection_print; +asn_constr_check_f Vanetza_ITS2_DriveDirection_constraint; +ber_type_decoder_f Vanetza_ITS2_DriveDirection_decode_ber; +der_type_encoder_f Vanetza_ITS2_DriveDirection_encode_der; +xer_type_decoder_f Vanetza_ITS2_DriveDirection_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DriveDirection_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DriveDirection_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DriveDirection_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DriveDirection_encode_oer; +per_type_decoder_f Vanetza_ITS2_DriveDirection_decode_uper; +per_type_encoder_f Vanetza_ITS2_DriveDirection_encode_uper; +per_type_decoder_f Vanetza_ITS2_DriveDirection_decode_aper; +per_type_encoder_f Vanetza_ITS2_DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DriveDirection_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/DrivingLaneStatus.c b/vanetza/asn1/its/r2/DrivingLaneStatus.c new file mode 100644 index 000000000..b2f3c896d --- /dev/null +++ b/vanetza/asn1/its/r2/DrivingLaneStatus.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "DrivingLaneStatus.h" + +int +Vanetza_ITS2_DrivingLaneStatus_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 >= 1UL && 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_Vanetza_ITS2_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..13)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (SIZE(1..13)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1 CC_NOTUSED = { + -1}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_DrivingLaneStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_DrivingLaneStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/DrivingLaneStatus.h b/vanetza/asn1/its/r2/DrivingLaneStatus.h new file mode 100644 index 000000000..b02318775 --- /dev/null +++ b/vanetza/asn1/its/r2/DrivingLaneStatus.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_DrivingLaneStatus_H_ +#define _Vanetza_ITS2_DrivingLaneStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_DrivingLaneStatus */ +typedef BIT_STRING_t Vanetza_ITS2_DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_DrivingLaneStatus; +asn_struct_free_f Vanetza_ITS2_DrivingLaneStatus_free; +asn_struct_print_f Vanetza_ITS2_DrivingLaneStatus_print; +asn_constr_check_f Vanetza_ITS2_DrivingLaneStatus_constraint; +ber_type_decoder_f Vanetza_ITS2_DrivingLaneStatus_decode_ber; +der_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_der; +xer_type_decoder_f Vanetza_ITS2_DrivingLaneStatus_decode_xer; +xer_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_xer; +jer_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_jer; +oer_type_decoder_f Vanetza_ITS2_DrivingLaneStatus_decode_oer; +oer_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_oer; +per_type_decoder_f Vanetza_ITS2_DrivingLaneStatus_decode_uper; +per_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_uper; +per_type_decoder_f Vanetza_ITS2_DrivingLaneStatus_decode_aper; +per_type_encoder_f Vanetza_ITS2_DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_DrivingLaneStatus_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EXTERNAL.c b/vanetza/asn1/its/r2/EXTERNAL.c new file mode 100644 index 000000000..639e9ea93 --- /dev/null +++ b/vanetza/asn1/its/r2/EXTERNAL.c @@ -0,0 +1,255 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/home/raphael/opt/asn1c-18e56503/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EXTERNAL.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "single-ASN1-type" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "octet-aligned" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "arbitrary" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_encoding_specs_5 = { + sizeof(struct Vanetza_ITS2_EXTERNAL__encoding), + offsetof(struct Vanetza_ITS2_EXTERNAL__encoding, _asn_ctx), + offsetof(struct Vanetza_ITS2_EXTERNAL__encoding, present), + sizeof(((struct Vanetza_ITS2_EXTERNAL__encoding *)0)->present), + asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_encoding_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_encoding_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_encoding_5, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direct-reference" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "indirect-reference" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "data-value-descriptor" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "encoding" + }, +}; +static const int asn_MAP_Vanetza_ITS2_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_EXTERNAL_specs_1 = { + sizeof(struct Vanetza_ITS2_EXTERNAL), + offsetof(struct Vanetza_ITS2_EXTERNAL, _asn_ctx), + asn_MAP_Vanetza_ITS2_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EXTERNAL_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EXTERNAL.h b/vanetza/asn1/its/r2/EXTERNAL.h new file mode 100644 index 000000000..de3ecaf67 --- /dev/null +++ b/vanetza/asn1/its/r2/EXTERNAL.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ASN1C-UsefulInformationObjectClasses" + * found in "/home/raphael/opt/asn1c-18e56503/share/asn1c/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EXTERNAL_H_ +#define _Vanetza_ITS2_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 Vanetza_ITS2_EXTERNAL__encoding_PR { + Vanetza_ITS2_EXTERNAL__encoding_PR_NOTHING, /* No components present */ + Vanetza_ITS2_EXTERNAL__encoding_PR_single_ASN1_type, + Vanetza_ITS2_EXTERNAL__encoding_PR_octet_aligned, + Vanetza_ITS2_EXTERNAL__encoding_PR_arbitrary +} Vanetza_ITS2_EXTERNAL__encoding_PR; + +/* Vanetza_ITS2_EXTERNAL */ +typedef struct Vanetza_ITS2_EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct Vanetza_ITS2_EXTERNAL__encoding { + Vanetza_ITS2_EXTERNAL__encoding_PR present; + union Vanetza_ITS2_EXTERNAL__Vanetza_ITS2_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; +} Vanetza_ITS2_EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EXTERNAL_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EllipticalShape.c b/vanetza/asn1/its/r2/EllipticalShape.c new file mode 100644 index 000000000..68f261da9 --- /dev/null +++ b/vanetza/asn1/its/r2/EllipticalShape.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EllipticalShape.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EllipticalShape_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_EllipticalShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EllipticalShape, semiMajorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EllipticalShape, semiMinorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMinorAxisLength" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_EllipticalShape, orientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "orientation" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_EllipticalShape, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, +}; +static const int asn_MAP_Vanetza_ITS2_EllipticalShape_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_EllipticalShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMajorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiMinorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* orientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EllipticalShape_specs_1 = { + sizeof(struct Vanetza_ITS2_EllipticalShape), + offsetof(struct Vanetza_ITS2_EllipticalShape, _asn_ctx), + asn_MAP_Vanetza_ITS2_EllipticalShape_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_EllipticalShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EllipticalShape = { + "EllipticalShape", + "EllipticalShape", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EllipticalShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EllipticalShape_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_EllipticalShape_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EllipticalShape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EllipticalShape.h b/vanetza/asn1/its/r2/EllipticalShape.h new file mode 100644 index 000000000..0ac92f62f --- /dev/null +++ b/vanetza/asn1/its/r2/EllipticalShape.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EllipticalShape_H_ +#define _Vanetza_ITS2_EllipticalShape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StandardLength12b.h" +#include "CartesianAngleValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_EllipticalShape */ +typedef struct Vanetza_ITS2_EllipticalShape { + struct Vanetza_ITS2_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t semiMajorAxisLength; + Vanetza_ITS2_StandardLength12b_t semiMinorAxisLength; + Vanetza_ITS2_CartesianAngleValue_t *orientation; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EllipticalShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EllipticalShape; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EllipticalShape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EllipticalShape_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_EllipticalShape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EmbarkationStatus.c b/vanetza/asn1/its/r2/EmbarkationStatus.c new file mode 100644 index 000000000..7629df3cb --- /dev/null +++ b/vanetza/asn1/its/r2/EmbarkationStatus.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmbarkationStatus_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/EmbarkationStatus.h b/vanetza/asn1/its/r2/EmbarkationStatus.h new file mode 100644 index 000000000..1ab5437ad --- /dev/null +++ b/vanetza/asn1/its/r2/EmbarkationStatus.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EmbarkationStatus_H_ +#define _Vanetza_ITS2_EmbarkationStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_EmbarkationStatus */ +typedef BOOLEAN_t Vanetza_ITS2_EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmbarkationStatus; +asn_struct_free_f Vanetza_ITS2_EmbarkationStatus_free; +asn_struct_print_f Vanetza_ITS2_EmbarkationStatus_print; +asn_constr_check_f Vanetza_ITS2_EmbarkationStatus_constraint; +ber_type_decoder_f Vanetza_ITS2_EmbarkationStatus_decode_ber; +der_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_der; +xer_type_decoder_f Vanetza_ITS2_EmbarkationStatus_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EmbarkationStatus_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_oer; +per_type_decoder_f Vanetza_ITS2_EmbarkationStatus_decode_uper; +per_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_uper; +per_type_decoder_f Vanetza_ITS2_EmbarkationStatus_decode_aper; +per_type_encoder_f Vanetza_ITS2_EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EmbarkationStatus_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EmergencyContainer.c b/vanetza/asn1/its/r2/EmergencyContainer.c new file mode 100644 index 000000000..c3050c13d --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyContainer.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EmergencyContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EmergencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EmergencyContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_EmergencyContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_EmergencyContainer, emergencyPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EmergencyPriority, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emergencyPriority" + }, +}; +static const int asn_MAP_Vanetza_ITS2_EmergencyContainer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_EmergencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* emergencyPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EmergencyContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_EmergencyContainer), + offsetof(struct Vanetza_ITS2_EmergencyContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_EmergencyContainer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_EmergencyContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyContainer = { + "EmergencyContainer", + "EmergencyContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EmergencyContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_EmergencyContainer_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EmergencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EmergencyContainer.h b/vanetza/asn1/its/r2/EmergencyContainer.h new file mode 100644 index 000000000..00cf84ab1 --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyContainer.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EmergencyContainer_H_ +#define _Vanetza_ITS2_EmergencyContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "EmergencyPriority.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CauseCodeV2; + +/* Vanetza_ITS2_EmergencyContainer */ +typedef struct Vanetza_ITS2_EmergencyContainer { + Vanetza_ITS2_LightBarSirenInUse_t lightBarSirenInUse; + struct Vanetza_ITS2_CauseCodeV2 *incidentIndication; /* OPTIONAL */ + Vanetza_ITS2_EmergencyPriority_t *emergencyPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EmergencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EmergencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EmergencyContainer_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CauseCodeV2.h" + +#endif /* _Vanetza_ITS2_EmergencyContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EmergencyPriority.c b/vanetza/asn1/its/r2/EmergencyPriority.c new file mode 100644 index 000000000..ded54e254 --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyPriority.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EmergencyPriority.h" + +int +Vanetza_ITS2_EmergencyPriority_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_Vanetza_ITS2_EmergencyPriority_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_Vanetza_ITS2_EmergencyPriority_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_EmergencyPriority_constr_1 CC_NOTUSED = { + 2}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyPriority_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EmergencyPriority_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EmergencyPriority_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_EmergencyPriority_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_EmergencyPriority_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EmergencyPriority.h b/vanetza/asn1/its/r2/EmergencyPriority.h new file mode 100644 index 000000000..a2d34253e --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyPriority.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EmergencyPriority_H_ +#define _Vanetza_ITS2_EmergencyPriority_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EmergencyPriority { + Vanetza_ITS2_EmergencyPriority_requestForRightOfWay = 0, + Vanetza_ITS2_EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_Vanetza_ITS2_EmergencyPriority; + +/* Vanetza_ITS2_EmergencyPriority */ +typedef BIT_STRING_t Vanetza_ITS2_EmergencyPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EmergencyPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyPriority; +asn_struct_free_f Vanetza_ITS2_EmergencyPriority_free; +asn_struct_print_f Vanetza_ITS2_EmergencyPriority_print; +asn_constr_check_f Vanetza_ITS2_EmergencyPriority_constraint; +ber_type_decoder_f Vanetza_ITS2_EmergencyPriority_decode_ber; +der_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_der; +xer_type_decoder_f Vanetza_ITS2_EmergencyPriority_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EmergencyPriority_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_oer; +per_type_decoder_f Vanetza_ITS2_EmergencyPriority_decode_uper; +per_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_uper; +per_type_decoder_f Vanetza_ITS2_EmergencyPriority_decode_aper; +per_type_encoder_f Vanetza_ITS2_EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EmergencyPriority_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.c b/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 000000000..9ae9d28b7 --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EmergencyVehicleApproachingSubCauseCode.h" + +int +Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_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_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_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_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_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_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.h b/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..489032314 --- /dev/null +++ b/vanetza/asn1/its/r2/EmergencyVehicleApproachingSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_H_ +#define _Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode { + Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode; + +/* Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode */ +typedef long Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EnergyStorageType.c b/vanetza/asn1/its/r2/EnergyStorageType.c new file mode 100644 index 000000000..396f74cd2 --- /dev/null +++ b/vanetza/asn1/its/r2/EnergyStorageType.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EnergyStorageType.h" + +int +Vanetza_ITS2_EnergyStorageType_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_Vanetza_ITS2_EnergyStorageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EnergyStorageType_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_EnergyStorageType_constr_1 CC_NOTUSED = { + 7}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EnergyStorageType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EnergyStorageType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EnergyStorageType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_EnergyStorageType_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_EnergyStorageType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EnergyStorageType.h b/vanetza/asn1/its/r2/EnergyStorageType.h new file mode 100644 index 000000000..8b679ee84 --- /dev/null +++ b/vanetza/asn1/its/r2/EnergyStorageType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EnergyStorageType_H_ +#define _Vanetza_ITS2_EnergyStorageType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EnergyStorageType { + Vanetza_ITS2_EnergyStorageType_hydrogenStorage = 0, + Vanetza_ITS2_EnergyStorageType_electricEnergyStorage = 1, + Vanetza_ITS2_EnergyStorageType_liquidPropaneGas = 2, + Vanetza_ITS2_EnergyStorageType_compressedNaturalGas = 3, + Vanetza_ITS2_EnergyStorageType_diesel = 4, + Vanetza_ITS2_EnergyStorageType_gasoline = 5, + Vanetza_ITS2_EnergyStorageType_ammonia = 6 +} e_Vanetza_ITS2_EnergyStorageType; + +/* Vanetza_ITS2_EnergyStorageType */ +typedef BIT_STRING_t Vanetza_ITS2_EnergyStorageType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EnergyStorageType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EnergyStorageType; +asn_struct_free_f Vanetza_ITS2_EnergyStorageType_free; +asn_struct_print_f Vanetza_ITS2_EnergyStorageType_print; +asn_constr_check_f Vanetza_ITS2_EnergyStorageType_constraint; +ber_type_decoder_f Vanetza_ITS2_EnergyStorageType_decode_ber; +der_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_der; +xer_type_decoder_f Vanetza_ITS2_EnergyStorageType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EnergyStorageType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_oer; +per_type_decoder_f Vanetza_ITS2_EnergyStorageType_decode_uper; +per_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_uper; +per_type_decoder_f Vanetza_ITS2_EnergyStorageType_decode_aper; +per_type_encoder_f Vanetza_ITS2_EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EnergyStorageType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryCode.c b/vanetza/asn1/its/r2/EuVehicleCategoryCode.c new file mode 100644 index 000000000..03d79b4ea --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryCode.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EuVehicleCategoryCode.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_EuVehicleCategoryCode_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_Vanetza_ITS2_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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 asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EuVehicleCategoryL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryL" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EuVehicleCategoryM, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryM" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EuVehicleCategoryN, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryN" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EuVehicleCategoryO, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryO" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryT" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, choice.euVehicleCategoryG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "euVehicleCategoryG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_EuVehicleCategoryCode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* euVehicleCategoryL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* euVehicleCategoryM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* euVehicleCategoryN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* euVehicleCategoryO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* euVehicleCategoryT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* euVehicleCategoryG */ +}; +static asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryCode_specs_1 = { + sizeof(struct Vanetza_ITS2_EuVehicleCategoryCode), + offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, _asn_ctx), + offsetof(struct Vanetza_ITS2_EuVehicleCategoryCode, present), + sizeof(((struct Vanetza_ITS2_EuVehicleCategoryCode *)0)->present), + asn_MAP_Vanetza_ITS2_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryCode = { + "EuVehicleCategoryCode", + "EuVehicleCategoryCode", + &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_Vanetza_ITS2_EuVehicleCategoryCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EuVehicleCategoryCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryCode.h b/vanetza/asn1/its/r2/EuVehicleCategoryCode.h new file mode 100644 index 000000000..478961a51 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EuVehicleCategoryCode_H_ +#define _Vanetza_ITS2_EuVehicleCategoryCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "EuVehicleCategoryL.h" +#include "EuVehicleCategoryM.h" +#include "EuVehicleCategoryN.h" +#include "EuVehicleCategoryO.h" +#include "NULL.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EuVehicleCategoryCode_PR { + Vanetza_ITS2_EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryL, + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryM, + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryN, + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryO, + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryT, + Vanetza_ITS2_EuVehicleCategoryCode_PR_euVehicleCategoryG +} Vanetza_ITS2_EuVehicleCategoryCode_PR; + +/* Vanetza_ITS2_EuVehicleCategoryCode */ +typedef struct Vanetza_ITS2_EuVehicleCategoryCode { + Vanetza_ITS2_EuVehicleCategoryCode_PR present; + union Vanetza_ITS2_EuVehicleCategoryCode_u { + Vanetza_ITS2_EuVehicleCategoryL_t euVehicleCategoryL; + Vanetza_ITS2_EuVehicleCategoryM_t euVehicleCategoryM; + Vanetza_ITS2_EuVehicleCategoryN_t euVehicleCategoryN; + Vanetza_ITS2_EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehicleCategoryT; + NULL_t euVehicleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EuVehicleCategoryCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryL.c b/vanetza/asn1/its/r2/EuVehicleCategoryL.c new file mode 100644 index 000000000..648623d1b --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryL.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EuVehicleCategoryL.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_Vanetza_ITS2_EuVehicleCategoryL_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_Vanetza_ITS2_EuVehicleCategoryL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_Vanetza_ITS2_EuVehicleCategoryL_value2enum_1[] = { + { 0, 2, "l1" }, + { 1, 2, "l2" }, + { 2, 2, "l3" }, + { 3, 2, "l4" }, + { 4, 2, "l5" }, + { 5, 2, "l6" }, + { 6, 2, "l7" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_EuVehicleCategoryL_enum2value_1[] = { + 0, /* l1(0) */ + 1, /* l2(1) */ + 2, /* l3(2) */ + 3, /* l4(3) */ + 4, /* l5(4) */ + 5, /* l6(5) */ + 6 /* l7(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryL_specs_1 = { + asn_MAP_Vanetza_ITS2_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_EuVehicleCategoryL_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* 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_Vanetza_ITS2_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryL_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EuVehicleCategoryL_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EuVehicleCategoryL_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryL.h b/vanetza/asn1/its/r2/EuVehicleCategoryL.h new file mode 100644 index 000000000..185b9c658 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryL.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EuVehicleCategoryL_H_ +#define _Vanetza_ITS2_EuVehicleCategoryL_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EuVehicleCategoryL { + Vanetza_ITS2_EuVehicleCategoryL_l1 = 0, + Vanetza_ITS2_EuVehicleCategoryL_l2 = 1, + Vanetza_ITS2_EuVehicleCategoryL_l3 = 2, + Vanetza_ITS2_EuVehicleCategoryL_l4 = 3, + Vanetza_ITS2_EuVehicleCategoryL_l5 = 4, + Vanetza_ITS2_EuVehicleCategoryL_l6 = 5, + Vanetza_ITS2_EuVehicleCategoryL_l7 = 6 +} e_Vanetza_ITS2_EuVehicleCategoryL; + +/* Vanetza_ITS2_EuVehicleCategoryL */ +typedef long Vanetza_ITS2_EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryL_specs_1; +asn_struct_free_f Vanetza_ITS2_EuVehicleCategoryL_free; +asn_struct_print_f Vanetza_ITS2_EuVehicleCategoryL_print; +asn_constr_check_f Vanetza_ITS2_EuVehicleCategoryL_constraint; +ber_type_decoder_f Vanetza_ITS2_EuVehicleCategoryL_decode_ber; +der_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_der; +xer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryL_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryL_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_oer; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryL_decode_uper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_uper; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryL_decode_aper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EuVehicleCategoryL_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryM.c b/vanetza/asn1/its/r2/EuVehicleCategoryM.c new file mode 100644 index 000000000..78d2d7212 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryM.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EuVehicleCategoryM.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_Vanetza_ITS2_EuVehicleCategoryM_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_Vanetza_ITS2_EuVehicleCategoryM_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_Vanetza_ITS2_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryM_specs_1 = { + asn_MAP_Vanetza_ITS2_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_EuVehicleCategoryM_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_Vanetza_ITS2_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryM_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EuVehicleCategoryM_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EuVehicleCategoryM_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryM.h b/vanetza/asn1/its/r2/EuVehicleCategoryM.h new file mode 100644 index 000000000..e2a22b30d --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryM.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EuVehicleCategoryM_H_ +#define _Vanetza_ITS2_EuVehicleCategoryM_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EuVehicleCategoryM { + Vanetza_ITS2_EuVehicleCategoryM_m1 = 0, + Vanetza_ITS2_EuVehicleCategoryM_m2 = 1, + Vanetza_ITS2_EuVehicleCategoryM_m3 = 2 +} e_Vanetza_ITS2_EuVehicleCategoryM; + +/* Vanetza_ITS2_EuVehicleCategoryM */ +typedef long Vanetza_ITS2_EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryM_specs_1; +asn_struct_free_f Vanetza_ITS2_EuVehicleCategoryM_free; +asn_struct_print_f Vanetza_ITS2_EuVehicleCategoryM_print; +asn_constr_check_f Vanetza_ITS2_EuVehicleCategoryM_constraint; +ber_type_decoder_f Vanetza_ITS2_EuVehicleCategoryM_decode_ber; +der_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_der; +xer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryM_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryM_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_oer; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryM_decode_uper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_uper; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryM_decode_aper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EuVehicleCategoryM_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryN.c b/vanetza/asn1/its/r2/EuVehicleCategoryN.c new file mode 100644 index 000000000..8f476ef79 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryN.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EuVehicleCategoryN.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_Vanetza_ITS2_EuVehicleCategoryN_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_Vanetza_ITS2_EuVehicleCategoryN_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_Vanetza_ITS2_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryN_specs_1 = { + asn_MAP_Vanetza_ITS2_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_EuVehicleCategoryN_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_Vanetza_ITS2_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryN_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EuVehicleCategoryN_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EuVehicleCategoryN_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryN.h b/vanetza/asn1/its/r2/EuVehicleCategoryN.h new file mode 100644 index 000000000..87f9ea7f3 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryN.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EuVehicleCategoryN_H_ +#define _Vanetza_ITS2_EuVehicleCategoryN_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EuVehicleCategoryN { + Vanetza_ITS2_EuVehicleCategoryN_n1 = 0, + Vanetza_ITS2_EuVehicleCategoryN_n2 = 1, + Vanetza_ITS2_EuVehicleCategoryN_n3 = 2 +} e_Vanetza_ITS2_EuVehicleCategoryN; + +/* Vanetza_ITS2_EuVehicleCategoryN */ +typedef long Vanetza_ITS2_EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryN_specs_1; +asn_struct_free_f Vanetza_ITS2_EuVehicleCategoryN_free; +asn_struct_print_f Vanetza_ITS2_EuVehicleCategoryN_print; +asn_constr_check_f Vanetza_ITS2_EuVehicleCategoryN_constraint; +ber_type_decoder_f Vanetza_ITS2_EuVehicleCategoryN_decode_ber; +der_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_der; +xer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryN_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryN_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_oer; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryN_decode_uper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_uper; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryN_decode_aper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EuVehicleCategoryN_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryO.c b/vanetza/asn1/its/r2/EuVehicleCategoryO.c new file mode 100644 index 000000000..d3e10a087 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryO.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EuVehicleCategoryO.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_Vanetza_ITS2_EuVehicleCategoryO_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_Vanetza_ITS2_EuVehicleCategoryO_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_Vanetza_ITS2_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryO_specs_1 = { + asn_MAP_Vanetza_ITS2_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_EuVehicleCategoryO_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_Vanetza_ITS2_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EuVehicleCategoryO_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EuVehicleCategoryO_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EuVehicleCategoryO_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EuVehicleCategoryO.h b/vanetza/asn1/its/r2/EuVehicleCategoryO.h new file mode 100644 index 000000000..105050c42 --- /dev/null +++ b/vanetza/asn1/its/r2/EuVehicleCategoryO.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EuVehicleCategoryO_H_ +#define _Vanetza_ITS2_EuVehicleCategoryO_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_EuVehicleCategoryO { + Vanetza_ITS2_EuVehicleCategoryO_o1 = 0, + Vanetza_ITS2_EuVehicleCategoryO_o2 = 1, + Vanetza_ITS2_EuVehicleCategoryO_o3 = 2, + Vanetza_ITS2_EuVehicleCategoryO_o4 = 3 +} e_Vanetza_ITS2_EuVehicleCategoryO; + +/* Vanetza_ITS2_EuVehicleCategoryO */ +typedef long Vanetza_ITS2_EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_EuVehicleCategoryO_specs_1; +asn_struct_free_f Vanetza_ITS2_EuVehicleCategoryO_free; +asn_struct_print_f Vanetza_ITS2_EuVehicleCategoryO_print; +asn_constr_check_f Vanetza_ITS2_EuVehicleCategoryO_constraint; +ber_type_decoder_f Vanetza_ITS2_EuVehicleCategoryO_decode_ber; +der_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_der; +xer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryO_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EuVehicleCategoryO_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_oer; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryO_decode_uper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_uper; +per_type_decoder_f Vanetza_ITS2_EuVehicleCategoryO_decode_aper; +per_type_encoder_f Vanetza_ITS2_EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EuVehicleCategoryO_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EulerAnglesWithConfidence.c b/vanetza/asn1/its/r2/EulerAnglesWithConfidence.c new file mode 100644 index 000000000..2c7d772e9 --- /dev/null +++ b/vanetza/asn1/its/r2/EulerAnglesWithConfidence.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EulerAnglesWithConfidence.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EulerAnglesWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EulerAnglesWithConfidence, zAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zAngle" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_EulerAnglesWithConfidence, yAngle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yAngle" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_EulerAnglesWithConfidence, xAngle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xAngle" + }, +}; +static const int asn_MAP_Vanetza_ITS2_EulerAnglesWithConfidence_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_EulerAnglesWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yAngle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* xAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EulerAnglesWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_EulerAnglesWithConfidence), + offsetof(struct Vanetza_ITS2_EulerAnglesWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_EulerAnglesWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_EulerAnglesWithConfidence_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence = { + "EulerAnglesWithConfidence", + "EulerAnglesWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_EulerAnglesWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EulerAnglesWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EulerAnglesWithConfidence.h b/vanetza/asn1/its/r2/EulerAnglesWithConfidence.h new file mode 100644 index 000000000..42341a9a5 --- /dev/null +++ b/vanetza/asn1/its/r2/EulerAnglesWithConfidence.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EulerAnglesWithConfidence_H_ +#define _Vanetza_ITS2_EulerAnglesWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CartesianAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianAngle; + +/* Vanetza_ITS2_EulerAnglesWithConfidence */ +typedef struct Vanetza_ITS2_EulerAnglesWithConfidence { + Vanetza_ITS2_CartesianAngle_t zAngle; + struct Vanetza_ITS2_CartesianAngle *yAngle; /* OPTIONAL */ + struct Vanetza_ITS2_CartesianAngle *xAngle; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EulerAnglesWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EulerAnglesWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EulerAnglesWithConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianAngle.h" + +#endif /* _Vanetza_ITS2_EulerAnglesWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EventHistory.c b/vanetza/asn1/its/r2/EventHistory.c new file mode 100644 index 000000000..819f58c59 --- /dev/null +++ b/vanetza/asn1/its/r2/EventHistory.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EventHistory.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_EventHistory_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_Vanetza_ITS2_EventHistory_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_Vanetza_ITS2_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_EventPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_EventHistory_specs_1 = { + sizeof(struct Vanetza_ITS2_EventHistory), + offsetof(struct Vanetza_ITS2_EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_EventHistory_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EventHistory_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EventHistory_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventHistory_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EventHistory_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EventHistory_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_EventHistory_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EventHistory.h b/vanetza/asn1/its/r2/EventHistory.h new file mode 100644 index 000000000..681170efc --- /dev/null +++ b/vanetza/asn1/its/r2/EventHistory.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EventHistory_H_ +#define _Vanetza_ITS2_EventHistory_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 Vanetza_ITS2_EventPoint; + +/* Vanetza_ITS2_EventHistory */ +typedef struct Vanetza_ITS2_EventHistory { + A_SEQUENCE_OF(struct Vanetza_ITS2_EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventHistory; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_EventHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EventHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EventHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "EventPoint.h" + +#endif /* _Vanetza_ITS2_EventHistory_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EventPoint.c b/vanetza/asn1/its/r2/EventPoint.c new file mode 100644 index 000000000..77872ac2c --- /dev/null +++ b/vanetza/asn1/its/r2/EventPoint.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EventPoint.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventPosition" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathDeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InformationQuality, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "informationQuality" + }, +}; +static const int asn_MAP_Vanetza_ITS2_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_EventPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* informationQuality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EventPoint_specs_1 = { + sizeof(struct Vanetza_ITS2_EventPoint), + offsetof(struct Vanetza_ITS2_EventPoint, _asn_ctx), + asn_MAP_Vanetza_ITS2_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_EventPoint_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EventPoint_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EventPoint_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventPoint_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EventPoint.h b/vanetza/asn1/its/r2/EventPoint.h new file mode 100644 index 000000000..a3a318aa8 --- /dev/null +++ b/vanetza/asn1/its/r2/EventPoint.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EventPoint_H_ +#define _Vanetza_ITS2_EventPoint_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "InformationQuality.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_EventPoint */ +typedef struct Vanetza_ITS2_EventPoint { + Vanetza_ITS2_DeltaReferencePosition_t eventPosition; + Vanetza_ITS2_PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + Vanetza_ITS2_InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EventPoint_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/EventZone.c b/vanetza/asn1/its/r2/EventZone.c new file mode 100644 index 000000000..2400ec50a --- /dev/null +++ b/vanetza/asn1/its/r2/EventZone.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "EventZone.h" + +int +Vanetza_ITS2_EventZone_constraint(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 <= 23UL)) { + /* 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; + } +} + +/* + * This type is implemented using Vanetza_ITS2_EventHistory, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_EventZone_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_Vanetza_ITS2_EventZone_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) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_EventZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventZone = { + "EventZone", + "EventZone", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_EventZone_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_EventZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventZone_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_EventZone_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_EventZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_EventZone_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_EventZone_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_EventZone_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_EventZone_constraint + }, + asn_MBR_Vanetza_ITS2_EventHistory_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/EventZone.h b/vanetza/asn1/its/r2/EventZone.h new file mode 100644 index 000000000..404486b60 --- /dev/null +++ b/vanetza/asn1/its/r2/EventZone.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_EventZone_H_ +#define _Vanetza_ITS2_EventZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "EventHistory.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_EventZone */ +typedef Vanetza_ITS2_EventHistory_t Vanetza_ITS2_EventZone_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_EventZone_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_EventZone; +asn_struct_free_f Vanetza_ITS2_EventZone_free; +asn_struct_print_f Vanetza_ITS2_EventZone_print; +asn_constr_check_f Vanetza_ITS2_EventZone_constraint; +ber_type_decoder_f Vanetza_ITS2_EventZone_decode_ber; +der_type_encoder_f Vanetza_ITS2_EventZone_encode_der; +xer_type_decoder_f Vanetza_ITS2_EventZone_decode_xer; +xer_type_encoder_f Vanetza_ITS2_EventZone_encode_xer; +jer_type_encoder_f Vanetza_ITS2_EventZone_encode_jer; +oer_type_decoder_f Vanetza_ITS2_EventZone_decode_oer; +oer_type_encoder_f Vanetza_ITS2_EventZone_encode_oer; +per_type_decoder_f Vanetza_ITS2_EventZone_decode_uper; +per_type_encoder_f Vanetza_ITS2_EventZone_encode_uper; +per_type_decoder_f Vanetza_ITS2_EventZone_decode_aper; +per_type_encoder_f Vanetza_ITS2_EventZone_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_EventZone_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Ext1.c b/vanetza/asn1/its/r2/Ext1.c new file mode 100644 index 000000000..180f2e1b9 --- /dev/null +++ b/vanetza/asn1/its/r2/Ext1.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Ext1.h" + +static int +memb_Vanetza_ITS2_content_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 >= 128L && value <= 16511L)) { + /* 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_Vanetza_ITS2_content_constr_2 CC_NOTUSED = { + { 2, 1 } /* (128..16511) */, + -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_Vanetza_ITS2_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 128, 16511 } /* (128..16511) */, + { 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_Vanetza_ITS2_Ext1_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_Vanetza_ITS2_Ext1_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_Vanetza_ITS2_Ext1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Ext1, choice.content), + (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_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Ext1, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Ext2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Ext1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Ext1_specs_1 = { + sizeof(struct Vanetza_ITS2_Ext1), + offsetof(struct Vanetza_ITS2_Ext1, _asn_ctx), + offsetof(struct Vanetza_ITS2_Ext1, present), + sizeof(((struct Vanetza_ITS2_Ext1 *)0)->present), + asn_MAP_Vanetza_ITS2_Ext1_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext1 = { + "Ext1", + "Ext1", + &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_Vanetza_ITS2_Ext1_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Ext1_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_Ext1_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Ext1_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Ext1.h b/vanetza/asn1/its/r2/Ext1.h new file mode 100644 index 000000000..a4cd2579c --- /dev/null +++ b/vanetza/asn1/its/r2/Ext1.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Ext1_H_ +#define _Vanetza_ITS2_Ext1_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "Ext2.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Ext1_PR { + Vanetza_ITS2_Ext1_PR_NOTHING, /* No components present */ + Vanetza_ITS2_Ext1_PR_content, + Vanetza_ITS2_Ext1_PR_extension +} Vanetza_ITS2_Ext1_PR; + +/* Vanetza_ITS2_Ext1 */ +typedef struct Vanetza_ITS2_Ext1 { + Vanetza_ITS2_Ext1_PR present; + union Vanetza_ITS2_Ext1_u { + long content; + Vanetza_ITS2_Ext2_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Ext1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext1; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Ext1_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Ext1_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Ext1_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Ext1_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Ext2.c b/vanetza/asn1/its/r2/Ext2.c new file mode 100644 index 000000000..9b1d3e4b6 --- /dev/null +++ b/vanetza/asn1/its/r2/Ext2.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Ext2.h" + +static int +memb_Vanetza_ITS2_content_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 >= 16512L && value <= 2113663L)) { + /* 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_Vanetza_ITS2_content_constr_2 CC_NOTUSED = { + { 4, 1 } /* (16512..2113663) */, + -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_Vanetza_ITS2_content_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 21, -1, 16512, 2113663 } /* (16512..2113663) */, + { 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_Vanetza_ITS2_Ext2_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_Vanetza_ITS2_Ext2_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_Vanetza_ITS2_Ext2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Ext2, choice.content), + (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_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Ext2, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Ext3, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Ext2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Ext2_specs_1 = { + sizeof(struct Vanetza_ITS2_Ext2), + offsetof(struct Vanetza_ITS2_Ext2, _asn_ctx), + offsetof(struct Vanetza_ITS2_Ext2, present), + sizeof(((struct Vanetza_ITS2_Ext2 *)0)->present), + asn_MAP_Vanetza_ITS2_Ext2_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext2 = { + "Ext2", + "Ext2", + &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_Vanetza_ITS2_Ext2_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Ext2_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_Ext2_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Ext2_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Ext2.h b/vanetza/asn1/its/r2/Ext2.h new file mode 100644 index 000000000..0e5161218 --- /dev/null +++ b/vanetza/asn1/its/r2/Ext2.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Ext2_H_ +#define _Vanetza_ITS2_Ext2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "Ext3.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Ext2_PR { + Vanetza_ITS2_Ext2_PR_NOTHING, /* No components present */ + Vanetza_ITS2_Ext2_PR_content, + Vanetza_ITS2_Ext2_PR_extension +} Vanetza_ITS2_Ext2_PR; + +/* Vanetza_ITS2_Ext2 */ +typedef struct Vanetza_ITS2_Ext2 { + Vanetza_ITS2_Ext2_PR present; + union Vanetza_ITS2_Ext2_u { + long content; + Vanetza_ITS2_Ext3_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Ext2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext2; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Ext2_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Ext2_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Ext2_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Ext2_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Ext3.c b/vanetza/asn1/its/r2/Ext3.c new file mode 100644 index 000000000..3b7d50cd1 --- /dev/null +++ b/vanetza/asn1/its/r2/Ext3.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Ext3.h" + +int +Vanetza_ITS2_Ext3_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 >= 2113664L && value <= 270549119L)) { + /* 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_Vanetza_ITS2_Ext3_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_Vanetza_ITS2_Ext3_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 28, -1, 2113664, 270549119 } /* (2113664..270549119,...) */, + { 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_Vanetza_ITS2_Ext3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext3 = { + "Ext3", + "Ext3", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Ext3_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Ext3_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Ext3_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Ext3_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Ext3_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Ext3_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Ext3_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Ext3_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Ext3_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Ext3.h b/vanetza/asn1/its/r2/Ext3.h new file mode 100644 index 000000000..1fc307a9c --- /dev/null +++ b/vanetza/asn1/its/r2/Ext3.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Ext3_H_ +#define _Vanetza_ITS2_Ext3_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Ext3 */ +typedef long Vanetza_ITS2_Ext3_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Ext3_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Ext3; +asn_struct_free_f Vanetza_ITS2_Ext3_free; +asn_struct_print_f Vanetza_ITS2_Ext3_print; +asn_constr_check_f Vanetza_ITS2_Ext3_constraint; +ber_type_decoder_f Vanetza_ITS2_Ext3_decode_ber; +der_type_encoder_f Vanetza_ITS2_Ext3_encode_der; +xer_type_decoder_f Vanetza_ITS2_Ext3_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Ext3_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Ext3_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Ext3_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Ext3_encode_oer; +per_type_decoder_f Vanetza_ITS2_Ext3_decode_uper; +per_type_encoder_f Vanetza_ITS2_Ext3_encode_uper; +per_type_decoder_f Vanetza_ITS2_Ext3_decode_aper; +per_type_encoder_f Vanetza_ITS2_Ext3_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Ext3_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ExteriorLights.c b/vanetza/asn1/its/r2/ExteriorLights.c new file mode 100644 index 000000000..f9984098b --- /dev/null +++ b/vanetza/asn1/its/r2/ExteriorLights.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ExteriorLights.h" + +int +Vanetza_ITS2_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 == 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_Vanetza_ITS2_ExteriorLights_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_Vanetza_ITS2_ExteriorLights_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_ExteriorLights_constr_1 CC_NOTUSED = { + 8}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ExteriorLights_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_ExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ExteriorLights.h b/vanetza/asn1/its/r2/ExteriorLights.h new file mode 100644 index 000000000..fd593a298 --- /dev/null +++ b/vanetza/asn1/its/r2/ExteriorLights.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ExteriorLights_H_ +#define _Vanetza_ITS2_ExteriorLights_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ExteriorLights { + Vanetza_ITS2_ExteriorLights_lowBeamHeadlightsOn = 0, + Vanetza_ITS2_ExteriorLights_highBeamHeadlightsOn = 1, + Vanetza_ITS2_ExteriorLights_leftTurnSignalOn = 2, + Vanetza_ITS2_ExteriorLights_rightTurnSignalOn = 3, + Vanetza_ITS2_ExteriorLights_daytimeRunningLightsOn = 4, + Vanetza_ITS2_ExteriorLights_reverseLightOn = 5, + Vanetza_ITS2_ExteriorLights_fogLightOn = 6, + Vanetza_ITS2_ExteriorLights_parkingLightsOn = 7 +} e_Vanetza_ITS2_ExteriorLights; + +/* Vanetza_ITS2_ExteriorLights */ +typedef BIT_STRING_t Vanetza_ITS2_ExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ExteriorLights; +asn_struct_free_f Vanetza_ITS2_ExteriorLights_free; +asn_struct_print_f Vanetza_ITS2_ExteriorLights_print; +asn_constr_check_f Vanetza_ITS2_ExteriorLights_constraint; +ber_type_decoder_f Vanetza_ITS2_ExteriorLights_decode_ber; +der_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_der; +xer_type_decoder_f Vanetza_ITS2_ExteriorLights_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ExteriorLights_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_oer; +per_type_decoder_f Vanetza_ITS2_ExteriorLights_decode_uper; +per_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_uper; +per_type_decoder_f Vanetza_ITS2_ExteriorLights_decode_aper; +per_type_encoder_f Vanetza_ITS2_ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ExteriorLights_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/GeneralizedLanePosition.c b/vanetza/asn1/its/r2/GeneralizedLanePosition.c new file mode 100644 index 000000000..ed35f9aa7 --- /dev/null +++ b/vanetza/asn1/its/r2/GeneralizedLanePosition.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "GeneralizedLanePosition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeneralizedLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_GeneralizedLanePosition, lanePositionBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePositionOptions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lanePositionBased" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_GeneralizedLanePosition, mapBased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapBased" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_GeneralizedLanePosition, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MetaInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const int asn_MAP_Vanetza_ITS2_GeneralizedLanePosition_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_GeneralizedLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePositionBased */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mapBased */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_GeneralizedLanePosition_specs_1 = { + sizeof(struct Vanetza_ITS2_GeneralizedLanePosition), + offsetof(struct Vanetza_ITS2_GeneralizedLanePosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_GeneralizedLanePosition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_GeneralizedLanePosition_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeneralizedLanePosition = { + "GeneralizedLanePosition", + "GeneralizedLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_GeneralizedLanePosition_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_GeneralizedLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/GeneralizedLanePosition.h b/vanetza/asn1/its/r2/GeneralizedLanePosition.h new file mode 100644 index 000000000..a3dc1a1f7 --- /dev/null +++ b/vanetza/asn1/its/r2/GeneralizedLanePosition.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_GeneralizedLanePosition_H_ +#define _Vanetza_ITS2_GeneralizedLanePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePositionOptions.h" +#include "MetaInformation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MapPosition; + +/* Vanetza_ITS2_GeneralizedLanePosition */ +typedef struct Vanetza_ITS2_GeneralizedLanePosition { + Vanetza_ITS2_LanePositionOptions_t lanePositionBased; + struct Vanetza_ITS2_MapPosition *mapBased; /* OPTIONAL */ + Vanetza_ITS2_MetaInformation_t confidence; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_GeneralizedLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeneralizedLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_GeneralizedLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeneralizedLanePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapPosition.h" + +#endif /* _Vanetza_ITS2_GeneralizedLanePosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/GeneralizedLanePositions.c b/vanetza/asn1/its/r2/GeneralizedLanePositions.c new file mode 100644 index 000000000..5ba248399 --- /dev/null +++ b/vanetza/asn1/its/r2/GeneralizedLanePositions.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "GeneralizedLanePositions.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_GeneralizedLanePositions_constr_1 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) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_GeneralizedLanePositions_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeneralizedLanePositions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_GeneralizedLanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_GeneralizedLanePositions_specs_1 = { + sizeof(struct Vanetza_ITS2_GeneralizedLanePositions), + offsetof(struct Vanetza_ITS2_GeneralizedLanePositions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeneralizedLanePositions = { + "GeneralizedLanePositions", + "GeneralizedLanePositions", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeneralizedLanePositions_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_GeneralizedLanePositions_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_GeneralizedLanePositions_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_GeneralizedLanePositions_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_GeneralizedLanePositions_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/GeneralizedLanePositions.h b/vanetza/asn1/its/r2/GeneralizedLanePositions.h new file mode 100644 index 000000000..e91e23fd3 --- /dev/null +++ b/vanetza/asn1/its/r2/GeneralizedLanePositions.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_GeneralizedLanePositions_H_ +#define _Vanetza_ITS2_GeneralizedLanePositions_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 Vanetza_ITS2_GeneralizedLanePosition; + +/* Vanetza_ITS2_GeneralizedLanePositions */ +typedef struct Vanetza_ITS2_GeneralizedLanePositions { + A_SEQUENCE_OF(struct Vanetza_ITS2_GeneralizedLanePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_GeneralizedLanePositions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeneralizedLanePositions; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_GeneralizedLanePositions_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeneralizedLanePositions_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_GeneralizedLanePositions_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "GeneralizedLanePosition.h" + +#endif /* _Vanetza_ITS2_GeneralizedLanePositions_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/GenerationDeltaTime.c b/vanetza/asn1/its/r2/GenerationDeltaTime.c new file mode 100644 index 000000000..6871a2dca --- /dev/null +++ b/vanetza/asn1/its/r2/GenerationDeltaTime.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "GenerationDeltaTime.h" + +int +Vanetza_ITS2_GenerationDeltaTime_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_Vanetza_ITS2_GenerationDeltaTime_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_Vanetza_ITS2_GenerationDeltaTime_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_Vanetza_ITS2_GenerationDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GenerationDeltaTime = { + "GenerationDeltaTime", + "GenerationDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GenerationDeltaTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_GenerationDeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_GenerationDeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_GenerationDeltaTime_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/GenerationDeltaTime.h b/vanetza/asn1/its/r2/GenerationDeltaTime.h new file mode 100644 index 000000000..28168f865 --- /dev/null +++ b/vanetza/asn1/its/r2/GenerationDeltaTime.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_GenerationDeltaTime_H_ +#define _Vanetza_ITS2_GenerationDeltaTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_GenerationDeltaTime { + Vanetza_ITS2_GenerationDeltaTime_oneMilliSec = 1 +} e_Vanetza_ITS2_GenerationDeltaTime; + +/* Vanetza_ITS2_GenerationDeltaTime */ +typedef long Vanetza_ITS2_GenerationDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_GenerationDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GenerationDeltaTime; +asn_struct_free_f Vanetza_ITS2_GenerationDeltaTime_free; +asn_struct_print_f Vanetza_ITS2_GenerationDeltaTime_print; +asn_constr_check_f Vanetza_ITS2_GenerationDeltaTime_constraint; +ber_type_decoder_f Vanetza_ITS2_GenerationDeltaTime_decode_ber; +der_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_der; +xer_type_decoder_f Vanetza_ITS2_GenerationDeltaTime_decode_xer; +xer_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_xer; +jer_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_jer; +oer_type_decoder_f Vanetza_ITS2_GenerationDeltaTime_decode_oer; +oer_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_oer; +per_type_decoder_f Vanetza_ITS2_GenerationDeltaTime_decode_uper; +per_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_uper; +per_type_decoder_f Vanetza_ITS2_GenerationDeltaTime_decode_aper; +per_type_encoder_f Vanetza_ITS2_GenerationDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_GenerationDeltaTime_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/GeoPosition.c b/vanetza/asn1/its/r2/GeoPosition.c new file mode 100644 index 000000000..67a3198ad --- /dev/null +++ b/vanetza/asn1/its/r2/GeoPosition.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "GeoPosition.h" + +static int asn_DFL_4_cmp_800001(const void *sptr) { + const Vanetza_ITS2_AltitudeValue_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 800001 */ + return (*st != 800001); +} +static int asn_DFL_4_set_800001(void **sptr) { + Vanetza_ITS2_AltitudeValue_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 800001 */ + *st = 800001; + return 0; +} +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeoPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_GeoPosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_GeoPosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_GeoPosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_4_cmp_800001, /* Compare DEFAULT 800001 */ + &asn_DFL_4_set_800001, /* Set DEFAULT 800001 */ + "altitude" + }, +}; +static const int asn_MAP_Vanetza_ITS2_GeoPosition_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_GeoPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_GeoPosition_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 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_GeoPosition_specs_1 = { + sizeof(struct Vanetza_ITS2_GeoPosition), + offsetof(struct Vanetza_ITS2_GeoPosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_GeoPosition_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_GeoPosition_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeoPosition = { + "GeoPosition", + "GeoPosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_GeoPosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_GeoPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeoPosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_GeoPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_GeoPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_GeoPosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_GeoPosition_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_GeoPosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/GeoPosition.h b/vanetza/asn1/its/r2/GeoPosition.h new file mode 100644 index 000000000..622c52df6 --- /dev/null +++ b/vanetza/asn1/its/r2/GeoPosition.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_GeoPosition_H_ +#define _Vanetza_ITS2_GeoPosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "AltitudeValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_GeoPosition */ +typedef struct Vanetza_ITS2_GeoPosition { + Vanetza_ITS2_Latitude_t latitude; + Vanetza_ITS2_Longitude_t longitude; + Vanetza_ITS2_AltitudeValue_t *altitude; /* DEFAULT 800001 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_GeoPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_GeoPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_GeoPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_GeoPosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_GeoPosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HardShoulderStatus.c b/vanetza/asn1/its/r2/HardShoulderStatus.c new file mode 100644 index 000000000..49f7dbe99 --- /dev/null +++ b/vanetza/asn1/its/r2/HardShoulderStatus.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HardShoulderStatus.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_Vanetza_ITS2_HardShoulderStatus_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_Vanetza_ITS2_HardShoulderStatus_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_Vanetza_ITS2_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_HardShoulderStatus_specs_1 = { + asn_MAP_Vanetza_ITS2_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_HardShoulderStatus_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_Vanetza_ITS2_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HardShoulderStatus_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HardShoulderStatus_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HardShoulderStatus_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/HardShoulderStatus.h b/vanetza/asn1/its/r2/HardShoulderStatus.h new file mode 100644 index 000000000..1cb0a73b3 --- /dev/null +++ b/vanetza/asn1/its/r2/HardShoulderStatus.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HardShoulderStatus_H_ +#define _Vanetza_ITS2_HardShoulderStatus_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HardShoulderStatus { + Vanetza_ITS2_HardShoulderStatus_availableForStopping = 0, + Vanetza_ITS2_HardShoulderStatus_closed = 1, + Vanetza_ITS2_HardShoulderStatus_availableForDriving = 2 +} e_Vanetza_ITS2_HardShoulderStatus; + +/* Vanetza_ITS2_HardShoulderStatus */ +typedef long Vanetza_ITS2_HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_HardShoulderStatus_specs_1; +asn_struct_free_f Vanetza_ITS2_HardShoulderStatus_free; +asn_struct_print_f Vanetza_ITS2_HardShoulderStatus_print; +asn_constr_check_f Vanetza_ITS2_HardShoulderStatus_constraint; +ber_type_decoder_f Vanetza_ITS2_HardShoulderStatus_decode_ber; +der_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_der; +xer_type_decoder_f Vanetza_ITS2_HardShoulderStatus_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HardShoulderStatus_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_oer; +per_type_decoder_f Vanetza_ITS2_HardShoulderStatus_decode_uper; +per_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_uper; +per_type_decoder_f Vanetza_ITS2_HardShoulderStatus_decode_aper; +per_type_encoder_f Vanetza_ITS2_HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HardShoulderStatus_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..30719f463 --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..753fddc7a --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-AnimalOnTheRoadSubCauseCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode { + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimalsSmall = 5, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimalsLarge = 6, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimals = 7, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimalsSmall = 8, + Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_domesticAnimalsLarge = 9 +} e_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* Vanetza_ITS2_HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.c b/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 000000000..1e66f57e2 --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HazardousLocation-DangerousCurveSubCauseCode.h" + +int +Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_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_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_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_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_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_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.h b/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 000000000..8b384c841 --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-DangerousCurveSubCauseCode.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode { + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode; + +/* Vanetza_ITS2_HazardousLocation-DangerousCurveSubCauseCode */ +typedef long Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..657a7373a --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_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_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..dbf0519d3 --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-ObstacleOnTheRoadSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode { + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* Vanetza_ITS2_HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c b/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 000000000..b6f7e2268 --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_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_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_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_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_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_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.h b/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..ccd1e86ea --- /dev/null +++ b/vanetza/asn1/its/r2/HazardousLocation-SurfaceConditionSubCauseCode.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode { + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9, + Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_fire = 10 +} e_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode; + +/* Vanetza_ITS2_HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Heading.c b/vanetza/asn1/its/r2/Heading.c new file mode 100644 index 000000000..39ed8c32f --- /dev/null +++ b/vanetza/asn1/its/r2/Heading.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Heading.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HeadingValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "headingValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "headingConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Heading_specs_1 = { + sizeof(struct Vanetza_ITS2_Heading), + offsetof(struct Vanetza_ITS2_Heading, _asn_ctx), + asn_MAP_Vanetza_ITS2_Heading_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_Vanetza_ITS2_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Heading_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Heading_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Heading_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Heading_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Heading_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Heading_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Heading_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Heading.h b/vanetza/asn1/its/r2/Heading.h new file mode 100644 index 000000000..e1e5985ee --- /dev/null +++ b/vanetza/asn1/its/r2/Heading.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Heading_H_ +#define _Vanetza_ITS2_Heading_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HeadingValue.h" +#include "HeadingConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Heading */ +typedef struct Vanetza_ITS2_Heading { + Vanetza_ITS2_HeadingValue_t headingValue; + Vanetza_ITS2_HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Heading; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Heading_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Heading_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Heading_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HeadingChangeIndication.c b/vanetza/asn1/its/r2/HeadingChangeIndication.c new file mode 100644 index 000000000..8ac80a7fb --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HeadingChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_HeadingChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_HeadingChangeIndication, direction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TurningDirection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "direction" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_HeadingChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_HeadingChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_HeadingChangeIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_HeadingChangeIndication), + offsetof(struct Vanetza_ITS2_HeadingChangeIndication, _asn_ctx), + asn_MAP_Vanetza_ITS2_HeadingChangeIndication_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_Vanetza_ITS2_HeadingChangeIndication = { + "HeadingChangeIndication", + "HeadingChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HeadingChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingChangeIndication_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_HeadingChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_HeadingChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/HeadingChangeIndication.h b/vanetza/asn1/its/r2/HeadingChangeIndication.h new file mode 100644 index 000000000..36dbffe95 --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HeadingChangeIndication_H_ +#define _Vanetza_ITS2_HeadingChangeIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TurningDirection.h" +#include "DeltaTimeTenthOfSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_HeadingChangeIndication */ +typedef struct Vanetza_ITS2_HeadingChangeIndication { + Vanetza_ITS2_TurningDirection_t direction; + Vanetza_ITS2_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_HeadingChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeadingChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HeadingChangeIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HeadingConfidence.c b/vanetza/asn1/its/r2/HeadingConfidence.c new file mode 100644 index 000000000..ba920cd4a --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HeadingConfidence.h" + +int +Vanetza_ITS2_HeadingConfidence_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 <= 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_Vanetza_ITS2_HeadingConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_HeadingConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HeadingConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HeadingConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HeadingConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HeadingConfidence.h b/vanetza/asn1/its/r2/HeadingConfidence.h new file mode 100644 index 000000000..052f82f5f --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HeadingConfidence_H_ +#define _Vanetza_ITS2_HeadingConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HeadingConfidence { + Vanetza_ITS2_HeadingConfidence_outOfRange = 126, + Vanetza_ITS2_HeadingConfidence_unavailable = 127 +} e_Vanetza_ITS2_HeadingConfidence; + +/* Vanetza_ITS2_HeadingConfidence */ +typedef long Vanetza_ITS2_HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeadingConfidence; +asn_struct_free_f Vanetza_ITS2_HeadingConfidence_free; +asn_struct_print_f Vanetza_ITS2_HeadingConfidence_print; +asn_constr_check_f Vanetza_ITS2_HeadingConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_HeadingConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_HeadingConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HeadingConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_HeadingConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_HeadingConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HeadingConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HeadingValue.c b/vanetza/asn1/its/r2/HeadingValue.c new file mode 100644 index 000000000..6a3b4bd7f --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HeadingValue.h" + +int +Vanetza_ITS2_HeadingValue_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 <= 3601L)) { + /* 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_Vanetza_ITS2_HeadingValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -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_Vanetza_ITS2_HeadingValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_Vanetza_ITS2_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HeadingValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HeadingValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HeadingValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeadingValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HeadingValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HeadingValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HeadingValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HeadingValue.h b/vanetza/asn1/its/r2/HeadingValue.h new file mode 100644 index 000000000..cc192f79b --- /dev/null +++ b/vanetza/asn1/its/r2/HeadingValue.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HeadingValue_H_ +#define _Vanetza_ITS2_HeadingValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HeadingValue { + Vanetza_ITS2_HeadingValue_wgs84North = 0, + Vanetza_ITS2_HeadingValue_wgs84East = 900, + Vanetza_ITS2_HeadingValue_wgs84South = 1800, + Vanetza_ITS2_HeadingValue_wgs84West = 2700, + Vanetza_ITS2_HeadingValue_doNotUse = 3600, + Vanetza_ITS2_HeadingValue_unavailable = 3601 +} e_Vanetza_ITS2_HeadingValue; + +/* Vanetza_ITS2_HeadingValue */ +typedef long Vanetza_ITS2_HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeadingValue; +asn_struct_free_f Vanetza_ITS2_HeadingValue_free; +asn_struct_print_f Vanetza_ITS2_HeadingValue_print; +asn_constr_check_f Vanetza_ITS2_HeadingValue_constraint; +ber_type_decoder_f Vanetza_ITS2_HeadingValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_HeadingValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_HeadingValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HeadingValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HeadingValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HeadingValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HeadingValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_HeadingValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_HeadingValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_HeadingValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HeadingValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HeightLonCarr.c b/vanetza/asn1/its/r2/HeightLonCarr.c new file mode 100644 index 000000000..3f9658ed8 --- /dev/null +++ b/vanetza/asn1/its/r2/HeightLonCarr.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HeightLonCarr.h" + +int +Vanetza_ITS2_HeightLonCarr_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 <= 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_Vanetza_ITS2_HeightLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_HeightLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..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_Vanetza_ITS2_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HeightLonCarr_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HeightLonCarr_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HeightLonCarr_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HeightLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HeightLonCarr.h b/vanetza/asn1/its/r2/HeightLonCarr.h new file mode 100644 index 000000000..c777b3c87 --- /dev/null +++ b/vanetza/asn1/its/r2/HeightLonCarr.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HeightLonCarr_H_ +#define _Vanetza_ITS2_HeightLonCarr_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HeightLonCarr { + Vanetza_ITS2_HeightLonCarr_outOfRange = 99, + Vanetza_ITS2_HeightLonCarr_unavailable = 100 +} e_Vanetza_ITS2_HeightLonCarr; + +/* Vanetza_ITS2_HeightLonCarr */ +typedef long Vanetza_ITS2_HeightLonCarr_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HeightLonCarr_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HeightLonCarr; +asn_struct_free_f Vanetza_ITS2_HeightLonCarr_free; +asn_struct_print_f Vanetza_ITS2_HeightLonCarr_print; +asn_constr_check_f Vanetza_ITS2_HeightLonCarr_constraint; +ber_type_decoder_f Vanetza_ITS2_HeightLonCarr_decode_ber; +der_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_der; +xer_type_decoder_f Vanetza_ITS2_HeightLonCarr_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HeightLonCarr_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_oer; +per_type_decoder_f Vanetza_ITS2_HeightLonCarr_decode_uper; +per_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_uper; +per_type_decoder_f Vanetza_ITS2_HeightLonCarr_decode_aper; +per_type_encoder_f Vanetza_ITS2_HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HeightLonCarr_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HighFrequencyContainer.c b/vanetza/asn1/its/r2/HighFrequencyContainer.c new file mode 100644 index 000000000..23d07d9d8 --- /dev/null +++ b/vanetza/asn1/its/r2/HighFrequencyContainer.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HighFrequencyContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_HighFrequencyContainer_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_Vanetza_ITS2_HighFrequencyContainer_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_Vanetza_ITS2_HighFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_HighFrequencyContainer, choice.basicVehicleContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_BasicVehicleContainerHighFrequency, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicVehicleContainerHighFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_HighFrequencyContainer, choice.rsuContainerHighFrequency), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rsuContainerHighFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_HighFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* basicVehicleContainerHighFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsuContainerHighFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_HighFrequencyContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_HighFrequencyContainer), + offsetof(struct Vanetza_ITS2_HighFrequencyContainer, _asn_ctx), + offsetof(struct Vanetza_ITS2_HighFrequencyContainer, present), + sizeof(((struct Vanetza_ITS2_HighFrequencyContainer *)0)->present), + asn_MAP_Vanetza_ITS2_HighFrequencyContainer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HighFrequencyContainer = { + "HighFrequencyContainer", + "HighFrequencyContainer", + &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_Vanetza_ITS2_HighFrequencyContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HighFrequencyContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_HighFrequencyContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_HighFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/HighFrequencyContainer.h b/vanetza/asn1/its/r2/HighFrequencyContainer.h new file mode 100644 index 000000000..fddaecc05 --- /dev/null +++ b/vanetza/asn1/its/r2/HighFrequencyContainer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HighFrequencyContainer_H_ +#define _Vanetza_ITS2_HighFrequencyContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicVehicleContainerHighFrequency.h" +#include "RSUContainerHighFrequency.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HighFrequencyContainer_PR { + Vanetza_ITS2_HighFrequencyContainer_PR_NOTHING, /* No components present */ + Vanetza_ITS2_HighFrequencyContainer_PR_basicVehicleContainerHighFrequency, + Vanetza_ITS2_HighFrequencyContainer_PR_rsuContainerHighFrequency + /* Extensions may appear below */ + +} Vanetza_ITS2_HighFrequencyContainer_PR; + +/* Vanetza_ITS2_HighFrequencyContainer */ +typedef struct Vanetza_ITS2_HighFrequencyContainer { + Vanetza_ITS2_HighFrequencyContainer_PR present; + union Vanetza_ITS2_HighFrequencyContainer_u { + Vanetza_ITS2_BasicVehicleContainerHighFrequency_t basicVehicleContainerHighFrequency; + Vanetza_ITS2_RSUContainerHighFrequency_t rsuContainerHighFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_HighFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HighFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_HighFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_HighFrequencyContainer_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HighFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HighFrequencyContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.c b/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..9537137a3 --- /dev/null +++ b/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HumanPresenceOnTheRoadSubCauseCode.h" + +int +Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_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_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_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_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_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_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.h b/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..a98b1ffe5 --- /dev/null +++ b/vanetza/asn1/its/r2/HumanPresenceOnTheRoadSubCauseCode.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_H_ +#define _Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode { + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_pedestrian = 4, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_ordinary_pedestrian = 5, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_road_worker = 6, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_first_responder = 7, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_lightVruVehicle = 8, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_bicyclist = 9, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_wheelchair_user = 10, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_horse_and_rider = 11, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_rollerskater = 12, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_e_scooter = 13, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_personal_transporter = 14, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_pedelec = 15, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_speed_pedelec = 16, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_ptw = 17, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_moped = 18, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_motorcycle = 19, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_motorcycle_and_sidecar_right = 20, + Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_motorcycle_and_sidecar_left = 21 +} e_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode; + +/* Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode */ +typedef long Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/HumanProblemSubCauseCode.c b/vanetza/asn1/its/r2/HumanProblemSubCauseCode.c new file mode 100644 index 000000000..ecf0dae59 --- /dev/null +++ b/vanetza/asn1/its/r2/HumanProblemSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "HumanProblemSubCauseCode.h" + +int +Vanetza_ITS2_HumanProblemSubCauseCode_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_Vanetza_ITS2_HumanProblemSubCauseCode_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_Vanetza_ITS2_HumanProblemSubCauseCode_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_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_HumanProblemSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_HumanProblemSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_HumanProblemSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/HumanProblemSubCauseCode.h b/vanetza/asn1/its/r2/HumanProblemSubCauseCode.h new file mode 100644 index 000000000..4a7d9c2e4 --- /dev/null +++ b/vanetza/asn1/its/r2/HumanProblemSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_HumanProblemSubCauseCode_H_ +#define _Vanetza_ITS2_HumanProblemSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_HumanProblemSubCauseCode { + Vanetza_ITS2_HumanProblemSubCauseCode_unavailable = 0, + Vanetza_ITS2_HumanProblemSubCauseCode_glycemiaProblem = 1, + Vanetza_ITS2_HumanProblemSubCauseCode_heartProblem = 2 +} e_Vanetza_ITS2_HumanProblemSubCauseCode; + +/* Vanetza_ITS2_HumanProblemSubCauseCode */ +typedef long Vanetza_ITS2_HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_HumanProblemSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_HumanProblemSubCauseCode; +asn_struct_free_f Vanetza_ITS2_HumanProblemSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_HumanProblemSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_HumanProblemSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_HumanProblemSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_HumanProblemSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_HumanProblemSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_HumanProblemSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Identifier1B.c b/vanetza/asn1/its/r2/Identifier1B.c new file mode 100644 index 000000000..69c506a4a --- /dev/null +++ b/vanetza/asn1/its/r2/Identifier1B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Identifier1B.h" + +int +Vanetza_ITS2_Identifier1B_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_Vanetza_ITS2_Identifier1B_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_Vanetza_ITS2_Identifier1B_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_Vanetza_ITS2_Identifier1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Identifier1B = { + "Identifier1B", + "Identifier1B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Identifier1B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Identifier1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Identifier1B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Identifier1B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Identifier1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Identifier1B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Identifier1B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Identifier1B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Identifier1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Identifier1B.h b/vanetza/asn1/its/r2/Identifier1B.h new file mode 100644 index 000000000..843042784 --- /dev/null +++ b/vanetza/asn1/its/r2/Identifier1B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Identifier1B_H_ +#define _Vanetza_ITS2_Identifier1B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Identifier1B */ +typedef long Vanetza_ITS2_Identifier1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Identifier1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Identifier1B; +asn_struct_free_f Vanetza_ITS2_Identifier1B_free; +asn_struct_print_f Vanetza_ITS2_Identifier1B_print; +asn_constr_check_f Vanetza_ITS2_Identifier1B_constraint; +ber_type_decoder_f Vanetza_ITS2_Identifier1B_decode_ber; +der_type_encoder_f Vanetza_ITS2_Identifier1B_encode_der; +xer_type_decoder_f Vanetza_ITS2_Identifier1B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Identifier1B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Identifier1B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Identifier1B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Identifier1B_encode_oer; +per_type_decoder_f Vanetza_ITS2_Identifier1B_decode_uper; +per_type_encoder_f Vanetza_ITS2_Identifier1B_encode_uper; +per_type_decoder_f Vanetza_ITS2_Identifier1B_decode_aper; +per_type_encoder_f Vanetza_ITS2_Identifier1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Identifier1B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Identifier2B.c b/vanetza/asn1/its/r2/Identifier2B.c new file mode 100644 index 000000000..03042bb57 --- /dev/null +++ b/vanetza/asn1/its/r2/Identifier2B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Identifier2B.h" + +int +Vanetza_ITS2_Identifier2B_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_Vanetza_ITS2_Identifier2B_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_Vanetza_ITS2_Identifier2B_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_Vanetza_ITS2_Identifier2B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Identifier2B = { + "Identifier2B", + "Identifier2B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Identifier2B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Identifier2B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Identifier2B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Identifier2B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Identifier2B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Identifier2B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Identifier2B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Identifier2B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Identifier2B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Identifier2B.h b/vanetza/asn1/its/r2/Identifier2B.h new file mode 100644 index 000000000..77b251e58 --- /dev/null +++ b/vanetza/asn1/its/r2/Identifier2B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Identifier2B_H_ +#define _Vanetza_ITS2_Identifier2B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Identifier2B */ +typedef long Vanetza_ITS2_Identifier2B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Identifier2B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Identifier2B; +asn_struct_free_f Vanetza_ITS2_Identifier2B_free; +asn_struct_print_f Vanetza_ITS2_Identifier2B_print; +asn_constr_check_f Vanetza_ITS2_Identifier2B_constraint; +ber_type_decoder_f Vanetza_ITS2_Identifier2B_decode_ber; +der_type_encoder_f Vanetza_ITS2_Identifier2B_encode_der; +xer_type_decoder_f Vanetza_ITS2_Identifier2B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Identifier2B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Identifier2B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Identifier2B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Identifier2B_encode_oer; +per_type_decoder_f Vanetza_ITS2_Identifier2B_decode_uper; +per_type_encoder_f Vanetza_ITS2_Identifier2B_encode_uper; +per_type_decoder_f Vanetza_ITS2_Identifier2B_decode_aper; +per_type_encoder_f Vanetza_ITS2_Identifier2B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Identifier2B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ImpactReductionContainer.c b/vanetza/asn1/its/r2/ImpactReductionContainer.c new file mode 100644 index 000000000..6a384bb20 --- /dev/null +++ b/vanetza/asn1/its/r2/ImpactReductionContainer.c @@ -0,0 +1,303 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ImpactReductionContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ImpactReductionContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, heightLonCarrLeft), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HeightLonCarr, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heightLonCarrLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, heightLonCarrRight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HeightLonCarr, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "heightLonCarrRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, posLonCarrLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosLonCarr, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posLonCarrLeft" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, posLonCarrRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosLonCarr, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posLonCarrRight" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, positionOfPillars), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PositionOfPillars, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionOfPillars" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, posCentMass), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosCentMass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posCentMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, wheelBaseVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_WheelBaseVehicle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wheelBaseVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, turningRadius), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TurningRadius, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "turningRadius" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, posFrontAx), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosFrontAx, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "posFrontAx" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, positionOfOccupants), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PositionOfOccupants, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionOfOccupants" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, vehicleMass), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ImpactReductionContainer, requestResponseIndication), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RequestResponseIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "requestResponseIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ImpactReductionContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* heightLonCarrLeft */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* heightLonCarrRight */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* posLonCarrLeft */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* posLonCarrRight */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* positionOfPillars */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* posCentMass */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* wheelBaseVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* turningRadius */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* posFrontAx */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* positionOfOccupants */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* vehicleMass */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* requestResponseIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ImpactReductionContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_ImpactReductionContainer), + offsetof(struct Vanetza_ITS2_ImpactReductionContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_ImpactReductionContainer_tag2el_1, + 12, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ImpactReductionContainer = { + "ImpactReductionContainer", + "ImpactReductionContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ImpactReductionContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ImpactReductionContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ImpactReductionContainer_1, + 12, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ImpactReductionContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ImpactReductionContainer.h b/vanetza/asn1/its/r2/ImpactReductionContainer.h new file mode 100644 index 000000000..048d675b7 --- /dev/null +++ b/vanetza/asn1/its/r2/ImpactReductionContainer.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ImpactReductionContainer_H_ +#define _Vanetza_ITS2_ImpactReductionContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "HeightLonCarr.h" +#include "PosLonCarr.h" +#include "PositionOfPillars.h" +#include "PosCentMass.h" +#include "WheelBaseVehicle.h" +#include "TurningRadius.h" +#include "PosFrontAx.h" +#include "PositionOfOccupants.h" +#include "VehicleMass.h" +#include "RequestResponseIndication.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ImpactReductionContainer */ +typedef struct Vanetza_ITS2_ImpactReductionContainer { + Vanetza_ITS2_HeightLonCarr_t heightLonCarrLeft; + Vanetza_ITS2_HeightLonCarr_t heightLonCarrRight; + Vanetza_ITS2_PosLonCarr_t posLonCarrLeft; + Vanetza_ITS2_PosLonCarr_t posLonCarrRight; + Vanetza_ITS2_PositionOfPillars_t positionOfPillars; + Vanetza_ITS2_PosCentMass_t posCentMass; + Vanetza_ITS2_WheelBaseVehicle_t wheelBaseVehicle; + Vanetza_ITS2_TurningRadius_t turningRadius; + Vanetza_ITS2_PosFrontAx_t posFrontAx; + Vanetza_ITS2_PositionOfOccupants_t positionOfOccupants; + Vanetza_ITS2_VehicleMass_t vehicleMass; + Vanetza_ITS2_RequestResponseIndication_t requestResponseIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ImpactReductionContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ImpactReductionContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ImpactReductionContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ImpactReductionContainer_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ImpactReductionContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.c b/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.c new file mode 100644 index 000000000..bf7ba4836 --- /dev/null +++ b/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ImpassabilitySubCauseCode.h" + +int +Vanetza_ITS2_ImpassabilitySubCauseCode_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_Vanetza_ITS2_ImpassabilitySubCauseCode_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_Vanetza_ITS2_ImpassabilitySubCauseCode_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_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode = { + "ImpassabilitySubCauseCode", + "ImpassabilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ImpassabilitySubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ImpassabilitySubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ImpassabilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.h b/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.h new file mode 100644 index 000000000..20e9a425c --- /dev/null +++ b/vanetza/asn1/its/r2/ImpassabilitySubCauseCode.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ImpassabilitySubCauseCode_H_ +#define _Vanetza_ITS2_ImpassabilitySubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ImpassabilitySubCauseCode { + Vanetza_ITS2_ImpassabilitySubCauseCode_unavailable = 0, + Vanetza_ITS2_ImpassabilitySubCauseCode_flooding = 1, + Vanetza_ITS2_ImpassabilitySubCauseCode_dangerOfAvalanches = 2, + Vanetza_ITS2_ImpassabilitySubCauseCode_blastingOfAvalanches = 3, + Vanetza_ITS2_ImpassabilitySubCauseCode_landslips = 4, + Vanetza_ITS2_ImpassabilitySubCauseCode_chemicalSpillage = 5, + Vanetza_ITS2_ImpassabilitySubCauseCode_winterClosure = 6, + Vanetza_ITS2_ImpassabilitySubCauseCode_sinkhole = 7, + Vanetza_ITS2_ImpassabilitySubCauseCode_earthquakeDamage = 8, + Vanetza_ITS2_ImpassabilitySubCauseCode_fallenTrees = 9, + Vanetza_ITS2_ImpassabilitySubCauseCode_rockfalls = 10, + Vanetza_ITS2_ImpassabilitySubCauseCode_sewerOverflow = 11, + Vanetza_ITS2_ImpassabilitySubCauseCode_stormDamage = 12, + Vanetza_ITS2_ImpassabilitySubCauseCode_subsidence = 13, + Vanetza_ITS2_ImpassabilitySubCauseCode_burstPipe = 14, + Vanetza_ITS2_ImpassabilitySubCauseCode_burstWaterMain = 15, + Vanetza_ITS2_ImpassabilitySubCauseCode_fallenPowerCables = 16, + Vanetza_ITS2_ImpassabilitySubCauseCode_snowDrifts = 17 +} e_Vanetza_ITS2_ImpassabilitySubCauseCode; + +/* Vanetza_ITS2_ImpassabilitySubCauseCode */ +typedef long Vanetza_ITS2_ImpassabilitySubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ImpassabilitySubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ImpassabilitySubCauseCode; +asn_struct_free_f Vanetza_ITS2_ImpassabilitySubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_ImpassabilitySubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_ImpassabilitySubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_ImpassabilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ImpassabilitySubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InformationQuality.c b/vanetza/asn1/its/r2/InformationQuality.c new file mode 100644 index 000000000..39e47ba43 --- /dev/null +++ b/vanetza/asn1/its/r2/InformationQuality.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InformationQuality.h" + +int +Vanetza_ITS2_InformationQuality_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_Vanetza_ITS2_InformationQuality_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_Vanetza_ITS2_InformationQuality_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_Vanetza_ITS2_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_InformationQuality_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InformationQuality_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InformationQuality_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InformationQuality_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_InformationQuality_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_InformationQuality_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_InformationQuality_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/InformationQuality.h b/vanetza/asn1/its/r2/InformationQuality.h new file mode 100644 index 000000000..d8dd6d489 --- /dev/null +++ b/vanetza/asn1/its/r2/InformationQuality.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InformationQuality_H_ +#define _Vanetza_ITS2_InformationQuality_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_InformationQuality */ +typedef long Vanetza_ITS2_InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InformationQuality; +asn_struct_free_f Vanetza_ITS2_InformationQuality_free; +asn_struct_print_f Vanetza_ITS2_InformationQuality_print; +asn_constr_check_f Vanetza_ITS2_InformationQuality_constraint; +ber_type_decoder_f Vanetza_ITS2_InformationQuality_decode_ber; +der_type_encoder_f Vanetza_ITS2_InformationQuality_encode_der; +xer_type_decoder_f Vanetza_ITS2_InformationQuality_decode_xer; +xer_type_encoder_f Vanetza_ITS2_InformationQuality_encode_xer; +jer_type_encoder_f Vanetza_ITS2_InformationQuality_encode_jer; +oer_type_decoder_f Vanetza_ITS2_InformationQuality_decode_oer; +oer_type_encoder_f Vanetza_ITS2_InformationQuality_encode_oer; +per_type_decoder_f Vanetza_ITS2_InformationQuality_decode_uper; +per_type_encoder_f Vanetza_ITS2_InformationQuality_encode_uper; +per_type_decoder_f Vanetza_ITS2_InformationQuality_decode_aper; +per_type_encoder_f Vanetza_ITS2_InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_InformationQuality_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementChannel.c b/vanetza/asn1/its/r2/InterferenceManagementChannel.c new file mode 100644 index 000000000..88bd72050 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementChannel.c @@ -0,0 +1,225 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementChannel.h" + +static int +memb_Vanetza_ITS2_centreFrequency_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 <= 99999L)) { + /* 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_Vanetza_ITS2_channelWidth_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 <= 9999L)) { + /* 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_Vanetza_ITS2_exponent_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 <= 15L)) { + /* 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_Vanetza_ITS2_centreFrequency_constr_2 CC_NOTUSED = { + { 4, 1 } /* (1..99999) */, + -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_Vanetza_ITS2_centreFrequency_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 1, 99999 } /* (1..99999) */, + { 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_Vanetza_ITS2_channelWidth_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..9999) */, + -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_Vanetza_ITS2_channelWidth_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 9999 } /* (0..9999) */, + { 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_Vanetza_ITS2_exponent_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..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_Vanetza_ITS2_exponent_constr_4 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementChannel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementChannel, centreFrequency), + (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_Vanetza_ITS2_centreFrequency_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_centreFrequency_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_centreFrequency_constraint_1 + }, + 0, 0, /* No default value */ + "centreFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementChannel, channelWidth), + (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_Vanetza_ITS2_channelWidth_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_channelWidth_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_channelWidth_constraint_1 + }, + 0, 0, /* No default value */ + "channelWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementChannel, exponent), + (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_Vanetza_ITS2_exponent_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_exponent_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_exponent_constraint_1 + }, + 0, 0, /* No default value */ + "exponent" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_InterferenceManagementChannel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* centreFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* channelWidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* exponent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementChannel_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementChannel), + offsetof(struct Vanetza_ITS2_InterferenceManagementChannel, _asn_ctx), + asn_MAP_Vanetza_ITS2_InterferenceManagementChannel_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_Vanetza_ITS2_InterferenceManagementChannel = { + "InterferenceManagementChannel", + "InterferenceManagementChannel", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementChannel_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementChannel_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementChannel_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementChannel.h b/vanetza/asn1/its/r2/InterferenceManagementChannel.h new file mode 100644 index 000000000..5fb1f3bfb --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementChannel.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementChannel_H_ +#define _Vanetza_ITS2_InterferenceManagementChannel_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_InterferenceManagementChannel */ +typedef struct Vanetza_ITS2_InterferenceManagementChannel { + long centreFrequency; + long channelWidth; + long exponent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementChannel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementChannel; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementChannel_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementChannel_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_InterferenceManagementChannel_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementInfo.c b/vanetza/asn1/its/r2/InterferenceManagementInfo.c new file mode 100644 index 000000000..f8b5a4dec --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementInfo.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementInfo.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_InterferenceManagementInfo_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_Vanetza_ITS2_InterferenceManagementInfo_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_InterferenceManagementInfo_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementInfo_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementInfo), + offsetof(struct Vanetza_ITS2_InterferenceManagementInfo, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfo = { + "InterferenceManagementInfo", + "InterferenceManagementInfo", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfo_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_InterferenceManagementInfo_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_InterferenceManagementInfo_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementInfo_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementInfo_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementInfo.h b/vanetza/asn1/its/r2/InterferenceManagementInfo.h new file mode 100644 index 000000000..629049b38 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementInfo.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementInfo_H_ +#define _Vanetza_ITS2_InterferenceManagementInfo_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 Vanetza_ITS2_InterferenceManagementInfoPerChannel; + +/* Vanetza_ITS2_InterferenceManagementInfo */ +typedef struct Vanetza_ITS2_InterferenceManagementInfo { + A_SEQUENCE_OF(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfo; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementInfo_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_InterferenceManagementInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "InterferenceManagementInfoPerChannel.h" + +#endif /* _Vanetza_ITS2_InterferenceManagementInfo_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.c b/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.c new file mode 100644 index 000000000..582ecbbf5 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementInfoPerChannel.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementInfoPerChannel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel, interferenceManagementChannel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InterferenceManagementChannel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementChannel" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel, interferenceManagementZoneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneType" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel, interferenceManagementMitigationType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MitigationForTechnologies, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementMitigationType" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TimestampIts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "expiryTime" + }, +}; +static const int asn_MAP_Vanetza_ITS2_InterferenceManagementInfoPerChannel_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interferenceManagementChannel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interferenceManagementZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interferenceManagementMitigationType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* expiryTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementInfoPerChannel_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel), + offsetof(struct Vanetza_ITS2_InterferenceManagementInfoPerChannel, _asn_ctx), + asn_MAP_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_InterferenceManagementInfoPerChannel_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel = { + "InterferenceManagementInfoPerChannel", + "InterferenceManagementInfoPerChannel", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementInfoPerChannel_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementInfoPerChannel_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.h b/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.h new file mode 100644 index 000000000..40af33099 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementInfoPerChannel.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementInfoPerChannel_H_ +#define _Vanetza_ITS2_InterferenceManagementInfoPerChannel_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "InterferenceManagementChannel.h" +#include "InterferenceManagementZoneType.h" +#include "TimestampIts.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MitigationForTechnologies; + +/* Vanetza_ITS2_InterferenceManagementInfoPerChannel */ +typedef struct Vanetza_ITS2_InterferenceManagementInfoPerChannel { + Vanetza_ITS2_InterferenceManagementChannel_t interferenceManagementChannel; + Vanetza_ITS2_InterferenceManagementZoneType_t interferenceManagementZoneType; + struct Vanetza_ITS2_MitigationForTechnologies *interferenceManagementMitigationType; /* OPTIONAL */ + Vanetza_ITS2_TimestampIts_t *expiryTime; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementInfoPerChannel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementInfoPerChannel; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementInfoPerChannel_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementInfoPerChannel_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MitigationForTechnologies.h" + +#endif /* _Vanetza_ITS2_InterferenceManagementInfoPerChannel_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementZone.c b/vanetza/asn1/its/r2/InterferenceManagementZone.c new file mode 100644 index 000000000..0924790fd --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZone.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementZone.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementZone, zoneDefinition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zoneDefinition" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementZone, managementInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InterferenceManagementInfo, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "managementInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_InterferenceManagementZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zoneDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* managementInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZone_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementZone), + offsetof(struct Vanetza_ITS2_InterferenceManagementZone, _asn_ctx), + asn_MAP_Vanetza_ITS2_InterferenceManagementZone_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_Vanetza_ITS2_InterferenceManagementZone = { + "InterferenceManagementZone", + "InterferenceManagementZone", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZone_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementZone_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementZone_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementZone.h b/vanetza/asn1/its/r2/InterferenceManagementZone.h new file mode 100644 index 000000000..29da1d30d --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZone.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementZone_H_ +#define _Vanetza_ITS2_InterferenceManagementZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "InterferenceManagementZoneDefinition.h" +#include "InterferenceManagementInfo.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_InterferenceManagementZone */ +typedef struct Vanetza_ITS2_InterferenceManagementZone { + Vanetza_ITS2_InterferenceManagementZoneDefinition_t zoneDefinition; + Vanetza_ITS2_InterferenceManagementInfo_t managementInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZone_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementZone_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_InterferenceManagementZone_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.c b/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.c new file mode 100644 index 000000000..af64524d7 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementZoneDefinition.h" + +static int +memb_Vanetza_ITS2_interferenceManagementZoneShape_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_Vanetza_ITS2_interferenceManagementZoneShape_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_memb_Vanetza_ITS2_interferenceManagementZoneShape_constr_5 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementZoneDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition, interferenceManagementZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition, interferenceManagementZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition, interferenceManagementZoneId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedZoneId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneId" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition, interferenceManagementZoneShape), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Shape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_interferenceManagementZoneShape_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_interferenceManagementZoneShape_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_interferenceManagementZoneShape_constraint_1 + }, + 0, 0, /* No default value */ + "interferenceManagementZoneShape" + }, +}; +static const int asn_MAP_Vanetza_ITS2_InterferenceManagementZoneDefinition_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_InterferenceManagementZoneDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interferenceManagementZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interferenceManagementZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* interferenceManagementZoneId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* interferenceManagementZoneShape */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZoneDefinition_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition), + offsetof(struct Vanetza_ITS2_InterferenceManagementZoneDefinition, _asn_ctx), + asn_MAP_Vanetza_ITS2_InterferenceManagementZoneDefinition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_InterferenceManagementZoneDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition = { + "InterferenceManagementZoneDefinition", + "InterferenceManagementZoneDefinition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementZoneDefinition_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementZoneDefinition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.h b/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.h new file mode 100644 index 000000000..e5e40130c --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZoneDefinition.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementZoneDefinition_H_ +#define _Vanetza_ITS2_InterferenceManagementZoneDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneId.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_Shape; + +/* Vanetza_ITS2_InterferenceManagementZoneDefinition */ +typedef struct Vanetza_ITS2_InterferenceManagementZoneDefinition { + Vanetza_ITS2_Latitude_t interferenceManagementZoneLatitude; + Vanetza_ITS2_Longitude_t interferenceManagementZoneLongitude; + Vanetza_ITS2_ProtectedZoneId_t *interferenceManagementZoneId; /* OPTIONAL */ + struct Vanetza_ITS2_Shape *interferenceManagementZoneShape; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementZoneDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZoneDefinition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZoneDefinition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_InterferenceManagementZoneDefinition_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Shape.h" + +#endif /* _Vanetza_ITS2_InterferenceManagementZoneDefinition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementZoneType.c b/vanetza/asn1/its/r2/InterferenceManagementZoneType.c new file mode 100644 index 000000000..077794971 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZoneType.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementZoneType.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_Vanetza_ITS2_InterferenceManagementZoneType_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_Vanetza_ITS2_InterferenceManagementZoneType_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_Vanetza_ITS2_InterferenceManagementZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" }, + { 2, 11, "unavailable" }, + { 3, 9, "urbanRail" }, + { 4, 16, "satelliteStation" }, + { 5, 10, "fixedLinks" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_InterferenceManagementZoneType_enum2value_1[] = { + 5, /* fixedLinks(5) */ + 0, /* permanentCenDsrcTolling(0) */ + 4, /* satelliteStation(4) */ + 1, /* temporaryCenDsrcTolling(1) */ + 2, /* unavailable(2) */ + 3 /* urbanRail(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZoneType_specs_1 = { + asn_MAP_Vanetza_ITS2_InterferenceManagementZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_InterferenceManagementZoneType_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_Vanetza_ITS2_InterferenceManagementZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType = { + "InterferenceManagementZoneType", + "InterferenceManagementZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_InterferenceManagementZoneType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_InterferenceManagementZoneType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementZoneType.h b/vanetza/asn1/its/r2/InterferenceManagementZoneType.h new file mode 100644 index 000000000..78d76e87b --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZoneType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementZoneType_H_ +#define _Vanetza_ITS2_InterferenceManagementZoneType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_InterferenceManagementZoneType { + Vanetza_ITS2_InterferenceManagementZoneType_permanentCenDsrcTolling = 0, + Vanetza_ITS2_InterferenceManagementZoneType_temporaryCenDsrcTolling = 1, + Vanetza_ITS2_InterferenceManagementZoneType_unavailable = 2, + Vanetza_ITS2_InterferenceManagementZoneType_urbanRail = 3, + Vanetza_ITS2_InterferenceManagementZoneType_satelliteStation = 4, + Vanetza_ITS2_InterferenceManagementZoneType_fixedLinks = 5 + /* + * Enumeration is extensible + */ +} e_Vanetza_ITS2_InterferenceManagementZoneType; + +/* Vanetza_ITS2_InterferenceManagementZoneType */ +typedef long Vanetza_ITS2_InterferenceManagementZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_InterferenceManagementZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZoneType_specs_1; +asn_struct_free_f Vanetza_ITS2_InterferenceManagementZoneType_free; +asn_struct_print_f Vanetza_ITS2_InterferenceManagementZoneType_print; +asn_constr_check_f Vanetza_ITS2_InterferenceManagementZoneType_constraint; +ber_type_decoder_f Vanetza_ITS2_InterferenceManagementZoneType_decode_ber; +der_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_der; +xer_type_decoder_f Vanetza_ITS2_InterferenceManagementZoneType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_InterferenceManagementZoneType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_oer; +per_type_decoder_f Vanetza_ITS2_InterferenceManagementZoneType_decode_uper; +per_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_uper; +per_type_decoder_f Vanetza_ITS2_InterferenceManagementZoneType_decode_aper; +per_type_encoder_f Vanetza_ITS2_InterferenceManagementZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_InterferenceManagementZoneType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/InterferenceManagementZones.c b/vanetza/asn1/its/r2/InterferenceManagementZones.c new file mode 100644 index 000000000..021507086 --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZones.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "InterferenceManagementZones.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_InterferenceManagementZones_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_InterferenceManagementZones_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_InterferenceManagementZones_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_InterferenceManagementZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_InterferenceManagementZones_specs_1 = { + sizeof(struct Vanetza_ITS2_InterferenceManagementZones), + offsetof(struct Vanetza_ITS2_InterferenceManagementZones, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZones = { + "InterferenceManagementZones", + "InterferenceManagementZones", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_InterferenceManagementZones_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_InterferenceManagementZones_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_InterferenceManagementZones_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_InterferenceManagementZones_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_InterferenceManagementZones_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/InterferenceManagementZones.h b/vanetza/asn1/its/r2/InterferenceManagementZones.h new file mode 100644 index 000000000..e8342474f --- /dev/null +++ b/vanetza/asn1/its/r2/InterferenceManagementZones.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_InterferenceManagementZones_H_ +#define _Vanetza_ITS2_InterferenceManagementZones_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 Vanetza_ITS2_InterferenceManagementZone; + +/* Vanetza_ITS2_InterferenceManagementZones */ +typedef struct Vanetza_ITS2_InterferenceManagementZones { + A_SEQUENCE_OF(struct Vanetza_ITS2_InterferenceManagementZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_InterferenceManagementZones_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_InterferenceManagementZones; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "InterferenceManagementZone.h" + +#endif /* _Vanetza_ITS2_InterferenceManagementZones_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/IntersectionReferenceId.c b/vanetza/asn1/its/r2/IntersectionReferenceId.c new file mode 100644 index 000000000..8c8bab625 --- /dev/null +++ b/vanetza/asn1/its/r2/IntersectionReferenceId.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "IntersectionReferenceId.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_IntersectionReferenceId_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_IntersectionReferenceId, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_IntersectionReferenceId, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_Vanetza_ITS2_IntersectionReferenceId_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_IntersectionReferenceId_specs_1 = { + sizeof(struct Vanetza_ITS2_IntersectionReferenceId), + offsetof(struct Vanetza_ITS2_IntersectionReferenceId, _asn_ctx), + asn_MAP_Vanetza_ITS2_IntersectionReferenceId_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_IntersectionReferenceId_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IntersectionReferenceId = { + "IntersectionReferenceId", + "IntersectionReferenceId", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_IntersectionReferenceId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_IntersectionReferenceId_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_IntersectionReferenceId_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/IntersectionReferenceId.h b/vanetza/asn1/its/r2/IntersectionReferenceId.h new file mode 100644 index 000000000..817bd0c0b --- /dev/null +++ b/vanetza/asn1/its/r2/IntersectionReferenceId.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_IntersectionReferenceId_H_ +#define _Vanetza_ITS2_IntersectionReferenceId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier2B.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_IntersectionReferenceId */ +typedef struct Vanetza_ITS2_IntersectionReferenceId { + Vanetza_ITS2_Identifier2B_t *region; /* OPTIONAL */ + Vanetza_ITS2_Identifier2B_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_IntersectionReferenceId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IntersectionReferenceId; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_IntersectionReferenceId_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_IntersectionReferenceId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_IntersectionReferenceId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Iso3833VehicleType.c b/vanetza/asn1/its/r2/Iso3833VehicleType.c new file mode 100644 index 000000000..d02a5c9d2 --- /dev/null +++ b/vanetza/asn1/its/r2/Iso3833VehicleType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Iso3833VehicleType.h" + +int +Vanetza_ITS2_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 <= 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_Vanetza_ITS2_Iso3833VehicleType_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_Vanetza_ITS2_Iso3833VehicleType_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_Vanetza_ITS2_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Iso3833VehicleType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Iso3833VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Iso3833VehicleType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Iso3833VehicleType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Iso3833VehicleType.h b/vanetza/asn1/its/r2/Iso3833VehicleType.h new file mode 100644 index 000000000..9683f167d --- /dev/null +++ b/vanetza/asn1/its/r2/Iso3833VehicleType.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Iso3833VehicleType_H_ +#define _Vanetza_ITS2_Iso3833VehicleType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Iso3833VehicleType { + Vanetza_ITS2_Iso3833VehicleType_passengerCar = 0, + Vanetza_ITS2_Iso3833VehicleType_saloon = 1, + Vanetza_ITS2_Iso3833VehicleType_convertibleSaloon = 2, + Vanetza_ITS2_Iso3833VehicleType_pullmanSaloon = 3, + Vanetza_ITS2_Iso3833VehicleType_stationWagon = 4, + Vanetza_ITS2_Iso3833VehicleType_truckStationWagon = 5, + Vanetza_ITS2_Iso3833VehicleType_coupe = 6, + Vanetza_ITS2_Iso3833VehicleType_convertible = 7, + Vanetza_ITS2_Iso3833VehicleType_multipurposePassengerCar = 8, + Vanetza_ITS2_Iso3833VehicleType_forwardControlPassengerCar = 9, + Vanetza_ITS2_Iso3833VehicleType_specialPassengerCar = 10, + Vanetza_ITS2_Iso3833VehicleType_bus = 11, + Vanetza_ITS2_Iso3833VehicleType_minibus = 12, + Vanetza_ITS2_Iso3833VehicleType_urbanBus = 13, + Vanetza_ITS2_Iso3833VehicleType_interurbanCoach = 14, + Vanetza_ITS2_Iso3833VehicleType_longDistanceCoach = 15, + Vanetza_ITS2_Iso3833VehicleType_articulatedBus = 16, + Vanetza_ITS2_Iso3833VehicleType_trolleyBus = 17, + Vanetza_ITS2_Iso3833VehicleType_specialBus = 18, + Vanetza_ITS2_Iso3833VehicleType_commercialVehicle = 19, + Vanetza_ITS2_Iso3833VehicleType_specialCommercialVehicle = 20, + Vanetza_ITS2_Iso3833VehicleType_specialVehicle = 21, + Vanetza_ITS2_Iso3833VehicleType_trailingTowingVehicle = 22, + Vanetza_ITS2_Iso3833VehicleType_semiTrailerTowingVehicle = 23, + Vanetza_ITS2_Iso3833VehicleType_trailer = 24, + Vanetza_ITS2_Iso3833VehicleType_busTrailer = 25, + Vanetza_ITS2_Iso3833VehicleType_generalPurposeTrailer = 26, + Vanetza_ITS2_Iso3833VehicleType_caravan = 27, + Vanetza_ITS2_Iso3833VehicleType_specialTrailer = 28, + Vanetza_ITS2_Iso3833VehicleType_semiTrailer = 29, + Vanetza_ITS2_Iso3833VehicleType_busSemiTrailer = 30, + Vanetza_ITS2_Iso3833VehicleType_generalPurposeSemiTrailer = 31, + Vanetza_ITS2_Iso3833VehicleType_specialSemiTrailer = 32, + Vanetza_ITS2_Iso3833VehicleType_roadTrain = 33, + Vanetza_ITS2_Iso3833VehicleType_passengerRoadTrain = 34, + Vanetza_ITS2_Iso3833VehicleType_articulatedRoadTrain = 35, + Vanetza_ITS2_Iso3833VehicleType_doubleRoadTrain = 36, + Vanetza_ITS2_Iso3833VehicleType_compositeRoadTrain = 37, + Vanetza_ITS2_Iso3833VehicleType_specialRoadTrain = 38, + Vanetza_ITS2_Iso3833VehicleType_moped = 39, + Vanetza_ITS2_Iso3833VehicleType_motorCycle = 40 +} e_Vanetza_ITS2_Iso3833VehicleType; + +/* Vanetza_ITS2_Iso3833VehicleType */ +typedef long Vanetza_ITS2_Iso3833VehicleType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Iso3833VehicleType; +asn_struct_free_f Vanetza_ITS2_Iso3833VehicleType_free; +asn_struct_print_f Vanetza_ITS2_Iso3833VehicleType_print; +asn_constr_check_f Vanetza_ITS2_Iso3833VehicleType_constraint; +ber_type_decoder_f Vanetza_ITS2_Iso3833VehicleType_decode_ber; +der_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_der; +xer_type_decoder_f Vanetza_ITS2_Iso3833VehicleType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Iso3833VehicleType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_oer; +per_type_decoder_f Vanetza_ITS2_Iso3833VehicleType_decode_uper; +per_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_uper; +per_type_decoder_f Vanetza_ITS2_Iso3833VehicleType_decode_aper; +per_type_encoder_f Vanetza_ITS2_Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Iso3833VehicleType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/IssuerIdentifier.c b/vanetza/asn1/its/r2/IssuerIdentifier.c new file mode 100644 index 000000000..711bd3e69 --- /dev/null +++ b/vanetza/asn1/its/r2/IssuerIdentifier.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "IssuerIdentifier.h" + +int +Vanetza_ITS2_IssuerIdentifier_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 <= 16383L)) { + /* 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_Vanetza_ITS2_IssuerIdentifier_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -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_Vanetza_ITS2_IssuerIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { 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_Vanetza_ITS2_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IssuerIdentifier_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_IssuerIdentifier_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_IssuerIdentifier_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_IssuerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/IssuerIdentifier.h b/vanetza/asn1/its/r2/IssuerIdentifier.h new file mode 100644 index 000000000..1ca1d7b2e --- /dev/null +++ b/vanetza/asn1/its/r2/IssuerIdentifier.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_IssuerIdentifier_H_ +#define _Vanetza_ITS2_IssuerIdentifier_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_IssuerIdentifier */ +typedef long Vanetza_ITS2_IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IssuerIdentifier; +asn_struct_free_f Vanetza_ITS2_IssuerIdentifier_free; +asn_struct_print_f Vanetza_ITS2_IssuerIdentifier_print; +asn_constr_check_f Vanetza_ITS2_IssuerIdentifier_constraint; +ber_type_decoder_f Vanetza_ITS2_IssuerIdentifier_decode_ber; +der_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_der; +xer_type_decoder_f Vanetza_ITS2_IssuerIdentifier_decode_xer; +xer_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_xer; +jer_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_jer; +oer_type_decoder_f Vanetza_ITS2_IssuerIdentifier_decode_oer; +oer_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_oer; +per_type_decoder_f Vanetza_ITS2_IssuerIdentifier_decode_uper; +per_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_uper; +per_type_decoder_f Vanetza_ITS2_IssuerIdentifier_decode_aper; +per_type_encoder_f Vanetza_ITS2_IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_IssuerIdentifier_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ItineraryPath.c b/vanetza/asn1/its/r2/ItineraryPath.c new file mode 100644 index 000000000..1dafe082d --- /dev/null +++ b/vanetza/asn1/its/r2/ItineraryPath.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ItineraryPath.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_ItineraryPath_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..40)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ItineraryPath_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 40 } /* (SIZE(1..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ItineraryPath_specs_1 = { + sizeof(struct Vanetza_ITS2_ItineraryPath), + offsetof(struct Vanetza_ITS2_ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ItineraryPath_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ItineraryPath_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ItineraryPath_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ItineraryPath.h b/vanetza/asn1/its/r2/ItineraryPath.h new file mode 100644 index 000000000..ba79987c3 --- /dev/null +++ b/vanetza/asn1/its/r2/ItineraryPath.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ItineraryPath_H_ +#define _Vanetza_ITS2_ItineraryPath_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 Vanetza_ITS2_ReferencePosition; + +/* Vanetza_ITS2_ItineraryPath */ +typedef struct Vanetza_ITS2_ItineraryPath { + A_SEQUENCE_OF(struct Vanetza_ITS2_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ItineraryPath; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ItineraryPath_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ItineraryPath_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ItineraryPath_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ReferencePosition.h" + +#endif /* _Vanetza_ITS2_ItineraryPath_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ItsPduHeader.c b/vanetza/asn1/its/r2/ItsPduHeader.c new file mode 100644 index 000000000..acab4f179 --- /dev/null +++ b/vanetza/asn1/its/r2/ItsPduHeader.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ItsPduHeader.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ItsPduHeader, protocolVersion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_OrdinalNumber1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ItsPduHeader, messageId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MessageId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ItsPduHeader, stationId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationId" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ItsPduHeader_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protocolVersion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messageId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* stationId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ItsPduHeader_specs_1 = { + sizeof(struct Vanetza_ITS2_ItsPduHeader), + offsetof(struct Vanetza_ITS2_ItsPduHeader, _asn_ctx), + asn_MAP_Vanetza_ITS2_ItsPduHeader_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_Vanetza_ITS2_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ItsPduHeader_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ItsPduHeader_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ItsPduHeader.h b/vanetza/asn1/its/r2/ItsPduHeader.h new file mode 100644 index 000000000..69595172e --- /dev/null +++ b/vanetza/asn1/its/r2/ItsPduHeader.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ItsPduHeader_H_ +#define _Vanetza_ITS2_ItsPduHeader_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OrdinalNumber1B.h" +#include "MessageId.h" +#include "StationId.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ItsPduHeader */ +typedef struct Vanetza_ITS2_ItsPduHeader { + Vanetza_ITS2_OrdinalNumber1B_t protocolVersion; + Vanetza_ITS2_MessageId_t messageId; + Vanetza_ITS2_StationId_t stationId; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ItsPduHeader_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/IviIdentificationNumber.c b/vanetza/asn1/its/r2/IviIdentificationNumber.c new file mode 100644 index 000000000..600415531 --- /dev/null +++ b/vanetza/asn1/its/r2/IviIdentificationNumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "IviIdentificationNumber.h" + +int +Vanetza_ITS2_IviIdentificationNumber_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 <= 32767L) || (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_Vanetza_ITS2_IviIdentificationNumber_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_Vanetza_ITS2_IviIdentificationNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 23, -1, 1, 8388607 } /* (1..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_Vanetza_ITS2_IviIdentificationNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IviIdentificationNumber = { + "IviIdentificationNumber", + "IviIdentificationNumber", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IviIdentificationNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_IviIdentificationNumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_IviIdentificationNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_IviIdentificationNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/IviIdentificationNumber.h b/vanetza/asn1/its/r2/IviIdentificationNumber.h new file mode 100644 index 000000000..f89add08b --- /dev/null +++ b/vanetza/asn1/its/r2/IviIdentificationNumber.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_IviIdentificationNumber_H_ +#define _Vanetza_ITS2_IviIdentificationNumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_IviIdentificationNumber */ +typedef long Vanetza_ITS2_IviIdentificationNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_IviIdentificationNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IviIdentificationNumber; +asn_struct_free_f Vanetza_ITS2_IviIdentificationNumber_free; +asn_struct_print_f Vanetza_ITS2_IviIdentificationNumber_print; +asn_constr_check_f Vanetza_ITS2_IviIdentificationNumber_constraint; +ber_type_decoder_f Vanetza_ITS2_IviIdentificationNumber_decode_ber; +der_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_der; +xer_type_decoder_f Vanetza_ITS2_IviIdentificationNumber_decode_xer; +xer_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_xer; +jer_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_jer; +oer_type_decoder_f Vanetza_ITS2_IviIdentificationNumber_decode_oer; +oer_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_oer; +per_type_decoder_f Vanetza_ITS2_IviIdentificationNumber_decode_uper; +per_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_uper; +per_type_decoder_f Vanetza_ITS2_IviIdentificationNumber_decode_aper; +per_type_encoder_f Vanetza_ITS2_IviIdentificationNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_IviIdentificationNumber_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/IvimReference.c b/vanetza/asn1/its/r2/IvimReference.c new file mode 100644 index 000000000..5c08c4b80 --- /dev/null +++ b/vanetza/asn1/its/r2/IvimReference.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "IvimReference.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_IvimReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_IvimReference, serviceProviderId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Provider, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "serviceProviderId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_IvimReference, iviIdentificationNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_IviIdentificationNumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "iviIdentificationNumber" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_IvimReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_IvimReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* serviceProviderId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iviIdentificationNumber */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_IvimReference_specs_1 = { + sizeof(struct Vanetza_ITS2_IvimReference), + offsetof(struct Vanetza_ITS2_IvimReference, _asn_ctx), + asn_MAP_Vanetza_ITS2_IvimReference_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_Vanetza_ITS2_IvimReference = { + "IvimReference", + "IvimReference", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_IvimReference_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_IvimReference_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IvimReference_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_IvimReference_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_IvimReference_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IvimReference_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_IvimReference_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_IvimReference_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/IvimReference.h b/vanetza/asn1/its/r2/IvimReference.h new file mode 100644 index 000000000..0e5aa9bc2 --- /dev/null +++ b/vanetza/asn1/its/r2/IvimReference.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_IvimReference_H_ +#define _Vanetza_ITS2_IvimReference_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Provider.h" +#include "IviIdentificationNumber.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_IvimReference */ +typedef struct Vanetza_ITS2_IvimReference { + Vanetza_ITS2_Provider_t serviceProviderId; + Vanetza_ITS2_IviIdentificationNumber_t iviIdentificationNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_IvimReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IvimReference; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_IvimReference_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_IvimReference_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_IvimReference_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/IvimReferences.c b/vanetza/asn1/its/r2/IvimReferences.c new file mode 100644 index 000000000..e83f1963e --- /dev/null +++ b/vanetza/asn1/its/r2/IvimReferences.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "IvimReferences.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_IvimReferences_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_Vanetza_ITS2_IvimReferences_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_IvimReferences_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_IvimReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_IvimReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_IvimReferences_specs_1 = { + sizeof(struct Vanetza_ITS2_IvimReferences), + offsetof(struct Vanetza_ITS2_IvimReferences, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IvimReferences = { + "IvimReferences", + "IvimReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_IvimReferences_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_IvimReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IvimReferences_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_IvimReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_IvimReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_IvimReferences_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_IvimReferences_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_IvimReferences_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_IvimReferences_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_IvimReferences_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/IvimReferences.h b/vanetza/asn1/its/r2/IvimReferences.h new file mode 100644 index 000000000..553c59136 --- /dev/null +++ b/vanetza/asn1/its/r2/IvimReferences.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_IvimReferences_H_ +#define _Vanetza_ITS2_IvimReferences_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 Vanetza_ITS2_IvimReference; + +/* Vanetza_ITS2_IvimReferences */ +typedef struct Vanetza_ITS2_IvimReferences { + A_SEQUENCE_OF(struct Vanetza_ITS2_IvimReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_IvimReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_IvimReferences; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_IvimReferences_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_IvimReferences_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_IvimReferences_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "IvimReference.h" + +#endif /* _Vanetza_ITS2_IvimReferences_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LanePosition.c b/vanetza/asn1/its/r2/LanePosition.c new file mode 100644 index 000000000..3baf46fc7 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePosition.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LanePosition.h" + +int +Vanetza_ITS2_LanePosition_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 <= 14L)) { + /* 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_Vanetza_ITS2_LanePosition_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-1..14) */, + -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_Vanetza_ITS2_LanePosition_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, -1, 14 } /* (-1..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 ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LanePosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LanePosition_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LanePosition_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LanePosition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LanePosition.h b/vanetza/asn1/its/r2/LanePosition.h new file mode 100644 index 000000000..81097f452 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePosition.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LanePosition_H_ +#define _Vanetza_ITS2_LanePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LanePosition { + Vanetza_ITS2_LanePosition_offTheRoad = -1, + Vanetza_ITS2_LanePosition_innerHardShoulder = 0, + Vanetza_ITS2_LanePosition_outerHardShoulder = 14 +} e_Vanetza_ITS2_LanePosition; + +/* Vanetza_ITS2_LanePosition */ +typedef long Vanetza_ITS2_LanePosition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LanePosition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePosition; +asn_struct_free_f Vanetza_ITS2_LanePosition_free; +asn_struct_print_f Vanetza_ITS2_LanePosition_print; +asn_constr_check_f Vanetza_ITS2_LanePosition_constraint; +ber_type_decoder_f Vanetza_ITS2_LanePosition_decode_ber; +der_type_encoder_f Vanetza_ITS2_LanePosition_encode_der; +xer_type_decoder_f Vanetza_ITS2_LanePosition_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LanePosition_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LanePosition_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LanePosition_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LanePosition_encode_oer; +per_type_decoder_f Vanetza_ITS2_LanePosition_decode_uper; +per_type_encoder_f Vanetza_ITS2_LanePosition_encode_uper; +per_type_decoder_f Vanetza_ITS2_LanePosition_decode_aper; +per_type_encoder_f Vanetza_ITS2_LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LanePosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LanePositionAndType.c b/vanetza/asn1/its/r2/LanePositionAndType.c new file mode 100644 index 000000000..7697b6093 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionAndType.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LanePositionAndType.h" + +static int asn_DFL_3_cmp_0(const void *sptr) { + const Vanetza_ITS2_LaneType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + Vanetza_ITS2_LaneType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_4_cmp_0(const void *sptr) { + const Vanetza_ITS2_Direction_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_4_set_0(void **sptr) { + Vanetza_ITS2_Direction_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionAndType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionAndType, transversalPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transversalPosition" + }, + { ATF_NOFLAGS, 2, offsetof(struct Vanetza_ITS2_LanePositionAndType, laneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LaneType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "laneType" + }, + { ATF_NOFLAGS, 1, offsetof(struct Vanetza_ITS2_LanePositionAndType, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Direction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_4_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_4_set_0, /* Set DEFAULT 0 */ + "direction" + }, +}; +static const int asn_MAP_Vanetza_ITS2_LanePositionAndType_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LanePositionAndType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transversalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* direction */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionAndType_specs_1 = { + sizeof(struct Vanetza_ITS2_LanePositionAndType), + offsetof(struct Vanetza_ITS2_LanePositionAndType, _asn_ctx), + asn_MAP_Vanetza_ITS2_LanePositionAndType_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_LanePositionAndType_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionAndType = { + "LanePositionAndType", + "LanePositionAndType", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LanePositionAndType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePositionAndType_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LanePositionAndType_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LanePositionAndType_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LanePositionAndType.h b/vanetza/asn1/its/r2/LanePositionAndType.h new file mode 100644 index 000000000..0781b3602 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionAndType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LanePositionAndType_H_ +#define _Vanetza_ITS2_LanePositionAndType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePosition.h" +#include "LaneType.h" +#include "Direction.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LanePositionAndType */ +typedef struct Vanetza_ITS2_LanePositionAndType { + Vanetza_ITS2_LanePosition_t transversalPosition; + Vanetza_ITS2_LaneType_t laneType; /* DEFAULT 0 */ + Vanetza_ITS2_Direction_t direction; /* DEFAULT 0 */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LanePositionAndType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionAndType; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionAndType_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionAndType_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LanePositionAndType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LanePositionOptions.c b/vanetza/asn1/its/r2/LanePositionOptions.c new file mode 100644 index 000000000..0fea752f4 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionOptions.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LanePositionOptions.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_LanePositionOptions_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_Vanetza_ITS2_LanePositionOptions_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionOptions_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionOptions, choice.simplelanePosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "simplelanePosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionOptions, choice.simpleLaneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LaneType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "simpleLaneType" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionOptions, choice.detailedlanePosition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePositionAndType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detailedlanePosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionOptions, choice.lanePositionWithLateralDetails), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lanePositionWithLateralDetails" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionOptions, choice.trafficIslandPosition), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficIslandPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trafficIslandPosition" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LanePositionOptions_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* simplelanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* simpleLaneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* detailedlanePosition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lanePositionWithLateralDetails */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* trafficIslandPosition */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionOptions_specs_1 = { + sizeof(struct Vanetza_ITS2_LanePositionOptions), + offsetof(struct Vanetza_ITS2_LanePositionOptions, _asn_ctx), + offsetof(struct Vanetza_ITS2_LanePositionOptions, present), + sizeof(((struct Vanetza_ITS2_LanePositionOptions *)0)->present), + asn_MAP_Vanetza_ITS2_LanePositionOptions_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + 5 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionOptions = { + "LanePositionOptions", + "LanePositionOptions", + &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_Vanetza_ITS2_LanePositionOptions_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LanePositionOptions_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_LanePositionOptions_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LanePositionOptions_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LanePositionOptions.h b/vanetza/asn1/its/r2/LanePositionOptions.h new file mode 100644 index 000000000..6e20ed419 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionOptions.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LanePositionOptions_H_ +#define _Vanetza_ITS2_LanePositionOptions_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePosition.h" +#include "LaneType.h" +#include "LanePositionAndType.h" +#include "LanePositionWithLateralDetails.h" +#include "TrafficIslandPosition.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LanePositionOptions_PR { + Vanetza_ITS2_LanePositionOptions_PR_NOTHING, /* No components present */ + Vanetza_ITS2_LanePositionOptions_PR_simplelanePosition, + Vanetza_ITS2_LanePositionOptions_PR_simpleLaneType, + Vanetza_ITS2_LanePositionOptions_PR_detailedlanePosition, + Vanetza_ITS2_LanePositionOptions_PR_lanePositionWithLateralDetails, + Vanetza_ITS2_LanePositionOptions_PR_trafficIslandPosition + /* Extensions may appear below */ + +} Vanetza_ITS2_LanePositionOptions_PR; + +/* Vanetza_ITS2_LanePositionOptions */ +typedef struct Vanetza_ITS2_LanePositionOptions { + Vanetza_ITS2_LanePositionOptions_PR present; + union Vanetza_ITS2_LanePositionOptions_u { + Vanetza_ITS2_LanePosition_t simplelanePosition; + Vanetza_ITS2_LaneType_t simpleLaneType; + Vanetza_ITS2_LanePositionAndType_t detailedlanePosition; + Vanetza_ITS2_LanePositionWithLateralDetails_t lanePositionWithLateralDetails; + Vanetza_ITS2_TrafficIslandPosition_t trafficIslandPosition; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LanePositionOptions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionOptions; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionOptions_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionOptions_1[5]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LanePositionOptions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LanePositionOptions_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LanePositionWithLateralDetails.c b/vanetza/asn1/its/r2/LanePositionWithLateralDetails.c new file mode 100644 index 000000000..281574178 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionWithLateralDetails.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LanePositionWithLateralDetails.h" + +static int asn_DFL_3_cmp_0(const void *sptr) { + const Vanetza_ITS2_LaneType_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_3_set_0(void **sptr) { + Vanetza_ITS2_LaneType_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +static int asn_DFL_4_cmp_0(const void *sptr) { + const Vanetza_ITS2_Direction_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 0 */ + return (*st != 0); +} +static int asn_DFL_4_set_0(void **sptr) { + Vanetza_ITS2_Direction_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 0 */ + *st = 0; + return 0; +} +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionWithLateralDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, transversalPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "transversalPosition" + }, + { ATF_NOFLAGS, 2, offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, laneType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LaneType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_3_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_3_set_0, /* Set DEFAULT 0 */ + "laneType" + }, + { ATF_NOFLAGS, 1, offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, direction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Direction, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_4_cmp_0, /* Compare DEFAULT 0 */ + &asn_DFL_4_set_0, /* Set DEFAULT 0 */ + "direction" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, distanceToLeftBorder), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength9b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distanceToLeftBorder" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, distanceToRightBorder), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength9b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "distanceToRightBorder" + }, +}; +static const int asn_MAP_Vanetza_ITS2_LanePositionWithLateralDetails_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LanePositionWithLateralDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transversalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* direction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* distanceToLeftBorder */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* distanceToRightBorder */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionWithLateralDetails_specs_1 = { + sizeof(struct Vanetza_ITS2_LanePositionWithLateralDetails), + offsetof(struct Vanetza_ITS2_LanePositionWithLateralDetails, _asn_ctx), + asn_MAP_Vanetza_ITS2_LanePositionWithLateralDetails_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_LanePositionWithLateralDetails_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails = { + "LanePositionWithLateralDetails", + "LanePositionWithLateralDetails", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LanePositionWithLateralDetails_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LanePositionWithLateralDetails_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LanePositionWithLateralDetails.h b/vanetza/asn1/its/r2/LanePositionWithLateralDetails.h new file mode 100644 index 000000000..0404f95a4 --- /dev/null +++ b/vanetza/asn1/its/r2/LanePositionWithLateralDetails.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LanePositionWithLateralDetails_H_ +#define _Vanetza_ITS2_LanePositionWithLateralDetails_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePosition.h" +#include "LaneType.h" +#include "Direction.h" +#include "StandardLength9b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LanePositionWithLateralDetails */ +typedef struct Vanetza_ITS2_LanePositionWithLateralDetails { + Vanetza_ITS2_LanePosition_t transversalPosition; + Vanetza_ITS2_LaneType_t laneType; /* DEFAULT 0 */ + Vanetza_ITS2_Direction_t direction; /* DEFAULT 0 */ + Vanetza_ITS2_StandardLength9b_t distanceToLeftBorder; + Vanetza_ITS2_StandardLength9b_t distanceToRightBorder; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LanePositionWithLateralDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LanePositionWithLateralDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LanePositionWithLateralDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LanePositionWithLateralDetails_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LanePositionWithLateralDetails_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LaneType.c b/vanetza/asn1/its/r2/LaneType.c new file mode 100644 index 000000000..9f0e7501d --- /dev/null +++ b/vanetza/asn1/its/r2/LaneType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LaneType.h" + +int +Vanetza_ITS2_LaneType_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_Vanetza_ITS2_LaneType_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_Vanetza_ITS2_LaneType_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_Vanetza_ITS2_LaneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LaneType = { + "LaneType", + "LaneType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LaneType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LaneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LaneType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LaneType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LaneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LaneType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LaneType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LaneType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LaneType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LaneType.h b/vanetza/asn1/its/r2/LaneType.h new file mode 100644 index 000000000..0f6a2c3aa --- /dev/null +++ b/vanetza/asn1/its/r2/LaneType.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LaneType_H_ +#define _Vanetza_ITS2_LaneType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LaneType { + Vanetza_ITS2_LaneType_traffic = 0, + Vanetza_ITS2_LaneType_through = 1, + Vanetza_ITS2_LaneType_reversible = 2, + Vanetza_ITS2_LaneType_acceleration = 3, + Vanetza_ITS2_LaneType_deceleration = 4, + Vanetza_ITS2_LaneType_leftHandTurning = 5, + Vanetza_ITS2_LaneType_rightHandTurning = 6, + Vanetza_ITS2_LaneType_dedicatedVehicle = 7, + Vanetza_ITS2_LaneType_bus = 8, + Vanetza_ITS2_LaneType_taxi = 9, + Vanetza_ITS2_LaneType_hov = 10, + Vanetza_ITS2_LaneType_hot = 11, + Vanetza_ITS2_LaneType_pedestrian = 12, + Vanetza_ITS2_LaneType_cycleLane = 13, + Vanetza_ITS2_LaneType_median = 14, + Vanetza_ITS2_LaneType_striping = 15, + Vanetza_ITS2_LaneType_trackedVehicle = 16, + Vanetza_ITS2_LaneType_parking = 17, + Vanetza_ITS2_LaneType_emergency = 18, + Vanetza_ITS2_LaneType_verge = 19, + Vanetza_ITS2_LaneType_minimumRiskManoeuvre = 20, + Vanetza_ITS2_LaneType_exclusiveCycleLane = 21, + Vanetza_ITS2_LaneType_unknown = 31 +} e_Vanetza_ITS2_LaneType; + +/* Vanetza_ITS2_LaneType */ +typedef long Vanetza_ITS2_LaneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LaneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LaneType; +asn_struct_free_f Vanetza_ITS2_LaneType_free; +asn_struct_print_f Vanetza_ITS2_LaneType_print; +asn_constr_check_f Vanetza_ITS2_LaneType_constraint; +ber_type_decoder_f Vanetza_ITS2_LaneType_decode_ber; +der_type_encoder_f Vanetza_ITS2_LaneType_encode_der; +xer_type_decoder_f Vanetza_ITS2_LaneType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LaneType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LaneType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LaneType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LaneType_encode_oer; +per_type_decoder_f Vanetza_ITS2_LaneType_decode_uper; +per_type_encoder_f Vanetza_ITS2_LaneType_encode_uper; +per_type_decoder_f Vanetza_ITS2_LaneType_decode_aper; +per_type_encoder_f Vanetza_ITS2_LaneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LaneType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LaneWidth.c b/vanetza/asn1/its/r2/LaneWidth.c new file mode 100644 index 000000000..c9f65b991 --- /dev/null +++ b/vanetza/asn1/its/r2/LaneWidth.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LaneWidth.h" + +int +Vanetza_ITS2_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 <= 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_Vanetza_ITS2_LaneWidth_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_Vanetza_ITS2_LaneWidth_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_Vanetza_ITS2_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LaneWidth_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LaneWidth_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LaneWidth_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LaneWidth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LaneWidth_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LaneWidth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LaneWidth.h b/vanetza/asn1/its/r2/LaneWidth.h new file mode 100644 index 000000000..68752070f --- /dev/null +++ b/vanetza/asn1/its/r2/LaneWidth.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LaneWidth_H_ +#define _Vanetza_ITS2_LaneWidth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LaneWidth */ +typedef long Vanetza_ITS2_LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LaneWidth; +asn_struct_free_f Vanetza_ITS2_LaneWidth_free; +asn_struct_print_f Vanetza_ITS2_LaneWidth_print; +asn_constr_check_f Vanetza_ITS2_LaneWidth_constraint; +ber_type_decoder_f Vanetza_ITS2_LaneWidth_decode_ber; +der_type_encoder_f Vanetza_ITS2_LaneWidth_encode_der; +xer_type_decoder_f Vanetza_ITS2_LaneWidth_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LaneWidth_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LaneWidth_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LaneWidth_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LaneWidth_encode_oer; +per_type_decoder_f Vanetza_ITS2_LaneWidth_decode_uper; +per_type_encoder_f Vanetza_ITS2_LaneWidth_encode_uper; +per_type_decoder_f Vanetza_ITS2_LaneWidth_decode_aper; +per_type_encoder_f Vanetza_ITS2_LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LaneWidth_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LateralAcceleration.c b/vanetza/asn1/its/r2/LateralAcceleration.c new file mode 100644 index 000000000..a237f7083 --- /dev/null +++ b/vanetza/asn1/its/r2/LateralAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LateralAccelerationValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lateralAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lateralAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LateralAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateralAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateralAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LateralAcceleration_specs_1 = { + sizeof(struct Vanetza_ITS2_LateralAcceleration), + offsetof(struct Vanetza_ITS2_LateralAcceleration, _asn_ctx), + asn_MAP_Vanetza_ITS2_LateralAcceleration_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_Vanetza_ITS2_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LateralAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LateralAcceleration_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LateralAcceleration.h b/vanetza/asn1/its/r2/LateralAcceleration.h new file mode 100644 index 000000000..88827d771 --- /dev/null +++ b/vanetza/asn1/its/r2/LateralAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LateralAcceleration_H_ +#define _Vanetza_ITS2_LateralAcceleration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LateralAccelerationValue.h" +#include "AccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LateralAcceleration */ +typedef struct Vanetza_ITS2_LateralAcceleration { + Vanetza_ITS2_LateralAccelerationValue_t lateralAccelerationValue; + Vanetza_ITS2_AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LateralAcceleration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LateralAccelerationValue.c b/vanetza/asn1/its/r2/LateralAccelerationValue.c new file mode 100644 index 000000000..4fa9d684e --- /dev/null +++ b/vanetza/asn1/its/r2/LateralAccelerationValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LateralAccelerationValue.h" + +int +Vanetza_ITS2_LateralAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_Vanetza_ITS2_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -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_Vanetza_ITS2_LateralAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_Vanetza_ITS2_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LateralAccelerationValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LateralAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LateralAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LateralAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LateralAccelerationValue.h b/vanetza/asn1/its/r2/LateralAccelerationValue.h new file mode 100644 index 000000000..cc5d06373 --- /dev/null +++ b/vanetza/asn1/its/r2/LateralAccelerationValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LateralAccelerationValue_H_ +#define _Vanetza_ITS2_LateralAccelerationValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LateralAccelerationValue { + Vanetza_ITS2_LateralAccelerationValue_negativeOutOfRange = -160, + Vanetza_ITS2_LateralAccelerationValue_positiveOutOfRange = 160, + Vanetza_ITS2_LateralAccelerationValue_unavailable = 161 +} e_Vanetza_ITS2_LateralAccelerationValue; + +/* Vanetza_ITS2_LateralAccelerationValue */ +typedef long Vanetza_ITS2_LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LateralAccelerationValue; +asn_struct_free_f Vanetza_ITS2_LateralAccelerationValue_free; +asn_struct_print_f Vanetza_ITS2_LateralAccelerationValue_print; +asn_constr_check_f Vanetza_ITS2_LateralAccelerationValue_constraint; +ber_type_decoder_f Vanetza_ITS2_LateralAccelerationValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_LateralAccelerationValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LateralAccelerationValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_LateralAccelerationValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_LateralAccelerationValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LateralAccelerationValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Latitude.c b/vanetza/asn1/its/r2/Latitude.c new file mode 100644 index 000000000..665109351 --- /dev/null +++ b/vanetza/asn1/its/r2/Latitude.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Latitude.h" + +int +Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Latitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Latitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Latitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Latitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Latitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Latitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Latitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Latitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Latitude.h b/vanetza/asn1/its/r2/Latitude.h new file mode 100644 index 000000000..744549d44 --- /dev/null +++ b/vanetza/asn1/its/r2/Latitude.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Latitude_H_ +#define _Vanetza_ITS2_Latitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Latitude { + Vanetza_ITS2_Latitude_unavailable = 900000001 +} e_Vanetza_ITS2_Latitude; + +/* Vanetza_ITS2_Latitude */ +typedef long Vanetza_ITS2_Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Latitude; +asn_struct_free_f Vanetza_ITS2_Latitude_free; +asn_struct_print_f Vanetza_ITS2_Latitude_print; +asn_constr_check_f Vanetza_ITS2_Latitude_constraint; +ber_type_decoder_f Vanetza_ITS2_Latitude_decode_ber; +der_type_encoder_f Vanetza_ITS2_Latitude_encode_der; +xer_type_decoder_f Vanetza_ITS2_Latitude_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Latitude_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Latitude_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Latitude_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Latitude_encode_oer; +per_type_decoder_f Vanetza_ITS2_Latitude_decode_uper; +per_type_encoder_f Vanetza_ITS2_Latitude_encode_uper; +per_type_decoder_f Vanetza_ITS2_Latitude_decode_aper; +per_type_encoder_f Vanetza_ITS2_Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Latitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LightBarSirenInUse.c b/vanetza/asn1/its/r2/LightBarSirenInUse.c new file mode 100644 index 000000000..e11bd14c5 --- /dev/null +++ b/vanetza/asn1/its/r2/LightBarSirenInUse.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LightBarSirenInUse.h" + +int +Vanetza_ITS2_LightBarSirenInUse_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_Vanetza_ITS2_LightBarSirenInUse_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_Vanetza_ITS2_LightBarSirenInUse_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_LightBarSirenInUse_constr_1 CC_NOTUSED = { + 2}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LightBarSirenInUse_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LightBarSirenInUse_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LightBarSirenInUse_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_LightBarSirenInUse_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LightBarSirenInUse_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LightBarSirenInUse.h b/vanetza/asn1/its/r2/LightBarSirenInUse.h new file mode 100644 index 000000000..3dd7cbf64 --- /dev/null +++ b/vanetza/asn1/its/r2/LightBarSirenInUse.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LightBarSirenInUse_H_ +#define _Vanetza_ITS2_LightBarSirenInUse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LightBarSirenInUse { + Vanetza_ITS2_LightBarSirenInUse_lightBarActivated = 0, + Vanetza_ITS2_LightBarSirenInUse_sirenActivated = 1 +} e_Vanetza_ITS2_LightBarSirenInUse; + +/* Vanetza_ITS2_LightBarSirenInUse */ +typedef BIT_STRING_t Vanetza_ITS2_LightBarSirenInUse_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LightBarSirenInUse_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LightBarSirenInUse; +asn_struct_free_f Vanetza_ITS2_LightBarSirenInUse_free; +asn_struct_print_f Vanetza_ITS2_LightBarSirenInUse_print; +asn_constr_check_f Vanetza_ITS2_LightBarSirenInUse_constraint; +ber_type_decoder_f Vanetza_ITS2_LightBarSirenInUse_decode_ber; +der_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_der; +xer_type_decoder_f Vanetza_ITS2_LightBarSirenInUse_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LightBarSirenInUse_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_oer; +per_type_decoder_f Vanetza_ITS2_LightBarSirenInUse_decode_uper; +per_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_uper; +per_type_decoder_f Vanetza_ITS2_LightBarSirenInUse_decode_aper; +per_type_encoder_f Vanetza_ITS2_LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LightBarSirenInUse_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LocationContainer.c b/vanetza/asn1/its/r2/LocationContainer.c new file mode 100644 index 000000000..b84ea20aa --- /dev/null +++ b/vanetza/asn1/its/r2/LocationContainer.c @@ -0,0 +1,330 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LocationContainer.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ext1_7[] = { + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, lanePositions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_GeneralizedLanePositions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lanePositions" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, occupiedLanes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "occupiedLanes" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, linkedIvims), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_IvimReferences, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "linkedIvims" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, linkedMapems), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapReferences, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "linkedMapems" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, detectionZonesToSpecifiedEventPoint), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TracesExtended, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZonesToSpecifiedEventPoint" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_LocationContainer__ext1, predictedPaths), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathPredictedList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "predictedPaths" + }, +}; +static const int asn_MAP_Vanetza_ITS2_ext1_oms_7[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePositions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* occupiedLanes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* linkedIvims */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* linkedMapems */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* detectionZonesToSpecifiedEventPoint */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* predictedPaths */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ext1_specs_7 = { + sizeof(struct Vanetza_ITS2_LocationContainer__ext1), + offsetof(struct Vanetza_ITS2_LocationContainer__ext1, _asn_ctx), + asn_MAP_Vanetza_ITS2_ext1_tag2el_7, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_ext1_oms_7, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ext1_tags_7, + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7[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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ext1_7, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ext1_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LocationContainer_1[] = { + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_LocationContainer, eventSpeed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventSpeed" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_LocationContainer, eventPositionHeading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Wgs84Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventPositionHeading" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LocationContainer, detectionZonesToEventPosition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Traces, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "detectionZonesToEventPosition" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_LocationContainer, roadType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadType" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_LocationContainer, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ext1_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_Vanetza_ITS2_LocationContainer_oms_1[] = { 0, 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LocationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LocationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventSpeed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventPositionHeading */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* detectionZonesToEventPosition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LocationContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_LocationContainer), + offsetof(struct Vanetza_ITS2_LocationContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_LocationContainer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_LocationContainer_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LocationContainer = { + "LocationContainer", + "LocationContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LocationContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LocationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LocationContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LocationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LocationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LocationContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LocationContainer_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LocationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LocationContainer.h b/vanetza/asn1/its/r2/LocationContainer.h new file mode 100644 index 000000000..cd4e0fd03 --- /dev/null +++ b/vanetza/asn1/its/r2/LocationContainer.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LocationContainer_H_ +#define _Vanetza_ITS2_LocationContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Traces.h" +#include "RoadType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_Speed; +struct Vanetza_ITS2_Wgs84Angle; +struct Vanetza_ITS2_GeneralizedLanePositions; +struct Vanetza_ITS2_OccupiedLanesWithConfidence; +struct Vanetza_ITS2_IvimReferences; +struct Vanetza_ITS2_MapReferences; +struct Vanetza_ITS2_TracesExtended; +struct Vanetza_ITS2_PathPredictedList; + +/* Vanetza_ITS2_LocationContainer */ +typedef struct Vanetza_ITS2_LocationContainer { + struct Vanetza_ITS2_Speed *eventSpeed; /* OPTIONAL */ + struct Vanetza_ITS2_Wgs84Angle *eventPositionHeading; /* OPTIONAL */ + Vanetza_ITS2_Traces_t detectionZonesToEventPosition; + Vanetza_ITS2_RoadType_t *roadType; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct Vanetza_ITS2_LocationContainer__ext1 { + struct Vanetza_ITS2_GeneralizedLanePositions *lanePositions; /* OPTIONAL */ + struct Vanetza_ITS2_OccupiedLanesWithConfidence *occupiedLanes; /* OPTIONAL */ + struct Vanetza_ITS2_IvimReferences *linkedIvims; /* OPTIONAL */ + struct Vanetza_ITS2_MapReferences *linkedMapems; /* OPTIONAL */ + struct Vanetza_ITS2_TracesExtended *detectionZonesToSpecifiedEventPoint; /* OPTIONAL */ + struct Vanetza_ITS2_PathPredictedList *predictedPaths; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LocationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LocationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LocationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LocationContainer_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Speed.h" +#include "Wgs84Angle.h" +#include "GeneralizedLanePositions.h" +#include "OccupiedLanesWithConfidence.h" +#include "IvimReferences.h" +#include "MapReferences.h" +#include "TracesExtended.h" +#include "PathPredictedList.h" + +#endif /* _Vanetza_ITS2_LocationContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Longitude.c b/vanetza/asn1/its/r2/Longitude.c new file mode 100644 index 000000000..8711386c8 --- /dev/null +++ b/vanetza/asn1/its/r2/Longitude.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Longitude.h" + +int +Vanetza_ITS2_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 >= -1800000000L && 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_Vanetza_ITS2_Longitude_constr_1 CC_NOTUSED = { + { 4, 0 } /* (-1800000000..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_Vanetza_ITS2_Longitude_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 32, -1, -1800000000, 1800000001 } /* (-1800000000..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_Vanetza_ITS2_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Longitude_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Longitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Longitude_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Longitude_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Longitude_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Longitude_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Longitude_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Longitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Longitude.h b/vanetza/asn1/its/r2/Longitude.h new file mode 100644 index 000000000..b3104030f --- /dev/null +++ b/vanetza/asn1/its/r2/Longitude.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Longitude_H_ +#define _Vanetza_ITS2_Longitude_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Longitude { + Vanetza_ITS2_Longitude_valueNotUsed = -1800000000, + Vanetza_ITS2_Longitude_unavailable = 1800000001 +} e_Vanetza_ITS2_Longitude; + +/* Vanetza_ITS2_Longitude */ +typedef long Vanetza_ITS2_Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Longitude; +asn_struct_free_f Vanetza_ITS2_Longitude_free; +asn_struct_print_f Vanetza_ITS2_Longitude_print; +asn_constr_check_f Vanetza_ITS2_Longitude_constraint; +ber_type_decoder_f Vanetza_ITS2_Longitude_decode_ber; +der_type_encoder_f Vanetza_ITS2_Longitude_encode_der; +xer_type_decoder_f Vanetza_ITS2_Longitude_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Longitude_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Longitude_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Longitude_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Longitude_encode_oer; +per_type_decoder_f Vanetza_ITS2_Longitude_decode_uper; +per_type_encoder_f Vanetza_ITS2_Longitude_encode_uper; +per_type_decoder_f Vanetza_ITS2_Longitude_decode_aper; +per_type_encoder_f Vanetza_ITS2_Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Longitude_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LongitudinalAcceleration.c b/vanetza/asn1/its/r2/LongitudinalAcceleration.c new file mode 100644 index 000000000..00ea71a03 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LongitudinalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LongitudinalAcceleration_specs_1 = { + sizeof(struct Vanetza_ITS2_LongitudinalAcceleration), + offsetof(struct Vanetza_ITS2_LongitudinalAcceleration, _asn_ctx), + asn_MAP_Vanetza_ITS2_LongitudinalAcceleration_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_Vanetza_ITS2_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAcceleration_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LongitudinalAcceleration.h b/vanetza/asn1/its/r2/LongitudinalAcceleration.h new file mode 100644 index 000000000..be707100e --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LongitudinalAcceleration_H_ +#define _Vanetza_ITS2_LongitudinalAcceleration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LongitudinalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LongitudinalAcceleration */ +typedef struct Vanetza_ITS2_LongitudinalAcceleration { + Vanetza_ITS2_LongitudinalAccelerationValue_t longitudinalAccelerationValue; + Vanetza_ITS2_AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LongitudinalAcceleration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LongitudinalAccelerationValue.c b/vanetza/asn1/its/r2/LongitudinalAccelerationValue.c new file mode 100644 index 000000000..2b50f6742 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalAccelerationValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LongitudinalAccelerationValue.h" + +int +Vanetza_ITS2_LongitudinalAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_Vanetza_ITS2_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -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_Vanetza_ITS2_LongitudinalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LongitudinalAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LongitudinalAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LongitudinalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LongitudinalAccelerationValue.h b/vanetza/asn1/its/r2/LongitudinalAccelerationValue.h new file mode 100644 index 000000000..af0b0fd85 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalAccelerationValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LongitudinalAccelerationValue_H_ +#define _Vanetza_ITS2_LongitudinalAccelerationValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LongitudinalAccelerationValue { + Vanetza_ITS2_LongitudinalAccelerationValue_negativeOutOfRange = -160, + Vanetza_ITS2_LongitudinalAccelerationValue_positiveOutOfRange = 160, + Vanetza_ITS2_LongitudinalAccelerationValue_unavailable = 161 +} e_Vanetza_ITS2_LongitudinalAccelerationValue; + +/* Vanetza_ITS2_LongitudinalAccelerationValue */ +typedef long Vanetza_ITS2_LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalAccelerationValue; +asn_struct_free_f Vanetza_ITS2_LongitudinalAccelerationValue_free; +asn_struct_print_f Vanetza_ITS2_LongitudinalAccelerationValue_print; +asn_constr_check_f Vanetza_ITS2_LongitudinalAccelerationValue_constraint; +ber_type_decoder_f Vanetza_ITS2_LongitudinalAccelerationValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_LongitudinalAccelerationValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LongitudinalAccelerationValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LongitudinalAccelerationValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LongitudinalLanePosition.c b/vanetza/asn1/its/r2/LongitudinalLanePosition.c new file mode 100644 index 000000000..00ea7f33a --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LongitudinalLanePosition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LongitudinalLanePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LongitudinalLanePosition, longitudinalLanePositionValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalLanePositionValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LongitudinalLanePosition, longitudinalLanePositionConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalLanePositionConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LongitudinalLanePosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* longitudinalLanePositionValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* longitudinalLanePositionConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LongitudinalLanePosition_specs_1 = { + sizeof(struct Vanetza_ITS2_LongitudinalLanePosition), + offsetof(struct Vanetza_ITS2_LongitudinalLanePosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_LongitudinalLanePosition_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_Vanetza_ITS2_LongitudinalLanePosition = { + "LongitudinalLanePosition", + "LongitudinalLanePosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LongitudinalLanePosition_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LongitudinalLanePosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LongitudinalLanePosition.h b/vanetza/asn1/its/r2/LongitudinalLanePosition.h new file mode 100644 index 000000000..53989ad61 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePosition.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LongitudinalLanePosition_H_ +#define _Vanetza_ITS2_LongitudinalLanePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LongitudinalLanePositionValue.h" +#include "LongitudinalLanePositionConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LongitudinalLanePosition */ +typedef struct Vanetza_ITS2_LongitudinalLanePosition { + Vanetza_ITS2_LongitudinalLanePositionValue_t longitudinalLanePositionValue; + Vanetza_ITS2_LongitudinalLanePositionConfidence_t longitudinalLanePositionConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LongitudinalLanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalLanePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LongitudinalLanePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LongitudinalLanePosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LongitudinalLanePosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.c b/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.c new file mode 100644 index 000000000..d17a61ee1 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LongitudinalLanePositionConfidence.h" + +int +Vanetza_ITS2_LongitudinalLanePositionConfidence_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_Vanetza_ITS2_LongitudinalLanePositionConfidence_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_Vanetza_ITS2_LongitudinalLanePositionConfidence_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_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence = { + "LongitudinalLanePositionConfidence", + "LongitudinalLanePositionConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LongitudinalLanePositionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LongitudinalLanePositionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LongitudinalLanePositionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.h b/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.h new file mode 100644 index 000000000..5ea277d1c --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePositionConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LongitudinalLanePositionConfidence_H_ +#define _Vanetza_ITS2_LongitudinalLanePositionConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LongitudinalLanePositionConfidence { + Vanetza_ITS2_LongitudinalLanePositionConfidence_outOfRange = 1022, + Vanetza_ITS2_LongitudinalLanePositionConfidence_unavailable = 1023 +} e_Vanetza_ITS2_LongitudinalLanePositionConfidence; + +/* Vanetza_ITS2_LongitudinalLanePositionConfidence */ +typedef long Vanetza_ITS2_LongitudinalLanePositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LongitudinalLanePositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalLanePositionConfidence; +asn_struct_free_f Vanetza_ITS2_LongitudinalLanePositionConfidence_free; +asn_struct_print_f Vanetza_ITS2_LongitudinalLanePositionConfidence_print; +asn_constr_check_f Vanetza_ITS2_LongitudinalLanePositionConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LongitudinalLanePositionConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LongitudinalLanePositionValue.c b/vanetza/asn1/its/r2/LongitudinalLanePositionValue.c new file mode 100644 index 000000000..8d24423c7 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePositionValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LongitudinalLanePositionValue.h" + +int +Vanetza_ITS2_LongitudinalLanePositionValue_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_Vanetza_ITS2_LongitudinalLanePositionValue_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_Vanetza_ITS2_LongitudinalLanePositionValue_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_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue = { + "LongitudinalLanePositionValue", + "LongitudinalLanePositionValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LongitudinalLanePositionValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LongitudinalLanePositionValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_LongitudinalLanePositionValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/LongitudinalLanePositionValue.h b/vanetza/asn1/its/r2/LongitudinalLanePositionValue.h new file mode 100644 index 000000000..021bf5242 --- /dev/null +++ b/vanetza/asn1/its/r2/LongitudinalLanePositionValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LongitudinalLanePositionValue_H_ +#define _Vanetza_ITS2_LongitudinalLanePositionValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LongitudinalLanePositionValue { + Vanetza_ITS2_LongitudinalLanePositionValue_outOfRange = 32766, + Vanetza_ITS2_LongitudinalLanePositionValue_unavailable = 32767 +} e_Vanetza_ITS2_LongitudinalLanePositionValue; + +/* Vanetza_ITS2_LongitudinalLanePositionValue */ +typedef long Vanetza_ITS2_LongitudinalLanePositionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LongitudinalLanePositionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LongitudinalLanePositionValue; +asn_struct_free_f Vanetza_ITS2_LongitudinalLanePositionValue_free; +asn_struct_print_f Vanetza_ITS2_LongitudinalLanePositionValue_print; +asn_constr_check_f Vanetza_ITS2_LongitudinalLanePositionValue_constraint; +ber_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_LongitudinalLanePositionValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_LongitudinalLanePositionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LongitudinalLanePositionValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LowFrequencyContainer.c b/vanetza/asn1/its/r2/LowFrequencyContainer.c new file mode 100644 index 000000000..eb6ae248f --- /dev/null +++ b/vanetza/asn1/its/r2/LowFrequencyContainer.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LowFrequencyContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_LowFrequencyContainer_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_Vanetza_ITS2_LowFrequencyContainer_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_Vanetza_ITS2_LowFrequencyContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LowFrequencyContainer, choice.basicVehicleContainerLowFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_BasicVehicleContainerLowFrequency, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "basicVehicleContainerLowFrequency" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LowFrequencyContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* basicVehicleContainerLowFrequency */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_LowFrequencyContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_LowFrequencyContainer), + offsetof(struct Vanetza_ITS2_LowFrequencyContainer, _asn_ctx), + offsetof(struct Vanetza_ITS2_LowFrequencyContainer, present), + sizeof(((struct Vanetza_ITS2_LowFrequencyContainer *)0)->present), + asn_MAP_Vanetza_ITS2_LowFrequencyContainer_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowFrequencyContainer = { + "LowFrequencyContainer", + "LowFrequencyContainer", + &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_Vanetza_ITS2_LowFrequencyContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LowFrequencyContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_LowFrequencyContainer_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LowFrequencyContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LowFrequencyContainer.h b/vanetza/asn1/its/r2/LowFrequencyContainer.h new file mode 100644 index 000000000..1772ec293 --- /dev/null +++ b/vanetza/asn1/its/r2/LowFrequencyContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LowFrequencyContainer_H_ +#define _Vanetza_ITS2_LowFrequencyContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BasicVehicleContainerLowFrequency.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_LowFrequencyContainer_PR { + Vanetza_ITS2_LowFrequencyContainer_PR_NOTHING, /* No components present */ + Vanetza_ITS2_LowFrequencyContainer_PR_basicVehicleContainerLowFrequency + /* Extensions may appear below */ + +} Vanetza_ITS2_LowFrequencyContainer_PR; + +/* Vanetza_ITS2_LowFrequencyContainer */ +typedef struct Vanetza_ITS2_LowFrequencyContainer { + Vanetza_ITS2_LowFrequencyContainer_PR present; + union Vanetza_ITS2_LowFrequencyContainer_u { + Vanetza_ITS2_BasicVehicleContainerLowFrequency_t basicVehicleContainerLowFrequency; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LowFrequencyContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowFrequencyContainer; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_LowFrequencyContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowFrequencyContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LowFrequencyContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LowFrequencyContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.c b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.c new file mode 100644 index 000000000..1333dcbe3 --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LowerTriangularPositiveSemidefiniteMatrices.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_constr_1 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) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_specs_1 = { + sizeof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices), + offsetof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices = { + "LowerTriangularPositiveSemidefiniteMatrices", + "LowerTriangularPositiveSemidefiniteMatrices", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.h b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.h new file mode 100644 index 000000000..1171d4ef1 --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrices.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_H_ +#define _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_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 Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix; + +/* Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices */ +typedef struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices { + A_SEQUENCE_OF(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "LowerTriangularPositiveSemidefiniteMatrix.h" + +#endif /* _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.c b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.c new file mode 100644 index 000000000..c4dbc2d6a --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LowerTriangularPositiveSemidefiniteMatrix.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix, componentsIncludedIntheMatrix), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MatrixIncludedComponents, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "componentsIncludedIntheMatrix" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix, matrix), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "matrix" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* componentsIncludedIntheMatrix */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* matrix */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_specs_1 = { + sizeof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix), + offsetof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix, _asn_ctx), + asn_MAP_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_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_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix = { + "LowerTriangularPositiveSemidefiniteMatrix", + "LowerTriangularPositiveSemidefiniteMatrix", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.h b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.h new file mode 100644 index 000000000..35c9a634f --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrix.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_H_ +#define _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MatrixIncludedComponents.h" +#include "LowerTriangularPositiveSemidefiniteMatrixColumns.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix */ +typedef struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix { + Vanetza_ITS2_MatrixIncludedComponents_t componentsIncludedIntheMatrix; + Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_t matrix; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrix_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c new file mode 100644 index 000000000..94a447295 --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "LowerTriangularPositiveSemidefiniteMatrixColumns.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_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_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 13 } /* (SIZE(1..13,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_CorrelationColumn, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1 = { + sizeof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns), + offsetof(struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns = { + "LowerTriangularPositiveSemidefiniteMatrixColumns", + "LowerTriangularPositiveSemidefiniteMatrixColumns", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.h b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.h new file mode 100644 index 000000000..fca65328b --- /dev/null +++ b/vanetza/asn1/its/r2/LowerTriangularPositiveSemidefiniteMatrixColumns.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_H_ +#define _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_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 Vanetza_ITS2_CorrelationColumn; + +/* Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns */ +typedef struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns { + A_SEQUENCE_OF(struct Vanetza_ITS2_CorrelationColumn) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CorrelationColumn.h" + +#endif /* _Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrixColumns_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapPosition.c b/vanetza/asn1/its/r2/MapPosition.c new file mode 100644 index 000000000..7f524c89d --- /dev/null +++ b/vanetza/asn1/its/r2/MapPosition.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapPosition.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapPosition_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_Vanetza_ITS2_MapPosition_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapPosition_1[] = { + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_MapPosition, mapReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapReference" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_MapPosition, laneId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneId" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_MapPosition, connectionId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectionId" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_MapPosition, longitudinalLanePosition), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LongitudinalLanePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitudinalLanePosition" + }, +}; +static const int asn_MAP_Vanetza_ITS2_MapPosition_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MapPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mapReference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connectionId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* longitudinalLanePosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MapPosition_specs_1 = { + sizeof(struct Vanetza_ITS2_MapPosition), + offsetof(struct Vanetza_ITS2_MapPosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_MapPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_MapPosition_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapPosition = { + "MapPosition", + "MapPosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MapPosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapPosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapPosition_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapPosition_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapPosition_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MapPosition_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MapPosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapPosition.h b/vanetza/asn1/its/r2/MapPosition.h new file mode 100644 index 000000000..95145e3af --- /dev/null +++ b/vanetza/asn1/its/r2/MapPosition.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapPosition_H_ +#define _Vanetza_ITS2_MapPosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MapReference; +struct Vanetza_ITS2_LongitudinalLanePosition; + +/* Vanetza_ITS2_MapPosition */ +typedef struct Vanetza_ITS2_MapPosition { + struct Vanetza_ITS2_MapReference *mapReference; /* OPTIONAL */ + Vanetza_ITS2_Identifier1B_t *laneId; /* OPTIONAL */ + Vanetza_ITS2_Identifier1B_t *connectionId; /* OPTIONAL */ + struct Vanetza_ITS2_LongitudinalLanePosition *longitudinalLanePosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MapPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapPosition_1[4]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapPosition_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapReference.h" +#include "LongitudinalLanePosition.h" + +#endif /* _Vanetza_ITS2_MapPosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapReference.c b/vanetza/asn1/its/r2/MapReference.c new file mode 100644 index 000000000..7119b8787 --- /dev/null +++ b/vanetza/asn1/its/r2/MapReference.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapReference.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapReference_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_Vanetza_ITS2_MapReference_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_Vanetza_ITS2_MapReference_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MapReference, choice.roadsegment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadsegment" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MapReference, choice.intersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "intersection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MapReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadsegment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* intersection */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_MapReference_specs_1 = { + sizeof(struct Vanetza_ITS2_MapReference), + offsetof(struct Vanetza_ITS2_MapReference, _asn_ctx), + offsetof(struct Vanetza_ITS2_MapReference, present), + sizeof(((struct Vanetza_ITS2_MapReference *)0)->present), + asn_MAP_Vanetza_ITS2_MapReference_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapReference = { + "MapReference", + "MapReference", + &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_Vanetza_ITS2_MapReference_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapReference_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_MapReference_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MapReference_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapReference.h b/vanetza/asn1/its/r2/MapReference.h new file mode 100644 index 000000000..48e589c01 --- /dev/null +++ b/vanetza/asn1/its/r2/MapReference.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapReference_H_ +#define _Vanetza_ITS2_MapReference_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RoadSegmentReferenceId.h" +#include "IntersectionReferenceId.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_MapReference_PR { + Vanetza_ITS2_MapReference_PR_NOTHING, /* No components present */ + Vanetza_ITS2_MapReference_PR_roadsegment, + Vanetza_ITS2_MapReference_PR_intersection +} Vanetza_ITS2_MapReference_PR; + +/* Vanetza_ITS2_MapReference */ +typedef struct Vanetza_ITS2_MapReference { + Vanetza_ITS2_MapReference_PR present; + union Vanetza_ITS2_MapReference_u { + Vanetza_ITS2_RoadSegmentReferenceId_t roadsegment; + Vanetza_ITS2_IntersectionReferenceId_t intersection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapReference; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_MapReference_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapReference_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapReference_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MapReference_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapReferences.c b/vanetza/asn1/its/r2/MapReferences.c new file mode 100644 index 000000000..1c490bc7b --- /dev/null +++ b/vanetza/asn1/its/r2/MapReferences.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapReferences.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapReferences_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_Vanetza_ITS2_MapReferences_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_MapReferences_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Vanetza_ITS2_MapReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapReferences_specs_1 = { + sizeof(struct Vanetza_ITS2_MapReferences), + offsetof(struct Vanetza_ITS2_MapReferences, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapReferences = { + "MapReferences", + "MapReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_MapReferences_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapReferences_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapReferences_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapReferences_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapReferences_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_MapReferences_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_MapReferences_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapReferences.h b/vanetza/asn1/its/r2/MapReferences.h new file mode 100644 index 000000000..ed78d228e --- /dev/null +++ b/vanetza/asn1/its/r2/MapReferences.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapReferences_H_ +#define _Vanetza_ITS2_MapReferences_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 Vanetza_ITS2_MapReference; + +/* Vanetza_ITS2_MapReferences */ +typedef struct Vanetza_ITS2_MapReferences { + A_SEQUENCE_OF(struct Vanetza_ITS2_MapReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapReferences; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapReferences_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapReferences_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapReferences_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapReference.h" + +#endif /* _Vanetza_ITS2_MapReferences_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapemConfiguration.c b/vanetza/asn1/its/r2/MapemConfiguration.c new file mode 100644 index 000000000..2b49c39ef --- /dev/null +++ b/vanetza/asn1/its/r2/MapemConfiguration.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapemConfiguration.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapemConfiguration_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_Vanetza_ITS2_MapemConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_MapemConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_MapemElementReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemConfiguration_specs_1 = { + sizeof(struct Vanetza_ITS2_MapemConfiguration), + offsetof(struct Vanetza_ITS2_MapemConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemConfiguration = { + "MapemConfiguration", + "MapemConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemConfiguration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapemConfiguration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapemConfiguration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_MapemConfiguration_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_MapemConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapemConfiguration.h b/vanetza/asn1/its/r2/MapemConfiguration.h new file mode 100644 index 000000000..b96e11b9f --- /dev/null +++ b/vanetza/asn1/its/r2/MapemConfiguration.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapemConfiguration_H_ +#define _Vanetza_ITS2_MapemConfiguration_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 Vanetza_ITS2_MapemElementReference; + +/* Vanetza_ITS2_MapemConfiguration */ +typedef struct Vanetza_ITS2_MapemConfiguration { + A_SEQUENCE_OF(struct Vanetza_ITS2_MapemElementReference) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapemConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapemConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapemConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapemElementReference.h" + +#endif /* _Vanetza_ITS2_MapemConfiguration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapemConnectionList.c b/vanetza/asn1/its/r2/MapemConnectionList.c new file mode 100644 index 000000000..78a479697 --- /dev/null +++ b/vanetza/asn1/its/r2/MapemConnectionList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapemConnectionList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapemConnectionList_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_Vanetza_ITS2_MapemConnectionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_MapemConnectionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemConnectionList_specs_1 = { + sizeof(struct Vanetza_ITS2_MapemConnectionList), + offsetof(struct Vanetza_ITS2_MapemConnectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemConnectionList = { + "MapemConnectionList", + "MapemConnectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemConnectionList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapemConnectionList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapemConnectionList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_MapemConnectionList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_MapemConnectionList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapemConnectionList.h b/vanetza/asn1/its/r2/MapemConnectionList.h new file mode 100644 index 000000000..6c65e6734 --- /dev/null +++ b/vanetza/asn1/its/r2/MapemConnectionList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapemConnectionList_H_ +#define _Vanetza_ITS2_MapemConnectionList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MapemConnectionList */ +typedef struct Vanetza_ITS2_MapemConnectionList { + A_SEQUENCE_OF(Vanetza_ITS2_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapemConnectionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemConnectionList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemConnectionList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapemConnectionList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapemConnectionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MapemConnectionList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapemElementReference.c b/vanetza/asn1/its/r2/MapemElementReference.c new file mode 100644 index 000000000..ec1c07c9f --- /dev/null +++ b/vanetza/asn1/its/r2/MapemElementReference.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapemElementReference.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapemElementReference_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_Vanetza_ITS2_MapemElementReference_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapemElementReference_1[] = { + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_MapemElementReference, mapReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapReference" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_MapemElementReference, laneIds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapemLaneList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneIds" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_MapemElementReference, connectionIds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapemConnectionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectionIds" + }, +}; +static const int asn_MAP_Vanetza_ITS2_MapemElementReference_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MapemElementReference_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mapReference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* laneIds */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connectionIds */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MapemElementReference_specs_1 = { + sizeof(struct Vanetza_ITS2_MapemElementReference), + offsetof(struct Vanetza_ITS2_MapemElementReference, _asn_ctx), + asn_MAP_Vanetza_ITS2_MapemElementReference_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_MapemElementReference_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemElementReference = { + "MapemElementReference", + "MapemElementReference", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemElementReference_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapemElementReference_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapemElementReference_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MapemElementReference_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MapemElementReference_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapemElementReference.h b/vanetza/asn1/its/r2/MapemElementReference.h new file mode 100644 index 000000000..a353aafb6 --- /dev/null +++ b/vanetza/asn1/its/r2/MapemElementReference.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapemElementReference_H_ +#define _Vanetza_ITS2_MapemElementReference_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MapReference; +struct Vanetza_ITS2_MapemLaneList; +struct Vanetza_ITS2_MapemConnectionList; + +/* Vanetza_ITS2_MapemElementReference */ +typedef struct Vanetza_ITS2_MapemElementReference { + struct Vanetza_ITS2_MapReference *mapReference; /* OPTIONAL */ + struct Vanetza_ITS2_MapemLaneList *laneIds; /* OPTIONAL */ + struct Vanetza_ITS2_MapemConnectionList *connectionIds; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapemElementReference_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemElementReference; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MapemElementReference_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapemElementReference_1[3]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapemElementReference_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapReference.h" +#include "MapemLaneList.h" +#include "MapemConnectionList.h" + +#endif /* _Vanetza_ITS2_MapemElementReference_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MapemLaneList.c b/vanetza/asn1/its/r2/MapemLaneList.c new file mode 100644 index 000000000..100cc9a2e --- /dev/null +++ b/vanetza/asn1/its/r2/MapemLaneList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MapemLaneList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MapemLaneList_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_Vanetza_ITS2_MapemLaneList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_MapemLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemLaneList_specs_1 = { + sizeof(struct Vanetza_ITS2_MapemLaneList), + offsetof(struct Vanetza_ITS2_MapemLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemLaneList = { + "MapemLaneList", + "MapemLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MapemLaneList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MapemLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MapemLaneList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_MapemLaneList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_MapemLaneList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MapemLaneList.h b/vanetza/asn1/its/r2/MapemLaneList.h new file mode 100644 index 000000000..14085f663 --- /dev/null +++ b/vanetza/asn1/its/r2/MapemLaneList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MapemLaneList_H_ +#define _Vanetza_ITS2_MapemLaneList_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MapemLaneList */ +typedef struct Vanetza_ITS2_MapemLaneList { + A_SEQUENCE_OF(Vanetza_ITS2_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MapemLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MapemLaneList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MapemLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MapemLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MapemLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MapemLaneList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MatrixIncludedComponents.c b/vanetza/asn1/its/r2/MatrixIncludedComponents.c new file mode 100644 index 000000000..36d5fb418 --- /dev/null +++ b/vanetza/asn1/its/r2/MatrixIncludedComponents.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MatrixIncludedComponents.h" + +int +Vanetza_ITS2_MatrixIncludedComponents_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_Vanetza_ITS2_MatrixIncludedComponents_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_Vanetza_ITS2_MatrixIncludedComponents_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_MatrixIncludedComponents_constr_1 CC_NOTUSED = { + -1}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MatrixIncludedComponents = { + "MatrixIncludedComponents", + "MatrixIncludedComponents", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MatrixIncludedComponents_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MatrixIncludedComponents_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MatrixIncludedComponents_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_MatrixIncludedComponents_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_MatrixIncludedComponents_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MatrixIncludedComponents.h b/vanetza/asn1/its/r2/MatrixIncludedComponents.h new file mode 100644 index 000000000..e32996372 --- /dev/null +++ b/vanetza/asn1/its/r2/MatrixIncludedComponents.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MatrixIncludedComponents_H_ +#define _Vanetza_ITS2_MatrixIncludedComponents_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_MatrixIncludedComponents { + Vanetza_ITS2_MatrixIncludedComponents_xPosition = 0, + Vanetza_ITS2_MatrixIncludedComponents_yPosition = 1, + Vanetza_ITS2_MatrixIncludedComponents_zPosition = 2, + Vanetza_ITS2_MatrixIncludedComponents_xVelocityOrVelocityMagnitude = 3, + Vanetza_ITS2_MatrixIncludedComponents_yVelocityOrVelocityDirection = 4, + Vanetza_ITS2_MatrixIncludedComponents_zSpeed = 5, + Vanetza_ITS2_MatrixIncludedComponents_xAccelOrAccelMagnitude = 6, + Vanetza_ITS2_MatrixIncludedComponents_yAccelOrAccelDirection = 7, + Vanetza_ITS2_MatrixIncludedComponents_zAcceleration = 8, + Vanetza_ITS2_MatrixIncludedComponents_zAngle = 9, + Vanetza_ITS2_MatrixIncludedComponents_yAngle = 10, + Vanetza_ITS2_MatrixIncludedComponents_xAngle = 11, + Vanetza_ITS2_MatrixIncludedComponents_zAngularVelocity = 12 +} e_Vanetza_ITS2_MatrixIncludedComponents; + +/* Vanetza_ITS2_MatrixIncludedComponents */ +typedef BIT_STRING_t Vanetza_ITS2_MatrixIncludedComponents_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MatrixIncludedComponents_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MatrixIncludedComponents; +asn_struct_free_f Vanetza_ITS2_MatrixIncludedComponents_free; +asn_struct_print_f Vanetza_ITS2_MatrixIncludedComponents_print; +asn_constr_check_f Vanetza_ITS2_MatrixIncludedComponents_constraint; +ber_type_decoder_f Vanetza_ITS2_MatrixIncludedComponents_decode_ber; +der_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_der; +xer_type_decoder_f Vanetza_ITS2_MatrixIncludedComponents_decode_xer; +xer_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_xer; +jer_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_jer; +oer_type_decoder_f Vanetza_ITS2_MatrixIncludedComponents_decode_oer; +oer_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_oer; +per_type_decoder_f Vanetza_ITS2_MatrixIncludedComponents_decode_uper; +per_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_uper; +per_type_decoder_f Vanetza_ITS2_MatrixIncludedComponents_decode_aper; +per_type_encoder_f Vanetza_ITS2_MatrixIncludedComponents_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MatrixIncludedComponents_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MessageId.c b/vanetza/asn1/its/r2/MessageId.c new file mode 100644 index 000000000..440fb35b1 --- /dev/null +++ b/vanetza/asn1/its/r2/MessageId.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MessageId.h" + +int +Vanetza_ITS2_MessageId_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_Vanetza_ITS2_MessageId_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_Vanetza_ITS2_MessageId_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_Vanetza_ITS2_MessageId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MessageId = { + "MessageId", + "MessageId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_MessageId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MessageId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MessageId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MessageId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MessageId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MessageId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_MessageId_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/MessageId.h b/vanetza/asn1/its/r2/MessageId.h new file mode 100644 index 000000000..848148d50 --- /dev/null +++ b/vanetza/asn1/its/r2/MessageId.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MessageId_H_ +#define _Vanetza_ITS2_MessageId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_MessageId { + Vanetza_ITS2_MessageId_denm = 1, + Vanetza_ITS2_MessageId_cam = 2, + Vanetza_ITS2_MessageId_poim = 3, + Vanetza_ITS2_MessageId_spatem = 4, + Vanetza_ITS2_MessageId_mapem = 5, + Vanetza_ITS2_MessageId_ivim = 6, + Vanetza_ITS2_MessageId_rfu1 = 7, + Vanetza_ITS2_MessageId_rfu2 = 8, + Vanetza_ITS2_MessageId_srem = 9, + Vanetza_ITS2_MessageId_ssem = 10, + Vanetza_ITS2_MessageId_evcsn = 11, + Vanetza_ITS2_MessageId_saem = 12, + Vanetza_ITS2_MessageId_rtcmem = 13, + Vanetza_ITS2_MessageId_cpm = 14, + Vanetza_ITS2_MessageId_imzm = 15, + Vanetza_ITS2_MessageId_vam = 16, + Vanetza_ITS2_MessageId_dsm = 17, + Vanetza_ITS2_MessageId_pcim = 18, + Vanetza_ITS2_MessageId_pcvm = 19, + Vanetza_ITS2_MessageId_mcm = 20, + Vanetza_ITS2_MessageId_pam = 21 +} e_Vanetza_ITS2_MessageId; + +/* Vanetza_ITS2_MessageId */ +typedef long Vanetza_ITS2_MessageId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MessageId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MessageId; +asn_struct_free_f Vanetza_ITS2_MessageId_free; +asn_struct_print_f Vanetza_ITS2_MessageId_print; +asn_constr_check_f Vanetza_ITS2_MessageId_constraint; +ber_type_decoder_f Vanetza_ITS2_MessageId_decode_ber; +der_type_encoder_f Vanetza_ITS2_MessageId_encode_der; +xer_type_decoder_f Vanetza_ITS2_MessageId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_MessageId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_MessageId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_MessageId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_MessageId_encode_oer; +per_type_decoder_f Vanetza_ITS2_MessageId_decode_uper; +per_type_encoder_f Vanetza_ITS2_MessageId_encode_uper; +per_type_decoder_f Vanetza_ITS2_MessageId_decode_aper; +per_type_encoder_f Vanetza_ITS2_MessageId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MessageId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MessageRateHz.c b/vanetza/asn1/its/r2/MessageRateHz.c new file mode 100644 index 000000000..cd8dd7ba9 --- /dev/null +++ b/vanetza/asn1/its/r2/MessageRateHz.c @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MessageRateHz.h" + +static int +memb_Vanetza_ITS2_mantissa_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 <= 100L)) { + /* 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_Vanetza_ITS2_exponent_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 >= -5L && value <= 2L)) { + /* 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_Vanetza_ITS2_mantissa_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..100) */, + -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_Vanetza_ITS2_mantissa_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 100 } /* (1..100) */, + { 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_Vanetza_ITS2_exponent_constr_3 CC_NOTUSED = { + { 1, 0 } /* (-5..2) */, + -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_Vanetza_ITS2_exponent_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, -5, 2 } /* (-5..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_Vanetza_ITS2_MessageRateHz_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageRateHz, mantissa), + (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_Vanetza_ITS2_mantissa_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_mantissa_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_mantissa_constraint_1 + }, + 0, 0, /* No default value */ + "mantissa" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageRateHz, exponent), + (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_Vanetza_ITS2_exponent_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_exponent_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_exponent_constraint_1 + }, + 0, 0, /* No default value */ + "exponent" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MessageRateHz_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mantissa */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* exponent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageRateHz_specs_1 = { + sizeof(struct Vanetza_ITS2_MessageRateHz), + offsetof(struct Vanetza_ITS2_MessageRateHz, _asn_ctx), + asn_MAP_Vanetza_ITS2_MessageRateHz_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_Vanetza_ITS2_MessageRateHz = { + "MessageRateHz", + "MessageRateHz", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MessageRateHz_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageRateHz_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MessageRateHz_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MessageRateHz_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MessageRateHz.h b/vanetza/asn1/its/r2/MessageRateHz.h new file mode 100644 index 000000000..ab388619e --- /dev/null +++ b/vanetza/asn1/its/r2/MessageRateHz.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MessageRateHz_H_ +#define _Vanetza_ITS2_MessageRateHz_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MessageRateHz */ +typedef struct Vanetza_ITS2_MessageRateHz { + long mantissa; + long exponent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MessageRateHz_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MessageRateHz; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageRateHz_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MessageRateHz_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MessageRateHz_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MessageRateRange.c b/vanetza/asn1/its/r2/MessageRateRange.c new file mode 100644 index 000000000..52790ea67 --- /dev/null +++ b/vanetza/asn1/its/r2/MessageRateRange.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MessageRateRange.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MessageRateRange_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageRateRange, messageRateMin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MessageRateHz, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageRateMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageRateRange, messageRateMax), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MessageRateHz, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "messageRateMax" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MessageRateRange_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageRateMin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageRateMax */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageRateRange_specs_1 = { + sizeof(struct Vanetza_ITS2_MessageRateRange), + offsetof(struct Vanetza_ITS2_MessageRateRange, _asn_ctx), + asn_MAP_Vanetza_ITS2_MessageRateRange_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_Vanetza_ITS2_MessageRateRange = { + "MessageRateRange", + "MessageRateRange", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MessageRateRange_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageRateRange_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MessageRateRange_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MessageRateRange_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MessageRateRange.h b/vanetza/asn1/its/r2/MessageRateRange.h new file mode 100644 index 000000000..9c0b8338f --- /dev/null +++ b/vanetza/asn1/its/r2/MessageRateRange.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MessageRateRange_H_ +#define _Vanetza_ITS2_MessageRateRange_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MessageRateHz.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MessageRateRange */ +typedef struct Vanetza_ITS2_MessageRateRange { + Vanetza_ITS2_MessageRateHz_t messageRateMin; + Vanetza_ITS2_MessageRateHz_t messageRateMax; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MessageRateRange_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MessageRateRange; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageRateRange_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MessageRateRange_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MessageRateRange_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MessageSegmentationInfo.c b/vanetza/asn1/its/r2/MessageSegmentationInfo.c new file mode 100644 index 000000000..1f2d1c00e --- /dev/null +++ b/vanetza/asn1/its/r2/MessageSegmentationInfo.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MessageSegmentationInfo.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MessageSegmentationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageSegmentationInfo, totalMsgNo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CardinalNumber3b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "totalMsgNo" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MessageSegmentationInfo, thisMsgNo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_OrdinalNumber3b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "thisMsgNo" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MessageSegmentationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* totalMsgNo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* thisMsgNo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageSegmentationInfo_specs_1 = { + sizeof(struct Vanetza_ITS2_MessageSegmentationInfo), + offsetof(struct Vanetza_ITS2_MessageSegmentationInfo, _asn_ctx), + asn_MAP_Vanetza_ITS2_MessageSegmentationInfo_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_Vanetza_ITS2_MessageSegmentationInfo = { + "MessageSegmentationInfo", + "MessageSegmentationInfo", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MessageSegmentationInfo_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MessageSegmentationInfo_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MessageSegmentationInfo_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MessageSegmentationInfo.h b/vanetza/asn1/its/r2/MessageSegmentationInfo.h new file mode 100644 index 000000000..fa8305aa4 --- /dev/null +++ b/vanetza/asn1/its/r2/MessageSegmentationInfo.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MessageSegmentationInfo_H_ +#define _Vanetza_ITS2_MessageSegmentationInfo_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CardinalNumber3b.h" +#include "OrdinalNumber3b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MessageSegmentationInfo */ +typedef struct Vanetza_ITS2_MessageSegmentationInfo { + Vanetza_ITS2_CardinalNumber3b_t totalMsgNo; + Vanetza_ITS2_OrdinalNumber3b_t thisMsgNo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MessageSegmentationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MessageSegmentationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MessageSegmentationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MessageSegmentationInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MessageSegmentationInfo_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MetaInformation.c b/vanetza/asn1/its/r2/MetaInformation.c new file mode 100644 index 000000000..9a6049629 --- /dev/null +++ b/vanetza/asn1/its/r2/MetaInformation.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MetaInformation.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MetaInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MetaInformation, usedDetectionInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SensorTypes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "usedDetectionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MetaInformation, usedStoredInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StoredInformationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "usedStoredInformation" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_MetaInformation, confidenceValue), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConfidenceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidenceValue" + }, +}; +static const int asn_MAP_Vanetza_ITS2_MetaInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MetaInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MetaInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* usedDetectionInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usedStoredInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidenceValue */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MetaInformation_specs_1 = { + sizeof(struct Vanetza_ITS2_MetaInformation), + offsetof(struct Vanetza_ITS2_MetaInformation, _asn_ctx), + asn_MAP_Vanetza_ITS2_MetaInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_MetaInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MetaInformation = { + "MetaInformation", + "MetaInformation", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MetaInformation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MetaInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MetaInformation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MetaInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MetaInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MetaInformation_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MetaInformation_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MetaInformation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MetaInformation.h b/vanetza/asn1/its/r2/MetaInformation.h new file mode 100644 index 000000000..13d3ecef3 --- /dev/null +++ b/vanetza/asn1/its/r2/MetaInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MetaInformation_H_ +#define _Vanetza_ITS2_MetaInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SensorTypes.h" +#include "StoredInformationType.h" +#include "ConfidenceLevel.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MetaInformation */ +typedef struct Vanetza_ITS2_MetaInformation { + Vanetza_ITS2_SensorTypes_t usedDetectionInformation; + Vanetza_ITS2_StoredInformationType_t usedStoredInformation; + Vanetza_ITS2_ConfidenceLevel_t *confidenceValue; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MetaInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MetaInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MetaInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MetaInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MetaInformation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MitigationForTechnologies.c b/vanetza/asn1/its/r2/MitigationForTechnologies.c new file mode 100644 index 000000000..33cd511cb --- /dev/null +++ b/vanetza/asn1/its/r2/MitigationForTechnologies.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MitigationForTechnologies.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_MitigationForTechnologies_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_Vanetza_ITS2_MitigationForTechnologies_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_Vanetza_ITS2_MitigationForTechnologies_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MitigationForTechnologies_specs_1 = { + sizeof(struct Vanetza_ITS2_MitigationForTechnologies), + offsetof(struct Vanetza_ITS2_MitigationForTechnologies, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MitigationForTechnologies = { + "MitigationForTechnologies", + "MitigationForTechnologies", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MitigationForTechnologies_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_MitigationForTechnologies_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_MitigationForTechnologies_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_MitigationForTechnologies_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_MitigationForTechnologies_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MitigationForTechnologies.h b/vanetza/asn1/its/r2/MitigationForTechnologies.h new file mode 100644 index 000000000..3f7eb0f63 --- /dev/null +++ b/vanetza/asn1/its/r2/MitigationForTechnologies.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MitigationForTechnologies_H_ +#define _Vanetza_ITS2_MitigationForTechnologies_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 Vanetza_ITS2_MitigationPerTechnologyClass; + +/* Vanetza_ITS2_MitigationForTechnologies */ +typedef struct Vanetza_ITS2_MitigationForTechnologies { + A_SEQUENCE_OF(struct Vanetza_ITS2_MitigationPerTechnologyClass) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MitigationForTechnologies_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MitigationForTechnologies; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_MitigationForTechnologies_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MitigationForTechnologies_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_MitigationForTechnologies_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MitigationPerTechnologyClass.h" + +#endif /* _Vanetza_ITS2_MitigationForTechnologies_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/MitigationPerTechnologyClass.c b/vanetza/asn1/its/r2/MitigationPerTechnologyClass.c new file mode 100644 index 000000000..fa2aaa40f --- /dev/null +++ b/vanetza/asn1/its/r2/MitigationPerTechnologyClass.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "MitigationPerTechnologyClass.h" + +static int +memb_Vanetza_ITS2_lowDutyCycle_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 <= 10000L)) { + /* 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_Vanetza_ITS2_powerReduction_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 <= 30L)) { + /* 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_Vanetza_ITS2_dmcToffLimit_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 <= 1200L)) { + /* 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_Vanetza_ITS2_dmcTonLimit_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 <= 20L)) { + /* 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_Vanetza_ITS2_lowDutyCycle_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..10000) */, + -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_Vanetza_ITS2_lowDutyCycle_constr_3 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) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_Vanetza_ITS2_powerReduction_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..30) */, + -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_Vanetza_ITS2_powerReduction_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { 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_Vanetza_ITS2_dmcToffLimit_constr_5 CC_NOTUSED = { + { 2, 1 } /* (0..1200) */, + -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_Vanetza_ITS2_dmcToffLimit_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1200 } /* (0..1200) */, + { 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_Vanetza_ITS2_dmcTonLimit_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..20) */, + -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_Vanetza_ITS2_dmcTonLimit_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 20 } /* (0..20) */, + { 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_Vanetza_ITS2_MitigationPerTechnologyClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, accessTechnologyClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_AccessTechnologyClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "accessTechnologyClass" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, lowDutyCycle), + (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_Vanetza_ITS2_lowDutyCycle_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_lowDutyCycle_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_lowDutyCycle_constraint_1 + }, + 0, 0, /* No default value */ + "lowDutyCycle" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, powerReduction), + (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_Vanetza_ITS2_powerReduction_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_powerReduction_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_powerReduction_constraint_1 + }, + 0, 0, /* No default value */ + "powerReduction" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, dmcToffLimit), + (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_Vanetza_ITS2_dmcToffLimit_constr_5, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_dmcToffLimit_constr_5, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_dmcToffLimit_constraint_1 + }, + 0, 0, /* No default value */ + "dmcToffLimit" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, dmcTonLimit), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_dmcTonLimit_constr_6, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_dmcTonLimit_constr_6, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_dmcTonLimit_constraint_1 + }, + 0, 0, /* No default value */ + "dmcTonLimit" + }, +}; +static const int asn_MAP_Vanetza_ITS2_MitigationPerTechnologyClass_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_MitigationPerTechnologyClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessTechnologyClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lowDutyCycle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* powerReduction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dmcToffLimit */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* dmcTonLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MitigationPerTechnologyClass_specs_1 = { + sizeof(struct Vanetza_ITS2_MitigationPerTechnologyClass), + offsetof(struct Vanetza_ITS2_MitigationPerTechnologyClass, _asn_ctx), + asn_MAP_Vanetza_ITS2_MitigationPerTechnologyClass_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_MitigationPerTechnologyClass_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass = { + "MitigationPerTechnologyClass", + "MitigationPerTechnologyClass", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_MitigationPerTechnologyClass_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_MitigationPerTechnologyClass_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/MitigationPerTechnologyClass.h b/vanetza/asn1/its/r2/MitigationPerTechnologyClass.h new file mode 100644 index 000000000..59c0a330f --- /dev/null +++ b/vanetza/asn1/its/r2/MitigationPerTechnologyClass.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_MitigationPerTechnologyClass_H_ +#define _Vanetza_ITS2_MitigationPerTechnologyClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "AccessTechnologyClass.h" +#include "NativeInteger.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_MitigationPerTechnologyClass */ +typedef struct Vanetza_ITS2_MitigationPerTechnologyClass { + Vanetza_ITS2_AccessTechnologyClass_t accessTechnologyClass; + long *lowDutyCycle; /* OPTIONAL */ + long *powerReduction; /* OPTIONAL */ + long *dmcToffLimit; /* OPTIONAL */ + long *dmcTonLimit; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_MitigationPerTechnologyClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_MitigationPerTechnologyClass; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_MitigationPerTechnologyClass_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_MitigationPerTechnologyClass_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_MitigationPerTechnologyClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/NumberOfOccupants.c b/vanetza/asn1/its/r2/NumberOfOccupants.c new file mode 100644 index 000000000..d1c262a62 --- /dev/null +++ b/vanetza/asn1/its/r2/NumberOfOccupants.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "NumberOfOccupants.h" + +int +Vanetza_ITS2_NumberOfOccupants_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_Vanetza_ITS2_NumberOfOccupants_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_Vanetza_ITS2_NumberOfOccupants_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_Vanetza_ITS2_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_NumberOfOccupants_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_NumberOfOccupants_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_NumberOfOccupants_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_NumberOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/NumberOfOccupants.h b/vanetza/asn1/its/r2/NumberOfOccupants.h new file mode 100644 index 000000000..49084227e --- /dev/null +++ b/vanetza/asn1/its/r2/NumberOfOccupants.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_NumberOfOccupants_H_ +#define _Vanetza_ITS2_NumberOfOccupants_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_NumberOfOccupants { + Vanetza_ITS2_NumberOfOccupants_outOfRange = 126, + Vanetza_ITS2_NumberOfOccupants_unavailable = 127 +} e_Vanetza_ITS2_NumberOfOccupants; + +/* Vanetza_ITS2_NumberOfOccupants */ +typedef long Vanetza_ITS2_NumberOfOccupants_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_NumberOfOccupants_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_NumberOfOccupants; +asn_struct_free_f Vanetza_ITS2_NumberOfOccupants_free; +asn_struct_print_f Vanetza_ITS2_NumberOfOccupants_print; +asn_constr_check_f Vanetza_ITS2_NumberOfOccupants_constraint; +ber_type_decoder_f Vanetza_ITS2_NumberOfOccupants_decode_ber; +der_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_der; +xer_type_decoder_f Vanetza_ITS2_NumberOfOccupants_decode_xer; +xer_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_xer; +jer_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_jer; +oer_type_decoder_f Vanetza_ITS2_NumberOfOccupants_decode_oer; +oer_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_oer; +per_type_decoder_f Vanetza_ITS2_NumberOfOccupants_decode_uper; +per_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_uper; +per_type_decoder_f Vanetza_ITS2_NumberOfOccupants_decode_aper; +per_type_encoder_f Vanetza_ITS2_NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_NumberOfOccupants_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectClass.c b/vanetza/asn1/its/r2/ObjectClass.c new file mode 100644 index 000000000..70d767e79 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClass.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectClass.h" + +static int +memb_Vanetza_ITS2_vehicleSubClass_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 >= 5L && value <= 11L) || (value == 14L))) { + /* 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_Vanetza_ITS2_groupSubClass_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_Vanetza_ITS2_vehicleSubClass_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..14) */, + -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_Vanetza_ITS2_vehicleSubClass_constr_2 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) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_memb_Vanetza_ITS2_groupSubClass_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_memb_Vanetza_ITS2_groupSubClass_constr_4 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_type_Vanetza_ITS2_ObjectClass_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_Vanetza_ITS2_ObjectClass_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectClass_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClass, choice.vehicleSubClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficParticipantType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_vehicleSubClass_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_vehicleSubClass_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_vehicleSubClass_constraint_1 + }, + 0, 0, /* No default value */ + "vehicleSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClass, choice.vruSubClass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruProfileAndSubprofile, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vruSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClass, choice.groupSubClass), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruClusterInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_groupSubClass_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_groupSubClass_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_groupSubClass_constraint_1 + }, + 0, 0, /* No default value */ + "groupSubClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClass, choice.otherSubClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_OtherSubClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "otherSubClass" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ObjectClass_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* vruSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* groupSubClass */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* otherSubClass */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_ObjectClass_specs_1 = { + sizeof(struct Vanetza_ITS2_ObjectClass), + offsetof(struct Vanetza_ITS2_ObjectClass, _asn_ctx), + offsetof(struct Vanetza_ITS2_ObjectClass, present), + sizeof(((struct Vanetza_ITS2_ObjectClass *)0)->present), + asn_MAP_Vanetza_ITS2_ObjectClass_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectClass = { + "ObjectClass", + "ObjectClass", + &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_Vanetza_ITS2_ObjectClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_ObjectClass_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ObjectClass_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectClass.h b/vanetza/asn1/its/r2/ObjectClass.h new file mode 100644 index 000000000..e391effa2 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClass.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectClass_H_ +#define _Vanetza_ITS2_ObjectClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "TrafficParticipantType.h" +#include "VruProfileAndSubprofile.h" +#include "VruClusterInformation.h" +#include "OtherSubClass.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ObjectClass_PR { + Vanetza_ITS2_ObjectClass_PR_NOTHING, /* No components present */ + Vanetza_ITS2_ObjectClass_PR_vehicleSubClass, + Vanetza_ITS2_ObjectClass_PR_vruSubClass, + Vanetza_ITS2_ObjectClass_PR_groupSubClass, + Vanetza_ITS2_ObjectClass_PR_otherSubClass + /* Extensions may appear below */ + +} Vanetza_ITS2_ObjectClass_PR; + +/* Vanetza_ITS2_ObjectClass */ +typedef struct Vanetza_ITS2_ObjectClass { + Vanetza_ITS2_ObjectClass_PR present; + union Vanetza_ITS2_ObjectClass_u { + Vanetza_ITS2_TrafficParticipantType_t vehicleSubClass; + Vanetza_ITS2_VruProfileAndSubprofile_t vruSubClass; + Vanetza_ITS2_VruClusterInformation_t groupSubClass; + Vanetza_ITS2_OtherSubClass_t otherSubClass; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ObjectClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectClass; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_ObjectClass_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectClass_1[4]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectClass_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectClassDescription.c b/vanetza/asn1/its/r2/ObjectClassDescription.c new file mode 100644 index 000000000..41e353bf3 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClassDescription.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectClassDescription.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_ObjectClassDescription_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_Vanetza_ITS2_ObjectClassDescription_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_Vanetza_ITS2_ObjectClassDescription_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ObjectClassDescription_specs_1 = { + sizeof(struct Vanetza_ITS2_ObjectClassDescription), + offsetof(struct Vanetza_ITS2_ObjectClassDescription, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectClassDescription = { + "ObjectClassDescription", + "ObjectClassDescription", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectClassDescription_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ObjectClassDescription_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectClassDescription_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_ObjectClassDescription_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_ObjectClassDescription_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectClassDescription.h b/vanetza/asn1/its/r2/ObjectClassDescription.h new file mode 100644 index 000000000..76da1878f --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClassDescription.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectClassDescription_H_ +#define _Vanetza_ITS2_ObjectClassDescription_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 Vanetza_ITS2_ObjectClassWithConfidence; + +/* Vanetza_ITS2_ObjectClassDescription */ +typedef struct Vanetza_ITS2_ObjectClassDescription { + A_SEQUENCE_OF(struct Vanetza_ITS2_ObjectClassWithConfidence) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ObjectClassDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectClassDescription; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ObjectClassDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectClassDescription_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectClassDescription_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ObjectClassWithConfidence.h" + +#endif /* _Vanetza_ITS2_ObjectClassDescription_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectClassWithConfidence.c b/vanetza/asn1/its/r2/ObjectClassWithConfidence.c new file mode 100644 index 000000000..08a55d916 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClassWithConfidence.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectClassWithConfidence.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectClassWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClassWithConfidence, objectClass), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectClass, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectClass" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectClassWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConfidenceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ObjectClassWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* objectClass */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ObjectClassWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_ObjectClassWithConfidence), + offsetof(struct Vanetza_ITS2_ObjectClassWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_ObjectClassWithConfidence_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_Vanetza_ITS2_ObjectClassWithConfidence = { + "ObjectClassWithConfidence", + "ObjectClassWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ObjectClassWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ObjectClassWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectClassWithConfidence.h b/vanetza/asn1/its/r2/ObjectClassWithConfidence.h new file mode 100644 index 000000000..c1561957c --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectClassWithConfidence.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectClassWithConfidence_H_ +#define _Vanetza_ITS2_ObjectClassWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ObjectClass.h" +#include "ConfidenceLevel.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ObjectClassWithConfidence */ +typedef struct Vanetza_ITS2_ObjectClassWithConfidence { + Vanetza_ITS2_ObjectClass_t objectClass; + Vanetza_ITS2_ConfidenceLevel_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ObjectClassWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectClassWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ObjectClassWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectClassWithConfidence_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectClassWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectDimension.c b/vanetza/asn1/its/r2/ObjectDimension.c new file mode 100644 index 000000000..c82fcd655 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimension.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectDimension.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectDimension_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectDimension, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectDimensionValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ObjectDimension, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ObjectDimension_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_Vanetza_ITS2_ObjectDimension_specs_1 = { + sizeof(struct Vanetza_ITS2_ObjectDimension), + offsetof(struct Vanetza_ITS2_ObjectDimension, _asn_ctx), + asn_MAP_Vanetza_ITS2_ObjectDimension_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_Vanetza_ITS2_ObjectDimension = { + "ObjectDimension", + "ObjectDimension", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimension_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimension_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ObjectDimension_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ObjectDimension_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectDimension.h b/vanetza/asn1/its/r2/ObjectDimension.h new file mode 100644 index 000000000..aa76bff91 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimension.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectDimension_H_ +#define _Vanetza_ITS2_ObjectDimension_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ObjectDimensionValue.h" +#include "ObjectDimensionConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ObjectDimension */ +typedef struct Vanetza_ITS2_ObjectDimension { + Vanetza_ITS2_ObjectDimensionValue_t value; + Vanetza_ITS2_ObjectDimensionConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ObjectDimension_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectDimension; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ObjectDimension_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ObjectDimension_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectDimension_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectDimensionConfidence.c b/vanetza/asn1/its/r2/ObjectDimensionConfidence.c new file mode 100644 index 000000000..443ea6203 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimensionConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectDimensionConfidence.h" + +int +Vanetza_ITS2_ObjectDimensionConfidence_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 <= 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_Vanetza_ITS2_ObjectDimensionConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -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_Vanetza_ITS2_ObjectDimensionConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..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_Vanetza_ITS2_ObjectDimensionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence = { + "ObjectDimensionConfidence", + "ObjectDimensionConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ObjectDimensionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectDimensionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ObjectDimensionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectDimensionConfidence.h b/vanetza/asn1/its/r2/ObjectDimensionConfidence.h new file mode 100644 index 000000000..43b89fe5a --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimensionConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectDimensionConfidence_H_ +#define _Vanetza_ITS2_ObjectDimensionConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ObjectDimensionConfidence { + Vanetza_ITS2_ObjectDimensionConfidence_outOfRange = 31, + Vanetza_ITS2_ObjectDimensionConfidence_unavailable = 32 +} e_Vanetza_ITS2_ObjectDimensionConfidence; + +/* Vanetza_ITS2_ObjectDimensionConfidence */ +typedef long Vanetza_ITS2_ObjectDimensionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectDimensionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectDimensionConfidence; +asn_struct_free_f Vanetza_ITS2_ObjectDimensionConfidence_free; +asn_struct_print_f Vanetza_ITS2_ObjectDimensionConfidence_print; +asn_constr_check_f Vanetza_ITS2_ObjectDimensionConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_ObjectDimensionConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_ObjectDimensionConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ObjectDimensionConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_ObjectDimensionConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_ObjectDimensionConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_ObjectDimensionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectDimensionConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectDimensionValue.c b/vanetza/asn1/its/r2/ObjectDimensionValue.c new file mode 100644 index 000000000..46f8c5bd3 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimensionValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectDimensionValue.h" + +int +Vanetza_ITS2_ObjectDimensionValue_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 <= 256L)) { + /* 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_Vanetza_ITS2_ObjectDimensionValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..256) */, + -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_Vanetza_ITS2_ObjectDimensionValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { 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_Vanetza_ITS2_ObjectDimensionValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectDimensionValue = { + "ObjectDimensionValue", + "ObjectDimensionValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectDimensionValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ObjectDimensionValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectDimensionValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ObjectDimensionValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectDimensionValue.h b/vanetza/asn1/its/r2/ObjectDimensionValue.h new file mode 100644 index 000000000..7476242d6 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectDimensionValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectDimensionValue_H_ +#define _Vanetza_ITS2_ObjectDimensionValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ObjectDimensionValue { + Vanetza_ITS2_ObjectDimensionValue_outOfRange = 255, + Vanetza_ITS2_ObjectDimensionValue_unavailable = 256 +} e_Vanetza_ITS2_ObjectDimensionValue; + +/* Vanetza_ITS2_ObjectDimensionValue */ +typedef long Vanetza_ITS2_ObjectDimensionValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectDimensionValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectDimensionValue; +asn_struct_free_f Vanetza_ITS2_ObjectDimensionValue_free; +asn_struct_print_f Vanetza_ITS2_ObjectDimensionValue_print; +asn_constr_check_f Vanetza_ITS2_ObjectDimensionValue_constraint; +ber_type_decoder_f Vanetza_ITS2_ObjectDimensionValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_ObjectDimensionValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ObjectDimensionValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_ObjectDimensionValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_ObjectDimensionValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_ObjectDimensionValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectDimensionValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectFace.c b/vanetza/asn1/its/r2/ObjectFace.c new file mode 100644 index 000000000..d61af9044 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectFace.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectFace.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_Vanetza_ITS2_ObjectFace_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_Vanetza_ITS2_ObjectFace_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_Vanetza_ITS2_ObjectFace_value2enum_1[] = { + { 0, 5, "front" }, + { 1, 13, "sideLeftFront" }, + { 2, 12, "sideLeftBack" }, + { 3, 14, "sideRightFront" }, + { 4, 13, "sideRightBack" }, + { 5, 4, "back" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_ObjectFace_enum2value_1[] = { + 5, /* back(5) */ + 0, /* front(0) */ + 2, /* sideLeftBack(2) */ + 1, /* sideLeftFront(1) */ + 4, /* sideRightBack(4) */ + 3 /* sideRightFront(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_ObjectFace_specs_1 = { + asn_MAP_Vanetza_ITS2_ObjectFace_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_ObjectFace_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* 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_Vanetza_ITS2_ObjectFace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectFace = { + "ObjectFace", + "ObjectFace", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_ObjectFace_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectFace_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectFace_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectFace_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectFace_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectFace_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ObjectFace_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectFace_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_ObjectFace_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectFace.h b/vanetza/asn1/its/r2/ObjectFace.h new file mode 100644 index 000000000..f4a0be8ef --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectFace.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectFace_H_ +#define _Vanetza_ITS2_ObjectFace_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ObjectFace { + Vanetza_ITS2_ObjectFace_front = 0, + Vanetza_ITS2_ObjectFace_sideLeftFront = 1, + Vanetza_ITS2_ObjectFace_sideLeftBack = 2, + Vanetza_ITS2_ObjectFace_sideRightFront = 3, + Vanetza_ITS2_ObjectFace_sideRightBack = 4, + Vanetza_ITS2_ObjectFace_back = 5 +} e_Vanetza_ITS2_ObjectFace; + +/* Vanetza_ITS2_ObjectFace */ +typedef long Vanetza_ITS2_ObjectFace_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectFace_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectFace; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_ObjectFace_specs_1; +asn_struct_free_f Vanetza_ITS2_ObjectFace_free; +asn_struct_print_f Vanetza_ITS2_ObjectFace_print; +asn_constr_check_f Vanetza_ITS2_ObjectFace_constraint; +ber_type_decoder_f Vanetza_ITS2_ObjectFace_decode_ber; +der_type_encoder_f Vanetza_ITS2_ObjectFace_encode_der; +xer_type_decoder_f Vanetza_ITS2_ObjectFace_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ObjectFace_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ObjectFace_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ObjectFace_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ObjectFace_encode_oer; +per_type_decoder_f Vanetza_ITS2_ObjectFace_decode_uper; +per_type_encoder_f Vanetza_ITS2_ObjectFace_encode_uper; +per_type_decoder_f Vanetza_ITS2_ObjectFace_decode_aper; +per_type_encoder_f Vanetza_ITS2_ObjectFace_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectFace_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ObjectPerceptionQuality.c b/vanetza/asn1/its/r2/ObjectPerceptionQuality.c new file mode 100644 index 000000000..e31278e25 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectPerceptionQuality.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ObjectPerceptionQuality.h" + +int +Vanetza_ITS2_ObjectPerceptionQuality_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_Vanetza_ITS2_ObjectPerceptionQuality_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_Vanetza_ITS2_ObjectPerceptionQuality_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_Vanetza_ITS2_ObjectPerceptionQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality = { + "ObjectPerceptionQuality", + "ObjectPerceptionQuality", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ObjectPerceptionQuality_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ObjectPerceptionQuality_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ObjectPerceptionQuality_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ObjectPerceptionQuality.h b/vanetza/asn1/its/r2/ObjectPerceptionQuality.h new file mode 100644 index 000000000..7895f7b37 --- /dev/null +++ b/vanetza/asn1/its/r2/ObjectPerceptionQuality.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ObjectPerceptionQuality_H_ +#define _Vanetza_ITS2_ObjectPerceptionQuality_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ObjectPerceptionQuality { + Vanetza_ITS2_ObjectPerceptionQuality_noConfidence = 0, + Vanetza_ITS2_ObjectPerceptionQuality_fullConfidence = 15 +} e_Vanetza_ITS2_ObjectPerceptionQuality; + +/* Vanetza_ITS2_ObjectPerceptionQuality */ +typedef long Vanetza_ITS2_ObjectPerceptionQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ObjectPerceptionQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality; +asn_struct_free_f Vanetza_ITS2_ObjectPerceptionQuality_free; +asn_struct_print_f Vanetza_ITS2_ObjectPerceptionQuality_print; +asn_constr_check_f Vanetza_ITS2_ObjectPerceptionQuality_constraint; +ber_type_decoder_f Vanetza_ITS2_ObjectPerceptionQuality_decode_ber; +der_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_der; +xer_type_decoder_f Vanetza_ITS2_ObjectPerceptionQuality_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ObjectPerceptionQuality_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_oer; +per_type_decoder_f Vanetza_ITS2_ObjectPerceptionQuality_decode_uper; +per_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_uper; +per_type_decoder_f Vanetza_ITS2_ObjectPerceptionQuality_decode_aper; +per_type_encoder_f Vanetza_ITS2_ObjectPerceptionQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ObjectPerceptionQuality_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.c b/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.c new file mode 100644 index 000000000..a5d178c46 --- /dev/null +++ b/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.c @@ -0,0 +1,334 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OccupiedLanesWithConfidence.h" + +static int +memb_Vanetza_ITS2_lanePositionBased_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; + } +} + +static int +memb_Vanetza_ITS2_mapBased_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_Vanetza_ITS2_lanePositionBased_constr_2 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_Vanetza_ITS2_lanePositionBased_constr_2 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_Vanetza_ITS2_mapBased_constr_4 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_Vanetza_ITS2_mapBased_constr_4 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_Vanetza_ITS2_lanePositionBased_constr_2 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_Vanetza_ITS2_lanePositionBased_constr_2 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_Vanetza_ITS2_mapBased_constr_4 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_Vanetza_ITS2_mapBased_constr_4 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_Vanetza_ITS2_lanePositionBased_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Vanetza_ITS2_LanePositionOptions, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_lanePositionBased_specs_2 = { + sizeof(struct Vanetza_ITS2_OccupiedLanesWithConfidence__lanePositionBased), + offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence__lanePositionBased, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_lanePositionBased_2 = { + "lanePositionBased", + "lanePositionBased", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2, + sizeof(asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2) + /sizeof(asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2) + /sizeof(asn_DEF_Vanetza_ITS2_lanePositionBased_tags_2[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_lanePositionBased_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_lanePositionBased_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_lanePositionBased_2, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_lanePositionBased_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_mapBased_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_MapPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_mapBased_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_mapBased_specs_4 = { + sizeof(struct Vanetza_ITS2_OccupiedLanesWithConfidence__mapBased), + offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence__mapBased, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_mapBased_4 = { + "mapBased", + "mapBased", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_mapBased_tags_4, + sizeof(asn_DEF_Vanetza_ITS2_mapBased_tags_4) + /sizeof(asn_DEF_Vanetza_ITS2_mapBased_tags_4[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_mapBased_tags_4, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_mapBased_tags_4) + /sizeof(asn_DEF_Vanetza_ITS2_mapBased_tags_4[0]), /* 2 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_mapBased_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_mapBased_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_mapBased_4, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_mapBased_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OccupiedLanesWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence, lanePositionBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_lanePositionBased_2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_lanePositionBased_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_lanePositionBased_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_lanePositionBased_constraint_1 + }, + 0, 0, /* No default value */ + "lanePositionBased" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence, mapBased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_mapBased_4, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_mapBased_constr_4, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_mapBased_constr_4, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_mapBased_constraint_1 + }, + 0, 0, /* No default value */ + "mapBased" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MetaInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const int asn_MAP_Vanetza_ITS2_OccupiedLanesWithConfidence_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_OccupiedLanesWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lanePositionBased */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mapBased */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OccupiedLanesWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_OccupiedLanesWithConfidence), + offsetof(struct Vanetza_ITS2_OccupiedLanesWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_OccupiedLanesWithConfidence_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_OccupiedLanesWithConfidence_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence = { + "OccupiedLanesWithConfidence", + "OccupiedLanesWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_OccupiedLanesWithConfidence_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_OccupiedLanesWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.h b/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.h new file mode 100644 index 000000000..50fe02325 --- /dev/null +++ b/vanetza/asn1/its/r2/OccupiedLanesWithConfidence.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OccupiedLanesWithConfidence_H_ +#define _Vanetza_ITS2_OccupiedLanesWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MetaInformation.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_LanePositionOptions; +struct Vanetza_ITS2_MapPosition; + +/* Vanetza_ITS2_OccupiedLanesWithConfidence */ +typedef struct Vanetza_ITS2_OccupiedLanesWithConfidence { + struct Vanetza_ITS2_OccupiedLanesWithConfidence__lanePositionBased { + A_SEQUENCE_OF(struct Vanetza_ITS2_LanePositionOptions) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } lanePositionBased; + struct Vanetza_ITS2_OccupiedLanesWithConfidence__mapBased { + A_SEQUENCE_OF(struct Vanetza_ITS2_MapPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mapBased; + Vanetza_ITS2_MetaInformation_t confidence; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_OccupiedLanesWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OccupiedLanesWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OccupiedLanesWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OccupiedLanesWithConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "LanePositionOptions.h" +#include "MapPosition.h" + +#endif /* _Vanetza_ITS2_OccupiedLanesWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OpeningDaysHours.c b/vanetza/asn1/its/r2/OpeningDaysHours.c new file mode 100644 index 000000000..4876e26b1 --- /dev/null +++ b/vanetza/asn1/its/r2/OpeningDaysHours.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OpeningDaysHours_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + UTF8String_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/OpeningDaysHours.h b/vanetza/asn1/its/r2/OpeningDaysHours.h new file mode 100644 index 000000000..f2d0938a8 --- /dev/null +++ b/vanetza/asn1/its/r2/OpeningDaysHours.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OpeningDaysHours_H_ +#define _Vanetza_ITS2_OpeningDaysHours_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "UTF8String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_OpeningDaysHours */ +typedef UTF8String_t Vanetza_ITS2_OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OpeningDaysHours; +asn_struct_free_f Vanetza_ITS2_OpeningDaysHours_free; +asn_struct_print_f Vanetza_ITS2_OpeningDaysHours_print; +asn_constr_check_f Vanetza_ITS2_OpeningDaysHours_constraint; +ber_type_decoder_f Vanetza_ITS2_OpeningDaysHours_decode_ber; +der_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_der; +xer_type_decoder_f Vanetza_ITS2_OpeningDaysHours_decode_xer; +xer_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_xer; +jer_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_jer; +oer_type_decoder_f Vanetza_ITS2_OpeningDaysHours_decode_oer; +oer_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_oer; +per_type_decoder_f Vanetza_ITS2_OpeningDaysHours_decode_uper; +per_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_uper; +per_type_decoder_f Vanetza_ITS2_OpeningDaysHours_decode_aper; +per_type_encoder_f Vanetza_ITS2_OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_OpeningDaysHours_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OrdinalNumber1B.c b/vanetza/asn1/its/r2/OrdinalNumber1B.c new file mode 100644 index 000000000..9e3cae72e --- /dev/null +++ b/vanetza/asn1/its/r2/OrdinalNumber1B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OrdinalNumber1B.h" + +int +Vanetza_ITS2_OrdinalNumber1B_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_Vanetza_ITS2_OrdinalNumber1B_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_Vanetza_ITS2_OrdinalNumber1B_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_Vanetza_ITS2_OrdinalNumber1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OrdinalNumber1B = { + "OrdinalNumber1B", + "OrdinalNumber1B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber1B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_OrdinalNumber1B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_OrdinalNumber1B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_OrdinalNumber1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/OrdinalNumber1B.h b/vanetza/asn1/its/r2/OrdinalNumber1B.h new file mode 100644 index 000000000..bbe8dfd92 --- /dev/null +++ b/vanetza/asn1/its/r2/OrdinalNumber1B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OrdinalNumber1B_H_ +#define _Vanetza_ITS2_OrdinalNumber1B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_OrdinalNumber1B */ +typedef long Vanetza_ITS2_OrdinalNumber1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_OrdinalNumber1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OrdinalNumber1B; +asn_struct_free_f Vanetza_ITS2_OrdinalNumber1B_free; +asn_struct_print_f Vanetza_ITS2_OrdinalNumber1B_print; +asn_constr_check_f Vanetza_ITS2_OrdinalNumber1B_constraint; +ber_type_decoder_f Vanetza_ITS2_OrdinalNumber1B_decode_ber; +der_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_der; +xer_type_decoder_f Vanetza_ITS2_OrdinalNumber1B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_OrdinalNumber1B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_oer; +per_type_decoder_f Vanetza_ITS2_OrdinalNumber1B_decode_uper; +per_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_uper; +per_type_decoder_f Vanetza_ITS2_OrdinalNumber1B_decode_aper; +per_type_encoder_f Vanetza_ITS2_OrdinalNumber1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_OrdinalNumber1B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OrdinalNumber3b.c b/vanetza/asn1/its/r2/OrdinalNumber3b.c new file mode 100644 index 000000000..8965de65c --- /dev/null +++ b/vanetza/asn1/its/r2/OrdinalNumber3b.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OrdinalNumber3b.h" + +int +Vanetza_ITS2_OrdinalNumber3b_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 <= 8L)) { + /* 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_Vanetza_ITS2_OrdinalNumber3b_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -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_Vanetza_ITS2_OrdinalNumber3b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { 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_Vanetza_ITS2_OrdinalNumber3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OrdinalNumber3b = { + "OrdinalNumber3b", + "OrdinalNumber3b", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OrdinalNumber3b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_OrdinalNumber3b_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_OrdinalNumber3b_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_OrdinalNumber3b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/OrdinalNumber3b.h b/vanetza/asn1/its/r2/OrdinalNumber3b.h new file mode 100644 index 000000000..cf78d98b5 --- /dev/null +++ b/vanetza/asn1/its/r2/OrdinalNumber3b.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OrdinalNumber3b_H_ +#define _Vanetza_ITS2_OrdinalNumber3b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_OrdinalNumber3b */ +typedef long Vanetza_ITS2_OrdinalNumber3b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_OrdinalNumber3b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OrdinalNumber3b; +asn_struct_free_f Vanetza_ITS2_OrdinalNumber3b_free; +asn_struct_print_f Vanetza_ITS2_OrdinalNumber3b_print; +asn_constr_check_f Vanetza_ITS2_OrdinalNumber3b_constraint; +ber_type_decoder_f Vanetza_ITS2_OrdinalNumber3b_decode_ber; +der_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_der; +xer_type_decoder_f Vanetza_ITS2_OrdinalNumber3b_decode_xer; +xer_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_xer; +jer_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_jer; +oer_type_decoder_f Vanetza_ITS2_OrdinalNumber3b_decode_oer; +oer_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_oer; +per_type_decoder_f Vanetza_ITS2_OrdinalNumber3b_decode_uper; +per_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_uper; +per_type_decoder_f Vanetza_ITS2_OrdinalNumber3b_decode_aper; +per_type_encoder_f Vanetza_ITS2_OrdinalNumber3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_OrdinalNumber3b_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OriginatingRsuContainer.c b/vanetza/asn1/its/r2/OriginatingRsuContainer.c new file mode 100644 index 000000000..87d3eb58b --- /dev/null +++ b/vanetza/asn1/its/r2/OriginatingRsuContainer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OriginatingRsuContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OriginatingRsuContainer_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_OriginatingRsuContainer, mapReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapReference, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapReference" + }, +}; +static const int asn_MAP_Vanetza_ITS2_OriginatingRsuContainer_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_OriginatingRsuContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mapReference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OriginatingRsuContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_OriginatingRsuContainer), + offsetof(struct Vanetza_ITS2_OriginatingRsuContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_OriginatingRsuContainer_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_OriginatingRsuContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OriginatingRsuContainer = { + "OriginatingRsuContainer", + "OriginatingRsuContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OriginatingRsuContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_OriginatingRsuContainer_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_OriginatingRsuContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/OriginatingRsuContainer.h b/vanetza/asn1/its/r2/OriginatingRsuContainer.h new file mode 100644 index 000000000..29897d62f --- /dev/null +++ b/vanetza/asn1/its/r2/OriginatingRsuContainer.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OriginatingRsuContainer_H_ +#define _Vanetza_ITS2_OriginatingRsuContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_MapReference; + +/* Vanetza_ITS2_OriginatingRsuContainer */ +typedef struct Vanetza_ITS2_OriginatingRsuContainer { + struct Vanetza_ITS2_MapReference *mapReference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_OriginatingRsuContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OriginatingRsuContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OriginatingRsuContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OriginatingRsuContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "MapReference.h" + +#endif /* _Vanetza_ITS2_OriginatingRsuContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OriginatingVehicleContainer.c b/vanetza/asn1/its/r2/OriginatingVehicleContainer.c new file mode 100644 index 000000000..e3d2b7f66 --- /dev/null +++ b/vanetza/asn1/its/r2/OriginatingVehicleContainer.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OriginatingVehicleContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OriginatingVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_OriginatingVehicleContainer, orientationAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Wgs84Angle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "orientationAngle" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_OriginatingVehicleContainer, pitchAngle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pitchAngle" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_OriginatingVehicleContainer, rollAngle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rollAngle" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_OriginatingVehicleContainer, trailerDataSet), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrailerDataSet, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerDataSet" + }, +}; +static const int asn_MAP_Vanetza_ITS2_OriginatingVehicleContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_OriginatingVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* orientationAngle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pitchAngle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rollAngle */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* trailerDataSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OriginatingVehicleContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_OriginatingVehicleContainer), + offsetof(struct Vanetza_ITS2_OriginatingVehicleContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_OriginatingVehicleContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_OriginatingVehicleContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer = { + "OriginatingVehicleContainer", + "OriginatingVehicleContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_OriginatingVehicleContainer_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_OriginatingVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/OriginatingVehicleContainer.h b/vanetza/asn1/its/r2/OriginatingVehicleContainer.h new file mode 100644 index 000000000..81af50ce2 --- /dev/null +++ b/vanetza/asn1/its/r2/OriginatingVehicleContainer.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OriginatingVehicleContainer_H_ +#define _Vanetza_ITS2_OriginatingVehicleContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Wgs84Angle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianAngle; +struct Vanetza_ITS2_TrailerDataSet; + +/* Vanetza_ITS2_OriginatingVehicleContainer */ +typedef struct Vanetza_ITS2_OriginatingVehicleContainer { + Vanetza_ITS2_Wgs84Angle_t orientationAngle; + struct Vanetza_ITS2_CartesianAngle *pitchAngle; /* OPTIONAL */ + struct Vanetza_ITS2_CartesianAngle *rollAngle; /* OPTIONAL */ + struct Vanetza_ITS2_TrailerDataSet *trailerDataSet; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_OriginatingVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_OriginatingVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_OriginatingVehicleContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianAngle.h" +#include "TrailerDataSet.h" + +#endif /* _Vanetza_ITS2_OriginatingVehicleContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/OtherSubClass.c b/vanetza/asn1/its/r2/OtherSubClass.c new file mode 100644 index 000000000..14e02e73e --- /dev/null +++ b/vanetza/asn1/its/r2/OtherSubClass.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "OtherSubClass.h" + +int +Vanetza_ITS2_OtherSubClass_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_Vanetza_ITS2_OtherSubClass_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_Vanetza_ITS2_OtherSubClass_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_Vanetza_ITS2_OtherSubClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OtherSubClass = { + "OtherSubClass", + "OtherSubClass", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_OtherSubClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_OtherSubClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_OtherSubClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_OtherSubClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/OtherSubClass.h b/vanetza/asn1/its/r2/OtherSubClass.h new file mode 100644 index 000000000..d1852d55a --- /dev/null +++ b/vanetza/asn1/its/r2/OtherSubClass.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_OtherSubClass_H_ +#define _Vanetza_ITS2_OtherSubClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_OtherSubClass { + Vanetza_ITS2_OtherSubClass_unknown = 0, + Vanetza_ITS2_OtherSubClass_singleObject = 1, + Vanetza_ITS2_OtherSubClass_multipleObjects = 2, + Vanetza_ITS2_OtherSubClass_bulkMaterial = 3 +} e_Vanetza_ITS2_OtherSubClass; + +/* Vanetza_ITS2_OtherSubClass */ +typedef long Vanetza_ITS2_OtherSubClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_OtherSubClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_OtherSubClass; +asn_struct_free_f Vanetza_ITS2_OtherSubClass_free; +asn_struct_print_f Vanetza_ITS2_OtherSubClass_print; +asn_constr_check_f Vanetza_ITS2_OtherSubClass_constraint; +ber_type_decoder_f Vanetza_ITS2_OtherSubClass_decode_ber; +der_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_der; +xer_type_decoder_f Vanetza_ITS2_OtherSubClass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_OtherSubClass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_oer; +per_type_decoder_f Vanetza_ITS2_OtherSubClass_decode_uper; +per_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_uper; +per_type_decoder_f Vanetza_ITS2_OtherSubClass_decode_aper; +per_type_encoder_f Vanetza_ITS2_OtherSubClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_OtherSubClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Path.c b/vanetza/asn1/its/r2/Path.c new file mode 100644 index 000000000..144f7097b --- /dev/null +++ b/vanetza/asn1/its/r2/Path.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Path.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_Path_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Path_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Path_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Path_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_Path_specs_1 = { + sizeof(struct Vanetza_ITS2_Path), + offsetof(struct Vanetza_ITS2_Path, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Path = { + "Path", + "Path", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_Path_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Path_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Path_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Path_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Path_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Path_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Path_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Path_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_Path_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_Path_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Path.h b/vanetza/asn1/its/r2/Path.h new file mode 100644 index 000000000..2bde17c1c --- /dev/null +++ b/vanetza/asn1/its/r2/Path.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Path_H_ +#define _Vanetza_ITS2_Path_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 Vanetza_ITS2_PathPoint; + +/* Vanetza_ITS2_Path */ +typedef struct Vanetza_ITS2_Path { + A_SEQUENCE_OF(struct Vanetza_ITS2_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Path_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Path; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_Path_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Path_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Path_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PathPoint.h" + +#endif /* _Vanetza_ITS2_Path_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathDeltaTime.c b/vanetza/asn1/its/r2/PathDeltaTime.c new file mode 100644 index 000000000..de1ecf988 --- /dev/null +++ b/vanetza/asn1/its/r2/PathDeltaTime.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathDeltaTime.h" + +int +Vanetza_ITS2_PathDeltaTime_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_Vanetza_ITS2_PathDeltaTime_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_Vanetza_ITS2_PathDeltaTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathDeltaTime_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathDeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathDeltaTime_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PathDeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PathDeltaTime.h b/vanetza/asn1/its/r2/PathDeltaTime.h new file mode 100644 index 000000000..b00c989d5 --- /dev/null +++ b/vanetza/asn1/its/r2/PathDeltaTime.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathDeltaTime_H_ +#define _Vanetza_ITS2_PathDeltaTime_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PathDeltaTime */ +typedef long Vanetza_ITS2_PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathDeltaTime; +asn_struct_free_f Vanetza_ITS2_PathDeltaTime_free; +asn_struct_print_f Vanetza_ITS2_PathDeltaTime_print; +asn_constr_check_f Vanetza_ITS2_PathDeltaTime_constraint; +ber_type_decoder_f Vanetza_ITS2_PathDeltaTime_decode_ber; +der_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_der; +xer_type_decoder_f Vanetza_ITS2_PathDeltaTime_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PathDeltaTime_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_oer; +per_type_decoder_f Vanetza_ITS2_PathDeltaTime_decode_uper; +per_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_uper; +per_type_decoder_f Vanetza_ITS2_PathDeltaTime_decode_aper; +per_type_encoder_f Vanetza_ITS2_PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathDeltaTime_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathDeltaTimeChoice.c b/vanetza/asn1/its/r2/PathDeltaTimeChoice.c new file mode 100644 index 000000000..784c1eaab --- /dev/null +++ b/vanetza/asn1/its/r2/PathDeltaTimeChoice.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathDeltaTimeChoice.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathDeltaTimeChoice_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_Vanetza_ITS2_PathDeltaTimeChoice_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_Vanetza_ITS2_PathDeltaTimeChoice_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathDeltaTimeChoice, choice.deltaTimeHighPrecision), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaTimeHighPrecision" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathDeltaTimeChoice, choice.deltaTimeBigRange), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenSeconds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaTimeBigRange" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PathDeltaTimeChoice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaTimeHighPrecision */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* deltaTimeBigRange */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_PathDeltaTimeChoice_specs_1 = { + sizeof(struct Vanetza_ITS2_PathDeltaTimeChoice), + offsetof(struct Vanetza_ITS2_PathDeltaTimeChoice, _asn_ctx), + offsetof(struct Vanetza_ITS2_PathDeltaTimeChoice, present), + sizeof(((struct Vanetza_ITS2_PathDeltaTimeChoice *)0)->present), + asn_MAP_Vanetza_ITS2_PathDeltaTimeChoice_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathDeltaTimeChoice = { + "PathDeltaTimeChoice", + "PathDeltaTimeChoice", + &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_Vanetza_ITS2_PathDeltaTimeChoice_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathDeltaTimeChoice_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_PathDeltaTimeChoice_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PathDeltaTimeChoice_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathDeltaTimeChoice.h b/vanetza/asn1/its/r2/PathDeltaTimeChoice.h new file mode 100644 index 000000000..726e9a0b8 --- /dev/null +++ b/vanetza/asn1/its/r2/PathDeltaTimeChoice.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathDeltaTimeChoice_H_ +#define _Vanetza_ITS2_PathDeltaTimeChoice_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaTimeTenthOfSecond.h" +#include "DeltaTimeTenSeconds.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PathDeltaTimeChoice_PR { + Vanetza_ITS2_PathDeltaTimeChoice_PR_NOTHING, /* No components present */ + Vanetza_ITS2_PathDeltaTimeChoice_PR_deltaTimeHighPrecision, + Vanetza_ITS2_PathDeltaTimeChoice_PR_deltaTimeBigRange + /* Extensions may appear below */ + +} Vanetza_ITS2_PathDeltaTimeChoice_PR; + +/* Vanetza_ITS2_PathDeltaTimeChoice */ +typedef struct Vanetza_ITS2_PathDeltaTimeChoice { + Vanetza_ITS2_PathDeltaTimeChoice_PR present; + union Vanetza_ITS2_PathDeltaTimeChoice_u { + Vanetza_ITS2_DeltaTimeTenthOfSecond_t deltaTimeHighPrecision; + Vanetza_ITS2_DeltaTimeTenSeconds_t deltaTimeBigRange; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathDeltaTimeChoice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathDeltaTimeChoice; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_PathDeltaTimeChoice_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathDeltaTimeChoice_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathDeltaTimeChoice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathDeltaTimeChoice_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathExtended.c b/vanetza/asn1/its/r2/PathExtended.c new file mode 100644 index 000000000..985bf1f07 --- /dev/null +++ b/vanetza/asn1/its/r2/PathExtended.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathExtended.h" + +static int +memb_Vanetza_ITS2_pointOfEventZone_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 <= 23L)) { + /* 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_Vanetza_ITS2_pointOfEventZone_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..23) */, + -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_Vanetza_ITS2_pointOfEventZone_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 23 } /* (1..23) */, + { 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_Vanetza_ITS2_PathExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathExtended, pointOfEventZone), + (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_Vanetza_ITS2_pointOfEventZone_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_pointOfEventZone_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_pointOfEventZone_constraint_1 + }, + 0, 0, /* No default value */ + "pointOfEventZone" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathExtended, path), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Path, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "path" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PathExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pointOfEventZone */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* path */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathExtended_specs_1 = { + sizeof(struct Vanetza_ITS2_PathExtended), + offsetof(struct Vanetza_ITS2_PathExtended, _asn_ctx), + asn_MAP_Vanetza_ITS2_PathExtended_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_Vanetza_ITS2_PathExtended = { + "PathExtended", + "PathExtended", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PathExtended_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathExtended_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathExtended_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PathExtended_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PathExtended_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathExtended.h b/vanetza/asn1/its/r2/PathExtended.h new file mode 100644 index 000000000..d2fb28b0f --- /dev/null +++ b/vanetza/asn1/its/r2/PathExtended.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathExtended_H_ +#define _Vanetza_ITS2_PathExtended_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "Path.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PathExtended */ +typedef struct Vanetza_ITS2_PathExtended { + long pointOfEventZone; + Vanetza_ITS2_Path_t path; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathExtended_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathExtended_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathHistory.c b/vanetza/asn1/its/r2/PathHistory.c new file mode 100644 index 000000000..808a31f5a --- /dev/null +++ b/vanetza/asn1/its/r2/PathHistory.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathHistory.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathHistory_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..40)) */}; +#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_Vanetza_ITS2_PathHistory_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 0, 40 } /* (SIZE(0..40)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathPoint, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathHistory_specs_1 = { + sizeof(struct Vanetza_ITS2_PathHistory), + offsetof(struct Vanetza_ITS2_PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PathHistory_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathHistory_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathHistory_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathHistory_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathHistory_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathHistory_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PathHistory_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathHistory.h b/vanetza/asn1/its/r2/PathHistory.h new file mode 100644 index 000000000..71dcb95a8 --- /dev/null +++ b/vanetza/asn1/its/r2/PathHistory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathHistory_H_ +#define _Vanetza_ITS2_PathHistory_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 Vanetza_ITS2_PathPoint; + +/* Vanetza_ITS2_PathHistory */ +typedef struct Vanetza_ITS2_PathHistory { + A_SEQUENCE_OF(struct Vanetza_ITS2_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathHistory; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PathPoint.h" + +#endif /* _Vanetza_ITS2_PathHistory_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathId.c b/vanetza/asn1/its/r2/PathId.c new file mode 100644 index 000000000..e2e138e81 --- /dev/null +++ b/vanetza/asn1/its/r2/PathId.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathId.h" + +int +Vanetza_ITS2_PathId_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 <= 14L)) { + /* 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_Vanetza_ITS2_PathId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..14) */, + -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_Vanetza_ITS2_PathId_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 ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathId = { + "PathId", + "PathId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PathId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PathId_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PathId.h b/vanetza/asn1/its/r2/PathId.h new file mode 100644 index 000000000..058bfbfe6 --- /dev/null +++ b/vanetza/asn1/its/r2/PathId.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathId_H_ +#define _Vanetza_ITS2_PathId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PathId { + Vanetza_ITS2_PathId_noPath = 0, + Vanetza_ITS2_PathId_path1 = 1, + Vanetza_ITS2_PathId_path2 = 2, + Vanetza_ITS2_PathId_path3 = 3, + Vanetza_ITS2_PathId_path4 = 4, + Vanetza_ITS2_PathId_path5 = 5, + Vanetza_ITS2_PathId_path6 = 6, + Vanetza_ITS2_PathId_path7 = 7, + Vanetza_ITS2_PathId_pathExtended1 = 8, + Vanetza_ITS2_PathId_pathExtended2 = 9, + Vanetza_ITS2_PathId_pathExtended3 = 10, + Vanetza_ITS2_PathId_pathExtended4 = 11, + Vanetza_ITS2_PathId_pathExtended5 = 12, + Vanetza_ITS2_PathId_pathExtended6 = 13, + Vanetza_ITS2_PathId_pathExtended7 = 14 +} e_Vanetza_ITS2_PathId; + +/* Vanetza_ITS2_PathId */ +typedef long Vanetza_ITS2_PathId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathId; +asn_struct_free_f Vanetza_ITS2_PathId_free; +asn_struct_print_f Vanetza_ITS2_PathId_print; +asn_constr_check_f Vanetza_ITS2_PathId_constraint; +ber_type_decoder_f Vanetza_ITS2_PathId_decode_ber; +der_type_encoder_f Vanetza_ITS2_PathId_encode_der; +xer_type_decoder_f Vanetza_ITS2_PathId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PathId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PathId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PathId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PathId_encode_oer; +per_type_decoder_f Vanetza_ITS2_PathId_decode_uper; +per_type_encoder_f Vanetza_ITS2_PathId_encode_uper; +per_type_decoder_f Vanetza_ITS2_PathId_decode_aper; +per_type_encoder_f Vanetza_ITS2_PathId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathPoint.c b/vanetza/asn1/its/r2/PathPoint.c new file mode 100644 index 000000000..3cb2fefaa --- /dev/null +++ b/vanetza/asn1/its/r2/PathPoint.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathPoint.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathPosition" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathDeltaTime, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PathPoint_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pathDeltaTime */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPoint_specs_1 = { + sizeof(struct Vanetza_ITS2_PathPoint), + offsetof(struct Vanetza_ITS2_PathPoint, _asn_ctx), + asn_MAP_Vanetza_ITS2_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PathPoint_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathPoint_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathPoint_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPoint_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathPoint.h b/vanetza/asn1/its/r2/PathPoint.h new file mode 100644 index 000000000..cc629a66e --- /dev/null +++ b/vanetza/asn1/its/r2/PathPoint.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathPoint_H_ +#define _Vanetza_ITS2_PathPoint_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaReferencePosition.h" +#include "PathDeltaTime.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PathPoint */ +typedef struct Vanetza_ITS2_PathPoint { + Vanetza_ITS2_DeltaReferencePosition_t pathPosition; + Vanetza_ITS2_PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathPoint_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathPointPredicted.c b/vanetza/asn1/its/r2/PathPointPredicted.c new file mode 100644 index 000000000..058cabba8 --- /dev/null +++ b/vanetza/asn1/its/r2/PathPointPredicted.c @@ -0,0 +1,279 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathPointPredicted.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathPointPredicted_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_Vanetza_ITS2_PathPointPredicted_constr_1 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 int asn_DFL_5_cmp_12800(const void *sptr) { + const Vanetza_ITS2_DeltaAltitude_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 12800 */ + return (*st != 12800); +} +static int asn_DFL_5_set_12800(void **sptr) { + Vanetza_ITS2_DeltaAltitude_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 12800 */ + *st = 12800; + return 0; +} +static int asn_DFL_6_cmp_15(const void *sptr) { + const Vanetza_ITS2_AltitudeConfidence_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_6_set_15(void **sptr) { + Vanetza_ITS2_AltitudeConfidence_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPointPredicted_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPointPredicted, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaLatitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPointPredicted, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaLongitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "deltaLongitude" + }, + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_PathPointPredicted, horizontalPositionConfidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosConfidenceEllipse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "horizontalPositionConfidence" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_PathPointPredicted, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaAltitude, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_5_cmp_12800, /* Compare DEFAULT 12800 */ + &asn_DFL_5_set_12800, /* Set DEFAULT 12800 */ + "deltaAltitude" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_PathPointPredicted, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + &asn_DFL_6_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_6_set_15, /* Set DEFAULT 15 */ + "altitudeConfidence" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_PathPointPredicted, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathDeltaTimeChoice, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pathDeltaTime" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_PathPointPredicted, symmetricAreaOffset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength9b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "symmetricAreaOffset" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PathPointPredicted, asymmetricAreaOffset), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength9b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "asymmetricAreaOffset" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PathPointPredicted_oms_1[] = { 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PathPointPredicted_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalPositionConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* deltaAltitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* altitudeConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pathDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* symmetricAreaOffset */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* asymmetricAreaOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPointPredicted_specs_1 = { + sizeof(struct Vanetza_ITS2_PathPointPredicted), + offsetof(struct Vanetza_ITS2_PathPointPredicted, _asn_ctx), + asn_MAP_Vanetza_ITS2_PathPointPredicted_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PathPointPredicted_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPointPredicted = { + "PathPointPredicted", + "PathPointPredicted", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPointPredicted_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathPointPredicted_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathPointPredicted_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PathPointPredicted_1, + 8, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PathPointPredicted_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathPointPredicted.h b/vanetza/asn1/its/r2/PathPointPredicted.h new file mode 100644 index 000000000..4e12160a8 --- /dev/null +++ b/vanetza/asn1/its/r2/PathPointPredicted.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathPointPredicted_H_ +#define _Vanetza_ITS2_PathPointPredicted_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaLatitude.h" +#include "DeltaLongitude.h" +#include "DeltaAltitude.h" +#include "AltitudeConfidence.h" +#include "StandardLength9b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_PosConfidenceEllipse; +struct Vanetza_ITS2_PathDeltaTimeChoice; + +/* Vanetza_ITS2_PathPointPredicted */ +typedef struct Vanetza_ITS2_PathPointPredicted { + Vanetza_ITS2_DeltaLatitude_t deltaLatitude; + Vanetza_ITS2_DeltaLongitude_t deltaLongitude; + struct Vanetza_ITS2_PosConfidenceEllipse *horizontalPositionConfidence; /* OPTIONAL */ + Vanetza_ITS2_DeltaAltitude_t *deltaAltitude; /* DEFAULT 12800 */ + Vanetza_ITS2_AltitudeConfidence_t *altitudeConfidence; /* DEFAULT 15 */ + struct Vanetza_ITS2_PathDeltaTimeChoice *pathDeltaTime; /* OPTIONAL */ + Vanetza_ITS2_StandardLength9b_t *symmetricAreaOffset; /* OPTIONAL */ + Vanetza_ITS2_StandardLength9b_t *asymmetricAreaOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathPointPredicted_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPointPredicted; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPointPredicted_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPointPredicted_1[8]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathPointPredicted_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PosConfidenceEllipse.h" +#include "PathDeltaTimeChoice.h" + +#endif /* _Vanetza_ITS2_PathPointPredicted_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathPredicted.c b/vanetza/asn1/its/r2/PathPredicted.c new file mode 100644 index 000000000..22aef41ac --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredicted.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathPredicted.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathPredicted_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_Vanetza_ITS2_PathPredicted_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_PathPredicted_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathPointPredicted, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathPredicted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathPredicted_specs_1 = { + sizeof(struct Vanetza_ITS2_PathPredicted), + offsetof(struct Vanetza_ITS2_PathPredicted, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPredicted = { + "PathPredicted", + "PathPredicted", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PathPredicted_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathPredicted_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredicted_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathPredicted_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathPredicted_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredicted_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathPredicted_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathPredicted_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PathPredicted_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PathPredicted_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathPredicted.h b/vanetza/asn1/its/r2/PathPredicted.h new file mode 100644 index 000000000..922e1ca98 --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredicted.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathPredicted_H_ +#define _Vanetza_ITS2_PathPredicted_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 Vanetza_ITS2_PathPointPredicted; + +/* Vanetza_ITS2_PathPredicted */ +typedef struct Vanetza_ITS2_PathPredicted { + A_SEQUENCE_OF(struct Vanetza_ITS2_PathPointPredicted) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathPredicted_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPredicted; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathPredicted_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPredicted_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathPredicted_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PathPointPredicted.h" + +#endif /* _Vanetza_ITS2_PathPredicted_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathPredicted2.c b/vanetza/asn1/its/r2/PathPredicted2.c new file mode 100644 index 000000000..d55a3d33e --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredicted2.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathPredicted2.h" + +static int +memb_Vanetza_ITS2_pathPredicted_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_memb_Vanetza_ITS2_pathPredicted_constr_2 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_Vanetza_ITS2_pathPredicted_constr_2 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_Vanetza_ITS2_PathPredicted2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPredicted2, pathPredicted), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathPredicted, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_pathPredicted_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_pathPredicted_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_pathPredicted_constraint_1 + }, + 0, 0, /* No default value */ + "pathPredicted" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPredicted2, usageIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_UsageIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "usageIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PathPredicted2, confidenceLevel), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConfidenceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidenceLevel" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PathPredicted2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pathPredicted */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* usageIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* confidenceLevel */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPredicted2_specs_1 = { + sizeof(struct Vanetza_ITS2_PathPredicted2), + offsetof(struct Vanetza_ITS2_PathPredicted2, _asn_ctx), + asn_MAP_Vanetza_ITS2_PathPredicted2_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_Vanetza_ITS2_PathPredicted2 = { + "PathPredicted2", + "PathPredicted2", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathPredicted2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredicted2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PathPredicted2_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PathPredicted2_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathPredicted2.h b/vanetza/asn1/its/r2/PathPredicted2.h new file mode 100644 index 000000000..037b7d937 --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredicted2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathPredicted2_H_ +#define _Vanetza_ITS2_PathPredicted2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PathPredicted.h" +#include "UsageIndication.h" +#include "ConfidenceLevel.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PathPredicted2 */ +typedef struct Vanetza_ITS2_PathPredicted2 { + Vanetza_ITS2_PathPredicted_t pathPredicted; + Vanetza_ITS2_UsageIndication_t usageIndication; + Vanetza_ITS2_ConfidenceLevel_t confidenceLevel; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathPredicted2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPredicted2; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PathPredicted2_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPredicted2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathPredicted2_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathPredictedList.c b/vanetza/asn1/its/r2/PathPredictedList.c new file mode 100644 index 000000000..dd6db7d3a --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredictedList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathPredictedList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathPredictedList_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_Vanetza_ITS2_PathPredictedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_PathPredictedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathPredicted2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathPredictedList_specs_1 = { + sizeof(struct Vanetza_ITS2_PathPredictedList), + offsetof(struct Vanetza_ITS2_PathPredictedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPredictedList = { + "PathPredictedList", + "PathPredictedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathPredictedList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathPredictedList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathPredictedList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PathPredictedList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PathPredictedList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathPredictedList.h b/vanetza/asn1/its/r2/PathPredictedList.h new file mode 100644 index 000000000..a09f40849 --- /dev/null +++ b/vanetza/asn1/its/r2/PathPredictedList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathPredictedList_H_ +#define _Vanetza_ITS2_PathPredictedList_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 Vanetza_ITS2_PathPredicted2; + +/* Vanetza_ITS2_PathPredictedList */ +typedef struct Vanetza_ITS2_PathPredictedList { + A_SEQUENCE_OF(struct Vanetza_ITS2_PathPredicted2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathPredictedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathPredictedList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathPredictedList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathPredictedList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathPredictedList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PathPredicted2.h" + +#endif /* _Vanetza_ITS2_PathPredictedList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PathReferences.c b/vanetza/asn1/its/r2/PathReferences.c new file mode 100644 index 000000000..37d6e951a --- /dev/null +++ b/vanetza/asn1/its/r2/PathReferences.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PathReferences.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PathReferences_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..14)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathReferences_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 14 } /* (SIZE(1..14)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathReferences_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PathReferences_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathReferences_specs_1 = { + sizeof(struct Vanetza_ITS2_PathReferences), + offsetof(struct Vanetza_ITS2_PathReferences, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathReferences = { + "PathReferences", + "PathReferences", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PathReferences_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PathReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathReferences_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PathReferences_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PathReferences_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PathReferences_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PathReferences_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PathReferences_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PathReferences_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PathReferences_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PathReferences.h b/vanetza/asn1/its/r2/PathReferences.h new file mode 100644 index 000000000..0a155dab1 --- /dev/null +++ b/vanetza/asn1/its/r2/PathReferences.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PathReferences_H_ +#define _Vanetza_ITS2_PathReferences_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PathId.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PathReferences */ +typedef struct Vanetza_ITS2_PathReferences { + A_SEQUENCE_OF(Vanetza_ITS2_PathId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PathReferences_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PathReferences; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PathReferences_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PathReferences_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PathReferences_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PathReferences_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceivedObject.c b/vanetza/asn1/its/r2/PerceivedObject.c new file mode 100644 index 000000000..3dd393242 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObject.c @@ -0,0 +1,426 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceivedObject.h" + +static int +memb_Vanetza_ITS2_objectAge_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 <= 2047L)) { + /* 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_Vanetza_ITS2_objectAge_constr_13 CC_NOTUSED = { + { 2, 1 } /* (0..2047) */, + -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_Vanetza_ITS2_objectAge_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 2047 } /* (0..2047) */, + { 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_Vanetza_ITS2_PerceivedObject_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PerceivedObject, objectId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceivedObject, measurementDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measurementDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceivedObject, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3dWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "position" + }, + { ATF_POINTER, 13, offsetof(struct Vanetza_ITS2_PerceivedObject, velocity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Velocity3dWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "velocity" + }, + { ATF_POINTER, 12, offsetof(struct Vanetza_ITS2_PerceivedObject, acceleration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Acceleration3dWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "acceleration" + }, + { ATF_POINTER, 11, offsetof(struct Vanetza_ITS2_PerceivedObject, angles), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EulerAnglesWithConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "angles" + }, + { ATF_POINTER, 10, offsetof(struct Vanetza_ITS2_PerceivedObject, zAngularVelocity), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngularVelocityComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zAngularVelocity" + }, + { ATF_POINTER, 9, offsetof(struct Vanetza_ITS2_PerceivedObject, lowerTriangularCorrelationMatrices), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lowerTriangularCorrelationMatrices" + }, + { ATF_POINTER, 8, offsetof(struct Vanetza_ITS2_PerceivedObject, objectDimensionZ), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectDimension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectDimensionZ" + }, + { ATF_POINTER, 7, offsetof(struct Vanetza_ITS2_PerceivedObject, objectDimensionY), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectDimension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectDimensionY" + }, + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_PerceivedObject, objectDimensionX), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectDimension, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectDimensionX" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_PerceivedObject, objectAge), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_objectAge_constr_13, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_objectAge_constr_13, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_objectAge_constraint_1 + }, + 0, 0, /* No default value */ + "objectAge" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_PerceivedObject, objectPerceptionQuality), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectPerceptionQuality, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectPerceptionQuality" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_PerceivedObject, sensorIdList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sensorIdList" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_PerceivedObject, classification), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectClassDescription, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "classification" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PerceivedObject, mapPosition), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapPosition" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PerceivedObject_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PerceivedObject_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* objectId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measurementDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* position */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* velocity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* acceleration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* angles */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* zAngularVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* lowerTriangularCorrelationMatrices */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* objectDimensionZ */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* objectDimensionY */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* objectDimensionX */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* objectAge */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* objectPerceptionQuality */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* sensorIdList */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* classification */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* mapPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObject_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceivedObject), + offsetof(struct Vanetza_ITS2_PerceivedObject, _asn_ctx), + asn_MAP_Vanetza_ITS2_PerceivedObject_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PerceivedObject_oms_1, /* Optional members */ + 14, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObject = { + "PerceivedObject", + "PerceivedObject", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObject_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObject_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PerceivedObject_1, + 16, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PerceivedObject_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceivedObject.h b/vanetza/asn1/its/r2/PerceivedObject.h new file mode 100644 index 000000000..b3c93b48f --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObject.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceivedObject_H_ +#define _Vanetza_ITS2_PerceivedObject_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier2B.h" +#include "DeltaTimeMilliSecondSigned.h" +#include "CartesianPosition3dWithConfidence.h" +#include "ObjectPerceptionQuality.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_Velocity3dWithConfidence; +struct Vanetza_ITS2_Acceleration3dWithConfidence; +struct Vanetza_ITS2_EulerAnglesWithConfidence; +struct Vanetza_ITS2_CartesianAngularVelocityComponent; +struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices; +struct Vanetza_ITS2_ObjectDimension; +struct Vanetza_ITS2_SequenceOfIdentifier1B; +struct Vanetza_ITS2_ObjectClassDescription; +struct Vanetza_ITS2_MapPosition; + +/* Vanetza_ITS2_PerceivedObject */ +typedef struct Vanetza_ITS2_PerceivedObject { + Vanetza_ITS2_Identifier2B_t *objectId; /* OPTIONAL */ + Vanetza_ITS2_DeltaTimeMilliSecondSigned_t measurementDeltaTime; + Vanetza_ITS2_CartesianPosition3dWithConfidence_t position; + struct Vanetza_ITS2_Velocity3dWithConfidence *velocity; /* OPTIONAL */ + struct Vanetza_ITS2_Acceleration3dWithConfidence *acceleration; /* OPTIONAL */ + struct Vanetza_ITS2_EulerAnglesWithConfidence *angles; /* OPTIONAL */ + struct Vanetza_ITS2_CartesianAngularVelocityComponent *zAngularVelocity; /* OPTIONAL */ + struct Vanetza_ITS2_LowerTriangularPositiveSemidefiniteMatrices *lowerTriangularCorrelationMatrices; /* OPTIONAL */ + struct Vanetza_ITS2_ObjectDimension *objectDimensionZ; /* OPTIONAL */ + struct Vanetza_ITS2_ObjectDimension *objectDimensionY; /* OPTIONAL */ + struct Vanetza_ITS2_ObjectDimension *objectDimensionX; /* OPTIONAL */ + Vanetza_ITS2_DeltaTimeMilliSecondSigned_t *objectAge; /* OPTIONAL */ + Vanetza_ITS2_ObjectPerceptionQuality_t *objectPerceptionQuality; /* OPTIONAL */ + struct Vanetza_ITS2_SequenceOfIdentifier1B *sensorIdList; /* OPTIONAL */ + struct Vanetza_ITS2_ObjectClassDescription *classification; /* OPTIONAL */ + struct Vanetza_ITS2_MapPosition *mapPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceivedObject_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObject; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObject_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObject_1[16]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Velocity3dWithConfidence.h" +#include "Acceleration3dWithConfidence.h" +#include "EulerAnglesWithConfidence.h" +#include "CartesianAngularVelocityComponent.h" +#include "LowerTriangularPositiveSemidefiniteMatrices.h" +#include "ObjectDimension.h" +#include "SequenceOfIdentifier1B.h" +#include "ObjectClassDescription.h" +#include "MapPosition.h" + +#endif /* _Vanetza_ITS2_PerceivedObject_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceivedObjectContainer.c b/vanetza/asn1/its/r2/PerceivedObjectContainer.c new file mode 100644 index 000000000..fef152971 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjectContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceivedObjectContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceivedObjectContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjectContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceivedObjectContainer, numberOfPerceivedObjects), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CardinalNumber1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfPerceivedObjects" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceivedObjectContainer, perceivedObjects), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PerceivedObjects, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceivedObjects" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PerceivedObjectContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfPerceivedObjects */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* perceivedObjects */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjectContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceivedObjectContainer), + offsetof(struct Vanetza_ITS2_PerceivedObjectContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_PerceivedObjectContainer_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_Vanetza_ITS2_PerceivedObjectContainer = { + "PerceivedObjectContainer", + "PerceivedObjectContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PerceivedObjectContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PerceivedObjectContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceivedObjectContainer.h b/vanetza/asn1/its/r2/PerceivedObjectContainer.h new file mode 100644 index 000000000..541783840 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjectContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceivedObjectContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceivedObjectContainer_H_ +#define _Vanetza_ITS2_PerceivedObjectContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CardinalNumber1B.h" +#include "PerceivedObjects.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PerceivedObjectContainer */ +typedef struct Vanetza_ITS2_PerceivedObjectContainer { + Vanetza_ITS2_CardinalNumber1B_t numberOfPerceivedObjects; + Vanetza_ITS2_PerceivedObjects_t perceivedObjects; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceivedObjectContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObjectContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjectContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjectContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PerceivedObjectContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceivedObjectIds.c b/vanetza/asn1/its/r2/PerceivedObjectIds.c new file mode 100644 index 000000000..031bb6cd7 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjectIds.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceivedObjectIds.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PerceivedObjectIds_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_Vanetza_ITS2_PerceivedObjectIds_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (SIZE(0..255,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjectIds_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjectIds_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceivedObjectIds), + offsetof(struct Vanetza_ITS2_PerceivedObjectIds, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObjectIds = { + "PerceivedObjectIds", + "PerceivedObjectIds", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjectIds_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PerceivedObjectIds_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PerceivedObjectIds_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PerceivedObjectIds_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PerceivedObjectIds_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceivedObjectIds.h b/vanetza/asn1/its/r2/PerceivedObjectIds.h new file mode 100644 index 000000000..a1c8c0f36 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjectIds.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceivedObjectIds_H_ +#define _Vanetza_ITS2_PerceivedObjectIds_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier2B.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PerceivedObjectIds */ +typedef struct Vanetza_ITS2_PerceivedObjectIds { + A_SEQUENCE_OF(Vanetza_ITS2_Identifier2B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceivedObjectIds_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObjectIds; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjectIds_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjectIds_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PerceivedObjectIds_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PerceivedObjectIds_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceivedObjects.c b/vanetza/asn1/its/r2/PerceivedObjects.c new file mode 100644 index 000000000..57197927e --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjects.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceivedObjectContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceivedObjects.h" + +static int +memb_Vanetza_ITS2_PerceivedObject_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_Vanetza_ITS2_Member_constr_2 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_Vanetza_ITS2_Member_constr_2 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_type_Vanetza_ITS2_PerceivedObjects_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_Vanetza_ITS2_PerceivedObjects_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (SIZE(0..255,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjects_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PerceivedObject, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_Member_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_Member_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_PerceivedObject_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjects_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceivedObjects), + offsetof(struct Vanetza_ITS2_PerceivedObjects, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObjects = { + "PerceivedObjects", + "PerceivedObjects", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceivedObjects_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PerceivedObjects_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PerceivedObjects_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PerceivedObjects_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PerceivedObjects_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceivedObjects.h b/vanetza/asn1/its/r2/PerceivedObjects.h new file mode 100644 index 000000000..95324cd30 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceivedObjects.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceivedObjectContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceivedObjectContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceivedObjects_H_ +#define _Vanetza_ITS2_PerceivedObjects_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 Vanetza_ITS2_PerceivedObject; + +/* Vanetza_ITS2_PerceivedObjects */ +typedef struct Vanetza_ITS2_PerceivedObjects { + A_SEQUENCE_OF(struct Vanetza_ITS2_PerceivedObject) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceivedObjects_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceivedObjects; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceivedObjects_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceivedObjects_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PerceivedObjects_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PerceivedObject.h" + +#endif /* _Vanetza_ITS2_PerceivedObjects_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceptionRegion.c b/vanetza/asn1/its/r2/PerceptionRegion.c new file mode 100644 index 000000000..4c9612ee3 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceptionRegion.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceptionRegion.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceptionRegion_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceptionRegion, measurementDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondSigned, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "measurementDeltaTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceptionRegion, perceptionRegionConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConfidenceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceptionRegionConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceptionRegion, perceptionRegionShape), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Shape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceptionRegionShape" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PerceptionRegion, shadowingApplies), + (ASN_TAG_CLASS_CONTEXT | (3 << 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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shadowingApplies" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_PerceptionRegion, sensorIdList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sensorIdList" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_PerceptionRegion, numberOfPerceivedObjects), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CardinalNumber1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfPerceivedObjects" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PerceptionRegion, perceivedObjectIds), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PerceivedObjectIds, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceivedObjectIds" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PerceptionRegion_oms_1[] = { 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PerceptionRegion_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementDeltaTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* perceptionRegionConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* perceptionRegionShape */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* shadowingApplies */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sensorIdList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* numberOfPerceivedObjects */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* perceivedObjectIds */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceptionRegion_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceptionRegion), + offsetof(struct Vanetza_ITS2_PerceptionRegion, _asn_ctx), + asn_MAP_Vanetza_ITS2_PerceptionRegion_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PerceptionRegion_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceptionRegion = { + "PerceptionRegion", + "PerceptionRegion", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegion_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegion_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PerceptionRegion_1, + 7, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PerceptionRegion_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceptionRegion.h b/vanetza/asn1/its/r2/PerceptionRegion.h new file mode 100644 index 000000000..de5c6cb6a --- /dev/null +++ b/vanetza/asn1/its/r2/PerceptionRegion.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceptionRegion_H_ +#define _Vanetza_ITS2_PerceptionRegion_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "DeltaTimeMilliSecondSigned.h" +#include "ConfidenceLevel.h" +#include "Shape.h" +#include "BOOLEAN.h" +#include "CardinalNumber1B.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_SequenceOfIdentifier1B; +struct Vanetza_ITS2_PerceivedObjectIds; + +/* Vanetza_ITS2_PerceptionRegion */ +typedef struct Vanetza_ITS2_PerceptionRegion { + Vanetza_ITS2_DeltaTimeMilliSecondSigned_t measurementDeltaTime; + Vanetza_ITS2_ConfidenceLevel_t perceptionRegionConfidence; + Vanetza_ITS2_Shape_t perceptionRegionShape; + BOOLEAN_t shadowingApplies; + struct Vanetza_ITS2_SequenceOfIdentifier1B *sensorIdList; /* OPTIONAL */ + Vanetza_ITS2_CardinalNumber1B_t *numberOfPerceivedObjects; /* OPTIONAL */ + struct Vanetza_ITS2_PerceivedObjectIds *perceivedObjectIds; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceptionRegion_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceptionRegion; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PerceptionRegion_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceptionRegion_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "SequenceOfIdentifier1B.h" +#include "PerceivedObjectIds.h" + +#endif /* _Vanetza_ITS2_PerceptionRegion_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerceptionRegionContainer.c b/vanetza/asn1/its/r2/PerceptionRegionContainer.c new file mode 100644 index 000000000..8362855ae --- /dev/null +++ b/vanetza/asn1/its/r2/PerceptionRegionContainer.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerceptionRegionContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PerceptionRegionContainer_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_Vanetza_ITS2_PerceptionRegionContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (SIZE(1..256,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceptionRegionContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PerceptionRegion, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceptionRegionContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_PerceptionRegionContainer), + offsetof(struct Vanetza_ITS2_PerceptionRegionContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceptionRegionContainer = { + "PerceptionRegionContainer", + "PerceptionRegionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerceptionRegionContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PerceptionRegionContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PerceptionRegionContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PerceptionRegionContainer_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PerceptionRegionContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PerceptionRegionContainer.h b/vanetza/asn1/its/r2/PerceptionRegionContainer.h new file mode 100644 index 000000000..bdbd2a708 --- /dev/null +++ b/vanetza/asn1/its/r2/PerceptionRegionContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PerceptionRegionContainer" + * found in "asn1/release2/TS103324v211/CPM-PerceptionRegionContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerceptionRegionContainer_H_ +#define _Vanetza_ITS2_PerceptionRegionContainer_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 Vanetza_ITS2_PerceptionRegion; + +/* Vanetza_ITS2_PerceptionRegionContainer */ +typedef struct Vanetza_ITS2_PerceptionRegionContainer { + A_SEQUENCE_OF(struct Vanetza_ITS2_PerceptionRegion) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PerceptionRegionContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerceptionRegionContainer; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PerceptionRegionContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PerceptionRegionContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PerceptionRegionContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PerceptionRegion.h" + +#endif /* _Vanetza_ITS2_PerceptionRegionContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PerformanceClass.c b/vanetza/asn1/its/r2/PerformanceClass.c new file mode 100644 index 000000000..ca75f5b8d --- /dev/null +++ b/vanetza/asn1/its/r2/PerformanceClass.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PerformanceClass.h" + +int +Vanetza_ITS2_PerformanceClass_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_Vanetza_ITS2_PerformanceClass_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_Vanetza_ITS2_PerformanceClass_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_Vanetza_ITS2_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PerformanceClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PerformanceClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PerformanceClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PerformanceClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PerformanceClass.h b/vanetza/asn1/its/r2/PerformanceClass.h new file mode 100644 index 000000000..0a0102ef0 --- /dev/null +++ b/vanetza/asn1/its/r2/PerformanceClass.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PerformanceClass_H_ +#define _Vanetza_ITS2_PerformanceClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PerformanceClass { + Vanetza_ITS2_PerformanceClass_unavailable = 0, + Vanetza_ITS2_PerformanceClass_performanceClassA = 1, + Vanetza_ITS2_PerformanceClass_performanceClassB = 2 +} e_Vanetza_ITS2_PerformanceClass; + +/* Vanetza_ITS2_PerformanceClass */ +typedef long Vanetza_ITS2_PerformanceClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PerformanceClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PerformanceClass; +asn_struct_free_f Vanetza_ITS2_PerformanceClass_free; +asn_struct_print_f Vanetza_ITS2_PerformanceClass_print; +asn_constr_check_f Vanetza_ITS2_PerformanceClass_constraint; +ber_type_decoder_f Vanetza_ITS2_PerformanceClass_decode_ber; +der_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_der; +xer_type_decoder_f Vanetza_ITS2_PerformanceClass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PerformanceClass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_oer; +per_type_decoder_f Vanetza_ITS2_PerformanceClass_decode_uper; +per_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_uper; +per_type_decoder_f Vanetza_ITS2_PerformanceClass_decode_aper; +per_type_encoder_f Vanetza_ITS2_PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PerformanceClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PhoneNumber.c b/vanetza/asn1/its/r2/PhoneNumber.c new file mode 100644 index 000000000..663ab23e0 --- /dev/null +++ b/vanetza/asn1/its/r2/PhoneNumber.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PhoneNumber.h" + +static const int permitted_alphabet_table_1[256] = { + 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, /* */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* . */ + 2, 3, 4, 5, 6, 7, 8, 9,10,11, 0, 0, 0, 0, 0, 0, /* 0123456789 */ +}; +static const int permitted_alphabet_code2value_1[11] = { +32,48,49,50,51,52,53,54,55,56,57,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is NumericString */ + const NumericString_t *st = (const NumericString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +Vanetza_ITS2_PhoneNumber_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const NumericString_t *st = (const NumericString_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; + } +} + +static int asn_PER_MAP_Vanetza_ITS2_PhoneNumber_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_Vanetza_ITS2_PhoneNumber_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using NumericString, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PhoneNumber_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_Vanetza_ITS2_PhoneNumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 32, 57 } /* (32..57) */, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + asn_PER_MAP_Vanetza_ITS2_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_Vanetza_ITS2_PhoneNumber_1_c2v /* PER code to value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PhoneNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PhoneNumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PhoneNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PhoneNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PhoneNumber.h b/vanetza/asn1/its/r2/PhoneNumber.h new file mode 100644 index 000000000..5918402da --- /dev/null +++ b/vanetza/asn1/its/r2/PhoneNumber.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PhoneNumber_H_ +#define _Vanetza_ITS2_PhoneNumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NumericString.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PhoneNumber */ +typedef NumericString_t Vanetza_ITS2_PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PhoneNumber; +asn_struct_free_f Vanetza_ITS2_PhoneNumber_free; +asn_struct_print_f Vanetza_ITS2_PhoneNumber_print; +asn_constr_check_f Vanetza_ITS2_PhoneNumber_constraint; +ber_type_decoder_f Vanetza_ITS2_PhoneNumber_decode_ber; +der_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_der; +xer_type_decoder_f Vanetza_ITS2_PhoneNumber_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PhoneNumber_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_oer; +per_type_decoder_f Vanetza_ITS2_PhoneNumber_decode_uper; +per_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_uper; +per_type_decoder_f Vanetza_ITS2_PhoneNumber_decode_aper; +per_type_encoder_f Vanetza_ITS2_PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PhoneNumber_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PolygonalShape.c b/vanetza/asn1/its/r2/PolygonalShape.c new file mode 100644 index 000000000..d1cf60eaa --- /dev/null +++ b/vanetza/asn1/its/r2/PolygonalShape.c @@ -0,0 +1,154 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PolygonalShape.h" + +static int +memb_Vanetza_ITS2_polygon_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 >= 3UL && 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_memb_Vanetza_ITS2_polygon_constr_3 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_Vanetza_ITS2_polygon_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 3, 16 } /* (SIZE(3..16,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PolygonalShape_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PolygonalShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PolygonalShape, polygon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_polygon_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_polygon_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_polygon_constraint_1 + }, + 0, 0, /* No default value */ + "polygon" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PolygonalShape, height), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PolygonalShape_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PolygonalShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* polygon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PolygonalShape_specs_1 = { + sizeof(struct Vanetza_ITS2_PolygonalShape), + offsetof(struct Vanetza_ITS2_PolygonalShape, _asn_ctx), + asn_MAP_Vanetza_ITS2_PolygonalShape_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PolygonalShape_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PolygonalShape = { + "PolygonalShape", + "PolygonalShape", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PolygonalShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PolygonalShape_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PolygonalShape_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PolygonalShape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PolygonalShape.h b/vanetza/asn1/its/r2/PolygonalShape.h new file mode 100644 index 000000000..6ca37411c --- /dev/null +++ b/vanetza/asn1/its/r2/PolygonalShape.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PolygonalShape_H_ +#define _Vanetza_ITS2_PolygonalShape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SequenceOfCartesianPosition3d.h" +#include "StandardLength12b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_PolygonalShape */ +typedef struct Vanetza_ITS2_PolygonalShape { + struct Vanetza_ITS2_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + Vanetza_ITS2_SequenceOfCartesianPosition3d_t polygon; + Vanetza_ITS2_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PolygonalShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PolygonalShape; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PolygonalShape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PolygonalShape_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_PolygonalShape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PosCentMass.c b/vanetza/asn1/its/r2/PosCentMass.c new file mode 100644 index 000000000..03eff2e63 --- /dev/null +++ b/vanetza/asn1/its/r2/PosCentMass.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PosCentMass.h" + +int +Vanetza_ITS2_PosCentMass_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 <= 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_Vanetza_ITS2_PosCentMass_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_PosCentMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..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_Vanetza_ITS2_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PosCentMass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PosCentMass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PosCentMass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosCentMass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PosCentMass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PosCentMass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PosCentMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PosCentMass.h b/vanetza/asn1/its/r2/PosCentMass.h new file mode 100644 index 000000000..5bfe3ec53 --- /dev/null +++ b/vanetza/asn1/its/r2/PosCentMass.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PosCentMass_H_ +#define _Vanetza_ITS2_PosCentMass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PosCentMass { + Vanetza_ITS2_PosCentMass_tenCentimetres = 1, + Vanetza_ITS2_PosCentMass_outOfRange = 62, + Vanetza_ITS2_PosCentMass_unavailable = 63 +} e_Vanetza_ITS2_PosCentMass; + +/* Vanetza_ITS2_PosCentMass */ +typedef long Vanetza_ITS2_PosCentMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PosCentMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosCentMass; +asn_struct_free_f Vanetza_ITS2_PosCentMass_free; +asn_struct_print_f Vanetza_ITS2_PosCentMass_print; +asn_constr_check_f Vanetza_ITS2_PosCentMass_constraint; +ber_type_decoder_f Vanetza_ITS2_PosCentMass_decode_ber; +der_type_encoder_f Vanetza_ITS2_PosCentMass_encode_der; +xer_type_decoder_f Vanetza_ITS2_PosCentMass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PosCentMass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PosCentMass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PosCentMass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PosCentMass_encode_oer; +per_type_decoder_f Vanetza_ITS2_PosCentMass_decode_uper; +per_type_encoder_f Vanetza_ITS2_PosCentMass_encode_uper; +per_type_decoder_f Vanetza_ITS2_PosCentMass_decode_aper; +per_type_encoder_f Vanetza_ITS2_PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PosCentMass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PosConfidenceEllipse.c b/vanetza/asn1/its/r2/PosConfidenceEllipse.c new file mode 100644 index 000000000..64815f595 --- /dev/null +++ b/vanetza/asn1/its/r2/PosConfidenceEllipse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SemiAxisLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SemiAxisLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMinorConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_HeadingValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajorOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PosConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PosConfidenceEllipse_specs_1 = { + sizeof(struct Vanetza_ITS2_PosConfidenceEllipse), + offsetof(struct Vanetza_ITS2_PosConfidenceEllipse, _asn_ctx), + asn_MAP_Vanetza_ITS2_PosConfidenceEllipse_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_Vanetza_ITS2_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosConfidenceEllipse_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PosConfidenceEllipse.h b/vanetza/asn1/its/r2/PosConfidenceEllipse.h new file mode 100644 index 000000000..1cc0a83dd --- /dev/null +++ b/vanetza/asn1/its/r2/PosConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PosConfidenceEllipse_H_ +#define _Vanetza_ITS2_PosConfidenceEllipse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "HeadingValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PosConfidenceEllipse */ +typedef struct Vanetza_ITS2_PosConfidenceEllipse { + Vanetza_ITS2_SemiAxisLength_t semiMajorConfidence; + Vanetza_ITS2_SemiAxisLength_t semiMinorConfidence; + Vanetza_ITS2_HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PosConfidenceEllipse_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PosFrontAx.c b/vanetza/asn1/its/r2/PosFrontAx.c new file mode 100644 index 000000000..e0a37760a --- /dev/null +++ b/vanetza/asn1/its/r2/PosFrontAx.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PosFrontAx.h" + +int +Vanetza_ITS2_PosFrontAx_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 <= 20L)) { + /* 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_Vanetza_ITS2_PosFrontAx_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..20) */, + -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_Vanetza_ITS2_PosFrontAx_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 20 } /* (1..20) */, + { 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_Vanetza_ITS2_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosFrontAx_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PosFrontAx_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PosFrontAx_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PosFrontAx_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PosFrontAx.h b/vanetza/asn1/its/r2/PosFrontAx.h new file mode 100644 index 000000000..d26d26c99 --- /dev/null +++ b/vanetza/asn1/its/r2/PosFrontAx.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PosFrontAx_H_ +#define _Vanetza_ITS2_PosFrontAx_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PosFrontAx { + Vanetza_ITS2_PosFrontAx_outOfRange = 19, + Vanetza_ITS2_PosFrontAx_unavailable = 20 +} e_Vanetza_ITS2_PosFrontAx; + +/* Vanetza_ITS2_PosFrontAx */ +typedef long Vanetza_ITS2_PosFrontAx_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PosFrontAx_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosFrontAx; +asn_struct_free_f Vanetza_ITS2_PosFrontAx_free; +asn_struct_print_f Vanetza_ITS2_PosFrontAx_print; +asn_constr_check_f Vanetza_ITS2_PosFrontAx_constraint; +ber_type_decoder_f Vanetza_ITS2_PosFrontAx_decode_ber; +der_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_der; +xer_type_decoder_f Vanetza_ITS2_PosFrontAx_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PosFrontAx_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_oer; +per_type_decoder_f Vanetza_ITS2_PosFrontAx_decode_uper; +per_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_uper; +per_type_decoder_f Vanetza_ITS2_PosFrontAx_decode_aper; +per_type_encoder_f Vanetza_ITS2_PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PosFrontAx_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PosLonCarr.c b/vanetza/asn1/its/r2/PosLonCarr.c new file mode 100644 index 000000000..4ecb7cce8 --- /dev/null +++ b/vanetza/asn1/its/r2/PosLonCarr.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PosLonCarr.h" + +int +Vanetza_ITS2_PosLonCarr_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 <= 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_Vanetza_ITS2_PosLonCarr_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_PosLonCarr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosLonCarr_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PosLonCarr_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PosLonCarr_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PosLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PosLonCarr.h b/vanetza/asn1/its/r2/PosLonCarr.h new file mode 100644 index 000000000..36d576ec5 --- /dev/null +++ b/vanetza/asn1/its/r2/PosLonCarr.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PosLonCarr_H_ +#define _Vanetza_ITS2_PosLonCarr_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PosLonCarr { + Vanetza_ITS2_PosLonCarr_outOfRange = 126, + Vanetza_ITS2_PosLonCarr_unavailable = 127 +} e_Vanetza_ITS2_PosLonCarr; + +/* Vanetza_ITS2_PosLonCarr */ +typedef long Vanetza_ITS2_PosLonCarr_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PosLonCarr_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosLonCarr; +asn_struct_free_f Vanetza_ITS2_PosLonCarr_free; +asn_struct_print_f Vanetza_ITS2_PosLonCarr_print; +asn_constr_check_f Vanetza_ITS2_PosLonCarr_constraint; +ber_type_decoder_f Vanetza_ITS2_PosLonCarr_decode_ber; +der_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_der; +xer_type_decoder_f Vanetza_ITS2_PosLonCarr_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PosLonCarr_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_oer; +per_type_decoder_f Vanetza_ITS2_PosLonCarr_decode_uper; +per_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_uper; +per_type_decoder_f Vanetza_ITS2_PosLonCarr_decode_aper; +per_type_encoder_f Vanetza_ITS2_PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PosLonCarr_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PosPillar.c b/vanetza/asn1/its/r2/PosPillar.c new file mode 100644 index 000000000..ed6040860 --- /dev/null +++ b/vanetza/asn1/its/r2/PosPillar.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PosPillar.h" + +int +Vanetza_ITS2_PosPillar_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 <= 30L)) { + /* 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_Vanetza_ITS2_PosPillar_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..30) */, + -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_Vanetza_ITS2_PosPillar_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (1..30) */, + { 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_Vanetza_ITS2_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PosPillar_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PosPillar_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PosPillar_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PosPillar_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PosPillar_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PosPillar_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PosPillar_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PosPillar.h b/vanetza/asn1/its/r2/PosPillar.h new file mode 100644 index 000000000..665cf22b9 --- /dev/null +++ b/vanetza/asn1/its/r2/PosPillar.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PosPillar_H_ +#define _Vanetza_ITS2_PosPillar_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PosPillar { + Vanetza_ITS2_PosPillar_outOfRange = 29, + Vanetza_ITS2_PosPillar_unavailable = 30 +} e_Vanetza_ITS2_PosPillar; + +/* Vanetza_ITS2_PosPillar */ +typedef long Vanetza_ITS2_PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PosPillar; +asn_struct_free_f Vanetza_ITS2_PosPillar_free; +asn_struct_print_f Vanetza_ITS2_PosPillar_print; +asn_constr_check_f Vanetza_ITS2_PosPillar_constraint; +ber_type_decoder_f Vanetza_ITS2_PosPillar_decode_ber; +der_type_encoder_f Vanetza_ITS2_PosPillar_encode_der; +xer_type_decoder_f Vanetza_ITS2_PosPillar_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PosPillar_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PosPillar_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PosPillar_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PosPillar_encode_oer; +per_type_decoder_f Vanetza_ITS2_PosPillar_decode_uper; +per_type_encoder_f Vanetza_ITS2_PosPillar_encode_uper; +per_type_decoder_f Vanetza_ITS2_PosPillar_decode_aper; +per_type_encoder_f Vanetza_ITS2_PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PosPillar_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Position1d.c b/vanetza/asn1/its/r2/Position1d.c new file mode 100644 index 000000000..71db56676 --- /dev/null +++ b/vanetza/asn1/its/r2/Position1d.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Position1d.h" + +int +Vanetza_ITS2_Position1d_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 >= -8190L && 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_Vanetza_ITS2_Position1d_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-8190..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_Vanetza_ITS2_Position1d_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, -8190, 8191 } /* (-8190..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_Vanetza_ITS2_Position1d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Position1d = { + "Position1d", + "Position1d", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Position1d_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Position1d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Position1d_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Position1d_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Position1d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Position1d_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Position1d_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Position1d_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Position1d_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Position1d.h b/vanetza/asn1/its/r2/Position1d.h new file mode 100644 index 000000000..b67e3e833 --- /dev/null +++ b/vanetza/asn1/its/r2/Position1d.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Position1d_H_ +#define _Vanetza_ITS2_Position1d_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Position1d { + Vanetza_ITS2_Position1d_outOfRange = 8190, + Vanetza_ITS2_Position1d_unavailable = 8191 +} e_Vanetza_ITS2_Position1d; + +/* Vanetza_ITS2_Position1d */ +typedef long Vanetza_ITS2_Position1d_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Position1d_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Position1d; +asn_struct_free_f Vanetza_ITS2_Position1d_free; +asn_struct_print_f Vanetza_ITS2_Position1d_print; +asn_constr_check_f Vanetza_ITS2_Position1d_constraint; +ber_type_decoder_f Vanetza_ITS2_Position1d_decode_ber; +der_type_encoder_f Vanetza_ITS2_Position1d_encode_der; +xer_type_decoder_f Vanetza_ITS2_Position1d_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Position1d_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Position1d_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Position1d_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Position1d_encode_oer; +per_type_decoder_f Vanetza_ITS2_Position1d_decode_uper; +per_type_encoder_f Vanetza_ITS2_Position1d_encode_uper; +per_type_decoder_f Vanetza_ITS2_Position1d_decode_aper; +per_type_encoder_f Vanetza_ITS2_Position1d_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Position1d_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PositionConfidenceEllipse.c b/vanetza/asn1/its/r2/PositionConfidenceEllipse.c new file mode 100644 index 000000000..2aaa38f70 --- /dev/null +++ b/vanetza/asn1/its/r2/PositionConfidenceEllipse.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PositionConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PositionConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PositionConfidenceEllipse, semiMajorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SemiAxisLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PositionConfidenceEllipse, semiMinorAxisLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SemiAxisLength, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMinorAxisLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PositionConfidenceEllipse, semiMajorAxisOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Wgs84AngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiMajorAxisOrientation" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PositionConfidenceEllipse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* semiMajorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiMinorAxisLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* semiMajorAxisOrientation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PositionConfidenceEllipse_specs_1 = { + sizeof(struct Vanetza_ITS2_PositionConfidenceEllipse), + offsetof(struct Vanetza_ITS2_PositionConfidenceEllipse, _asn_ctx), + asn_MAP_Vanetza_ITS2_PositionConfidenceEllipse_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_Vanetza_ITS2_PositionConfidenceEllipse = { + "PositionConfidenceEllipse", + "PositionConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PositionConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PositionConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PositionConfidenceEllipse.h b/vanetza/asn1/its/r2/PositionConfidenceEllipse.h new file mode 100644 index 000000000..90aedbec4 --- /dev/null +++ b/vanetza/asn1/its/r2/PositionConfidenceEllipse.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PositionConfidenceEllipse_H_ +#define _Vanetza_ITS2_PositionConfidenceEllipse_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SemiAxisLength.h" +#include "Wgs84AngleValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PositionConfidenceEllipse */ +typedef struct Vanetza_ITS2_PositionConfidenceEllipse { + Vanetza_ITS2_SemiAxisLength_t semiMajorAxisLength; + Vanetza_ITS2_SemiAxisLength_t semiMinorAxisLength; + Vanetza_ITS2_Wgs84AngleValue_t semiMajorAxisOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PositionConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PositionConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PositionConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PositionConfidenceEllipse_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PositionOfOccupants.c b/vanetza/asn1/its/r2/PositionOfOccupants.c new file mode 100644 index 000000000..ccc4a3a75 --- /dev/null +++ b/vanetza/asn1/its/r2/PositionOfOccupants.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PositionOfOccupants.h" + +int +Vanetza_ITS2_PositionOfOccupants_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 == 20UL)) { + /* 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_Vanetza_ITS2_PositionOfOccupants_constr_1 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..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_Vanetza_ITS2_PositionOfOccupants_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_PositionOfOccupants_constr_1 CC_NOTUSED = { + 20}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionOfOccupants_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PositionOfOccupants_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PositionOfOccupants_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_PositionOfOccupants_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PositionOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PositionOfOccupants.h b/vanetza/asn1/its/r2/PositionOfOccupants.h new file mode 100644 index 000000000..58a8056a3 --- /dev/null +++ b/vanetza/asn1/its/r2/PositionOfOccupants.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PositionOfOccupants_H_ +#define _Vanetza_ITS2_PositionOfOccupants_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PositionOfOccupants { + Vanetza_ITS2_PositionOfOccupants_row1LeftOccupied = 0, + Vanetza_ITS2_PositionOfOccupants_row1RightOccupied = 1, + Vanetza_ITS2_PositionOfOccupants_row1MidOccupied = 2, + Vanetza_ITS2_PositionOfOccupants_row1NotDetectable = 3, + Vanetza_ITS2_PositionOfOccupants_row1NotPresent = 4, + Vanetza_ITS2_PositionOfOccupants_row2LeftOccupied = 5, + Vanetza_ITS2_PositionOfOccupants_row2RightOccupied = 6, + Vanetza_ITS2_PositionOfOccupants_row2MidOccupied = 7, + Vanetza_ITS2_PositionOfOccupants_row2NotDetectable = 8, + Vanetza_ITS2_PositionOfOccupants_row2NotPresent = 9, + Vanetza_ITS2_PositionOfOccupants_row3LeftOccupied = 10, + Vanetza_ITS2_PositionOfOccupants_row3RightOccupied = 11, + Vanetza_ITS2_PositionOfOccupants_row3MidOccupied = 12, + Vanetza_ITS2_PositionOfOccupants_row3NotDetectable = 13, + Vanetza_ITS2_PositionOfOccupants_row3NotPresent = 14, + Vanetza_ITS2_PositionOfOccupants_row4LeftOccupied = 15, + Vanetza_ITS2_PositionOfOccupants_row4RightOccupied = 16, + Vanetza_ITS2_PositionOfOccupants_row4MidOccupied = 17, + Vanetza_ITS2_PositionOfOccupants_row4NotDetectable = 18, + Vanetza_ITS2_PositionOfOccupants_row4NotPresent = 19 +} e_Vanetza_ITS2_PositionOfOccupants; + +/* Vanetza_ITS2_PositionOfOccupants */ +typedef BIT_STRING_t Vanetza_ITS2_PositionOfOccupants_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PositionOfOccupants_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositionOfOccupants; +asn_struct_free_f Vanetza_ITS2_PositionOfOccupants_free; +asn_struct_print_f Vanetza_ITS2_PositionOfOccupants_print; +asn_constr_check_f Vanetza_ITS2_PositionOfOccupants_constraint; +ber_type_decoder_f Vanetza_ITS2_PositionOfOccupants_decode_ber; +der_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_der; +xer_type_decoder_f Vanetza_ITS2_PositionOfOccupants_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PositionOfOccupants_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_oer; +per_type_decoder_f Vanetza_ITS2_PositionOfOccupants_decode_uper; +per_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_uper; +per_type_decoder_f Vanetza_ITS2_PositionOfOccupants_decode_aper; +per_type_encoder_f Vanetza_ITS2_PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PositionOfOccupants_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PositionOfPillars.c b/vanetza/asn1/its/r2/PositionOfPillars.c new file mode 100644 index 000000000..49555d5d3 --- /dev/null +++ b/vanetza/asn1/its/r2/PositionOfPillars.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PositionOfPillars.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_PositionOfPillars_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_Vanetza_ITS2_PositionOfPillars_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PosPillar, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PositionOfPillars_specs_1 = { + sizeof(struct Vanetza_ITS2_PositionOfPillars), + offsetof(struct Vanetza_ITS2_PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositionOfPillars_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PositionOfPillars_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PositionOfPillars_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PositionOfPillars.h b/vanetza/asn1/its/r2/PositionOfPillars.h new file mode 100644 index 000000000..99803b16b --- /dev/null +++ b/vanetza/asn1/its/r2/PositionOfPillars.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PositionOfPillars_H_ +#define _Vanetza_ITS2_PositionOfPillars_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PosPillar.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PositionOfPillars */ +typedef struct Vanetza_ITS2_PositionOfPillars { + A_SEQUENCE_OF(Vanetza_ITS2_PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositionOfPillars; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_PositionOfPillars_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PositionOfPillars_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PositionOfPillars_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PositionOfPillars_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PositioningSolutionType.c b/vanetza/asn1/its/r2/PositioningSolutionType.c new file mode 100644 index 000000000..965cfe230 --- /dev/null +++ b/vanetza/asn1/its/r2/PositioningSolutionType.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PositioningSolutionType.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_Vanetza_ITS2_PositioningSolutionType_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_Vanetza_ITS2_PositioningSolutionType_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_Vanetza_ITS2_PositioningSolutionType_value2enum_1[] = { + { 0, 21, "noPositioningSolution" }, + { 1, 5, "sGNSS" }, + { 2, 5, "dGNSS" }, + { 3, 11, "sGNSSplusDR" }, + { 4, 11, "dGNSSplusDR" }, + { 5, 2, "dR" }, + { 6, 18, "manuallyByOperator" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_PositioningSolutionType_enum2value_1[] = { + 2, /* dGNSS(2) */ + 4, /* dGNSSplusDR(4) */ + 5, /* dR(5) */ + 6, /* manuallyByOperator(6) */ + 0, /* noPositioningSolution(0) */ + 1, /* sGNSS(1) */ + 3 /* sGNSSplusDR(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_PositioningSolutionType_specs_1 = { + asn_MAP_Vanetza_ITS2_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_PositioningSolutionType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* 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_Vanetza_ITS2_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PositioningSolutionType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PositioningSolutionType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PositioningSolutionType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PositioningSolutionType.h b/vanetza/asn1/its/r2/PositioningSolutionType.h new file mode 100644 index 000000000..f11deba7a --- /dev/null +++ b/vanetza/asn1/its/r2/PositioningSolutionType.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PositioningSolutionType_H_ +#define _Vanetza_ITS2_PositioningSolutionType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PositioningSolutionType { + Vanetza_ITS2_PositioningSolutionType_noPositioningSolution = 0, + Vanetza_ITS2_PositioningSolutionType_sGNSS = 1, + Vanetza_ITS2_PositioningSolutionType_dGNSS = 2, + Vanetza_ITS2_PositioningSolutionType_sGNSSplusDR = 3, + Vanetza_ITS2_PositioningSolutionType_dGNSSplusDR = 4, + Vanetza_ITS2_PositioningSolutionType_dR = 5, + /* + * Enumeration is extensible + */ + Vanetza_ITS2_PositioningSolutionType_manuallyByOperator = 6 +} e_Vanetza_ITS2_PositioningSolutionType; + +/* Vanetza_ITS2_PositioningSolutionType */ +typedef long Vanetza_ITS2_PositioningSolutionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PositioningSolutionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PositioningSolutionType; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_PositioningSolutionType_specs_1; +asn_struct_free_f Vanetza_ITS2_PositioningSolutionType_free; +asn_struct_print_f Vanetza_ITS2_PositioningSolutionType_print; +asn_constr_check_f Vanetza_ITS2_PositioningSolutionType_constraint; +ber_type_decoder_f Vanetza_ITS2_PositioningSolutionType_decode_ber; +der_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_der; +xer_type_decoder_f Vanetza_ITS2_PositioningSolutionType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PositioningSolutionType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_oer; +per_type_decoder_f Vanetza_ITS2_PositioningSolutionType_decode_uper; +per_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_uper; +per_type_decoder_f Vanetza_ITS2_PositioningSolutionType_decode_aper; +per_type_encoder_f Vanetza_ITS2_PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PositioningSolutionType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PostCrashSubCauseCode.c b/vanetza/asn1/its/r2/PostCrashSubCauseCode.c new file mode 100644 index 000000000..8994bf662 --- /dev/null +++ b/vanetza/asn1/its/r2/PostCrashSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PostCrashSubCauseCode.h" + +int +Vanetza_ITS2_PostCrashSubCauseCode_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_Vanetza_ITS2_PostCrashSubCauseCode_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_Vanetza_ITS2_PostCrashSubCauseCode_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_Vanetza_ITS2_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PostCrashSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PostCrashSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PostCrashSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PostCrashSubCauseCode.h b/vanetza/asn1/its/r2/PostCrashSubCauseCode.h new file mode 100644 index 000000000..8ab06e160 --- /dev/null +++ b/vanetza/asn1/its/r2/PostCrashSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PostCrashSubCauseCode_H_ +#define _Vanetza_ITS2_PostCrashSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PostCrashSubCauseCode { + Vanetza_ITS2_PostCrashSubCauseCode_unavailable = 0, + Vanetza_ITS2_PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + Vanetza_ITS2_PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + Vanetza_ITS2_PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + Vanetza_ITS2_PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_Vanetza_ITS2_PostCrashSubCauseCode; + +/* Vanetza_ITS2_PostCrashSubCauseCode */ +typedef long Vanetza_ITS2_PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PostCrashSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PostCrashSubCauseCode; +asn_struct_free_f Vanetza_ITS2_PostCrashSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_PostCrashSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_PostCrashSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_PostCrashSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_PostCrashSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PostCrashSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_PostCrashSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_PostCrashSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PostCrashSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PreCrashContainer.c b/vanetza/asn1/its/r2/PreCrashContainer.c new file mode 100644 index 000000000..a9100f9af --- /dev/null +++ b/vanetza/asn1/its/r2/PreCrashContainer.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PreCrashContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PreCrashContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PreCrashContainer, perceivedPreCrashObject), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PerceivedObject, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceivedPreCrashObject" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_PreCrashContainer, objectStationId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "objectStationId" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_PreCrashContainer, timeToCollision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeMilliSecondPositive, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeToCollision" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_PreCrashContainer, impactSection), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ObjectFace, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "impactSection" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PreCrashContainer, estimatedBrakingDistance), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "estimatedBrakingDistance" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PreCrashContainer_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PreCrashContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* perceivedPreCrashObject */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* objectStationId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeToCollision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* impactSection */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* estimatedBrakingDistance */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PreCrashContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_PreCrashContainer), + offsetof(struct Vanetza_ITS2_PreCrashContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_PreCrashContainer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PreCrashContainer_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PreCrashContainer = { + "PreCrashContainer", + "PreCrashContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PreCrashContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PreCrashContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PreCrashContainer_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PreCrashContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PreCrashContainer.h b/vanetza/asn1/its/r2/PreCrashContainer.h new file mode 100644 index 000000000..8df49c186 --- /dev/null +++ b/vanetza/asn1/its/r2/PreCrashContainer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PreCrashContainer_H_ +#define _Vanetza_ITS2_PreCrashContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PerceivedObject.h" +#include "StationId.h" +#include "DeltaTimeMilliSecondPositive.h" +#include "ObjectFace.h" +#include "StandardLength12b.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PreCrashContainer */ +typedef struct Vanetza_ITS2_PreCrashContainer { + Vanetza_ITS2_PerceivedObject_t perceivedPreCrashObject; + Vanetza_ITS2_StationId_t *objectStationId; /* OPTIONAL */ + Vanetza_ITS2_DeltaTimeMilliSecondPositive_t *timeToCollision; /* OPTIONAL */ + Vanetza_ITS2_ObjectFace_t *impactSection; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t *estimatedBrakingDistance; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PreCrashContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PreCrashContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PreCrashContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PreCrashContainer_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PreCrashContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PrecipitationIntensity.c b/vanetza/asn1/its/r2/PrecipitationIntensity.c new file mode 100644 index 000000000..2a6bb7136 --- /dev/null +++ b/vanetza/asn1/its/r2/PrecipitationIntensity.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PrecipitationIntensity.h" + +int +Vanetza_ITS2_PrecipitationIntensity_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 <= 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_Vanetza_ITS2_PrecipitationIntensity_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..2001) */, + -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_Vanetza_ITS2_PrecipitationIntensity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 1, 2001 } /* (1..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_Vanetza_ITS2_PrecipitationIntensity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PrecipitationIntensity = { + "PrecipitationIntensity", + "PrecipitationIntensity", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PrecipitationIntensity_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PrecipitationIntensity_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PrecipitationIntensity_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PrecipitationIntensity_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PrecipitationIntensity.h b/vanetza/asn1/its/r2/PrecipitationIntensity.h new file mode 100644 index 000000000..fec0beb75 --- /dev/null +++ b/vanetza/asn1/its/r2/PrecipitationIntensity.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PrecipitationIntensity_H_ +#define _Vanetza_ITS2_PrecipitationIntensity_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PrecipitationIntensity { + Vanetza_ITS2_PrecipitationIntensity_outOfRange = 2000, + Vanetza_ITS2_PrecipitationIntensity_unavailable = 2001 +} e_Vanetza_ITS2_PrecipitationIntensity; + +/* Vanetza_ITS2_PrecipitationIntensity */ +typedef long Vanetza_ITS2_PrecipitationIntensity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PrecipitationIntensity; +asn_struct_free_f Vanetza_ITS2_PrecipitationIntensity_free; +asn_struct_print_f Vanetza_ITS2_PrecipitationIntensity_print; +asn_constr_check_f Vanetza_ITS2_PrecipitationIntensity_constraint; +ber_type_decoder_f Vanetza_ITS2_PrecipitationIntensity_decode_ber; +der_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_der; +xer_type_decoder_f Vanetza_ITS2_PrecipitationIntensity_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PrecipitationIntensity_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_oer; +per_type_decoder_f Vanetza_ITS2_PrecipitationIntensity_decode_uper; +per_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_uper; +per_type_decoder_f Vanetza_ITS2_PrecipitationIntensity_decode_aper; +per_type_encoder_f Vanetza_ITS2_PrecipitationIntensity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PrecipitationIntensity_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ProtectedCommunicationZone.c b/vanetza/asn1/its/r2/ProtectedCommunicationZone.c new file mode 100644 index 000000000..74088f845 --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedCommunicationZone.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedZoneType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneType" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TimestampIts, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "expiryTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneLatitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneLongitude" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedZoneRadius, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneRadius" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, protectedZoneId), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedZoneId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedZoneId" + }, +}; +static const int asn_MAP_Vanetza_ITS2_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ProtectedCommunicationZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* protectedZoneType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expiryTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* protectedZoneLatitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protectedZoneLongitude */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protectedZoneRadius */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* protectedZoneId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ProtectedCommunicationZone_specs_1 = { + sizeof(struct Vanetza_ITS2_ProtectedCommunicationZone), + offsetof(struct Vanetza_ITS2_ProtectedCommunicationZone, _asn_ctx), + asn_MAP_Vanetza_ITS2_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ProtectedCommunicationZone.h b/vanetza/asn1/its/r2/ProtectedCommunicationZone.h new file mode 100644 index 000000000..10108218f --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedCommunicationZone.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ProtectedCommunicationZone_H_ +#define _Vanetza_ITS2_ProtectedCommunicationZone_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ProtectedZoneType.h" +#include "TimestampIts.h" +#include "Latitude.h" +#include "Longitude.h" +#include "ProtectedZoneRadius.h" +#include "ProtectedZoneId.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ProtectedCommunicationZone */ +typedef struct Vanetza_ITS2_ProtectedCommunicationZone { + Vanetza_ITS2_ProtectedZoneType_t protectedZoneType; + Vanetza_ITS2_TimestampIts_t *expiryTime; /* OPTIONAL */ + Vanetza_ITS2_Latitude_t protectedZoneLatitude; + Vanetza_ITS2_Longitude_t protectedZoneLongitude; + Vanetza_ITS2_ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + Vanetza_ITS2_ProtectedZoneId_t *protectedZoneId; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ProtectedCommunicationZone_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.c b/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.c new file mode 100644 index 000000000..d31b6b50d --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ProtectedCommunicationZonesRSU.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_ProtectedCommunicationZonesRSU_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_Vanetza_ITS2_ProtectedCommunicationZonesRSU_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_Vanetza_ITS2_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ProtectedCommunicationZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct Vanetza_ITS2_ProtectedCommunicationZonesRSU), + offsetof(struct Vanetza_ITS2_ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ProtectedCommunicationZonesRSU_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ProtectedCommunicationZonesRSU_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.h b/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..049b50f61 --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedCommunicationZonesRSU.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ProtectedCommunicationZonesRSU_H_ +#define _Vanetza_ITS2_ProtectedCommunicationZonesRSU_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 Vanetza_ITS2_ProtectedCommunicationZone; + +/* Vanetza_ITS2_ProtectedCommunicationZonesRSU */ +typedef struct Vanetza_ITS2_ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct Vanetza_ITS2_ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_ProtectedCommunicationZonesRSU_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ProtectedCommunicationZonesRSU_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ProtectedCommunicationZonesRSU_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ProtectedCommunicationZone.h" + +#endif /* _Vanetza_ITS2_ProtectedCommunicationZonesRSU_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ProtectedZoneId.c b/vanetza/asn1/its/r2/ProtectedZoneId.c new file mode 100644 index 000000000..fef0bef2a --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneId.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ProtectedZoneId.h" + +int +Vanetza_ITS2_ProtectedZoneId_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 <= 134217727L)) { + /* 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_Vanetza_ITS2_ProtectedZoneId_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..134217727) */, + -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_Vanetza_ITS2_ProtectedZoneId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 27, -1, 0, 134217727 } /* (0..134217727) */, + { 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_Vanetza_ITS2_ProtectedZoneId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneId = { + "ProtectedZoneId", + "ProtectedZoneId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ProtectedZoneId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ProtectedZoneId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ProtectedZoneId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ProtectedZoneId.h b/vanetza/asn1/its/r2/ProtectedZoneId.h new file mode 100644 index 000000000..ed81593d8 --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneId.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ProtectedZoneId_H_ +#define _Vanetza_ITS2_ProtectedZoneId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ProtectedZoneId */ +typedef long Vanetza_ITS2_ProtectedZoneId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ProtectedZoneId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneId; +asn_struct_free_f Vanetza_ITS2_ProtectedZoneId_free; +asn_struct_print_f Vanetza_ITS2_ProtectedZoneId_print; +asn_constr_check_f Vanetza_ITS2_ProtectedZoneId_constraint; +ber_type_decoder_f Vanetza_ITS2_ProtectedZoneId_decode_ber; +der_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_der; +xer_type_decoder_f Vanetza_ITS2_ProtectedZoneId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ProtectedZoneId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_oer; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneId_decode_uper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_uper; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneId_decode_aper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ProtectedZoneId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ProtectedZoneRadius.c b/vanetza/asn1/its/r2/ProtectedZoneRadius.c new file mode 100644 index 000000000..e4b2c0dd7 --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneRadius.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ProtectedZoneRadius.h" + +int +Vanetza_ITS2_ProtectedZoneRadius_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_Vanetza_ITS2_ProtectedZoneRadius_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_Vanetza_ITS2_ProtectedZoneRadius_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneRadius_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ProtectedZoneRadius_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ProtectedZoneRadius_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ProtectedZoneRadius_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ProtectedZoneRadius.h b/vanetza/asn1/its/r2/ProtectedZoneRadius.h new file mode 100644 index 000000000..f3d0fac0e --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneRadius.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ProtectedZoneRadius_H_ +#define _Vanetza_ITS2_ProtectedZoneRadius_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ProtectedZoneRadius */ +typedef long Vanetza_ITS2_ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneRadius; +asn_struct_free_f Vanetza_ITS2_ProtectedZoneRadius_free; +asn_struct_print_f Vanetza_ITS2_ProtectedZoneRadius_print; +asn_constr_check_f Vanetza_ITS2_ProtectedZoneRadius_constraint; +ber_type_decoder_f Vanetza_ITS2_ProtectedZoneRadius_decode_ber; +der_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_der; +xer_type_decoder_f Vanetza_ITS2_ProtectedZoneRadius_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ProtectedZoneRadius_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_oer; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneRadius_decode_uper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_uper; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneRadius_decode_aper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ProtectedZoneRadius_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ProtectedZoneType.c b/vanetza/asn1/its/r2/ProtectedZoneType.c new file mode 100644 index 000000000..5a8159714 --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneType.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ProtectedZoneType.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_Vanetza_ITS2_ProtectedZoneType_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_Vanetza_ITS2_ProtectedZoneType_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) */ +static const asn_INTEGER_enum_map_t asn_MAP_Vanetza_ITS2_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_ProtectedZoneType_specs_1 = { + asn_MAP_Vanetza_ITS2_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_ProtectedZoneType_enum2value_1, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ProtectedZoneType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ProtectedZoneType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ProtectedZoneType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ProtectedZoneType.h b/vanetza/asn1/its/r2/ProtectedZoneType.h new file mode 100644 index 000000000..cc659aa7a --- /dev/null +++ b/vanetza/asn1/its/r2/ProtectedZoneType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ProtectedZoneType_H_ +#define _Vanetza_ITS2_ProtectedZoneType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ProtectedZoneType { + Vanetza_ITS2_ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + Vanetza_ITS2_ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_Vanetza_ITS2_ProtectedZoneType; + +/* Vanetza_ITS2_ProtectedZoneType */ +typedef long Vanetza_ITS2_ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_ProtectedZoneType_specs_1; +asn_struct_free_f Vanetza_ITS2_ProtectedZoneType_free; +asn_struct_print_f Vanetza_ITS2_ProtectedZoneType_print; +asn_constr_check_f Vanetza_ITS2_ProtectedZoneType_constraint; +ber_type_decoder_f Vanetza_ITS2_ProtectedZoneType_decode_ber; +der_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_der; +xer_type_decoder_f Vanetza_ITS2_ProtectedZoneType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ProtectedZoneType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_oer; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneType_decode_uper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_uper; +per_type_decoder_f Vanetza_ITS2_ProtectedZoneType_decode_aper; +per_type_encoder_f Vanetza_ITS2_ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ProtectedZoneType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Provider.c b/vanetza/asn1/its/r2/Provider.c new file mode 100644 index 000000000..9ac5df84f --- /dev/null +++ b/vanetza/asn1/its/r2/Provider.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Provider.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Provider_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Provider, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CountryCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "countryCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Provider, providerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_IssuerIdentifier, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "providerIdentifier" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Provider_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Provider_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* countryCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* providerIdentifier */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Provider_specs_1 = { + sizeof(struct Vanetza_ITS2_Provider), + offsetof(struct Vanetza_ITS2_Provider, _asn_ctx), + asn_MAP_Vanetza_ITS2_Provider_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_Vanetza_ITS2_Provider = { + "Provider", + "Provider", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Provider_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Provider_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Provider_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Provider_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Provider_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Provider_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Provider_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Provider_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Provider.h b/vanetza/asn1/its/r2/Provider.h new file mode 100644 index 000000000..90584da03 --- /dev/null +++ b/vanetza/asn1/its/r2/Provider.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Provider_H_ +#define _Vanetza_ITS2_Provider_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CountryCode.h" +#include "IssuerIdentifier.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Provider */ +typedef struct Vanetza_ITS2_Provider { + Vanetza_ITS2_CountryCode_t countryCode; + Vanetza_ITS2_IssuerIdentifier_t providerIdentifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Provider_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Provider; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Provider_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Provider_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Provider_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PtActivation.c b/vanetza/asn1/its/r2/PtActivation.c new file mode 100644 index 000000000..871d5781c --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PtActivation.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PtActivationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ptActivationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PtActivationData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ptActivationData" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PtActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ptActivationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivationData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PtActivation_specs_1 = { + sizeof(struct Vanetza_ITS2_PtActivation), + offsetof(struct Vanetza_ITS2_PtActivation, _asn_ctx), + asn_MAP_Vanetza_ITS2_PtActivation_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_Vanetza_ITS2_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PtActivation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PtActivation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PtActivation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivation_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PtActivation.h b/vanetza/asn1/its/r2/PtActivation.h new file mode 100644 index 000000000..8f9b382f4 --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivation.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PtActivation_H_ +#define _Vanetza_ITS2_PtActivation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PtActivationType.h" +#include "PtActivationData.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PtActivation */ +typedef struct Vanetza_ITS2_PtActivation { + Vanetza_ITS2_PtActivationType_t ptActivationType; + Vanetza_ITS2_PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PtActivation; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PtActivation_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PtActivation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PtActivation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PtActivationData.c b/vanetza/asn1/its/r2/PtActivationData.c new file mode 100644 index 000000000..95f21dd0a --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivationData.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PtActivationData.h" + +int +Vanetza_ITS2_PtActivationData_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 <= 20UL)) { + /* 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_Vanetza_ITS2_PtActivationData_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_Vanetza_ITS2_PtActivationData_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) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_Vanetza_ITS2_PtActivationData_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PtActivationData_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PtActivationData_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivationData_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PtActivationData_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PtActivationData_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PtActivationData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PtActivationData.h b/vanetza/asn1/its/r2/PtActivationData.h new file mode 100644 index 000000000..aa700d4f8 --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivationData.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PtActivationData_H_ +#define _Vanetza_ITS2_PtActivationData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "OCTET_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_PtActivationData */ +typedef OCTET_STRING_t Vanetza_ITS2_PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PtActivationData; +asn_struct_free_f Vanetza_ITS2_PtActivationData_free; +asn_struct_print_f Vanetza_ITS2_PtActivationData_print; +asn_constr_check_f Vanetza_ITS2_PtActivationData_constraint; +ber_type_decoder_f Vanetza_ITS2_PtActivationData_decode_ber; +der_type_encoder_f Vanetza_ITS2_PtActivationData_encode_der; +xer_type_decoder_f Vanetza_ITS2_PtActivationData_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PtActivationData_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PtActivationData_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PtActivationData_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PtActivationData_encode_oer; +per_type_decoder_f Vanetza_ITS2_PtActivationData_decode_uper; +per_type_encoder_f Vanetza_ITS2_PtActivationData_encode_uper; +per_type_decoder_f Vanetza_ITS2_PtActivationData_decode_aper; +per_type_encoder_f Vanetza_ITS2_PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PtActivationData_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PtActivationType.c b/vanetza/asn1/its/r2/PtActivationType.c new file mode 100644 index 000000000..8c357a5cf --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivationType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PtActivationType.h" + +int +Vanetza_ITS2_PtActivationType_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_Vanetza_ITS2_PtActivationType_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_Vanetza_ITS2_PtActivationType_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_Vanetza_ITS2_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_PtActivationType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PtActivationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PtActivationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PtActivationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_PtActivationType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_PtActivationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_PtActivationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/PtActivationType.h b/vanetza/asn1/its/r2/PtActivationType.h new file mode 100644 index 000000000..64ba75156 --- /dev/null +++ b/vanetza/asn1/its/r2/PtActivationType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PtActivationType_H_ +#define _Vanetza_ITS2_PtActivationType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_PtActivationType { + Vanetza_ITS2_PtActivationType_undefinedCodingType = 0, + Vanetza_ITS2_PtActivationType_r09_16CodingType = 1, + Vanetza_ITS2_PtActivationType_vdv_50149CodingType = 2 +} e_Vanetza_ITS2_PtActivationType; + +/* Vanetza_ITS2_PtActivationType */ +typedef long Vanetza_ITS2_PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PtActivationType; +asn_struct_free_f Vanetza_ITS2_PtActivationType_free; +asn_struct_print_f Vanetza_ITS2_PtActivationType_print; +asn_constr_check_f Vanetza_ITS2_PtActivationType_constraint; +ber_type_decoder_f Vanetza_ITS2_PtActivationType_decode_ber; +der_type_encoder_f Vanetza_ITS2_PtActivationType_encode_der; +xer_type_decoder_f Vanetza_ITS2_PtActivationType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_PtActivationType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_PtActivationType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_PtActivationType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_PtActivationType_encode_oer; +per_type_decoder_f Vanetza_ITS2_PtActivationType_decode_uper; +per_type_encoder_f Vanetza_ITS2_PtActivationType_encode_uper; +per_type_decoder_f Vanetza_ITS2_PtActivationType_decode_aper; +per_type_encoder_f Vanetza_ITS2_PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_PtActivationType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/PublicTransportContainer.c b/vanetza/asn1/its/r2/PublicTransportContainer.c new file mode 100644 index 000000000..daae43e8c --- /dev/null +++ b/vanetza/asn1/its/r2/PublicTransportContainer.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "PublicTransportContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PublicTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_PublicTransportContainer, embarkationStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EmbarkationStatus, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "embarkationStatus" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_PublicTransportContainer, ptActivation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PtActivation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ptActivation" + }, +}; +static const int asn_MAP_Vanetza_ITS2_PublicTransportContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_PublicTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* embarkationStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ptActivation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PublicTransportContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_PublicTransportContainer), + offsetof(struct Vanetza_ITS2_PublicTransportContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_PublicTransportContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_PublicTransportContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PublicTransportContainer = { + "PublicTransportContainer", + "PublicTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_PublicTransportContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_PublicTransportContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_PublicTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_PublicTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/PublicTransportContainer.h b/vanetza/asn1/its/r2/PublicTransportContainer.h new file mode 100644 index 000000000..bfc4e140f --- /dev/null +++ b/vanetza/asn1/its/r2/PublicTransportContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_PublicTransportContainer_H_ +#define _Vanetza_ITS2_PublicTransportContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "EmbarkationStatus.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_PtActivation; + +/* Vanetza_ITS2_PublicTransportContainer */ +typedef struct Vanetza_ITS2_PublicTransportContainer { + Vanetza_ITS2_EmbarkationStatus_t embarkationStatus; + struct Vanetza_ITS2_PtActivation *ptActivation; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_PublicTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_PublicTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_PublicTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_PublicTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PtActivation.h" + +#endif /* _Vanetza_ITS2_PublicTransportContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RSUContainerHighFrequency.c b/vanetza/asn1/its/r2/RSUContainerHighFrequency.c new file mode 100644 index 000000000..b274cecce --- /dev/null +++ b/vanetza/asn1/its/r2/RSUContainerHighFrequency.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RSUContainerHighFrequency.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RSUContainerHighFrequency_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RSUContainerHighFrequency, protectedCommunicationZonesRSU), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ProtectedCommunicationZonesRSU, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "protectedCommunicationZonesRSU" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RSUContainerHighFrequency_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RSUContainerHighFrequency_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protectedCommunicationZonesRSU */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RSUContainerHighFrequency_specs_1 = { + sizeof(struct Vanetza_ITS2_RSUContainerHighFrequency), + offsetof(struct Vanetza_ITS2_RSUContainerHighFrequency, _asn_ctx), + asn_MAP_Vanetza_ITS2_RSUContainerHighFrequency_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RSUContainerHighFrequency_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency = { + "RSUContainerHighFrequency", + "RSUContainerHighFrequency", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RSUContainerHighFrequency_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RSUContainerHighFrequency_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RSUContainerHighFrequency.h b/vanetza/asn1/its/r2/RSUContainerHighFrequency.h new file mode 100644 index 000000000..d91668388 --- /dev/null +++ b/vanetza/asn1/its/r2/RSUContainerHighFrequency.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RSUContainerHighFrequency_H_ +#define _Vanetza_ITS2_RSUContainerHighFrequency_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_ProtectedCommunicationZonesRSU; + +/* Vanetza_ITS2_RSUContainerHighFrequency */ +typedef struct Vanetza_ITS2_RSUContainerHighFrequency { + struct Vanetza_ITS2_ProtectedCommunicationZonesRSU *protectedCommunicationZonesRSU; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RSUContainerHighFrequency_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RSUContainerHighFrequency; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RSUContainerHighFrequency_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RSUContainerHighFrequency_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ProtectedCommunicationZonesRSU.h" + +#endif /* _Vanetza_ITS2_RSUContainerHighFrequency_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RadialShape.c b/vanetza/asn1/its/r2/RadialShape.c new file mode 100644 index 000000000..e7482d5a9 --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShape.c @@ -0,0 +1,191 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RadialShape.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RadialShape_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_Vanetza_ITS2_RadialShape_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShape_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RadialShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShape, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShape, horizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "horizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShape, horizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "horizontalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RadialShape, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RadialShape, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalOpeningAngleEnd" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RadialShape_oms_1[] = { 0, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RadialShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RadialShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* horizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* verticalOpeningAngleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShape_specs_1 = { + sizeof(struct Vanetza_ITS2_RadialShape), + offsetof(struct Vanetza_ITS2_RadialShape, _asn_ctx), + asn_MAP_Vanetza_ITS2_RadialShape_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RadialShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShape = { + "RadialShape", + "RadialShape", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RadialShape_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RadialShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShape_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RadialShape_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RadialShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShape_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RadialShape_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RadialShape_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RadialShape_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RadialShape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RadialShape.h b/vanetza/asn1/its/r2/RadialShape.h new file mode 100644 index 000000000..0eacaaa7d --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShape.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RadialShape_H_ +#define _Vanetza_ITS2_RadialShape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StandardLength12b.h" +#include "CartesianAngleValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_RadialShape */ +typedef struct Vanetza_ITS2_RadialShape { + struct Vanetza_ITS2_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t range; + Vanetza_ITS2_CartesianAngleValue_t horizontalOpeningAngleStart; + Vanetza_ITS2_CartesianAngleValue_t horizontalOpeningAngleEnd; + Vanetza_ITS2_CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + Vanetza_ITS2_CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RadialShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShape; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShape_1[6]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RadialShape_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_RadialShape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RadialShapeDetails.c b/vanetza/asn1/its/r2/RadialShapeDetails.c new file mode 100644 index 000000000..17fe0d32c --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapeDetails.c @@ -0,0 +1,170 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RadialShapeDetails.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RadialShapeDetails_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_Vanetza_ITS2_RadialShapeDetails_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShapeDetails_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapeDetails, range), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "range" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapeDetails, horizontalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "horizontalOpeningAngleStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapeDetails, horizontalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "horizontalOpeningAngleEnd" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RadialShapeDetails, verticalOpeningAngleStart), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalOpeningAngleStart" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RadialShapeDetails, verticalOpeningAngleEnd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalOpeningAngleEnd" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RadialShapeDetails_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RadialShapeDetails_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* horizontalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* horizontalOpeningAngleEnd */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* verticalOpeningAngleStart */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* verticalOpeningAngleEnd */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShapeDetails_specs_1 = { + sizeof(struct Vanetza_ITS2_RadialShapeDetails), + offsetof(struct Vanetza_ITS2_RadialShapeDetails, _asn_ctx), + asn_MAP_Vanetza_ITS2_RadialShapeDetails_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RadialShapeDetails_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapeDetails = { + "RadialShapeDetails", + "RadialShapeDetails", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapeDetails_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RadialShapeDetails_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RadialShapeDetails_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RadialShapeDetails_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RadialShapeDetails_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RadialShapeDetails.h b/vanetza/asn1/its/r2/RadialShapeDetails.h new file mode 100644 index 000000000..4591caced --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapeDetails.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RadialShapeDetails_H_ +#define _Vanetza_ITS2_RadialShapeDetails_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StandardLength12b.h" +#include "CartesianAngleValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RadialShapeDetails */ +typedef struct Vanetza_ITS2_RadialShapeDetails { + Vanetza_ITS2_StandardLength12b_t range; + Vanetza_ITS2_CartesianAngleValue_t horizontalOpeningAngleStart; + Vanetza_ITS2_CartesianAngleValue_t horizontalOpeningAngleEnd; + Vanetza_ITS2_CartesianAngleValue_t *verticalOpeningAngleStart; /* OPTIONAL */ + Vanetza_ITS2_CartesianAngleValue_t *verticalOpeningAngleEnd; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RadialShapeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShapeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShapeDetails_1[5]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RadialShapeDetails_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RadialShapeDetails_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RadialShapes.c b/vanetza/asn1/its/r2/RadialShapes.c new file mode 100644 index 000000000..305cd8a63 --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapes.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RadialShapes.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShapes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapes, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapes, xCoordinate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapes, yCoordinate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yCoordinate" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RadialShapes, zCoordinate), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianCoordinateSmall, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zCoordinate" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RadialShapes, radialShapesList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RadialShapesList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radialShapesList" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RadialShapes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RadialShapes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RadialShapes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* yCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zCoordinate */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* radialShapesList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShapes_specs_1 = { + sizeof(struct Vanetza_ITS2_RadialShapes), + offsetof(struct Vanetza_ITS2_RadialShapes, _asn_ctx), + asn_MAP_Vanetza_ITS2_RadialShapes_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RadialShapes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapes = { + "RadialShapes", + "RadialShapes", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RadialShapes_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RadialShapes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapes_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RadialShapes_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RadialShapes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapes_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RadialShapes_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RadialShapes_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RadialShapes.h b/vanetza/asn1/its/r2/RadialShapes.h new file mode 100644 index 000000000..c1d6bd777 --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapes.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RadialShapes_H_ +#define _Vanetza_ITS2_RadialShapes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "CartesianCoordinateSmall.h" +#include "RadialShapesList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RadialShapes */ +typedef struct Vanetza_ITS2_RadialShapes { + Vanetza_ITS2_Identifier1B_t refPointId; + Vanetza_ITS2_CartesianCoordinateSmall_t xCoordinate; + Vanetza_ITS2_CartesianCoordinateSmall_t yCoordinate; + Vanetza_ITS2_CartesianCoordinateSmall_t *zCoordinate; /* OPTIONAL */ + Vanetza_ITS2_RadialShapesList_t radialShapesList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RadialShapes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapes; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RadialShapes_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShapes_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RadialShapes_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RadialShapesList.c b/vanetza/asn1/its/r2/RadialShapesList.c new file mode 100644 index 000000000..2d6010403 --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapesList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RadialShapesList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RadialShapesList_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_Vanetza_ITS2_RadialShapesList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_RadialShapesList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_RadialShapeDetails, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RadialShapesList_specs_1 = { + sizeof(struct Vanetza_ITS2_RadialShapesList), + offsetof(struct Vanetza_ITS2_RadialShapesList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapesList = { + "RadialShapesList", + "RadialShapesList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RadialShapesList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RadialShapesList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RadialShapesList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_RadialShapesList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_RadialShapesList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RadialShapesList.h b/vanetza/asn1/its/r2/RadialShapesList.h new file mode 100644 index 000000000..4cbecd413 --- /dev/null +++ b/vanetza/asn1/its/r2/RadialShapesList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RadialShapesList_H_ +#define _Vanetza_ITS2_RadialShapesList_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 Vanetza_ITS2_RadialShapeDetails; + +/* Vanetza_ITS2_RadialShapesList */ +typedef struct Vanetza_ITS2_RadialShapesList { + A_SEQUENCE_OF(struct Vanetza_ITS2_RadialShapeDetails) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RadialShapesList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RadialShapesList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RadialShapesList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RadialShapesList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RadialShapesList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "RadialShapeDetails.h" + +#endif /* _Vanetza_ITS2_RadialShapesList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.c b/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.c new file mode 100644 index 000000000..f5bc3b6b8 --- /dev/null +++ b/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RailwayLevelCrossingSubCauseCode.h" + +int +Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_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_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_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_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_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_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode = { + "RailwayLevelCrossingSubCauseCode", + "RailwayLevelCrossingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.h b/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.h new file mode 100644 index 000000000..ae163669c --- /dev/null +++ b/vanetza/asn1/its/r2/RailwayLevelCrossingSubCauseCode.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_H_ +#define _Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RailwayLevelCrossingSubCauseCode { + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_unavailable = 0, + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_doNotCrossAbnormalSituation = 1, + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_closed = 2, + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_unguarded = 3, + Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_nominal = 4 +} e_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode; + +/* Vanetza_ITS2_RailwayLevelCrossingSubCauseCode */ +typedef long Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode; +asn_struct_free_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RailwayLevelCrossingSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RectangularShape.c b/vanetza/asn1/its/r2/RectangularShape.c new file mode 100644 index 000000000..5827e5614 --- /dev/null +++ b/vanetza/asn1/its/r2/RectangularShape.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RectangularShape.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RectangularShape_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RectangularShape, shapeReferencePoint), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shapeReferencePoint" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RectangularShape, semiLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RectangularShape, semiBreadth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "semiBreadth" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RectangularShape, orientation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "orientation" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RectangularShape, height), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength12b, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "height" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RectangularShape_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RectangularShape_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RectangularShape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shapeReferencePoint */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiBreadth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* orientation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* height */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RectangularShape_specs_1 = { + sizeof(struct Vanetza_ITS2_RectangularShape), + offsetof(struct Vanetza_ITS2_RectangularShape, _asn_ctx), + asn_MAP_Vanetza_ITS2_RectangularShape_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RectangularShape_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RectangularShape = { + "RectangularShape", + "RectangularShape", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RectangularShape_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RectangularShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RectangularShape_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RectangularShape_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RectangularShape_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RectangularShape_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RectangularShape_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RectangularShape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RectangularShape.h b/vanetza/asn1/its/r2/RectangularShape.h new file mode 100644 index 000000000..fd47f61be --- /dev/null +++ b/vanetza/asn1/its/r2/RectangularShape.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RectangularShape_H_ +#define _Vanetza_ITS2_RectangularShape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StandardLength12b.h" +#include "CartesianAngleValue.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_RectangularShape */ +typedef struct Vanetza_ITS2_RectangularShape { + struct Vanetza_ITS2_CartesianPosition3d *shapeReferencePoint; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t semiLength; + Vanetza_ITS2_StandardLength12b_t semiBreadth; + Vanetza_ITS2_CartesianAngleValue_t *orientation; /* OPTIONAL */ + Vanetza_ITS2_StandardLength12b_t *height; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RectangularShape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RectangularShape; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RectangularShape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RectangularShape_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_RectangularShape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ReferencePosition.c b/vanetza/asn1/its/r2/ReferencePosition.c new file mode 100644 index 000000000..74b4b67bd --- /dev/null +++ b/vanetza/asn1/its/r2/ReferencePosition.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PosConfidenceEllipse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ReferencePosition_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 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ReferencePosition_specs_1 = { + sizeof(struct Vanetza_ITS2_ReferencePosition), + offsetof(struct Vanetza_ITS2_ReferencePosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_ReferencePosition_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_Vanetza_ITS2_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ReferencePosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ReferencePosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ReferencePosition.h b/vanetza/asn1/its/r2/ReferencePosition.h new file mode 100644 index 000000000..a93a5e96e --- /dev/null +++ b/vanetza/asn1/its/r2/ReferencePosition.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ReferencePosition_H_ +#define _Vanetza_ITS2_ReferencePosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PosConfidenceEllipse.h" +#include "Altitude.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ReferencePosition */ +typedef struct Vanetza_ITS2_ReferencePosition { + Vanetza_ITS2_Latitude_t latitude; + Vanetza_ITS2_Longitude_t longitude; + Vanetza_ITS2_PosConfidenceEllipse_t positionConfidenceEllipse; + Vanetza_ITS2_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ReferencePosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ReferencePositionWithConfidence.c b/vanetza/asn1/its/r2/ReferencePositionWithConfidence.c new file mode 100644 index 000000000..5c0d201e9 --- /dev/null +++ b/vanetza/asn1/its/r2/ReferencePositionWithConfidence.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ReferencePositionWithConfidence.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ReferencePositionWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePositionWithConfidence, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "latitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePositionWithConfidence, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "longitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePositionWithConfidence, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PositionConfidenceEllipse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "positionConfidenceEllipse" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_ReferencePositionWithConfidence, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "altitude" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ReferencePositionWithConfidence_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 }, /* positionConfidenceEllipse */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ReferencePositionWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_ReferencePositionWithConfidence), + offsetof(struct Vanetza_ITS2_ReferencePositionWithConfidence, _asn_ctx), + asn_MAP_Vanetza_ITS2_ReferencePositionWithConfidence_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_Vanetza_ITS2_ReferencePositionWithConfidence = { + "ReferencePositionWithConfidence", + "ReferencePositionWithConfidence", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ReferencePositionWithConfidence_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ReferencePositionWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/ReferencePositionWithConfidence.h b/vanetza/asn1/its/r2/ReferencePositionWithConfidence.h new file mode 100644 index 000000000..c652a0fba --- /dev/null +++ b/vanetza/asn1/its/r2/ReferencePositionWithConfidence.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ReferencePositionWithConfidence_H_ +#define _Vanetza_ITS2_ReferencePositionWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Latitude.h" +#include "Longitude.h" +#include "PositionConfidenceEllipse.h" +#include "Altitude.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_ReferencePositionWithConfidence */ +typedef struct Vanetza_ITS2_ReferencePositionWithConfidence { + Vanetza_ITS2_Latitude_t latitude; + Vanetza_ITS2_Longitude_t longitude; + Vanetza_ITS2_PositionConfidenceEllipse_t positionConfidenceEllipse; + Vanetza_ITS2_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_ReferencePositionWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ReferencePositionWithConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ReferencePositionWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_ReferencePositionWithConfidence_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ReferencePositionWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RelevanceDistance.c b/vanetza/asn1/its/r2/RelevanceDistance.c new file mode 100644 index 000000000..b79923c86 --- /dev/null +++ b/vanetza/asn1/its/r2/RelevanceDistance.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RelevanceDistance.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_Vanetza_ITS2_RelevanceDistance_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_Vanetza_ITS2_RelevanceDistance_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_Vanetza_ITS2_RelevanceDistance_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_RelevanceDistance_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RelevanceDistance_specs_1 = { + asn_MAP_Vanetza_ITS2_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_RelevanceDistance_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_Vanetza_ITS2_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RelevanceDistance_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RelevanceDistance_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RelevanceDistance_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RelevanceDistance.h b/vanetza/asn1/its/r2/RelevanceDistance.h new file mode 100644 index 000000000..031deadc5 --- /dev/null +++ b/vanetza/asn1/its/r2/RelevanceDistance.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RelevanceDistance_H_ +#define _Vanetza_ITS2_RelevanceDistance_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RelevanceDistance { + Vanetza_ITS2_RelevanceDistance_lessThan50m = 0, + Vanetza_ITS2_RelevanceDistance_lessThan100m = 1, + Vanetza_ITS2_RelevanceDistance_lessThan200m = 2, + Vanetza_ITS2_RelevanceDistance_lessThan500m = 3, + Vanetza_ITS2_RelevanceDistance_lessThan1000m = 4, + Vanetza_ITS2_RelevanceDistance_lessThan5km = 5, + Vanetza_ITS2_RelevanceDistance_lessThan10km = 6, + Vanetza_ITS2_RelevanceDistance_over10km = 7 +} e_Vanetza_ITS2_RelevanceDistance; + +/* Vanetza_ITS2_RelevanceDistance */ +typedef long Vanetza_ITS2_RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RelevanceDistance; +asn_struct_free_f Vanetza_ITS2_RelevanceDistance_free; +asn_struct_print_f Vanetza_ITS2_RelevanceDistance_print; +asn_constr_check_f Vanetza_ITS2_RelevanceDistance_constraint; +ber_type_decoder_f Vanetza_ITS2_RelevanceDistance_decode_ber; +der_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_der; +xer_type_decoder_f Vanetza_ITS2_RelevanceDistance_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RelevanceDistance_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_oer; +per_type_decoder_f Vanetza_ITS2_RelevanceDistance_decode_uper; +per_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_uper; +per_type_decoder_f Vanetza_ITS2_RelevanceDistance_decode_aper; +per_type_encoder_f Vanetza_ITS2_RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RelevanceDistance_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RelevanceTrafficDirection.c b/vanetza/asn1/its/r2/RelevanceTrafficDirection.c new file mode 100644 index 000000000..46281f8e0 --- /dev/null +++ b/vanetza/asn1/its/r2/RelevanceTrafficDirection.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RelevanceTrafficDirection.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_Vanetza_ITS2_RelevanceTrafficDirection_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_Vanetza_ITS2_RelevanceTrafficDirection_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_Vanetza_ITS2_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RelevanceTrafficDirection_specs_1 = { + asn_MAP_Vanetza_ITS2_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_RelevanceTrafficDirection_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_Vanetza_ITS2_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RelevanceTrafficDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RelevanceTrafficDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RelevanceTrafficDirection.h b/vanetza/asn1/its/r2/RelevanceTrafficDirection.h new file mode 100644 index 000000000..8286a5564 --- /dev/null +++ b/vanetza/asn1/its/r2/RelevanceTrafficDirection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RelevanceTrafficDirection_H_ +#define _Vanetza_ITS2_RelevanceTrafficDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RelevanceTrafficDirection { + Vanetza_ITS2_RelevanceTrafficDirection_allTrafficDirections = 0, + Vanetza_ITS2_RelevanceTrafficDirection_upstreamTraffic = 1, + Vanetza_ITS2_RelevanceTrafficDirection_downstreamTraffic = 2, + Vanetza_ITS2_RelevanceTrafficDirection_oppositeTraffic = 3 +} e_Vanetza_ITS2_RelevanceTrafficDirection; + +/* Vanetza_ITS2_RelevanceTrafficDirection */ +typedef long Vanetza_ITS2_RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RelevanceTrafficDirection; +asn_struct_free_f Vanetza_ITS2_RelevanceTrafficDirection_free; +asn_struct_print_f Vanetza_ITS2_RelevanceTrafficDirection_print; +asn_constr_check_f Vanetza_ITS2_RelevanceTrafficDirection_constraint; +ber_type_decoder_f Vanetza_ITS2_RelevanceTrafficDirection_decode_ber; +der_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_der; +xer_type_decoder_f Vanetza_ITS2_RelevanceTrafficDirection_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RelevanceTrafficDirection_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_oer; +per_type_decoder_f Vanetza_ITS2_RelevanceTrafficDirection_decode_uper; +per_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_uper; +per_type_decoder_f Vanetza_ITS2_RelevanceTrafficDirection_decode_aper; +per_type_encoder_f Vanetza_ITS2_RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RelevanceTrafficDirection_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RequestResponseIndication.c b/vanetza/asn1/its/r2/RequestResponseIndication.c new file mode 100644 index 000000000..d0368521e --- /dev/null +++ b/vanetza/asn1/its/r2/RequestResponseIndication.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RequestResponseIndication.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_Vanetza_ITS2_RequestResponseIndication_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_Vanetza_ITS2_RequestResponseIndication_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_Vanetza_ITS2_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RequestResponseIndication_specs_1 = { + asn_MAP_Vanetza_ITS2_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_RequestResponseIndication_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_Vanetza_ITS2_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RequestResponseIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RequestResponseIndication_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RequestResponseIndication_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RequestResponseIndication.h b/vanetza/asn1/its/r2/RequestResponseIndication.h new file mode 100644 index 000000000..77816d851 --- /dev/null +++ b/vanetza/asn1/its/r2/RequestResponseIndication.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RequestResponseIndication_H_ +#define _Vanetza_ITS2_RequestResponseIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RequestResponseIndication { + Vanetza_ITS2_RequestResponseIndication_request = 0, + Vanetza_ITS2_RequestResponseIndication_response = 1 +} e_Vanetza_ITS2_RequestResponseIndication; + +/* Vanetza_ITS2_RequestResponseIndication */ +typedef long Vanetza_ITS2_RequestResponseIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RequestResponseIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RequestResponseIndication; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RequestResponseIndication_specs_1; +asn_struct_free_f Vanetza_ITS2_RequestResponseIndication_free; +asn_struct_print_f Vanetza_ITS2_RequestResponseIndication_print; +asn_constr_check_f Vanetza_ITS2_RequestResponseIndication_constraint; +ber_type_decoder_f Vanetza_ITS2_RequestResponseIndication_decode_ber; +der_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_der; +xer_type_decoder_f Vanetza_ITS2_RequestResponseIndication_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RequestResponseIndication_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_oer; +per_type_decoder_f Vanetza_ITS2_RequestResponseIndication_decode_uper; +per_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_uper; +per_type_decoder_f Vanetza_ITS2_RequestResponseIndication_decode_aper; +per_type_encoder_f Vanetza_ITS2_RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RequestResponseIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.c b/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 000000000..e11862918 --- /dev/null +++ b/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_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_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_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_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_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_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.h b/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..e0aa47b16 --- /dev/null +++ b/vanetza/asn1/its/r2/RescueAndRecoveryWorkInProgressSubCauseCode.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode { + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_prioritizedVehicle = 6, + Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_rescueAndRecoveryVehicle = 7 +} e_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RescueContainer.c b/vanetza/asn1/its/r2/RescueContainer.c new file mode 100644 index 000000000..478dba201 --- /dev/null +++ b/vanetza/asn1/its/r2/RescueContainer.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RescueContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RescueContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RescueContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RescueContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RescueContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RescueContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_RescueContainer), + offsetof(struct Vanetza_ITS2_RescueContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_RescueContainer_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_Vanetza_ITS2_RescueContainer = { + "RescueContainer", + "RescueContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RescueContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RescueContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RescueContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RescueContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RescueContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RescueContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RescueContainer_1, + 1, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RescueContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RescueContainer.h b/vanetza/asn1/its/r2/RescueContainer.h new file mode 100644 index 000000000..424bd07ce --- /dev/null +++ b/vanetza/asn1/its/r2/RescueContainer.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RescueContainer_H_ +#define _Vanetza_ITS2_RescueContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RescueContainer */ +typedef struct Vanetza_ITS2_RescueContainer { + Vanetza_ITS2_LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RescueContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RescueContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RescueContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RescueContainer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RescueContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RestrictedTypes.c b/vanetza/asn1/its/r2/RestrictedTypes.c new file mode 100644 index 000000000..ed535cd24 --- /dev/null +++ b/vanetza/asn1/its/r2/RestrictedTypes.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RestrictedTypes.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RestrictedTypes_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_Vanetza_ITS2_RestrictedTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 1, 3 } /* (SIZE(1..3,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_StationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RestrictedTypes_specs_1 = { + sizeof(struct Vanetza_ITS2_RestrictedTypes), + offsetof(struct Vanetza_ITS2_RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RestrictedTypes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RestrictedTypes_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RestrictedTypes_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RestrictedTypes.h b/vanetza/asn1/its/r2/RestrictedTypes.h new file mode 100644 index 000000000..119987d62 --- /dev/null +++ b/vanetza/asn1/its/r2/RestrictedTypes.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RestrictedTypes_H_ +#define _Vanetza_ITS2_RestrictedTypes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationType.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RestrictedTypes */ +typedef struct Vanetza_ITS2_RestrictedTypes { + A_SEQUENCE_OF(Vanetza_ITS2_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RestrictedTypes; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RestrictedTypes_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RestrictedTypes_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RestrictedTypes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RestrictedTypes_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadConfigurationContainer.c b/vanetza/asn1/its/r2/RoadConfigurationContainer.c new file mode 100644 index 000000000..5d3ea236c --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadConfigurationContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadConfigurationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadConfigurationContainer, roadConfigurationConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MetaInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadConfigurationConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadConfigurationContainer, roadConfigurationSectionList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadConfigurationSectionList" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RoadConfigurationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadConfigurationConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* roadConfigurationSectionList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadConfigurationContainer), + offsetof(struct Vanetza_ITS2_RoadConfigurationContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadConfigurationContainer_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_Vanetza_ITS2_RoadConfigurationContainer = { + "RoadConfigurationContainer", + "RoadConfigurationContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadConfigurationContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadConfigurationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadConfigurationContainer.h b/vanetza/asn1/its/r2/RoadConfigurationContainer.h new file mode 100644 index 000000000..6e5bf8079 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadConfigurationContainer_H_ +#define _Vanetza_ITS2_RoadConfigurationContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "MetaInformation.h" +#include "RoadConfigurationSectionList.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RoadConfigurationContainer */ +typedef struct Vanetza_ITS2_RoadConfigurationContainer { + Vanetza_ITS2_MetaInformation_t roadConfigurationConfidence; + Vanetza_ITS2_RoadConfigurationSectionList_t roadConfigurationSectionList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadConfigurationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadConfigurationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadConfigurationContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RoadConfigurationContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadConfigurationSection.c b/vanetza/asn1/its/r2/RoadConfigurationSection.c new file mode 100644 index 000000000..07f5b738f --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationSection.c @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadConfigurationSection.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RoadConfigurationSection_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_Vanetza_ITS2_RoadConfigurationSection_constr_1 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadConfigurationSection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadConfigurationSection, roadSectionDefinition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadSectionDefinition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadSectionDefinition" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_RoadConfigurationSection, roadType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadType" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RoadConfigurationSection, laneConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_BasicLaneConfiguration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "laneConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadConfigurationSection, mapemConfiguration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_MapemConfiguration, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "mapemConfiguration" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RoadConfigurationSection_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RoadConfigurationSection_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadSectionDefinition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* roadType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* laneConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* mapemConfiguration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationSection_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadConfigurationSection), + offsetof(struct Vanetza_ITS2_RoadConfigurationSection, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadConfigurationSection_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RoadConfigurationSection_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadConfigurationSection = { + "RoadConfigurationSection", + "RoadConfigurationSection", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RoadConfigurationSection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RoadConfigurationSection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadConfigurationSection_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadConfigurationSection_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadConfigurationSection.h b/vanetza/asn1/its/r2/RoadConfigurationSection.h new file mode 100644 index 000000000..86c7ec8f5 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationSection.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadConfigurationSection_H_ +#define _Vanetza_ITS2_RoadConfigurationSection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RoadSectionDefinition.h" +#include "RoadType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_BasicLaneConfiguration; +struct Vanetza_ITS2_MapemConfiguration; + +/* Vanetza_ITS2_RoadConfigurationSection */ +typedef struct Vanetza_ITS2_RoadConfigurationSection { + Vanetza_ITS2_RoadSectionDefinition_t roadSectionDefinition; + Vanetza_ITS2_RoadType_t *roadType; /* OPTIONAL */ + struct Vanetza_ITS2_BasicLaneConfiguration *laneConfiguration; /* OPTIONAL */ + struct Vanetza_ITS2_MapemConfiguration *mapemConfiguration; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadConfigurationSection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadConfigurationSection; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationSection_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadConfigurationSection_1[4]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RoadConfigurationSection_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "BasicLaneConfiguration.h" +#include "MapemConfiguration.h" + +#endif /* _Vanetza_ITS2_RoadConfigurationSection_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadConfigurationSectionList.c b/vanetza/asn1/its/r2/RoadConfigurationSectionList.c new file mode 100644 index 000000000..7d940016d --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationSectionList.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadConfigurationSectionList.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_RoadConfigurationSectionList_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_Vanetza_ITS2_RoadConfigurationSectionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_RoadConfigurationSectionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_RoadConfigurationSection, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationSectionList_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadConfigurationSectionList), + offsetof(struct Vanetza_ITS2_RoadConfigurationSectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList = { + "RoadConfigurationSectionList", + "RoadConfigurationSectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RoadConfigurationSectionList_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RoadConfigurationSectionList_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_RoadConfigurationSectionList_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_RoadConfigurationSectionList_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadConfigurationSectionList.h b/vanetza/asn1/its/r2/RoadConfigurationSectionList.h new file mode 100644 index 000000000..d277e1194 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadConfigurationSectionList.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadConfigurationSectionList_H_ +#define _Vanetza_ITS2_RoadConfigurationSectionList_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 Vanetza_ITS2_RoadConfigurationSection; + +/* Vanetza_ITS2_RoadConfigurationSectionList */ +typedef struct Vanetza_ITS2_RoadConfigurationSectionList { + A_SEQUENCE_OF(struct Vanetza_ITS2_RoadConfigurationSection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadConfigurationSectionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadConfigurationSectionList; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_RoadConfigurationSectionList_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadConfigurationSectionList_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RoadConfigurationSectionList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "RoadConfigurationSection.h" + +#endif /* _Vanetza_ITS2_RoadConfigurationSectionList_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadSectionDefinition.c b/vanetza/asn1/its/r2/RoadSectionDefinition.c new file mode 100644 index 000000000..b2ee13c95 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSectionDefinition.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadSectionDefinition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadSectionDefinition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, startingPointSection), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_GeoPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startingPointSection" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, lengthOfSection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lengthOfSection" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, endingPointSection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_GeoPosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "endingPointSection" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, connectedPaths), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathReferences, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "connectedPaths" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, includedPaths), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PathReferences, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "includedPaths" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, isEventZoneIncluded), + (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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isEventZoneIncluded" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSectionDefinition, isEventZoneConnected), + (ASN_TAG_CLASS_CONTEXT | (6 << 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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "isEventZoneConnected" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RoadSectionDefinition_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RoadSectionDefinition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingPointSection */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lengthOfSection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* endingPointSection */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* connectedPaths */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* includedPaths */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* isEventZoneIncluded */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* isEventZoneConnected */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadSectionDefinition_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadSectionDefinition), + offsetof(struct Vanetza_ITS2_RoadSectionDefinition, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadSectionDefinition_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RoadSectionDefinition_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSectionDefinition = { + "RoadSectionDefinition", + "RoadSectionDefinition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadSectionDefinition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadSectionDefinition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadSectionDefinition_1, + 7, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadSectionDefinition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadSectionDefinition.h b/vanetza/asn1/its/r2/RoadSectionDefinition.h new file mode 100644 index 000000000..b8bf39535 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSectionDefinition.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadSectionDefinition_H_ +#define _Vanetza_ITS2_RoadSectionDefinition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "GeoPosition.h" +#include "StandardLength2B.h" +#include "PathReferences.h" +#include "BOOLEAN.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_GeoPosition; + +/* Vanetza_ITS2_RoadSectionDefinition */ +typedef struct Vanetza_ITS2_RoadSectionDefinition { + Vanetza_ITS2_GeoPosition_t startingPointSection; + Vanetza_ITS2_StandardLength2B_t *lengthOfSection; /* OPTIONAL */ + struct Vanetza_ITS2_GeoPosition *endingPointSection; /* OPTIONAL */ + Vanetza_ITS2_PathReferences_t connectedPaths; + Vanetza_ITS2_PathReferences_t includedPaths; + BOOLEAN_t isEventZoneIncluded; + BOOLEAN_t isEventZoneConnected; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadSectionDefinition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSectionDefinition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadSectionDefinition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadSectionDefinition_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "GeoPosition.h" + +#endif /* _Vanetza_ITS2_RoadSectionDefinition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadSectionId.c b/vanetza/asn1/its/r2/RoadSectionId.c new file mode 100644 index 000000000..b5c110c61 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSectionId.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadSectionId.h" + +int +Vanetza_ITS2_RoadSectionId_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 <= 8L)) { + /* 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_Vanetza_ITS2_RoadSectionId_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_Vanetza_ITS2_RoadSectionId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 8 } /* (0..8,...) */, + { 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_Vanetza_ITS2_RoadSectionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSectionId = { + "RoadSectionId", + "RoadSectionId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadSectionId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RoadSectionId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RoadSectionId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_RoadSectionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/RoadSectionId.h b/vanetza/asn1/its/r2/RoadSectionId.h new file mode 100644 index 000000000..d5aa9db7b --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSectionId.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadSectionId_H_ +#define _Vanetza_ITS2_RoadSectionId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RoadSectionId */ +typedef long Vanetza_ITS2_RoadSectionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RoadSectionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSectionId; +asn_struct_free_f Vanetza_ITS2_RoadSectionId_free; +asn_struct_print_f Vanetza_ITS2_RoadSectionId_print; +asn_constr_check_f Vanetza_ITS2_RoadSectionId_constraint; +ber_type_decoder_f Vanetza_ITS2_RoadSectionId_decode_ber; +der_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_der; +xer_type_decoder_f Vanetza_ITS2_RoadSectionId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RoadSectionId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_oer; +per_type_decoder_f Vanetza_ITS2_RoadSectionId_decode_uper; +per_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_uper; +per_type_decoder_f Vanetza_ITS2_RoadSectionId_decode_aper; +per_type_encoder_f Vanetza_ITS2_RoadSectionId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RoadSectionId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadSegmentReferenceId.c b/vanetza/asn1/its/r2/RoadSegmentReferenceId.c new file mode 100644 index 000000000..257452ac0 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSegmentReferenceId.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadSegmentReferenceId.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadSegmentReferenceId_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadSegmentReferenceId, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "region" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadSegmentReferenceId, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier2B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "id" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RoadSegmentReferenceId_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_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_Vanetza_ITS2_RoadSegmentReferenceId_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadSegmentReferenceId), + offsetof(struct Vanetza_ITS2_RoadSegmentReferenceId, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadSegmentReferenceId_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RoadSegmentReferenceId_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId = { + "RoadSegmentReferenceId", + "RoadSegmentReferenceId", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadSegmentReferenceId_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadSegmentReferenceId_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadSegmentReferenceId.h b/vanetza/asn1/its/r2/RoadSegmentReferenceId.h new file mode 100644 index 000000000..d990987c2 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadSegmentReferenceId.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadSegmentReferenceId_H_ +#define _Vanetza_ITS2_RoadSegmentReferenceId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier2B.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_RoadSegmentReferenceId */ +typedef struct Vanetza_ITS2_RoadSegmentReferenceId { + Vanetza_ITS2_Identifier2B_t *region; /* OPTIONAL */ + Vanetza_ITS2_Identifier2B_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadSegmentReferenceId_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadSegmentReferenceId; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadSegmentReferenceId_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadSegmentReferenceId_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RoadSegmentReferenceId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadType.c b/vanetza/asn1/its/r2/RoadType.c new file mode 100644 index 000000000..f79fb09e5 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadType.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_Vanetza_ITS2_RoadType_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_Vanetza_ITS2_RoadType_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_Vanetza_ITS2_RoadType_value2enum_1[] = { + { 0, 43, "urban-NoStructuralSeparationToOppositeLanes" }, + { 1, 45, "urban-WithStructuralSeparationToOppositeLanes" }, + { 2, 46, "nonUrban-NoStructuralSeparationToOppositeLanes" }, + { 3, 48, "nonUrban-WithStructuralSeparationToOppositeLanes" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RoadType_specs_1 = { + asn_MAP_Vanetza_ITS2_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_RoadType_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_Vanetza_ITS2_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_RoadType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RoadType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RoadType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadType.h b/vanetza/asn1/its/r2/RoadType.h new file mode 100644 index 000000000..1bfb6b0d9 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadType_H_ +#define _Vanetza_ITS2_RoadType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RoadType { + Vanetza_ITS2_RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + Vanetza_ITS2_RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + Vanetza_ITS2_RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + Vanetza_ITS2_RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_Vanetza_ITS2_RoadType; + +/* Vanetza_ITS2_RoadType */ +typedef long Vanetza_ITS2_RoadType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RoadType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadType; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_RoadType_specs_1; +asn_struct_free_f Vanetza_ITS2_RoadType_free; +asn_struct_print_f Vanetza_ITS2_RoadType_print; +asn_constr_check_f Vanetza_ITS2_RoadType_constraint; +ber_type_decoder_f Vanetza_ITS2_RoadType_decode_ber; +der_type_encoder_f Vanetza_ITS2_RoadType_encode_der; +xer_type_decoder_f Vanetza_ITS2_RoadType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RoadType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RoadType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RoadType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RoadType_encode_oer; +per_type_decoder_f Vanetza_ITS2_RoadType_decode_uper; +per_type_encoder_f Vanetza_ITS2_RoadType_encode_uper; +per_type_decoder_f Vanetza_ITS2_RoadType_decode_aper; +per_type_encoder_f Vanetza_ITS2_RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RoadType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadWorksContainerBasic.c b/vanetza/asn1/its/r2/RoadWorksContainerBasic.c new file mode 100644 index 000000000..ae1541846 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadWorksContainerBasic.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadWorksContainerBasic.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadWorksContainerBasic_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadWorksContainerBasic, roadworksSubCauseCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadworksSubCauseCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_RoadWorksContainerBasic, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadWorksContainerBasic, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ClosedLanes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "closedLanes" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RoadWorksContainerBasic_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RoadWorksContainerBasic_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* roadworksSubCauseCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* closedLanes */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadWorksContainerBasic_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadWorksContainerBasic), + offsetof(struct Vanetza_ITS2_RoadWorksContainerBasic, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadWorksContainerBasic_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RoadWorksContainerBasic_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic = { + "RoadWorksContainerBasic", + "RoadWorksContainerBasic", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadWorksContainerBasic_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadWorksContainerBasic_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadWorksContainerBasic.h b/vanetza/asn1/its/r2/RoadWorksContainerBasic.h new file mode 100644 index 000000000..2cb43a63b --- /dev/null +++ b/vanetza/asn1/its/r2/RoadWorksContainerBasic.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadWorksContainerBasic_H_ +#define _Vanetza_ITS2_RoadWorksContainerBasic_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RoadworksSubCauseCode.h" +#include "LightBarSirenInUse.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_ClosedLanes; + +/* Vanetza_ITS2_RoadWorksContainerBasic */ +typedef struct Vanetza_ITS2_RoadWorksContainerBasic { + Vanetza_ITS2_RoadworksSubCauseCode_t *roadworksSubCauseCode; /* OPTIONAL */ + Vanetza_ITS2_LightBarSirenInUse_t lightBarSirenInUse; + struct Vanetza_ITS2_ClosedLanes *closedLanes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadWorksContainerBasic_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadWorksContainerBasic_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadWorksContainerBasic_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ClosedLanes.h" + +#endif /* _Vanetza_ITS2_RoadWorksContainerBasic_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadWorksContainerExtended.c b/vanetza/asn1/its/r2/RoadWorksContainerExtended.c new file mode 100644 index 000000000..8afdbc1e3 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadWorksContainerExtended.c @@ -0,0 +1,242 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadWorksContainerExtended.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadWorksContainerExtended_1[] = { + { ATF_POINTER, 9, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 8, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, closedLanes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ClosedLanes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "closedLanes" + }, + { ATF_POINTER, 7, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, restriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RestrictedTypes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "restriction" + }, + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimit" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, recommendedPath), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ItineraryPath, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "recommendedPath" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, startingPointSpeedLimit), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaReferencePosition, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "startingPointSpeedLimit" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, trafficFlowRule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficRule, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trafficFlowRule" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, referenceDenms), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ActionIdList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "referenceDenms" + }, +}; +static const int asn_MAP_Vanetza_ITS2_RoadWorksContainerExtended_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_RoadWorksContainerExtended_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* closedLanes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* restriction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* speedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* recommendedPath */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* startingPointSpeedLimit */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* trafficFlowRule */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* referenceDenms */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadWorksContainerExtended_specs_1 = { + sizeof(struct Vanetza_ITS2_RoadWorksContainerExtended), + offsetof(struct Vanetza_ITS2_RoadWorksContainerExtended, _asn_ctx), + asn_MAP_Vanetza_ITS2_RoadWorksContainerExtended_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_RoadWorksContainerExtended_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended = { + "RoadWorksContainerExtended", + "RoadWorksContainerExtended", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_RoadWorksContainerExtended_1, + 9, /* Elements count */ + &asn_SPC_Vanetza_ITS2_RoadWorksContainerExtended_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/RoadWorksContainerExtended.h b/vanetza/asn1/its/r2/RoadWorksContainerExtended.h new file mode 100644 index 000000000..8c307673a --- /dev/null +++ b/vanetza/asn1/its/r2/RoadWorksContainerExtended.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadWorksContainerExtended_H_ +#define _Vanetza_ITS2_RoadWorksContainerExtended_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "SpeedLimit.h" +#include "TrafficRule.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_ClosedLanes; +struct Vanetza_ITS2_RestrictedTypes; +struct Vanetza_ITS2_CauseCodeV2; +struct Vanetza_ITS2_ItineraryPath; +struct Vanetza_ITS2_DeltaReferencePosition; +struct Vanetza_ITS2_ActionIdList; + +/* Vanetza_ITS2_RoadWorksContainerExtended */ +typedef struct Vanetza_ITS2_RoadWorksContainerExtended { + Vanetza_ITS2_LightBarSirenInUse_t *lightBarSirenInUse; /* OPTIONAL */ + struct Vanetza_ITS2_ClosedLanes *closedLanes; /* OPTIONAL */ + struct Vanetza_ITS2_RestrictedTypes *restriction; /* OPTIONAL */ + Vanetza_ITS2_SpeedLimit_t *speedLimit; /* OPTIONAL */ + struct Vanetza_ITS2_CauseCodeV2 *incidentIndication; /* OPTIONAL */ + struct Vanetza_ITS2_ItineraryPath *recommendedPath; /* OPTIONAL */ + struct Vanetza_ITS2_DeltaReferencePosition *startingPointSpeedLimit; /* OPTIONAL */ + Vanetza_ITS2_TrafficRule_t *trafficFlowRule; /* OPTIONAL */ + struct Vanetza_ITS2_ActionIdList *referenceDenms; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_RoadWorksContainerExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadWorksContainerExtended; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_RoadWorksContainerExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_RoadWorksContainerExtended_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "ClosedLanes.h" +#include "RestrictedTypes.h" +#include "CauseCodeV2.h" +#include "ItineraryPath.h" +#include "DeltaReferencePosition.h" +#include "ActionIdList.h" + +#endif /* _Vanetza_ITS2_RoadWorksContainerExtended_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/RoadworksSubCauseCode.c b/vanetza/asn1/its/r2/RoadworksSubCauseCode.c new file mode 100644 index 000000000..4ddde8b18 --- /dev/null +++ b/vanetza/asn1/its/r2/RoadworksSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "RoadworksSubCauseCode.h" + +int +Vanetza_ITS2_RoadworksSubCauseCode_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_Vanetza_ITS2_RoadworksSubCauseCode_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_Vanetza_ITS2_RoadworksSubCauseCode_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_Vanetza_ITS2_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_RoadworksSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_RoadworksSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_RoadworksSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/RoadworksSubCauseCode.h b/vanetza/asn1/its/r2/RoadworksSubCauseCode.h new file mode 100644 index 000000000..f9f2a3aad --- /dev/null +++ b/vanetza/asn1/its/r2/RoadworksSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_RoadworksSubCauseCode_H_ +#define _Vanetza_ITS2_RoadworksSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_RoadworksSubCauseCode { + Vanetza_ITS2_RoadworksSubCauseCode_unavailable = 0, + Vanetza_ITS2_RoadworksSubCauseCode_majorRoadworks = 1, + Vanetza_ITS2_RoadworksSubCauseCode_roadMarkingWork = 2, + Vanetza_ITS2_RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + Vanetza_ITS2_RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + Vanetza_ITS2_RoadworksSubCauseCode_streetCleaning = 5, + Vanetza_ITS2_RoadworksSubCauseCode_winterService = 6 +} e_Vanetza_ITS2_RoadworksSubCauseCode; + +/* Vanetza_ITS2_RoadworksSubCauseCode */ +typedef long Vanetza_ITS2_RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_RoadworksSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_RoadworksSubCauseCode; +asn_struct_free_f Vanetza_ITS2_RoadworksSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_RoadworksSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_RoadworksSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_RoadworksSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_RoadworksSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_RoadworksSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_RoadworksSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_RoadworksSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_RoadworksSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SafeDistanceIndication.c b/vanetza/asn1/its/r2/SafeDistanceIndication.c new file mode 100644 index 000000000..115a3ed6c --- /dev/null +++ b/vanetza/asn1/its/r2/SafeDistanceIndication.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SafeDistanceIndication.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SafeDistanceIndication_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SafeDistanceIndication, subjectStation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subjectStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SafeDistanceIndication, safeDistanceIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SafeDistanceIndicator, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "safeDistanceIndicator" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SafeDistanceIndication, timeToCollision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "timeToCollision" + }, +}; +static const int asn_MAP_Vanetza_ITS2_SafeDistanceIndication_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SafeDistanceIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subjectStation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* safeDistanceIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* timeToCollision */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SafeDistanceIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_SafeDistanceIndication), + offsetof(struct Vanetza_ITS2_SafeDistanceIndication, _asn_ctx), + asn_MAP_Vanetza_ITS2_SafeDistanceIndication_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_SafeDistanceIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafeDistanceIndication = { + "SafeDistanceIndication", + "SafeDistanceIndication", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndication_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SafeDistanceIndication_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SafeDistanceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SafeDistanceIndication.h b/vanetza/asn1/its/r2/SafeDistanceIndication.h new file mode 100644 index 000000000..18a47ab36 --- /dev/null +++ b/vanetza/asn1/its/r2/SafeDistanceIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SafeDistanceIndication_H_ +#define _Vanetza_ITS2_SafeDistanceIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationId.h" +#include "SafeDistanceIndicator.h" +#include "DeltaTimeTenthOfSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SafeDistanceIndication */ +typedef struct Vanetza_ITS2_SafeDistanceIndication { + Vanetza_ITS2_StationId_t *subjectStation; /* OPTIONAL */ + Vanetza_ITS2_SafeDistanceIndicator_t safeDistanceIndicator; + Vanetza_ITS2_DeltaTimeTenthOfSecond_t *timeToCollision; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SafeDistanceIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafeDistanceIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SafeDistanceIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SafeDistanceIndication_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SafeDistanceIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SafeDistanceIndicator.c b/vanetza/asn1/its/r2/SafeDistanceIndicator.c new file mode 100644 index 000000000..01f5f8e55 --- /dev/null +++ b/vanetza/asn1/its/r2/SafeDistanceIndicator.c @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SafeDistanceIndicator.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafeDistanceIndicator = { + "SafeDistanceIndicator", + "SafeDistanceIndicator", + &asn_OP_BOOLEAN, + asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafeDistanceIndicator_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + BOOLEAN_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SafeDistanceIndicator.h b/vanetza/asn1/its/r2/SafeDistanceIndicator.h new file mode 100644 index 000000000..634ce7e93 --- /dev/null +++ b/vanetza/asn1/its/r2/SafeDistanceIndicator.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SafeDistanceIndicator_H_ +#define _Vanetza_ITS2_SafeDistanceIndicator_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BOOLEAN.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SafeDistanceIndicator */ +typedef BOOLEAN_t Vanetza_ITS2_SafeDistanceIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafeDistanceIndicator; +asn_struct_free_f Vanetza_ITS2_SafeDistanceIndicator_free; +asn_struct_print_f Vanetza_ITS2_SafeDistanceIndicator_print; +asn_constr_check_f Vanetza_ITS2_SafeDistanceIndicator_constraint; +ber_type_decoder_f Vanetza_ITS2_SafeDistanceIndicator_decode_ber; +der_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_der; +xer_type_decoder_f Vanetza_ITS2_SafeDistanceIndicator_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SafeDistanceIndicator_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_oer; +per_type_decoder_f Vanetza_ITS2_SafeDistanceIndicator_decode_uper; +per_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_uper; +per_type_decoder_f Vanetza_ITS2_SafeDistanceIndicator_decode_aper; +per_type_encoder_f Vanetza_ITS2_SafeDistanceIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SafeDistanceIndicator_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SafetyCarContainer.c b/vanetza/asn1/its/r2/SafetyCarContainer.c new file mode 100644 index 000000000..6300c646a --- /dev/null +++ b/vanetza/asn1/its/r2/SafetyCarContainer.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SafetyCarContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SafetyCarContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SafetyCarContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_SafetyCarContainer, incidentIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "incidentIndication" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_SafetyCarContainer, trafficRule), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrafficRule, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trafficRule" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SafetyCarContainer, speedLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedLimit" + }, +}; +static const int asn_MAP_Vanetza_ITS2_SafetyCarContainer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SafetyCarContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lightBarSirenInUse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* incidentIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* trafficRule */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* speedLimit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SafetyCarContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_SafetyCarContainer), + offsetof(struct Vanetza_ITS2_SafetyCarContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_SafetyCarContainer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_SafetyCarContainer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafetyCarContainer = { + "SafetyCarContainer", + "SafetyCarContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SafetyCarContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SafetyCarContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SafetyCarContainer_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SafetyCarContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SafetyCarContainer.h b/vanetza/asn1/its/r2/SafetyCarContainer.h new file mode 100644 index 000000000..4bbd6e8ab --- /dev/null +++ b/vanetza/asn1/its/r2/SafetyCarContainer.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SafetyCarContainer_H_ +#define _Vanetza_ITS2_SafetyCarContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LightBarSirenInUse.h" +#include "TrafficRule.h" +#include "SpeedLimit.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CauseCodeV2; + +/* Vanetza_ITS2_SafetyCarContainer */ +typedef struct Vanetza_ITS2_SafetyCarContainer { + Vanetza_ITS2_LightBarSirenInUse_t lightBarSirenInUse; + struct Vanetza_ITS2_CauseCodeV2 *incidentIndication; /* OPTIONAL */ + Vanetza_ITS2_TrafficRule_t *trafficRule; /* OPTIONAL */ + Vanetza_ITS2_SpeedLimit_t *speedLimit; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SafetyCarContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SafetyCarContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SafetyCarContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SafetyCarContainer_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CauseCodeV2.h" + +#endif /* _Vanetza_ITS2_SafetyCarContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SemiAxisLength.c b/vanetza/asn1/its/r2/SemiAxisLength.c new file mode 100644 index 000000000..b18cff7ce --- /dev/null +++ b/vanetza/asn1/its/r2/SemiAxisLength.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SemiAxisLength.h" + +int +Vanetza_ITS2_SemiAxisLength_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_Vanetza_ITS2_SemiAxisLength_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_Vanetza_ITS2_SemiAxisLength_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_Vanetza_ITS2_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SemiAxisLength_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SemiAxisLength_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SemiAxisLength_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SemiAxisLength_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SemiAxisLength.h b/vanetza/asn1/its/r2/SemiAxisLength.h new file mode 100644 index 000000000..6a2f0442e --- /dev/null +++ b/vanetza/asn1/its/r2/SemiAxisLength.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SemiAxisLength_H_ +#define _Vanetza_ITS2_SemiAxisLength_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SemiAxisLength { + Vanetza_ITS2_SemiAxisLength_doNotUse = 0, + Vanetza_ITS2_SemiAxisLength_outOfRange = 4094, + Vanetza_ITS2_SemiAxisLength_unavailable = 4095 +} e_Vanetza_ITS2_SemiAxisLength; + +/* Vanetza_ITS2_SemiAxisLength */ +typedef long Vanetza_ITS2_SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SemiAxisLength; +asn_struct_free_f Vanetza_ITS2_SemiAxisLength_free; +asn_struct_print_f Vanetza_ITS2_SemiAxisLength_print; +asn_constr_check_f Vanetza_ITS2_SemiAxisLength_constraint; +ber_type_decoder_f Vanetza_ITS2_SemiAxisLength_decode_ber; +der_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_der; +xer_type_decoder_f Vanetza_ITS2_SemiAxisLength_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SemiAxisLength_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_oer; +per_type_decoder_f Vanetza_ITS2_SemiAxisLength_decode_uper; +per_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_uper; +per_type_decoder_f Vanetza_ITS2_SemiAxisLength_decode_aper; +per_type_encoder_f Vanetza_ITS2_SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SemiAxisLength_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SensorInformation.c b/vanetza/asn1/its/r2/SensorInformation.c new file mode 100644 index 000000000..dabfb57d6 --- /dev/null +++ b/vanetza/asn1/its/r2/SensorInformation.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-SensorInformationContainer" + * found in "asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SensorInformation.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SensorInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SensorInformation, sensorId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sensorId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SensorInformation, sensorType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SensorType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "sensorType" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_SensorInformation, perceptionRegionShape), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Shape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceptionRegionShape" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SensorInformation, perceptionRegionConfidence), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ConfidenceLevel, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "perceptionRegionConfidence" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SensorInformation, shadowingApplies), + (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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "shadowingApplies" + }, +}; +static const int asn_MAP_Vanetza_ITS2_SensorInformation_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SensorInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SensorInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sensorId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sensorType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* perceptionRegionShape */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* perceptionRegionConfidence */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* shadowingApplies */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SensorInformation_specs_1 = { + sizeof(struct Vanetza_ITS2_SensorInformation), + offsetof(struct Vanetza_ITS2_SensorInformation, _asn_ctx), + asn_MAP_Vanetza_ITS2_SensorInformation_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_SensorInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorInformation = { + "SensorInformation", + "SensorInformation", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SensorInformation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SensorInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorInformation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SensorInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SensorInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorInformation_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SensorInformation_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SensorInformation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SensorInformation.h b/vanetza/asn1/its/r2/SensorInformation.h new file mode 100644 index 000000000..e54550950 --- /dev/null +++ b/vanetza/asn1/its/r2/SensorInformation.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-SensorInformationContainer" + * found in "asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SensorInformation_H_ +#define _Vanetza_ITS2_SensorInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "SensorType.h" +#include "ConfidenceLevel.h" +#include "BOOLEAN.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_Shape; + +/* Vanetza_ITS2_SensorInformation */ +typedef struct Vanetza_ITS2_SensorInformation { + Vanetza_ITS2_Identifier1B_t sensorId; + Vanetza_ITS2_SensorType_t sensorType; + struct Vanetza_ITS2_Shape *perceptionRegionShape; /* OPTIONAL */ + Vanetza_ITS2_ConfidenceLevel_t *perceptionRegionConfidence; /* OPTIONAL */ + BOOLEAN_t shadowingApplies; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SensorInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SensorInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SensorInformation_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Shape.h" + +#endif /* _Vanetza_ITS2_SensorInformation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SensorInformationContainer.c b/vanetza/asn1/its/r2/SensorInformationContainer.c new file mode 100644 index 000000000..a2c1f37ca --- /dev/null +++ b/vanetza/asn1/its/r2/SensorInformationContainer.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-SensorInformationContainer" + * found in "asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SensorInformationContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SensorInformationContainer_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_Vanetza_ITS2_SensorInformationContainer_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 128 } /* (SIZE(1..128,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SensorInformationContainer_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_SensorInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SensorInformationContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_SensorInformationContainer), + offsetof(struct Vanetza_ITS2_SensorInformationContainer, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorInformationContainer = { + "SensorInformationContainer", + "SensorInformationContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorInformationContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SensorInformationContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SensorInformationContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_SensorInformationContainer_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_SensorInformationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SensorInformationContainer.h b/vanetza/asn1/its/r2/SensorInformationContainer.h new file mode 100644 index 000000000..3ed3906a3 --- /dev/null +++ b/vanetza/asn1/its/r2/SensorInformationContainer.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-SensorInformationContainer" + * found in "asn1/release2/TS103324v211/CPM-SensorInformationContainer.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SensorInformationContainer_H_ +#define _Vanetza_ITS2_SensorInformationContainer_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 Vanetza_ITS2_SensorInformation; + +/* Vanetza_ITS2_SensorInformationContainer */ +typedef struct Vanetza_ITS2_SensorInformationContainer { + A_SEQUENCE_OF(struct Vanetza_ITS2_SensorInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SensorInformationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorInformationContainer; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SensorInformationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SensorInformationContainer_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SensorInformationContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "SensorInformation.h" + +#endif /* _Vanetza_ITS2_SensorInformationContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SensorType.c b/vanetza/asn1/its/r2/SensorType.c new file mode 100644 index 000000000..0637c3f2d --- /dev/null +++ b/vanetza/asn1/its/r2/SensorType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SensorType.h" + +int +Vanetza_ITS2_SensorType_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_Vanetza_ITS2_SensorType_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_Vanetza_ITS2_SensorType_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_Vanetza_ITS2_SensorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorType = { + "SensorType", + "SensorType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SensorType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SensorType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SensorType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SensorType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SensorType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SensorType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SensorType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SensorType.h b/vanetza/asn1/its/r2/SensorType.h new file mode 100644 index 000000000..d3fcd1daf --- /dev/null +++ b/vanetza/asn1/its/r2/SensorType.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SensorType_H_ +#define _Vanetza_ITS2_SensorType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SensorType { + Vanetza_ITS2_SensorType_undefined = 0, + Vanetza_ITS2_SensorType_radar = 1, + Vanetza_ITS2_SensorType_lidar = 2, + Vanetza_ITS2_SensorType_monovideo = 3, + Vanetza_ITS2_SensorType_stereovision = 4, + Vanetza_ITS2_SensorType_nightvision = 5, + Vanetza_ITS2_SensorType_ultrasonic = 6, + Vanetza_ITS2_SensorType_pmd = 7, + Vanetza_ITS2_SensorType_inductionLoop = 8, + Vanetza_ITS2_SensorType_sphericalCamera = 9, + Vanetza_ITS2_SensorType_uwb = 10, + Vanetza_ITS2_SensorType_acoustic = 11, + Vanetza_ITS2_SensorType_localAggregation = 12, + Vanetza_ITS2_SensorType_itsAggregation = 13 +} e_Vanetza_ITS2_SensorType; + +/* Vanetza_ITS2_SensorType */ +typedef long Vanetza_ITS2_SensorType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SensorType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorType; +asn_struct_free_f Vanetza_ITS2_SensorType_free; +asn_struct_print_f Vanetza_ITS2_SensorType_print; +asn_constr_check_f Vanetza_ITS2_SensorType_constraint; +ber_type_decoder_f Vanetza_ITS2_SensorType_decode_ber; +der_type_encoder_f Vanetza_ITS2_SensorType_encode_der; +xer_type_decoder_f Vanetza_ITS2_SensorType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SensorType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SensorType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SensorType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SensorType_encode_oer; +per_type_decoder_f Vanetza_ITS2_SensorType_decode_uper; +per_type_encoder_f Vanetza_ITS2_SensorType_encode_uper; +per_type_decoder_f Vanetza_ITS2_SensorType_decode_aper; +per_type_encoder_f Vanetza_ITS2_SensorType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SensorType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SensorTypes.c b/vanetza/asn1/its/r2/SensorTypes.c new file mode 100644 index 000000000..e7fceefcb --- /dev/null +++ b/vanetza/asn1/its/r2/SensorTypes.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SensorTypes.h" + +int +Vanetza_ITS2_SensorTypes_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_Vanetza_ITS2_SensorTypes_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_Vanetza_ITS2_SensorTypes_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 16, 16 } /* (SIZE(16..16,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_SensorTypes_constr_1 CC_NOTUSED = { + -1}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SensorTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorTypes = { + "SensorTypes", + "SensorTypes", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_SensorTypes_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SensorTypes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorTypes_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SensorTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SensorTypes_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SensorTypes_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SensorTypes_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SensorTypes_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_SensorTypes_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SensorTypes_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SensorTypes.h b/vanetza/asn1/its/r2/SensorTypes.h new file mode 100644 index 000000000..926f61d20 --- /dev/null +++ b/vanetza/asn1/its/r2/SensorTypes.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SensorTypes_H_ +#define _Vanetza_ITS2_SensorTypes_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SensorTypes { + Vanetza_ITS2_SensorTypes_undefined = 0, + Vanetza_ITS2_SensorTypes_radar = 1, + Vanetza_ITS2_SensorTypes_lidar = 2, + Vanetza_ITS2_SensorTypes_monovideo = 3, + Vanetza_ITS2_SensorTypes_stereovision = 4, + Vanetza_ITS2_SensorTypes_nightvision = 5, + Vanetza_ITS2_SensorTypes_ultrasonic = 6, + Vanetza_ITS2_SensorTypes_pmd = 7, + Vanetza_ITS2_SensorTypes_inductionLoop = 8, + Vanetza_ITS2_SensorTypes_sphericalCamera = 9, + Vanetza_ITS2_SensorTypes_uwb = 10, + Vanetza_ITS2_SensorTypes_acoustic = 11, + Vanetza_ITS2_SensorTypes_localAggregation = 12, + Vanetza_ITS2_SensorTypes_itsAggregation = 13 +} e_Vanetza_ITS2_SensorTypes; + +/* Vanetza_ITS2_SensorTypes */ +typedef BIT_STRING_t Vanetza_ITS2_SensorTypes_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SensorTypes_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SensorTypes; +asn_struct_free_f Vanetza_ITS2_SensorTypes_free; +asn_struct_print_f Vanetza_ITS2_SensorTypes_print; +asn_constr_check_f Vanetza_ITS2_SensorTypes_constraint; +ber_type_decoder_f Vanetza_ITS2_SensorTypes_decode_ber; +der_type_encoder_f Vanetza_ITS2_SensorTypes_encode_der; +xer_type_decoder_f Vanetza_ITS2_SensorTypes_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SensorTypes_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SensorTypes_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SensorTypes_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SensorTypes_encode_oer; +per_type_decoder_f Vanetza_ITS2_SensorTypes_decode_uper; +per_type_encoder_f Vanetza_ITS2_SensorTypes_encode_uper; +per_type_decoder_f Vanetza_ITS2_SensorTypes_decode_aper; +per_type_encoder_f Vanetza_ITS2_SensorTypes_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SensorTypes_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SequenceNumber.c b/vanetza/asn1/its/r2/SequenceNumber.c new file mode 100644 index 000000000..0581e6b32 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceNumber.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SequenceNumber.h" + +int +Vanetza_ITS2_SequenceNumber_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_Vanetza_ITS2_SequenceNumber_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_Vanetza_ITS2_SequenceNumber_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_Vanetza_ITS2_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceNumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SequenceNumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SequenceNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SequenceNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SequenceNumber.h b/vanetza/asn1/its/r2/SequenceNumber.h new file mode 100644 index 000000000..cca4042f8 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceNumber.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SequenceNumber_H_ +#define _Vanetza_ITS2_SequenceNumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SequenceNumber */ +typedef long Vanetza_ITS2_SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceNumber; +asn_struct_free_f Vanetza_ITS2_SequenceNumber_free; +asn_struct_print_f Vanetza_ITS2_SequenceNumber_print; +asn_constr_check_f Vanetza_ITS2_SequenceNumber_constraint; +ber_type_decoder_f Vanetza_ITS2_SequenceNumber_decode_ber; +der_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_der; +xer_type_decoder_f Vanetza_ITS2_SequenceNumber_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SequenceNumber_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_oer; +per_type_decoder_f Vanetza_ITS2_SequenceNumber_decode_uper; +per_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_uper; +per_type_decoder_f Vanetza_ITS2_SequenceNumber_decode_aper; +per_type_encoder_f Vanetza_ITS2_SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SequenceNumber_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.c b/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.c new file mode 100644 index 000000000..94c94c593 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SequenceOfCartesianPosition3d.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SequenceOfCartesianPosition3d_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_Vanetza_ITS2_SequenceOfCartesianPosition3d_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_SequenceOfCartesianPosition3d_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_CartesianPosition3d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfCartesianPosition3d_specs_1 = { + sizeof(struct Vanetza_ITS2_SequenceOfCartesianPosition3d), + offsetof(struct Vanetza_ITS2_SequenceOfCartesianPosition3d, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d = { + "SequenceOfCartesianPosition3d", + "SequenceOfCartesianPosition3d", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SequenceOfCartesianPosition3d_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SequenceOfCartesianPosition3d_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_SequenceOfCartesianPosition3d_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_SequenceOfCartesianPosition3d_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.h b/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.h new file mode 100644 index 000000000..3de490829 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfCartesianPosition3d.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SequenceOfCartesianPosition3d_H_ +#define _Vanetza_ITS2_SequenceOfCartesianPosition3d_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 Vanetza_ITS2_CartesianPosition3d; + +/* Vanetza_ITS2_SequenceOfCartesianPosition3d */ +typedef struct Vanetza_ITS2_SequenceOfCartesianPosition3d { + A_SEQUENCE_OF(struct Vanetza_ITS2_CartesianPosition3d) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SequenceOfCartesianPosition3d_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfCartesianPosition3d; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfCartesianPosition3d_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SequenceOfCartesianPosition3d_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SequenceOfCartesianPosition3d_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CartesianPosition3d.h" + +#endif /* _Vanetza_ITS2_SequenceOfCartesianPosition3d_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SequenceOfIdentifier1B.c b/vanetza/asn1/its/r2/SequenceOfIdentifier1B.c new file mode 100644 index 000000000..81668edec --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfIdentifier1B.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SequenceOfIdentifier1B.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SequenceOfIdentifier1B_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_Vanetza_ITS2_SequenceOfIdentifier1B_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 128 } /* (SIZE(1..128,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SequenceOfIdentifier1B_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfIdentifier1B_specs_1 = { + sizeof(struct Vanetza_ITS2_SequenceOfIdentifier1B), + offsetof(struct Vanetza_ITS2_SequenceOfIdentifier1B, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B = { + "SequenceOfIdentifier1B", + "SequenceOfIdentifier1B", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SequenceOfIdentifier1B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SequenceOfIdentifier1B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_SequenceOfIdentifier1B_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_SequenceOfIdentifier1B_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SequenceOfIdentifier1B.h b/vanetza/asn1/its/r2/SequenceOfIdentifier1B.h new file mode 100644 index 000000000..1c0012b12 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfIdentifier1B.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SequenceOfIdentifier1B_H_ +#define _Vanetza_ITS2_SequenceOfIdentifier1B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "asn_SEQUENCE_OF.h" +#include "constr_SEQUENCE_OF.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SequenceOfIdentifier1B */ +typedef struct Vanetza_ITS2_SequenceOfIdentifier1B { + A_SEQUENCE_OF(Vanetza_ITS2_Identifier1B_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SequenceOfIdentifier1B_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfIdentifier1B; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfIdentifier1B_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SequenceOfIdentifier1B_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SequenceOfIdentifier1B_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SequenceOfIdentifier1B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.c b/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.c new file mode 100644 index 000000000..76814e0ad --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SequenceOfSafeDistanceIndication.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SequenceOfSafeDistanceIndication_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SequenceOfSafeDistanceIndication_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SequenceOfSafeDistanceIndication_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_SafeDistanceIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfSafeDistanceIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_SequenceOfSafeDistanceIndication), + offsetof(struct Vanetza_ITS2_SequenceOfSafeDistanceIndication, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication = { + "SequenceOfSafeDistanceIndication", + "SequenceOfSafeDistanceIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SequenceOfSafeDistanceIndication_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SequenceOfSafeDistanceIndication_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_SequenceOfSafeDistanceIndication_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_SequenceOfSafeDistanceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.h b/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.h new file mode 100644 index 000000000..90b19d02b --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfSafeDistanceIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SequenceOfSafeDistanceIndication_H_ +#define _Vanetza_ITS2_SequenceOfSafeDistanceIndication_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 Vanetza_ITS2_SafeDistanceIndication; + +/* Vanetza_ITS2_SequenceOfSafeDistanceIndication */ +typedef struct Vanetza_ITS2_SequenceOfSafeDistanceIndication { + A_SEQUENCE_OF(struct Vanetza_ITS2_SafeDistanceIndication) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SequenceOfSafeDistanceIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfSafeDistanceIndication; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "SafeDistanceIndication.h" + +#endif /* _Vanetza_ITS2_SequenceOfSafeDistanceIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.c b/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.c new file mode 100644 index 000000000..0595aa17f --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SequenceOfTrajectoryInterceptionIndication.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 1, 8 } /* (SIZE(1..8,...)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication), + offsetof(struct Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication = { + "SequenceOfTrajectoryInterceptionIndication", + "SequenceOfTrajectoryInterceptionIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.h b/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.h new file mode 100644 index 000000000..7b931da77 --- /dev/null +++ b/vanetza/asn1/its/r2/SequenceOfTrajectoryInterceptionIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_H_ +#define _Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_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 Vanetza_ITS2_TrajectoryInterceptionIndication; + +/* Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication */ +typedef struct Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication { + A_SEQUENCE_OF(struct Vanetza_ITS2_TrajectoryInterceptionIndication) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "TrajectoryInterceptionIndication.h" + +#endif /* _Vanetza_ITS2_SequenceOfTrajectoryInterceptionIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Shape.c b/vanetza/asn1/its/r2/Shape.c new file mode 100644 index 000000000..934369873 --- /dev/null +++ b/vanetza/asn1/its/r2/Shape.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Shape.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_Shape_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_Vanetza_ITS2_Shape_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Shape_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.rectangular), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RectangularShape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rectangular" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.circular), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CircularShape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "circular" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.polygonal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PolygonalShape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "polygonal" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.elliptical), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EllipticalShape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "elliptical" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.radial), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RadialShape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radial" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Shape, choice.radialShapes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RadialShapes, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "radialShapes" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Shape_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rectangular */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* circular */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* polygonal */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* elliptical */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* radial */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* radialShapes */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Shape_specs_1 = { + sizeof(struct Vanetza_ITS2_Shape), + offsetof(struct Vanetza_ITS2_Shape, _asn_ctx), + offsetof(struct Vanetza_ITS2_Shape, present), + sizeof(((struct Vanetza_ITS2_Shape *)0)->present), + asn_MAP_Vanetza_ITS2_Shape_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Shape = { + "Shape", + "Shape", + &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_Vanetza_ITS2_Shape_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Shape_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_Shape_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Shape_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Shape.h b/vanetza/asn1/its/r2/Shape.h new file mode 100644 index 000000000..c5a7c4847 --- /dev/null +++ b/vanetza/asn1/its/r2/Shape.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Shape_H_ +#define _Vanetza_ITS2_Shape_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "RectangularShape.h" +#include "CircularShape.h" +#include "PolygonalShape.h" +#include "EllipticalShape.h" +#include "RadialShape.h" +#include "RadialShapes.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Shape_PR { + Vanetza_ITS2_Shape_PR_NOTHING, /* No components present */ + Vanetza_ITS2_Shape_PR_rectangular, + Vanetza_ITS2_Shape_PR_circular, + Vanetza_ITS2_Shape_PR_polygonal, + Vanetza_ITS2_Shape_PR_elliptical, + Vanetza_ITS2_Shape_PR_radial, + Vanetza_ITS2_Shape_PR_radialShapes + /* Extensions may appear below */ + +} Vanetza_ITS2_Shape_PR; + +/* Vanetza_ITS2_Shape */ +typedef struct Vanetza_ITS2_Shape { + Vanetza_ITS2_Shape_PR present; + union Vanetza_ITS2_Shape_u { + Vanetza_ITS2_RectangularShape_t rectangular; + Vanetza_ITS2_CircularShape_t circular; + Vanetza_ITS2_PolygonalShape_t polygonal; + Vanetza_ITS2_EllipticalShape_t elliptical; + Vanetza_ITS2_RadialShape_t radial; + Vanetza_ITS2_RadialShapes_t radialShapes; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Shape_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Shape; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Shape_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Shape_1[6]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Shape_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Shape_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SignalViolationSubCauseCode.c b/vanetza/asn1/its/r2/SignalViolationSubCauseCode.c new file mode 100644 index 000000000..bb310474c --- /dev/null +++ b/vanetza/asn1/its/r2/SignalViolationSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SignalViolationSubCauseCode.h" + +int +Vanetza_ITS2_SignalViolationSubCauseCode_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_Vanetza_ITS2_SignalViolationSubCauseCode_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_Vanetza_ITS2_SignalViolationSubCauseCode_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_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SignalViolationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SignalViolationSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SignalViolationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SignalViolationSubCauseCode.h b/vanetza/asn1/its/r2/SignalViolationSubCauseCode.h new file mode 100644 index 000000000..a082a662f --- /dev/null +++ b/vanetza/asn1/its/r2/SignalViolationSubCauseCode.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SignalViolationSubCauseCode_H_ +#define _Vanetza_ITS2_SignalViolationSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SignalViolationSubCauseCode { + Vanetza_ITS2_SignalViolationSubCauseCode_unavailable = 0, + Vanetza_ITS2_SignalViolationSubCauseCode_stopSignViolation = 1, + Vanetza_ITS2_SignalViolationSubCauseCode_trafficLightViolation = 2, + Vanetza_ITS2_SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_Vanetza_ITS2_SignalViolationSubCauseCode; + +/* Vanetza_ITS2_SignalViolationSubCauseCode */ +typedef long Vanetza_ITS2_SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SignalViolationSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SignalViolationSubCauseCode; +asn_struct_free_f Vanetza_ITS2_SignalViolationSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_SignalViolationSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_SignalViolationSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_SignalViolationSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_SignalViolationSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SignalViolationSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SignalViolationSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SituationContainer.c b/vanetza/asn1/its/r2/SituationContainer.c new file mode 100644 index 000000000..1f61c9adb --- /dev/null +++ b/vanetza/asn1/its/r2/SituationContainer.c @@ -0,0 +1,258 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SituationContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SituationContainer_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_Vanetza_ITS2_SituationContainer_constr_1 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_Vanetza_ITS2_ext1_7[] = { + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_SituationContainer__ext1, linkedDenms), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_ActionIdList, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "linkedDenms" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SituationContainer__ext1, eventEnd), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Position1d, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventEnd" + }, +}; +static const int asn_MAP_Vanetza_ITS2_ext1_oms_7[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* linkedDenms */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eventEnd */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_ext1_specs_7 = { + sizeof(struct Vanetza_ITS2_SituationContainer__ext1), + offsetof(struct Vanetza_ITS2_SituationContainer__ext1, _asn_ctx), + asn_MAP_Vanetza_ITS2_ext1_tag2el_7, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_ext1_oms_7, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_ext1_tags_7, + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_Vanetza_ITS2_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7) + /sizeof(asn_DEF_Vanetza_ITS2_ext1_tags_7[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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_ext1_7, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_ext1_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SituationContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SituationContainer, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_InformationQuality, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "informationQuality" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SituationContainer, eventType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventType" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_SituationContainer, linkedCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "linkedCause" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_SituationContainer, eventZone), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EventZone, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "eventZone" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_SituationContainer, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_ext1_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_Vanetza_ITS2_SituationContainer_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SituationContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SituationContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* informationQuality */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* linkedCause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eventZone */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SituationContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_SituationContainer), + offsetof(struct Vanetza_ITS2_SituationContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_SituationContainer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_SituationContainer_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SituationContainer = { + "SituationContainer", + "SituationContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SituationContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SituationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SituationContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SituationContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SituationContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SituationContainer_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SituationContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SituationContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SituationContainer_1, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SituationContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SituationContainer.h b/vanetza/asn1/its/r2/SituationContainer.h new file mode 100644 index 000000000..0af1b5d56 --- /dev/null +++ b/vanetza/asn1/its/r2/SituationContainer.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SituationContainer_H_ +#define _Vanetza_ITS2_SituationContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "InformationQuality.h" +#include "CauseCodeV2.h" +#include "Position1d.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CauseCodeV2; +struct Vanetza_ITS2_EventZone; +struct Vanetza_ITS2_ActionIdList; + +/* Vanetza_ITS2_SituationContainer */ +typedef struct Vanetza_ITS2_SituationContainer { + Vanetza_ITS2_InformationQuality_t informationQuality; + Vanetza_ITS2_CauseCodeV2_t eventType; + struct Vanetza_ITS2_CauseCodeV2 *linkedCause; /* OPTIONAL */ + struct Vanetza_ITS2_EventZone *eventZone; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct Vanetza_ITS2_SituationContainer__ext1 { + struct Vanetza_ITS2_ActionIdList *linkedDenms; /* OPTIONAL */ + Vanetza_ITS2_Position1d_t *eventEnd; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SituationContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SituationContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SituationContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SituationContainer_1[5]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SituationContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CauseCodeV2.h" +#include "EventZone.h" +#include "ActionIdList.h" + +#endif /* _Vanetza_ITS2_SituationContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.c b/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.c new file mode 100644 index 000000000..c39c51393 --- /dev/null +++ b/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SlowVehicleSubCauseCode.h" + +int +Vanetza_ITS2_SlowVehicleSubCauseCode_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_Vanetza_ITS2_SlowVehicleSubCauseCode_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_Vanetza_ITS2_SlowVehicleSubCauseCode_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_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SlowVehicleSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SlowVehicleSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SlowVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.h b/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.h new file mode 100644 index 000000000..ea0f0faa2 --- /dev/null +++ b/vanetza/asn1/its/r2/SlowVehicleSubCauseCode.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SlowVehicleSubCauseCode_H_ +#define _Vanetza_ITS2_SlowVehicleSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SlowVehicleSubCauseCode { + Vanetza_ITS2_SlowVehicleSubCauseCode_unavailable = 0, + Vanetza_ITS2_SlowVehicleSubCauseCode_maintenanceVehicle = 1, + Vanetza_ITS2_SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + Vanetza_ITS2_SlowVehicleSubCauseCode_abnormalLoad = 3, + Vanetza_ITS2_SlowVehicleSubCauseCode_abnormalWideLoad = 4, + Vanetza_ITS2_SlowVehicleSubCauseCode_convoy = 5, + Vanetza_ITS2_SlowVehicleSubCauseCode_snowplough = 6, + Vanetza_ITS2_SlowVehicleSubCauseCode_deicing = 7, + Vanetza_ITS2_SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_Vanetza_ITS2_SlowVehicleSubCauseCode; + +/* Vanetza_ITS2_SlowVehicleSubCauseCode */ +typedef long Vanetza_ITS2_SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SlowVehicleSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SlowVehicleSubCauseCode; +asn_struct_free_f Vanetza_ITS2_SlowVehicleSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_SlowVehicleSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_SlowVehicleSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SlowVehicleSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpecialTransportContainer.c b/vanetza/asn1/its/r2/SpecialTransportContainer.c new file mode 100644 index 000000000..22f13db3b --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialTransportContainer.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpecialTransportContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SpecialTransportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialTransportContainer, specialTransportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SpecialTransportType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "specialTransportType" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialTransportContainer, lightBarSirenInUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LightBarSirenInUse, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lightBarSirenInUse" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SpecialTransportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* specialTransportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lightBarSirenInUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SpecialTransportContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_SpecialTransportContainer), + offsetof(struct Vanetza_ITS2_SpecialTransportContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_SpecialTransportContainer_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_Vanetza_ITS2_SpecialTransportContainer = { + "SpecialTransportContainer", + "SpecialTransportContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SpecialTransportContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SpecialTransportContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SpecialTransportContainer.h b/vanetza/asn1/its/r2/SpecialTransportContainer.h new file mode 100644 index 000000000..7018ef255 --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialTransportContainer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpecialTransportContainer_H_ +#define _Vanetza_ITS2_SpecialTransportContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SpecialTransportType.h" +#include "LightBarSirenInUse.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SpecialTransportContainer */ +typedef struct Vanetza_ITS2_SpecialTransportContainer { + Vanetza_ITS2_SpecialTransportType_t specialTransportType; + Vanetza_ITS2_LightBarSirenInUse_t lightBarSirenInUse; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SpecialTransportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpecialTransportContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SpecialTransportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SpecialTransportContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpecialTransportContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpecialTransportType.c b/vanetza/asn1/its/r2/SpecialTransportType.c new file mode 100644 index 000000000..4a9179ead --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialTransportType.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpecialTransportType.h" + +int +Vanetza_ITS2_SpecialTransportType_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 == 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SpecialTransportType_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_Vanetza_ITS2_SpecialTransportType_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_SpecialTransportType_constr_1 CC_NOTUSED = { + 4}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpecialTransportType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SpecialTransportType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SpecialTransportType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_SpecialTransportType_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SpecialTransportType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SpecialTransportType.h b/vanetza/asn1/its/r2/SpecialTransportType.h new file mode 100644 index 000000000..8c84b702d --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialTransportType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpecialTransportType_H_ +#define _Vanetza_ITS2_SpecialTransportType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SpecialTransportType { + Vanetza_ITS2_SpecialTransportType_heavyLoad = 0, + Vanetza_ITS2_SpecialTransportType_excessWidth = 1, + Vanetza_ITS2_SpecialTransportType_excessLength = 2, + Vanetza_ITS2_SpecialTransportType_excessHeight = 3 +} e_Vanetza_ITS2_SpecialTransportType; + +/* Vanetza_ITS2_SpecialTransportType */ +typedef BIT_STRING_t Vanetza_ITS2_SpecialTransportType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SpecialTransportType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpecialTransportType; +asn_struct_free_f Vanetza_ITS2_SpecialTransportType_free; +asn_struct_print_f Vanetza_ITS2_SpecialTransportType_print; +asn_constr_check_f Vanetza_ITS2_SpecialTransportType_constraint; +ber_type_decoder_f Vanetza_ITS2_SpecialTransportType_decode_ber; +der_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_der; +xer_type_decoder_f Vanetza_ITS2_SpecialTransportType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SpecialTransportType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_oer; +per_type_decoder_f Vanetza_ITS2_SpecialTransportType_decode_uper; +per_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_uper; +per_type_decoder_f Vanetza_ITS2_SpecialTransportType_decode_aper; +per_type_encoder_f Vanetza_ITS2_SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpecialTransportType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpecialVehicleContainer.c b/vanetza/asn1/its/r2/SpecialVehicleContainer.c new file mode 100644 index 000000000..d34798bf4 --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialVehicleContainer.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpecialVehicleContainer.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_SpecialVehicleContainer_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_Vanetza_ITS2_SpecialVehicleContainer_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SpecialVehicleContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.publicTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_PublicTransportContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "publicTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.specialTransportContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SpecialTransportContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "specialTransportContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.dangerousGoodsContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousGoodsContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "dangerousGoodsContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.roadWorksContainerBasic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RoadWorksContainerBasic, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "roadWorksContainerBasic" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.rescueContainer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_RescueContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rescueContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.emergencyContainer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EmergencyContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "emergencyContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, choice.safetyCarContainer), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SafetyCarContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "safetyCarContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SpecialVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* publicTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* specialTransportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dangerousGoodsContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* roadWorksContainerBasic */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rescueContainer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyContainer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* safetyCarContainer */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_SpecialVehicleContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_SpecialVehicleContainer), + offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, _asn_ctx), + offsetof(struct Vanetza_ITS2_SpecialVehicleContainer, present), + sizeof(((struct Vanetza_ITS2_SpecialVehicleContainer *)0)->present), + asn_MAP_Vanetza_ITS2_SpecialVehicleContainer_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpecialVehicleContainer = { + "SpecialVehicleContainer", + "SpecialVehicleContainer", + &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_Vanetza_ITS2_SpecialVehicleContainer_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SpecialVehicleContainer_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_SpecialVehicleContainer_1, + 7, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SpecialVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SpecialVehicleContainer.h b/vanetza/asn1/its/r2/SpecialVehicleContainer.h new file mode 100644 index 000000000..06030cb93 --- /dev/null +++ b/vanetza/asn1/its/r2/SpecialVehicleContainer.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CAM-PDU-Descriptions" + * found in "asn1/release2/TS103900v211-CAM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpecialVehicleContainer_H_ +#define _Vanetza_ITS2_SpecialVehicleContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "PublicTransportContainer.h" +#include "SpecialTransportContainer.h" +#include "DangerousGoodsContainer.h" +#include "RoadWorksContainerBasic.h" +#include "RescueContainer.h" +#include "EmergencyContainer.h" +#include "SafetyCarContainer.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SpecialVehicleContainer_PR { + Vanetza_ITS2_SpecialVehicleContainer_PR_NOTHING, /* No components present */ + Vanetza_ITS2_SpecialVehicleContainer_PR_publicTransportContainer, + Vanetza_ITS2_SpecialVehicleContainer_PR_specialTransportContainer, + Vanetza_ITS2_SpecialVehicleContainer_PR_dangerousGoodsContainer, + Vanetza_ITS2_SpecialVehicleContainer_PR_roadWorksContainerBasic, + Vanetza_ITS2_SpecialVehicleContainer_PR_rescueContainer, + Vanetza_ITS2_SpecialVehicleContainer_PR_emergencyContainer, + Vanetza_ITS2_SpecialVehicleContainer_PR_safetyCarContainer + /* Extensions may appear below */ + +} Vanetza_ITS2_SpecialVehicleContainer_PR; + +/* Vanetza_ITS2_SpecialVehicleContainer */ +typedef struct Vanetza_ITS2_SpecialVehicleContainer { + Vanetza_ITS2_SpecialVehicleContainer_PR present; + union Vanetza_ITS2_SpecialVehicleContainer_u { + Vanetza_ITS2_PublicTransportContainer_t publicTransportContainer; + Vanetza_ITS2_SpecialTransportContainer_t specialTransportContainer; + Vanetza_ITS2_DangerousGoodsContainer_t dangerousGoodsContainer; + Vanetza_ITS2_RoadWorksContainerBasic_t roadWorksContainerBasic; + Vanetza_ITS2_RescueContainer_t rescueContainer; + Vanetza_ITS2_EmergencyContainer_t emergencyContainer; + Vanetza_ITS2_SafetyCarContainer_t safetyCarContainer; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SpecialVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpecialVehicleContainer; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_SpecialVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SpecialVehicleContainer_1[7]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SpecialVehicleContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpecialVehicleContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Speed.c b/vanetza/asn1/its/r2/Speed.c new file mode 100644 index 000000000..0626cae85 --- /dev/null +++ b/vanetza/asn1/its/r2/Speed.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Speed.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SpeedValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "speedConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Speed_specs_1 = { + sizeof(struct Vanetza_ITS2_Speed), + offsetof(struct Vanetza_ITS2_Speed, _asn_ctx), + asn_MAP_Vanetza_ITS2_Speed_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_Vanetza_ITS2_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Speed_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Speed_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Speed_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Speed_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Speed_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Speed_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Speed_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Speed.h b/vanetza/asn1/its/r2/Speed.h new file mode 100644 index 000000000..c3854b72f --- /dev/null +++ b/vanetza/asn1/its/r2/Speed.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Speed_H_ +#define _Vanetza_ITS2_Speed_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SpeedValue.h" +#include "SpeedConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Speed */ +typedef struct Vanetza_ITS2_Speed { + Vanetza_ITS2_SpeedValue_t speedValue; + Vanetza_ITS2_SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Speed; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Speed_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Speed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Speed_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpeedConfidence.c b/vanetza/asn1/its/r2/SpeedConfidence.c new file mode 100644 index 000000000..ba7ea5a80 --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpeedConfidence.h" + +int +Vanetza_ITS2_SpeedConfidence_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 <= 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_Vanetza_ITS2_SpeedConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_SpeedConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SpeedConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SpeedConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SpeedConfidence.h b/vanetza/asn1/its/r2/SpeedConfidence.h new file mode 100644 index 000000000..0ee9b1332 --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpeedConfidence_H_ +#define _Vanetza_ITS2_SpeedConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SpeedConfidence { + Vanetza_ITS2_SpeedConfidence_outOfRange = 126, + Vanetza_ITS2_SpeedConfidence_unavailable = 127 +} e_Vanetza_ITS2_SpeedConfidence; + +/* Vanetza_ITS2_SpeedConfidence */ +typedef long Vanetza_ITS2_SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedConfidence; +asn_struct_free_f Vanetza_ITS2_SpeedConfidence_free; +asn_struct_print_f Vanetza_ITS2_SpeedConfidence_print; +asn_constr_check_f Vanetza_ITS2_SpeedConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_SpeedConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_SpeedConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SpeedConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_SpeedConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_SpeedConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpeedConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpeedLimit.c b/vanetza/asn1/its/r2/SpeedLimit.c new file mode 100644 index 000000000..dea672b0a --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedLimit.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpeedLimit.h" + +int +Vanetza_ITS2_SpeedLimit_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_Vanetza_ITS2_SpeedLimit_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_Vanetza_ITS2_SpeedLimit_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_Vanetza_ITS2_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedLimit_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SpeedLimit_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SpeedLimit_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SpeedLimit_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SpeedLimit.h b/vanetza/asn1/its/r2/SpeedLimit.h new file mode 100644 index 000000000..62752d1f9 --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedLimit.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpeedLimit_H_ +#define _Vanetza_ITS2_SpeedLimit_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SpeedLimit */ +typedef long Vanetza_ITS2_SpeedLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SpeedLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedLimit; +asn_struct_free_f Vanetza_ITS2_SpeedLimit_free; +asn_struct_print_f Vanetza_ITS2_SpeedLimit_print; +asn_constr_check_f Vanetza_ITS2_SpeedLimit_constraint; +ber_type_decoder_f Vanetza_ITS2_SpeedLimit_decode_ber; +der_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_der; +xer_type_decoder_f Vanetza_ITS2_SpeedLimit_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SpeedLimit_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_oer; +per_type_decoder_f Vanetza_ITS2_SpeedLimit_decode_uper; +per_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_uper; +per_type_decoder_f Vanetza_ITS2_SpeedLimit_decode_aper; +per_type_encoder_f Vanetza_ITS2_SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpeedLimit_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SpeedValue.c b/vanetza/asn1/its/r2/SpeedValue.c new file mode 100644 index 000000000..084a9534f --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SpeedValue.h" + +int +Vanetza_ITS2_SpeedValue_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 <= 16383L)) { + /* 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_Vanetza_ITS2_SpeedValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -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_Vanetza_ITS2_SpeedValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { 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_Vanetza_ITS2_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SpeedValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SpeedValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SpeedValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SpeedValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SpeedValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SpeedValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SpeedValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SpeedValue.h b/vanetza/asn1/its/r2/SpeedValue.h new file mode 100644 index 000000000..441afd68a --- /dev/null +++ b/vanetza/asn1/its/r2/SpeedValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SpeedValue_H_ +#define _Vanetza_ITS2_SpeedValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SpeedValue { + Vanetza_ITS2_SpeedValue_standstill = 0, + Vanetza_ITS2_SpeedValue_outOfRange = 16382, + Vanetza_ITS2_SpeedValue_unavailable = 16383 +} e_Vanetza_ITS2_SpeedValue; + +/* Vanetza_ITS2_SpeedValue */ +typedef long Vanetza_ITS2_SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SpeedValue; +asn_struct_free_f Vanetza_ITS2_SpeedValue_free; +asn_struct_print_f Vanetza_ITS2_SpeedValue_print; +asn_constr_check_f Vanetza_ITS2_SpeedValue_constraint; +ber_type_decoder_f Vanetza_ITS2_SpeedValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_SpeedValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_SpeedValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SpeedValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SpeedValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SpeedValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SpeedValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_SpeedValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_SpeedValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_SpeedValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SpeedValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StabilityChangeIndication.c b/vanetza/asn1/its/r2/StabilityChangeIndication.c new file mode 100644 index 000000000..3f8d0106d --- /dev/null +++ b/vanetza/asn1/its/r2/StabilityChangeIndication.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StabilityChangeIndication.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_StabilityChangeIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_StabilityChangeIndication, lossProbability), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StabilityLossProbability, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "lossProbability" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_StabilityChangeIndication, actionDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DeltaTimeTenthOfSecond, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "actionDeltaTime" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_StabilityChangeIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lossProbability */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* actionDeltaTime */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_StabilityChangeIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_StabilityChangeIndication), + offsetof(struct Vanetza_ITS2_StabilityChangeIndication, _asn_ctx), + asn_MAP_Vanetza_ITS2_StabilityChangeIndication_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_Vanetza_ITS2_StabilityChangeIndication = { + "StabilityChangeIndication", + "StabilityChangeIndication", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StabilityChangeIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StabilityChangeIndication_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_StabilityChangeIndication_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_StabilityChangeIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StabilityChangeIndication.h b/vanetza/asn1/its/r2/StabilityChangeIndication.h new file mode 100644 index 000000000..844fc9b41 --- /dev/null +++ b/vanetza/asn1/its/r2/StabilityChangeIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StabilityChangeIndication_H_ +#define _Vanetza_ITS2_StabilityChangeIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StabilityLossProbability.h" +#include "DeltaTimeTenthOfSecond.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StabilityChangeIndication */ +typedef struct Vanetza_ITS2_StabilityChangeIndication { + Vanetza_ITS2_StabilityLossProbability_t lossProbability; + Vanetza_ITS2_DeltaTimeTenthOfSecond_t actionDeltaTime; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_StabilityChangeIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StabilityChangeIndication; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StabilityChangeIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StabilityLossProbability.c b/vanetza/asn1/its/r2/StabilityLossProbability.c new file mode 100644 index 000000000..0c9938502 --- /dev/null +++ b/vanetza/asn1/its/r2/StabilityLossProbability.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StabilityLossProbability.h" + +int +Vanetza_ITS2_StabilityLossProbability_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_Vanetza_ITS2_StabilityLossProbability_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_Vanetza_ITS2_StabilityLossProbability_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_Vanetza_ITS2_StabilityLossProbability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StabilityLossProbability = { + "StabilityLossProbability", + "StabilityLossProbability", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StabilityLossProbability_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StabilityLossProbability_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StabilityLossProbability_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StabilityLossProbability_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StabilityLossProbability.h b/vanetza/asn1/its/r2/StabilityLossProbability.h new file mode 100644 index 000000000..44ff16551 --- /dev/null +++ b/vanetza/asn1/its/r2/StabilityLossProbability.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StabilityLossProbability_H_ +#define _Vanetza_ITS2_StabilityLossProbability_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StabilityLossProbability { + Vanetza_ITS2_StabilityLossProbability_stable = 0, + Vanetza_ITS2_StabilityLossProbability_totalLossOfStability = 50, + Vanetza_ITS2_StabilityLossProbability_unavailable = 63 +} e_Vanetza_ITS2_StabilityLossProbability; + +/* Vanetza_ITS2_StabilityLossProbability */ +typedef long Vanetza_ITS2_StabilityLossProbability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StabilityLossProbability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StabilityLossProbability; +asn_struct_free_f Vanetza_ITS2_StabilityLossProbability_free; +asn_struct_print_f Vanetza_ITS2_StabilityLossProbability_print; +asn_constr_check_f Vanetza_ITS2_StabilityLossProbability_constraint; +ber_type_decoder_f Vanetza_ITS2_StabilityLossProbability_decode_ber; +der_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_der; +xer_type_decoder_f Vanetza_ITS2_StabilityLossProbability_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StabilityLossProbability_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_oer; +per_type_decoder_f Vanetza_ITS2_StabilityLossProbability_decode_uper; +per_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_uper; +per_type_decoder_f Vanetza_ITS2_StabilityLossProbability_decode_aper; +per_type_encoder_f Vanetza_ITS2_StabilityLossProbability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StabilityLossProbability_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StandardLength12b.c b/vanetza/asn1/its/r2/StandardLength12b.c new file mode 100644 index 000000000..bf82c0a47 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength12b.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StandardLength12b.h" + +int +Vanetza_ITS2_StandardLength12b_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_Vanetza_ITS2_StandardLength12b_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_Vanetza_ITS2_StandardLength12b_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_Vanetza_ITS2_StandardLength12b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength12b = { + "StandardLength12b", + "StandardLength12b", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength12b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StandardLength12b_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StandardLength12b_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StandardLength12b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StandardLength12b.h b/vanetza/asn1/its/r2/StandardLength12b.h new file mode 100644 index 000000000..8af0a1c3c --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength12b.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StandardLength12b_H_ +#define _Vanetza_ITS2_StandardLength12b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StandardLength12b */ +typedef long Vanetza_ITS2_StandardLength12b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StandardLength12b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength12b; +asn_struct_free_f Vanetza_ITS2_StandardLength12b_free; +asn_struct_print_f Vanetza_ITS2_StandardLength12b_print; +asn_constr_check_f Vanetza_ITS2_StandardLength12b_constraint; +ber_type_decoder_f Vanetza_ITS2_StandardLength12b_decode_ber; +der_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_der; +xer_type_decoder_f Vanetza_ITS2_StandardLength12b_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StandardLength12b_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_oer; +per_type_decoder_f Vanetza_ITS2_StandardLength12b_decode_uper; +per_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_uper; +per_type_decoder_f Vanetza_ITS2_StandardLength12b_decode_aper; +per_type_encoder_f Vanetza_ITS2_StandardLength12b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StandardLength12b_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StandardLength1B.c b/vanetza/asn1/its/r2/StandardLength1B.c new file mode 100644 index 000000000..055346dd6 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength1B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StandardLength1B.h" + +int +Vanetza_ITS2_StandardLength1B_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_Vanetza_ITS2_StandardLength1B_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_Vanetza_ITS2_StandardLength1B_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_Vanetza_ITS2_StandardLength1B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength1B = { + "StandardLength1B", + "StandardLength1B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength1B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StandardLength1B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StandardLength1B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StandardLength1B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StandardLength1B.h b/vanetza/asn1/its/r2/StandardLength1B.h new file mode 100644 index 000000000..7aec39d63 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength1B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StandardLength1B_H_ +#define _Vanetza_ITS2_StandardLength1B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StandardLength1B */ +typedef long Vanetza_ITS2_StandardLength1B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StandardLength1B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength1B; +asn_struct_free_f Vanetza_ITS2_StandardLength1B_free; +asn_struct_print_f Vanetza_ITS2_StandardLength1B_print; +asn_constr_check_f Vanetza_ITS2_StandardLength1B_constraint; +ber_type_decoder_f Vanetza_ITS2_StandardLength1B_decode_ber; +der_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_der; +xer_type_decoder_f Vanetza_ITS2_StandardLength1B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StandardLength1B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_oer; +per_type_decoder_f Vanetza_ITS2_StandardLength1B_decode_uper; +per_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_uper; +per_type_decoder_f Vanetza_ITS2_StandardLength1B_decode_aper; +per_type_encoder_f Vanetza_ITS2_StandardLength1B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StandardLength1B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StandardLength2B.c b/vanetza/asn1/its/r2/StandardLength2B.c new file mode 100644 index 000000000..7343ad943 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength2B.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StandardLength2B.h" + +int +Vanetza_ITS2_StandardLength2B_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_Vanetza_ITS2_StandardLength2B_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_Vanetza_ITS2_StandardLength2B_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_Vanetza_ITS2_StandardLength2B_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength2B = { + "StandardLength2B", + "StandardLength2B", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength2B_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StandardLength2B_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StandardLength2B_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StandardLength2B_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StandardLength2B.h b/vanetza/asn1/its/r2/StandardLength2B.h new file mode 100644 index 000000000..3d92e505f --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength2B.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StandardLength2B_H_ +#define _Vanetza_ITS2_StandardLength2B_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StandardLength2B */ +typedef long Vanetza_ITS2_StandardLength2B_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StandardLength2B_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength2B; +asn_struct_free_f Vanetza_ITS2_StandardLength2B_free; +asn_struct_print_f Vanetza_ITS2_StandardLength2B_print; +asn_constr_check_f Vanetza_ITS2_StandardLength2B_constraint; +ber_type_decoder_f Vanetza_ITS2_StandardLength2B_decode_ber; +der_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_der; +xer_type_decoder_f Vanetza_ITS2_StandardLength2B_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StandardLength2B_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_oer; +per_type_decoder_f Vanetza_ITS2_StandardLength2B_decode_uper; +per_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_uper; +per_type_decoder_f Vanetza_ITS2_StandardLength2B_decode_aper; +per_type_encoder_f Vanetza_ITS2_StandardLength2B_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StandardLength2B_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StandardLength3b.c b/vanetza/asn1/its/r2/StandardLength3b.c new file mode 100644 index 000000000..99a80adbb --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength3b.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StandardLength3b.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_Vanetza_ITS2_StandardLength3b_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_Vanetza_ITS2_StandardLength3b_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_Vanetza_ITS2_StandardLength3b_value2enum_1[] = { + { 0, 11, "lessThan50m" }, + { 1, 12, "lessThan100m" }, + { 2, 12, "lessThan200m" }, + { 3, 12, "lessThan500m" }, + { 4, 13, "lessThan1000m" }, + { 5, 11, "lessThan5km" }, + { 6, 12, "lessThan10km" }, + { 7, 8, "over10km" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_StandardLength3b_enum2value_1[] = { + 4, /* lessThan1000m(4) */ + 1, /* lessThan100m(1) */ + 6, /* lessThan10km(6) */ + 2, /* lessThan200m(2) */ + 3, /* lessThan500m(3) */ + 0, /* lessThan50m(0) */ + 5, /* lessThan5km(5) */ + 7 /* over10km(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StandardLength3b_specs_1 = { + asn_MAP_Vanetza_ITS2_StandardLength3b_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_StandardLength3b_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_Vanetza_ITS2_StandardLength3b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength3b = { + "StandardLength3b", + "StandardLength3b", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength3b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StandardLength3b_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StandardLength3b_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_StandardLength3b_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StandardLength3b.h b/vanetza/asn1/its/r2/StandardLength3b.h new file mode 100644 index 000000000..03327086e --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength3b.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StandardLength3b_H_ +#define _Vanetza_ITS2_StandardLength3b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StandardLength3b { + Vanetza_ITS2_StandardLength3b_lessThan50m = 0, + Vanetza_ITS2_StandardLength3b_lessThan100m = 1, + Vanetza_ITS2_StandardLength3b_lessThan200m = 2, + Vanetza_ITS2_StandardLength3b_lessThan500m = 3, + Vanetza_ITS2_StandardLength3b_lessThan1000m = 4, + Vanetza_ITS2_StandardLength3b_lessThan5km = 5, + Vanetza_ITS2_StandardLength3b_lessThan10km = 6, + Vanetza_ITS2_StandardLength3b_over10km = 7 +} e_Vanetza_ITS2_StandardLength3b; + +/* Vanetza_ITS2_StandardLength3b */ +typedef long Vanetza_ITS2_StandardLength3b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StandardLength3b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength3b; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StandardLength3b_specs_1; +asn_struct_free_f Vanetza_ITS2_StandardLength3b_free; +asn_struct_print_f Vanetza_ITS2_StandardLength3b_print; +asn_constr_check_f Vanetza_ITS2_StandardLength3b_constraint; +ber_type_decoder_f Vanetza_ITS2_StandardLength3b_decode_ber; +der_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_der; +xer_type_decoder_f Vanetza_ITS2_StandardLength3b_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StandardLength3b_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_oer; +per_type_decoder_f Vanetza_ITS2_StandardLength3b_decode_uper; +per_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_uper; +per_type_decoder_f Vanetza_ITS2_StandardLength3b_decode_aper; +per_type_encoder_f Vanetza_ITS2_StandardLength3b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StandardLength3b_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StandardLength9b.c b/vanetza/asn1/its/r2/StandardLength9b.c new file mode 100644 index 000000000..054309867 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength9b.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StandardLength9b.h" + +int +Vanetza_ITS2_StandardLength9b_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 <= 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_Vanetza_ITS2_StandardLength9b_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..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_Vanetza_ITS2_StandardLength9b_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..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_Vanetza_ITS2_StandardLength9b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength9b = { + "StandardLength9b", + "StandardLength9b", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StandardLength9b_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StandardLength9b_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StandardLength9b_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StandardLength9b_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StandardLength9b.h b/vanetza/asn1/its/r2/StandardLength9b.h new file mode 100644 index 000000000..da942b590 --- /dev/null +++ b/vanetza/asn1/its/r2/StandardLength9b.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StandardLength9b_H_ +#define _Vanetza_ITS2_StandardLength9b_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StandardLength9b */ +typedef long Vanetza_ITS2_StandardLength9b_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StandardLength9b_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StandardLength9b; +asn_struct_free_f Vanetza_ITS2_StandardLength9b_free; +asn_struct_print_f Vanetza_ITS2_StandardLength9b_print; +asn_constr_check_f Vanetza_ITS2_StandardLength9b_constraint; +ber_type_decoder_f Vanetza_ITS2_StandardLength9b_decode_ber; +der_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_der; +xer_type_decoder_f Vanetza_ITS2_StandardLength9b_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StandardLength9b_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_oer; +per_type_decoder_f Vanetza_ITS2_StandardLength9b_decode_uper; +per_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_uper; +per_type_decoder_f Vanetza_ITS2_StandardLength9b_decode_aper; +per_type_encoder_f Vanetza_ITS2_StandardLength9b_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StandardLength9b_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationID.c b/vanetza/asn1/its/r2/StationID.c new file mode 100644 index 000000000..7b34576ec --- /dev/null +++ b/vanetza/asn1/its/r2/StationID.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationID.h" + +int +Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StationID_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationID_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationID_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationID_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StationID_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StationID_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StationID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_Vanetza_ITS2_StationID_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StationID.h b/vanetza/asn1/its/r2/StationID.h new file mode 100644 index 000000000..76c5ffc06 --- /dev/null +++ b/vanetza/asn1/its/r2/StationID.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationID_H_ +#define _Vanetza_ITS2_StationID_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StationID */ +typedef unsigned long Vanetza_ITS2_StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StationID_specs_1; +asn_struct_free_f Vanetza_ITS2_StationID_free; +asn_struct_print_f Vanetza_ITS2_StationID_print; +asn_constr_check_f Vanetza_ITS2_StationID_constraint; +ber_type_decoder_f Vanetza_ITS2_StationID_decode_ber; +der_type_encoder_f Vanetza_ITS2_StationID_encode_der; +xer_type_decoder_f Vanetza_ITS2_StationID_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StationID_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StationID_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StationID_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StationID_encode_oer; +per_type_decoder_f Vanetza_ITS2_StationID_decode_uper; +per_type_encoder_f Vanetza_ITS2_StationID_encode_uper; +per_type_decoder_f Vanetza_ITS2_StationID_decode_aper; +per_type_encoder_f Vanetza_ITS2_StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StationID_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationId.c b/vanetza/asn1/its/r2/StationId.c new file mode 100644 index 000000000..594797b86 --- /dev/null +++ b/vanetza/asn1/its/r2/StationId.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationId.h" + +int +Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_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_Vanetza_ITS2_StationId_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_StationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationId = { + "StationId", + "StationId", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StationId_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationId_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationId_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationId_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationId_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StationId_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StationId_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StationId_constraint + }, + 0, 0, /* No members */ + &asn_SPC_Vanetza_ITS2_StationId_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StationId.h b/vanetza/asn1/its/r2/StationId.h new file mode 100644 index 000000000..c3ed843fd --- /dev/null +++ b/vanetza/asn1/its/r2/StationId.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationId_H_ +#define _Vanetza_ITS2_StationId_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_StationId */ +typedef unsigned long Vanetza_ITS2_StationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationId; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StationId_specs_1; +asn_struct_free_f Vanetza_ITS2_StationId_free; +asn_struct_print_f Vanetza_ITS2_StationId_print; +asn_constr_check_f Vanetza_ITS2_StationId_constraint; +ber_type_decoder_f Vanetza_ITS2_StationId_decode_ber; +der_type_encoder_f Vanetza_ITS2_StationId_encode_der; +xer_type_decoder_f Vanetza_ITS2_StationId_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StationId_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StationId_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StationId_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StationId_encode_oer; +per_type_decoder_f Vanetza_ITS2_StationId_decode_uper; +per_type_encoder_f Vanetza_ITS2_StationId_encode_uper; +per_type_decoder_f Vanetza_ITS2_StationId_decode_aper; +per_type_encoder_f Vanetza_ITS2_StationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StationId_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationType.c b/vanetza/asn1/its/r2/StationType.c new file mode 100644 index 000000000..214bc52f6 --- /dev/null +++ b/vanetza/asn1/its/r2/StationType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationType.h" + +int +Vanetza_ITS2_StationType_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_Vanetza_ITS2_StationType_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_Vanetza_ITS2_StationType_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_Vanetza_ITS2_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StationType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StationType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StationType.h b/vanetza/asn1/its/r2/StationType.h new file mode 100644 index 000000000..b595e5d47 --- /dev/null +++ b/vanetza/asn1/its/r2/StationType.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationType_H_ +#define _Vanetza_ITS2_StationType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StationType { + Vanetza_ITS2_StationType_unknown = 0, + Vanetza_ITS2_StationType_pedestrian = 1, + Vanetza_ITS2_StationType_cyclist = 2, + Vanetza_ITS2_StationType_moped = 3, + Vanetza_ITS2_StationType_motorcycle = 4, + Vanetza_ITS2_StationType_passengerCar = 5, + Vanetza_ITS2_StationType_bus = 6, + Vanetza_ITS2_StationType_lightTruck = 7, + Vanetza_ITS2_StationType_heavyTruck = 8, + Vanetza_ITS2_StationType_trailer = 9, + Vanetza_ITS2_StationType_specialVehicle = 10, + Vanetza_ITS2_StationType_tram = 11, + Vanetza_ITS2_StationType_lightVruVehicle = 12, + Vanetza_ITS2_StationType_animal = 13, + Vanetza_ITS2_StationType_roadSideUnit = 15 +} e_Vanetza_ITS2_StationType; + +/* Vanetza_ITS2_StationType */ +typedef long Vanetza_ITS2_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationType; +asn_struct_free_f Vanetza_ITS2_StationType_free; +asn_struct_print_f Vanetza_ITS2_StationType_print; +asn_constr_check_f Vanetza_ITS2_StationType_constraint; +ber_type_decoder_f Vanetza_ITS2_StationType_decode_ber; +der_type_encoder_f Vanetza_ITS2_StationType_encode_der; +xer_type_decoder_f Vanetza_ITS2_StationType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StationType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StationType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StationType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StationType_encode_oer; +per_type_decoder_f Vanetza_ITS2_StationType_decode_uper; +per_type_encoder_f Vanetza_ITS2_StationType_encode_uper; +per_type_decoder_f Vanetza_ITS2_StationType_decode_aper; +per_type_encoder_f Vanetza_ITS2_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StationType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationarySince.c b/vanetza/asn1/its/r2/StationarySince.c new file mode 100644 index 000000000..28cff402c --- /dev/null +++ b/vanetza/asn1/its/r2/StationarySince.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationarySince.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_Vanetza_ITS2_StationarySince_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_Vanetza_ITS2_StationarySince_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_Vanetza_ITS2_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StationarySince_specs_1 = { + asn_MAP_Vanetza_ITS2_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_StationarySince_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_Vanetza_ITS2_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_StationarySince_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationarySince_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationarySince_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationarySince_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StationarySince_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StationarySince_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StationarySince.h b/vanetza/asn1/its/r2/StationarySince.h new file mode 100644 index 000000000..cf94c262a --- /dev/null +++ b/vanetza/asn1/its/r2/StationarySince.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationarySince_H_ +#define _Vanetza_ITS2_StationarySince_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StationarySince { + Vanetza_ITS2_StationarySince_lessThan1Minute = 0, + Vanetza_ITS2_StationarySince_lessThan2Minutes = 1, + Vanetza_ITS2_StationarySince_lessThan15Minutes = 2, + Vanetza_ITS2_StationarySince_equalOrGreater15Minutes = 3 +} e_Vanetza_ITS2_StationarySince; + +/* Vanetza_ITS2_StationarySince */ +typedef long Vanetza_ITS2_StationarySince_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StationarySince_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationarySince; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_StationarySince_specs_1; +asn_struct_free_f Vanetza_ITS2_StationarySince_free; +asn_struct_print_f Vanetza_ITS2_StationarySince_print; +asn_constr_check_f Vanetza_ITS2_StationarySince_constraint; +ber_type_decoder_f Vanetza_ITS2_StationarySince_decode_ber; +der_type_encoder_f Vanetza_ITS2_StationarySince_encode_der; +xer_type_decoder_f Vanetza_ITS2_StationarySince_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StationarySince_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StationarySince_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StationarySince_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StationarySince_encode_oer; +per_type_decoder_f Vanetza_ITS2_StationarySince_decode_uper; +per_type_encoder_f Vanetza_ITS2_StationarySince_encode_uper; +per_type_decoder_f Vanetza_ITS2_StationarySince_decode_aper; +per_type_encoder_f Vanetza_ITS2_StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StationarySince_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationaryVehicleContainer.c b/vanetza/asn1/its/r2/StationaryVehicleContainer.c new file mode 100644 index 000000000..0cb08ae4d --- /dev/null +++ b/vanetza/asn1/its/r2/StationaryVehicleContainer.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationaryVehicleContainer.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_StationaryVehicleContainer_1[] = { + { ATF_POINTER, 6, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, stationarySince), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StationarySince, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationarySince" + }, + { ATF_POINTER, 5, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, stationaryCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CauseCodeV2, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "stationaryCause" + }, + { ATF_POINTER, 4, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, carryingDangerousGoods), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_DangerousGoodsExtended, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "carryingDangerousGoods" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, numberOfOccupants), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_NumberOfOccupants, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "numberOfOccupants" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, vehicleIdentification), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleIdentification, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleIdentification" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, energyStorageType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_EnergyStorageType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "energyStorageType" + }, +}; +static const int asn_MAP_Vanetza_ITS2_StationaryVehicleContainer_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_StationaryVehicleContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* stationarySince */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* stationaryCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* carryingDangerousGoods */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* numberOfOccupants */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* vehicleIdentification */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* energyStorageType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_StationaryVehicleContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_StationaryVehicleContainer), + offsetof(struct Vanetza_ITS2_StationaryVehicleContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_StationaryVehicleContainer_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_StationaryVehicleContainer_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationaryVehicleContainer = { + "StationaryVehicleContainer", + "StationaryVehicleContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_StationaryVehicleContainer_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_StationaryVehicleContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StationaryVehicleContainer.h b/vanetza/asn1/its/r2/StationaryVehicleContainer.h new file mode 100644 index 000000000..ef3ae74d4 --- /dev/null +++ b/vanetza/asn1/its/r2/StationaryVehicleContainer.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationaryVehicleContainer_H_ +#define _Vanetza_ITS2_StationaryVehicleContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationarySince.h" +#include "NumberOfOccupants.h" +#include "EnergyStorageType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_CauseCodeV2; +struct Vanetza_ITS2_DangerousGoodsExtended; +struct Vanetza_ITS2_VehicleIdentification; + +/* Vanetza_ITS2_StationaryVehicleContainer */ +typedef struct Vanetza_ITS2_StationaryVehicleContainer { + Vanetza_ITS2_StationarySince_t *stationarySince; /* OPTIONAL */ + struct Vanetza_ITS2_CauseCodeV2 *stationaryCause; /* OPTIONAL */ + struct Vanetza_ITS2_DangerousGoodsExtended *carryingDangerousGoods; /* OPTIONAL */ + Vanetza_ITS2_NumberOfOccupants_t *numberOfOccupants; /* OPTIONAL */ + struct Vanetza_ITS2_VehicleIdentification *vehicleIdentification; /* OPTIONAL */ + Vanetza_ITS2_EnergyStorageType_t *energyStorageType; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_StationaryVehicleContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationaryVehicleContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_StationaryVehicleContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_StationaryVehicleContainer_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "CauseCodeV2.h" +#include "DangerousGoodsExtended.h" +#include "VehicleIdentification.h" + +#endif /* _Vanetza_ITS2_StationaryVehicleContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.c b/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.c new file mode 100644 index 000000000..74bca1edd --- /dev/null +++ b/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StationaryVehicleSubCauseCode.h" + +int +Vanetza_ITS2_StationaryVehicleSubCauseCode_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_Vanetza_ITS2_StationaryVehicleSubCauseCode_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_Vanetza_ITS2_StationaryVehicleSubCauseCode_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_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StationaryVehicleSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StationaryVehicleSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StationaryVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.h b/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..3a04229c1 --- /dev/null +++ b/vanetza/asn1/its/r2/StationaryVehicleSubCauseCode.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StationaryVehicleSubCauseCode_H_ +#define _Vanetza_ITS2_StationaryVehicleSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StationaryVehicleSubCauseCode { + Vanetza_ITS2_StationaryVehicleSubCauseCode_unavailable = 0, + Vanetza_ITS2_StationaryVehicleSubCauseCode_humanProblem = 1, + Vanetza_ITS2_StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + Vanetza_ITS2_StationaryVehicleSubCauseCode_postCrash = 3, + Vanetza_ITS2_StationaryVehicleSubCauseCode_publicTransportStop = 4, + Vanetza_ITS2_StationaryVehicleSubCauseCode_carryingDangerousGoods = 5, + Vanetza_ITS2_StationaryVehicleSubCauseCode_vehicleOnFire = 6 +} e_Vanetza_ITS2_StationaryVehicleSubCauseCode; + +/* Vanetza_ITS2_StationaryVehicleSubCauseCode */ +typedef long Vanetza_ITS2_StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StationaryVehicleSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StationaryVehicleSubCauseCode; +asn_struct_free_f Vanetza_ITS2_StationaryVehicleSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_StationaryVehicleSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_StationaryVehicleSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StationaryVehicleSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SteeringWheelAngle.c b/vanetza/asn1/its/r2/SteeringWheelAngle.c new file mode 100644 index 000000000..a864c7b4a --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SteeringWheelAngle.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringWheelAngleValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "steeringWheelAngleConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_SteeringWheelAngle_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* steeringWheelAngleValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* steeringWheelAngleConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SteeringWheelAngle_specs_1 = { + sizeof(struct Vanetza_ITS2_SteeringWheelAngle), + offsetof(struct Vanetza_ITS2_SteeringWheelAngle, _asn_ctx), + asn_MAP_Vanetza_ITS2_SteeringWheelAngle_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_Vanetza_ITS2_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngle_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/SteeringWheelAngle.h b/vanetza/asn1/its/r2/SteeringWheelAngle.h new file mode 100644 index 000000000..ce4f846ad --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SteeringWheelAngle_H_ +#define _Vanetza_ITS2_SteeringWheelAngle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "SteeringWheelAngleValue.h" +#include "SteeringWheelAngleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SteeringWheelAngle */ +typedef struct Vanetza_ITS2_SteeringWheelAngle { + Vanetza_ITS2_SteeringWheelAngleValue_t steeringWheelAngleValue; + Vanetza_ITS2_SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SteeringWheelAngle; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_SteeringWheelAngle_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_SteeringWheelAngle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SteeringWheelAngle_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.c b/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..28939d89e --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SteeringWheelAngleConfidence.h" + +int +Vanetza_ITS2_SteeringWheelAngleConfidence_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 <= 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_Vanetza_ITS2_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_SteeringWheelAngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SteeringWheelAngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SteeringWheelAngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SteeringWheelAngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.h b/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..ec3b935a8 --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SteeringWheelAngleConfidence_H_ +#define _Vanetza_ITS2_SteeringWheelAngleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SteeringWheelAngleConfidence { + Vanetza_ITS2_SteeringWheelAngleConfidence_outOfRange = 126, + Vanetza_ITS2_SteeringWheelAngleConfidence_unavailable = 127 +} e_Vanetza_ITS2_SteeringWheelAngleConfidence; + +/* Vanetza_ITS2_SteeringWheelAngleConfidence */ +typedef long Vanetza_ITS2_SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SteeringWheelAngleConfidence; +asn_struct_free_f Vanetza_ITS2_SteeringWheelAngleConfidence_free; +asn_struct_print_f Vanetza_ITS2_SteeringWheelAngleConfidence_print; +asn_constr_check_f Vanetza_ITS2_SteeringWheelAngleConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SteeringWheelAngleConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SteeringWheelAngleValue.c b/vanetza/asn1/its/r2/SteeringWheelAngleValue.c new file mode 100644 index 000000000..072647652 --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngleValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SteeringWheelAngleValue.h" + +int +Vanetza_ITS2_SteeringWheelAngleValue_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 >= -511L && value <= 512L)) { + /* 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_Vanetza_ITS2_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-511..512) */, + -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_Vanetza_ITS2_SteeringWheelAngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, -511, 512 } /* (-511..512) */, + { 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_Vanetza_ITS2_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SteeringWheelAngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SteeringWheelAngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SteeringWheelAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SteeringWheelAngleValue.h b/vanetza/asn1/its/r2/SteeringWheelAngleValue.h new file mode 100644 index 000000000..188242622 --- /dev/null +++ b/vanetza/asn1/its/r2/SteeringWheelAngleValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SteeringWheelAngleValue_H_ +#define _Vanetza_ITS2_SteeringWheelAngleValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_SteeringWheelAngleValue { + Vanetza_ITS2_SteeringWheelAngleValue_negativeOutOfRange = -511, + Vanetza_ITS2_SteeringWheelAngleValue_positiveOutOfRange = 511, + Vanetza_ITS2_SteeringWheelAngleValue_unavailable = 512 +} e_Vanetza_ITS2_SteeringWheelAngleValue; + +/* Vanetza_ITS2_SteeringWheelAngleValue */ +typedef long Vanetza_ITS2_SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SteeringWheelAngleValue; +asn_struct_free_f Vanetza_ITS2_SteeringWheelAngleValue_free; +asn_struct_print_f Vanetza_ITS2_SteeringWheelAngleValue_print; +asn_constr_check_f Vanetza_ITS2_SteeringWheelAngleValue_constraint; +ber_type_decoder_f Vanetza_ITS2_SteeringWheelAngleValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_SteeringWheelAngleValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SteeringWheelAngleValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_SteeringWheelAngleValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_SteeringWheelAngleValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SteeringWheelAngleValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/StoredInformationType.c b/vanetza/asn1/its/r2/StoredInformationType.c new file mode 100644 index 000000000..331f8b8d5 --- /dev/null +++ b/vanetza/asn1/its/r2/StoredInformationType.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "StoredInformationType.h" + +int +Vanetza_ITS2_StoredInformationType_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_Vanetza_ITS2_StoredInformationType_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_Vanetza_ITS2_StoredInformationType_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_StoredInformationType_constr_1 CC_NOTUSED = { + -1}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StoredInformationType = { + "StoredInformationType", + "StoredInformationType", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_StoredInformationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_StoredInformationType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_StoredInformationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_StoredInformationType_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_StoredInformationType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/StoredInformationType.h b/vanetza/asn1/its/r2/StoredInformationType.h new file mode 100644 index 000000000..b9c6b363b --- /dev/null +++ b/vanetza/asn1/its/r2/StoredInformationType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_StoredInformationType_H_ +#define _Vanetza_ITS2_StoredInformationType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_StoredInformationType { + Vanetza_ITS2_StoredInformationType_undefined = 0, + Vanetza_ITS2_StoredInformationType_staticDb = 1, + Vanetza_ITS2_StoredInformationType_dynamicDb = 2, + Vanetza_ITS2_StoredInformationType_realTimeDb = 3, + Vanetza_ITS2_StoredInformationType_map = 4 +} e_Vanetza_ITS2_StoredInformationType; + +/* Vanetza_ITS2_StoredInformationType */ +typedef BIT_STRING_t Vanetza_ITS2_StoredInformationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_StoredInformationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_StoredInformationType; +asn_struct_free_f Vanetza_ITS2_StoredInformationType_free; +asn_struct_print_f Vanetza_ITS2_StoredInformationType_print; +asn_constr_check_f Vanetza_ITS2_StoredInformationType_constraint; +ber_type_decoder_f Vanetza_ITS2_StoredInformationType_decode_ber; +der_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_der; +xer_type_decoder_f Vanetza_ITS2_StoredInformationType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_StoredInformationType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_oer; +per_type_decoder_f Vanetza_ITS2_StoredInformationType_decode_uper; +per_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_uper; +per_type_decoder_f Vanetza_ITS2_StoredInformationType_decode_aper; +per_type_encoder_f Vanetza_ITS2_StoredInformationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_StoredInformationType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/SubCauseCodeType.c b/vanetza/asn1/its/r2/SubCauseCodeType.c new file mode 100644 index 000000000..09ea7c286 --- /dev/null +++ b/vanetza/asn1/its/r2/SubCauseCodeType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "SubCauseCodeType.h" + +int +Vanetza_ITS2_SubCauseCodeType_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_Vanetza_ITS2_SubCauseCodeType_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_Vanetza_ITS2_SubCauseCodeType_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_Vanetza_ITS2_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_SubCauseCodeType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_SubCauseCodeType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_SubCauseCodeType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_SubCauseCodeType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/SubCauseCodeType.h b/vanetza/asn1/its/r2/SubCauseCodeType.h new file mode 100644 index 000000000..074b66cb2 --- /dev/null +++ b/vanetza/asn1/its/r2/SubCauseCodeType.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_SubCauseCodeType_H_ +#define _Vanetza_ITS2_SubCauseCodeType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_SubCauseCodeType */ +typedef long Vanetza_ITS2_SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_SubCauseCodeType; +asn_struct_free_f Vanetza_ITS2_SubCauseCodeType_free; +asn_struct_print_f Vanetza_ITS2_SubCauseCodeType_print; +asn_constr_check_f Vanetza_ITS2_SubCauseCodeType_constraint; +ber_type_decoder_f Vanetza_ITS2_SubCauseCodeType_decode_ber; +der_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_der; +xer_type_decoder_f Vanetza_ITS2_SubCauseCodeType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_SubCauseCodeType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_oer; +per_type_decoder_f Vanetza_ITS2_SubCauseCodeType_decode_uper; +per_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_uper; +per_type_decoder_f Vanetza_ITS2_SubCauseCodeType_decode_aper; +per_type_encoder_f Vanetza_ITS2_SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_SubCauseCodeType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Temperature.c b/vanetza/asn1/its/r2/Temperature.c new file mode 100644 index 000000000..658384eec --- /dev/null +++ b/vanetza/asn1/its/r2/Temperature.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Temperature.h" + +int +Vanetza_ITS2_Temperature_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 >= -60L && value <= 67L)) { + /* 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_Vanetza_ITS2_Temperature_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-60..67) */, + -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_Vanetza_ITS2_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { 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_Vanetza_ITS2_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Temperature_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Temperature_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Temperature_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Temperature_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Temperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Temperature_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Temperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Temperature_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Temperature.h b/vanetza/asn1/its/r2/Temperature.h new file mode 100644 index 000000000..510f31bce --- /dev/null +++ b/vanetza/asn1/its/r2/Temperature.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Temperature_H_ +#define _Vanetza_ITS2_Temperature_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Temperature { + Vanetza_ITS2_Temperature_equalOrSmallerThanMinus60Deg = -60, + Vanetza_ITS2_Temperature_equalOrGreaterThan67Deg = 67 +} e_Vanetza_ITS2_Temperature; + +/* Vanetza_ITS2_Temperature */ +typedef long Vanetza_ITS2_Temperature_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Temperature_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Temperature; +asn_struct_free_f Vanetza_ITS2_Temperature_free; +asn_struct_print_f Vanetza_ITS2_Temperature_print; +asn_constr_check_f Vanetza_ITS2_Temperature_constraint; +ber_type_decoder_f Vanetza_ITS2_Temperature_decode_ber; +der_type_encoder_f Vanetza_ITS2_Temperature_encode_der; +xer_type_decoder_f Vanetza_ITS2_Temperature_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Temperature_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Temperature_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Temperature_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Temperature_encode_oer; +per_type_decoder_f Vanetza_ITS2_Temperature_decode_uper; +per_type_encoder_f Vanetza_ITS2_Temperature_encode_uper; +per_type_decoder_f Vanetza_ITS2_Temperature_decode_aper; +per_type_encoder_f Vanetza_ITS2_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Temperature_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Termination.c b/vanetza/asn1/its/r2/Termination.c new file mode 100644 index 000000000..6871bda03 --- /dev/null +++ b/vanetza/asn1/its/r2/Termination.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Termination.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_Vanetza_ITS2_Termination_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_Vanetza_ITS2_Termination_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_Vanetza_ITS2_Termination_value2enum_1[] = { + { 0, 14, "isCancellation" }, + { 1, 10, "isNegation" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_Termination_enum2value_1[] = { + 0, /* isCancellation(0) */ + 1 /* isNegation(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_Termination_specs_1 = { + asn_MAP_Vanetza_ITS2_Termination_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_Termination_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_Vanetza_ITS2_Termination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Termination = { + "Termination", + "Termination", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_Termination_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Termination_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Termination_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Termination_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Termination_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Termination_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Termination_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Termination_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_Termination_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Termination.h b/vanetza/asn1/its/r2/Termination.h new file mode 100644 index 000000000..e9f27c9b3 --- /dev/null +++ b/vanetza/asn1/its/r2/Termination.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "DENM-PDU-Description" + * found in "asn1/release2/TS103831v221-DENM.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Termination_H_ +#define _Vanetza_ITS2_Termination_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Termination { + Vanetza_ITS2_Termination_isCancellation = 0, + Vanetza_ITS2_Termination_isNegation = 1 +} e_Vanetza_ITS2_Termination; + +/* Vanetza_ITS2_Termination */ +typedef long Vanetza_ITS2_Termination_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Termination_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Termination; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_Termination_specs_1; +asn_struct_free_f Vanetza_ITS2_Termination_free; +asn_struct_print_f Vanetza_ITS2_Termination_print; +asn_constr_check_f Vanetza_ITS2_Termination_constraint; +ber_type_decoder_f Vanetza_ITS2_Termination_decode_ber; +der_type_encoder_f Vanetza_ITS2_Termination_encode_der; +xer_type_decoder_f Vanetza_ITS2_Termination_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Termination_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Termination_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Termination_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Termination_encode_oer; +per_type_decoder_f Vanetza_ITS2_Termination_decode_uper; +per_type_encoder_f Vanetza_ITS2_Termination_encode_uper; +per_type_decoder_f Vanetza_ITS2_Termination_decode_aper; +per_type_encoder_f Vanetza_ITS2_Termination_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Termination_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TimestampIts.c b/vanetza/asn1/its/r2/TimestampIts.c new file mode 100644 index 000000000..03bc77a32 --- /dev/null +++ b/vanetza/asn1/its/r2/TimestampIts.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TimestampIts.h" + +int +Vanetza_ITS2_TimestampIts_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0L && value <= 4398046511103L)) { + /* 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 INTEGER, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_TimestampIts_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..4398046511103) */, + -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_Vanetza_ITS2_TimestampIts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 42, -1, 0, 4398046511103 } /* (0..4398046511103) */, + { 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_Vanetza_ITS2_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_Vanetza_ITS2_TimestampIts_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TimestampIts_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TimestampIts_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TimestampIts_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TimestampIts_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TimestampIts_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TimestampIts_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TimestampIts.h b/vanetza/asn1/its/r2/TimestampIts.h new file mode 100644 index 000000000..23f806143 --- /dev/null +++ b/vanetza/asn1/its/r2/TimestampIts.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TimestampIts_H_ +#define _Vanetza_ITS2_TimestampIts_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "INTEGER.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_TimestampIts */ +typedef INTEGER_t Vanetza_ITS2_TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TimestampIts; +asn_struct_free_f Vanetza_ITS2_TimestampIts_free; +asn_struct_print_f Vanetza_ITS2_TimestampIts_print; +asn_constr_check_f Vanetza_ITS2_TimestampIts_constraint; +ber_type_decoder_f Vanetza_ITS2_TimestampIts_decode_ber; +der_type_encoder_f Vanetza_ITS2_TimestampIts_encode_der; +xer_type_decoder_f Vanetza_ITS2_TimestampIts_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TimestampIts_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TimestampIts_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TimestampIts_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TimestampIts_encode_oer; +per_type_decoder_f Vanetza_ITS2_TimestampIts_decode_uper; +per_type_encoder_f Vanetza_ITS2_TimestampIts_encode_uper; +per_type_decoder_f Vanetza_ITS2_TimestampIts_decode_aper; +per_type_encoder_f Vanetza_ITS2_TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TimestampIts_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Traces.c b/vanetza/asn1/its/r2/Traces.c new file mode 100644 index 000000000..ee0a00b7d --- /dev/null +++ b/vanetza/asn1/its/r2/Traces.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Traces.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_Traces_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Traces_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_Path, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_Traces_specs_1 = { + sizeof(struct Vanetza_ITS2_Traces), + offsetof(struct Vanetza_ITS2_Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_Traces_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Traces_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Traces_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Traces_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Traces_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Traces_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Traces_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_Traces_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_Traces_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Traces.h b/vanetza/asn1/its/r2/Traces.h new file mode 100644 index 000000000..f3e62790f --- /dev/null +++ b/vanetza/asn1/its/r2/Traces.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Traces_H_ +#define _Vanetza_ITS2_Traces_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 Vanetza_ITS2_Path; + +/* Vanetza_ITS2_Traces */ +typedef struct Vanetza_ITS2_Traces { + A_SEQUENCE_OF(struct Vanetza_ITS2_Path) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Traces; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_Traces_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Traces_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Traces_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Path.h" + +#endif /* _Vanetza_ITS2_Traces_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TracesExtended.c b/vanetza/asn1/its/r2/TracesExtended.c new file mode 100644 index 000000000..3e224dbef --- /dev/null +++ b/vanetza/asn1/its/r2/TracesExtended.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TracesExtended.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_TracesExtended_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..7)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TracesExtended_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TracesExtended_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PathExtended, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TracesExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_TracesExtended_specs_1 = { + sizeof(struct Vanetza_ITS2_TracesExtended), + offsetof(struct Vanetza_ITS2_TracesExtended, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TracesExtended = { + "TracesExtended", + "TracesExtended", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_TracesExtended_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TracesExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TracesExtended_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TracesExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TracesExtended_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TracesExtended_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TracesExtended_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TracesExtended_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_TracesExtended_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_TracesExtended_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TracesExtended.h b/vanetza/asn1/its/r2/TracesExtended.h new file mode 100644 index 000000000..64a2eda6a --- /dev/null +++ b/vanetza/asn1/its/r2/TracesExtended.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TracesExtended_H_ +#define _Vanetza_ITS2_TracesExtended_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 Vanetza_ITS2_PathExtended; + +/* Vanetza_ITS2_TracesExtended */ +typedef struct Vanetza_ITS2_TracesExtended { + A_SEQUENCE_OF(struct Vanetza_ITS2_PathExtended) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_TracesExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TracesExtended; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_TracesExtended_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TracesExtended_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TracesExtended_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "PathExtended.h" + +#endif /* _Vanetza_ITS2_TracesExtended_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.c b/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.c new file mode 100644 index 000000000..02804901d --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrafficConditionSubCauseCode.h" + +int +Vanetza_ITS2_TrafficConditionSubCauseCode_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_Vanetza_ITS2_TrafficConditionSubCauseCode_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_Vanetza_ITS2_TrafficConditionSubCauseCode_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_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrafficConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrafficConditionSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TrafficConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.h b/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.h new file mode 100644 index 000000000..89d154104 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficConditionSubCauseCode.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrafficConditionSubCauseCode_H_ +#define _Vanetza_ITS2_TrafficConditionSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrafficConditionSubCauseCode { + Vanetza_ITS2_TrafficConditionSubCauseCode_unavailable = 0, + Vanetza_ITS2_TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJam = 5, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8, + Vanetza_ITS2_TrafficConditionSubCauseCode_trafficJamStable = 9 +} e_Vanetza_ITS2_TrafficConditionSubCauseCode; + +/* Vanetza_ITS2_TrafficConditionSubCauseCode */ +typedef long Vanetza_ITS2_TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrafficConditionSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficConditionSubCauseCode; +asn_struct_free_f Vanetza_ITS2_TrafficConditionSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_TrafficConditionSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_TrafficConditionSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrafficConditionSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrafficDirection.c b/vanetza/asn1/its/r2/TrafficDirection.c new file mode 100644 index 000000000..6f85fd599 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficDirection.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrafficDirection.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_Vanetza_ITS2_TrafficDirection_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_Vanetza_ITS2_TrafficDirection_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_Vanetza_ITS2_TrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 52, "sameAsReferenceDirection-upstreamOfReferencePosition" }, + { 2, 54, "sameAsReferenceDirection-downstreamOfReferencePosition" }, + { 3, 28, "oppositeToReferenceDirection" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_TrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 3, /* oppositeToReferenceDirection(3) */ + 2, /* sameAsReferenceDirection-downstreamOfReferencePosition(2) */ + 1 /* sameAsReferenceDirection-upstreamOfReferencePosition(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrafficDirection_specs_1 = { + asn_MAP_Vanetza_ITS2_TrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_TrafficDirection_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_Vanetza_ITS2_TrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficDirection = { + "TrafficDirection", + "TrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrafficDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrafficDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_TrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrafficDirection.h b/vanetza/asn1/its/r2/TrafficDirection.h new file mode 100644 index 000000000..e4284bd9b --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficDirection.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrafficDirection_H_ +#define _Vanetza_ITS2_TrafficDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrafficDirection { + Vanetza_ITS2_TrafficDirection_allTrafficDirections = 0, + Vanetza_ITS2_TrafficDirection_sameAsReferenceDirection_upstreamOfReferencePosition = 1, + Vanetza_ITS2_TrafficDirection_sameAsReferenceDirection_downstreamOfReferencePosition = 2, + Vanetza_ITS2_TrafficDirection_oppositeToReferenceDirection = 3 +} e_Vanetza_ITS2_TrafficDirection; + +/* Vanetza_ITS2_TrafficDirection */ +typedef long Vanetza_ITS2_TrafficDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrafficDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficDirection; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrafficDirection_specs_1; +asn_struct_free_f Vanetza_ITS2_TrafficDirection_free; +asn_struct_print_f Vanetza_ITS2_TrafficDirection_print; +asn_constr_check_f Vanetza_ITS2_TrafficDirection_constraint; +ber_type_decoder_f Vanetza_ITS2_TrafficDirection_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrafficDirection_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrafficDirection_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrafficDirection_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrafficDirection_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrafficDirection_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrafficIslandPosition.c b/vanetza/asn1/its/r2/TrafficIslandPosition.c new file mode 100644 index 000000000..b5418357a --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficIslandPosition.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrafficIslandPosition.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrafficIslandPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrafficIslandPosition, oneSide), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePositionAndType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "oneSide" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrafficIslandPosition, otherSide), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_LanePositionAndType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "otherSide" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_TrafficIslandPosition_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneSide */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* otherSide */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrafficIslandPosition_specs_1 = { + sizeof(struct Vanetza_ITS2_TrafficIslandPosition), + offsetof(struct Vanetza_ITS2_TrafficIslandPosition, _asn_ctx), + asn_MAP_Vanetza_ITS2_TrafficIslandPosition_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_Vanetza_ITS2_TrafficIslandPosition = { + "TrafficIslandPosition", + "TrafficIslandPosition", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrafficIslandPosition_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficIslandPosition_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_TrafficIslandPosition_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_TrafficIslandPosition_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrafficIslandPosition.h b/vanetza/asn1/its/r2/TrafficIslandPosition.h new file mode 100644 index 000000000..9b7ca60be --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficIslandPosition.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrafficIslandPosition_H_ +#define _Vanetza_ITS2_TrafficIslandPosition_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "LanePositionAndType.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_TrafficIslandPosition */ +typedef struct Vanetza_ITS2_TrafficIslandPosition { + Vanetza_ITS2_LanePositionAndType_t oneSide; + Vanetza_ITS2_LanePositionAndType_t otherSide; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_TrafficIslandPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficIslandPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrafficIslandPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrafficIslandPosition_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrafficIslandPosition_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrafficParticipantType.c b/vanetza/asn1/its/r2/TrafficParticipantType.c new file mode 100644 index 000000000..19936d626 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficParticipantType.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrafficParticipantType.h" + +int +Vanetza_ITS2_TrafficParticipantType_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_Vanetza_ITS2_TrafficParticipantType_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_Vanetza_ITS2_TrafficParticipantType_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_Vanetza_ITS2_TrafficParticipantType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficParticipantType = { + "TrafficParticipantType", + "TrafficParticipantType", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficParticipantType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrafficParticipantType_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrafficParticipantType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TrafficParticipantType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TrafficParticipantType.h b/vanetza/asn1/its/r2/TrafficParticipantType.h new file mode 100644 index 000000000..093fab9b2 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficParticipantType.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrafficParticipantType_H_ +#define _Vanetza_ITS2_TrafficParticipantType_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrafficParticipantType { + Vanetza_ITS2_TrafficParticipantType_unknown = 0, + Vanetza_ITS2_TrafficParticipantType_pedestrian = 1, + Vanetza_ITS2_TrafficParticipantType_cyclist = 2, + Vanetza_ITS2_TrafficParticipantType_moped = 3, + Vanetza_ITS2_TrafficParticipantType_motorcycle = 4, + Vanetza_ITS2_TrafficParticipantType_passengerCar = 5, + Vanetza_ITS2_TrafficParticipantType_bus = 6, + Vanetza_ITS2_TrafficParticipantType_lightTruck = 7, + Vanetza_ITS2_TrafficParticipantType_heavyTruck = 8, + Vanetza_ITS2_TrafficParticipantType_trailer = 9, + Vanetza_ITS2_TrafficParticipantType_specialVehicle = 10, + Vanetza_ITS2_TrafficParticipantType_tram = 11, + Vanetza_ITS2_TrafficParticipantType_lightVruVehicle = 12, + Vanetza_ITS2_TrafficParticipantType_animal = 13, + Vanetza_ITS2_TrafficParticipantType_agricultural = 14, + Vanetza_ITS2_TrafficParticipantType_roadSideUnit = 15 +} e_Vanetza_ITS2_TrafficParticipantType; + +/* Vanetza_ITS2_TrafficParticipantType */ +typedef long Vanetza_ITS2_TrafficParticipantType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrafficParticipantType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficParticipantType; +asn_struct_free_f Vanetza_ITS2_TrafficParticipantType_free; +asn_struct_print_f Vanetza_ITS2_TrafficParticipantType_print; +asn_constr_check_f Vanetza_ITS2_TrafficParticipantType_constraint; +ber_type_decoder_f Vanetza_ITS2_TrafficParticipantType_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrafficParticipantType_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrafficParticipantType_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrafficParticipantType_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrafficParticipantType_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrafficParticipantType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrafficParticipantType_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrafficRule.c b/vanetza/asn1/its/r2/TrafficRule.c new file mode 100644 index 000000000..912cc5e84 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficRule.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrafficRule.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_Vanetza_ITS2_TrafficRule_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_Vanetza_ITS2_TrafficRule_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_Vanetza_ITS2_TrafficRule_value2enum_1[] = { + { 0, 9, "noPassing" }, + { 1, 18, "noPassingForTrucks" }, + { 2, 11, "passToRight" }, + { 3, 10, "passToLeft" }, + { 4, 17, "passToLeftOrRight" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_TrafficRule_enum2value_1[] = { + 0, /* noPassing(0) */ + 1, /* noPassingForTrucks(1) */ + 3, /* passToLeft(3) */ + 4, /* passToLeftOrRight(4) */ + 2 /* passToRight(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrafficRule_specs_1 = { + asn_MAP_Vanetza_ITS2_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_TrafficRule_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_Vanetza_ITS2_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_TrafficRule_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrafficRule_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrafficRule_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrafficRule_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrafficRule_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrafficRule_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrafficRule.h b/vanetza/asn1/its/r2/TrafficRule.h new file mode 100644 index 000000000..2b413e1a1 --- /dev/null +++ b/vanetza/asn1/its/r2/TrafficRule.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrafficRule_H_ +#define _Vanetza_ITS2_TrafficRule_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrafficRule { + Vanetza_ITS2_TrafficRule_noPassing = 0, + Vanetza_ITS2_TrafficRule_noPassingForTrucks = 1, + Vanetza_ITS2_TrafficRule_passToRight = 2, + Vanetza_ITS2_TrafficRule_passToLeft = 3, + /* + * Enumeration is extensible + */ + Vanetza_ITS2_TrafficRule_passToLeftOrRight = 4 +} e_Vanetza_ITS2_TrafficRule; + +/* Vanetza_ITS2_TrafficRule */ +typedef long Vanetza_ITS2_TrafficRule_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrafficRule_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrafficRule; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrafficRule_specs_1; +asn_struct_free_f Vanetza_ITS2_TrafficRule_free; +asn_struct_print_f Vanetza_ITS2_TrafficRule_print; +asn_constr_check_f Vanetza_ITS2_TrafficRule_constraint; +ber_type_decoder_f Vanetza_ITS2_TrafficRule_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrafficRule_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrafficRule_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrafficRule_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrafficRule_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrafficRule_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrafficRule_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrafficRule_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrafficRule_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrafficRule_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrafficRule_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrailerData.c b/vanetza/asn1/its/r2/TrailerData.c new file mode 100644 index 000000000..7b7ae3622 --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerData.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrailerData.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrailerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrailerData, refPointId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "refPointId" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrailerData, hitchPointOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hitchPointOffset" + }, + { ATF_POINTER, 3, offsetof(struct Vanetza_ITS2_TrailerData, frontOverhang), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "frontOverhang" + }, + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_TrailerData, rearOverhang), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_StandardLength1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "rearOverhang" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_TrailerData, trailerWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerWidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrailerData, hitchAngle), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "hitchAngle" + }, +}; +static const int asn_MAP_Vanetza_ITS2_TrailerData_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TrailerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_TrailerData_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* refPointId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hitchPointOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frontOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rearOverhang */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trailerWidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* hitchAngle */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrailerData_specs_1 = { + sizeof(struct Vanetza_ITS2_TrailerData), + offsetof(struct Vanetza_ITS2_TrailerData, _asn_ctx), + asn_MAP_Vanetza_ITS2_TrailerData_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_TrailerData_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerData = { + "TrailerData", + "TrailerData", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_TrailerData_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrailerData_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrailerData_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrailerData_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrailerData_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_TrailerData_1, + 6, /* Elements count */ + &asn_SPC_Vanetza_ITS2_TrailerData_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrailerData.h b/vanetza/asn1/its/r2/TrailerData.h new file mode 100644 index 000000000..9dc7f63a3 --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerData.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrailerData_H_ +#define _Vanetza_ITS2_TrailerData_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "StandardLength1B.h" +#include "VehicleWidth.h" +#include "CartesianAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_TrailerData */ +typedef struct Vanetza_ITS2_TrailerData { + Vanetza_ITS2_Identifier1B_t refPointId; + Vanetza_ITS2_StandardLength1B_t hitchPointOffset; + Vanetza_ITS2_StandardLength1B_t *frontOverhang; /* OPTIONAL */ + Vanetza_ITS2_StandardLength1B_t *rearOverhang; /* OPTIONAL */ + Vanetza_ITS2_VehicleWidth_t *trailerWidth; /* OPTIONAL */ + Vanetza_ITS2_CartesianAngle_t hitchAngle; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_TrailerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerData; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrailerData_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrailerData_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrailerData_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrailerDataSet.c b/vanetza/asn1/its/r2/TrailerDataSet.c new file mode 100644 index 000000000..dc723d437 --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerDataSet.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrailerDataSet.h" + +static int +memb_Vanetza_ITS2_TrailerData_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_Vanetza_ITS2_Member_constr_2 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_Vanetza_ITS2_Member_constr_2 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_type_Vanetza_ITS2_TrailerDataSet_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_Vanetza_ITS2_TrailerDataSet_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_TrailerDataSet_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_TrailerData, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_Member_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_Member_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_TrailerData_constraint_1 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_TrailerDataSet_specs_1 = { + sizeof(struct Vanetza_ITS2_TrailerDataSet), + offsetof(struct Vanetza_ITS2_TrailerDataSet, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerDataSet = { + "TrailerDataSet", + "TrailerDataSet", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrailerDataSet_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrailerDataSet_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrailerDataSet_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_TrailerDataSet_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_TrailerDataSet_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrailerDataSet.h b/vanetza/asn1/its/r2/TrailerDataSet.h new file mode 100644 index 000000000..f9936a53a --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerDataSet.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-OriginatingStationContainers" + * found in "asn1/release2/TS103324v211/CPM-OriginatingStationContainers.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrailerDataSet_H_ +#define _Vanetza_ITS2_TrailerDataSet_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 Vanetza_ITS2_TrailerData; + +/* Vanetza_ITS2_TrailerDataSet */ +typedef struct Vanetza_ITS2_TrailerDataSet { + A_SEQUENCE_OF(struct Vanetza_ITS2_TrailerData) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_TrailerDataSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerDataSet; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_TrailerDataSet_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrailerDataSet_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrailerDataSet_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "TrailerData.h" + +#endif /* _Vanetza_ITS2_TrailerDataSet_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrailerPresenceInformation.c b/vanetza/asn1/its/r2/TrailerPresenceInformation.c new file mode 100644 index 000000000..9894fa7a5 --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerPresenceInformation.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrailerPresenceInformation.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_Vanetza_ITS2_TrailerPresenceInformation_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_Vanetza_ITS2_TrailerPresenceInformation_constr_1 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) */ +static const asn_INTEGER_enum_map_t asn_MAP_Vanetza_ITS2_TrailerPresenceInformation_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_TrailerPresenceInformation_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrailerPresenceInformation_specs_1 = { + asn_MAP_Vanetza_ITS2_TrailerPresenceInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_TrailerPresenceInformation_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_Vanetza_ITS2_TrailerPresenceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerPresenceInformation = { + "TrailerPresenceInformation", + "TrailerPresenceInformation", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrailerPresenceInformation_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrailerPresenceInformation_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrailerPresenceInformation_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_TrailerPresenceInformation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrailerPresenceInformation.h b/vanetza/asn1/its/r2/TrailerPresenceInformation.h new file mode 100644 index 000000000..5c1866ba1 --- /dev/null +++ b/vanetza/asn1/its/r2/TrailerPresenceInformation.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrailerPresenceInformation_H_ +#define _Vanetza_ITS2_TrailerPresenceInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrailerPresenceInformation { + Vanetza_ITS2_TrailerPresenceInformation_noTrailerPresent = 0, + Vanetza_ITS2_TrailerPresenceInformation_trailerPresentWithKnownLength = 1, + Vanetza_ITS2_TrailerPresenceInformation_trailerPresentWithUnknownLength = 2, + Vanetza_ITS2_TrailerPresenceInformation_trailerPresenceIsUnknown = 3, + Vanetza_ITS2_TrailerPresenceInformation_unavailable = 4 +} e_Vanetza_ITS2_TrailerPresenceInformation; + +/* Vanetza_ITS2_TrailerPresenceInformation */ +typedef long Vanetza_ITS2_TrailerPresenceInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrailerPresenceInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrailerPresenceInformation; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TrailerPresenceInformation_specs_1; +asn_struct_free_f Vanetza_ITS2_TrailerPresenceInformation_free; +asn_struct_print_f Vanetza_ITS2_TrailerPresenceInformation_print; +asn_constr_check_f Vanetza_ITS2_TrailerPresenceInformation_constraint; +ber_type_decoder_f Vanetza_ITS2_TrailerPresenceInformation_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrailerPresenceInformation_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrailerPresenceInformation_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrailerPresenceInformation_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrailerPresenceInformation_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrailerPresenceInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrailerPresenceInformation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.c b/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.c new file mode 100644 index 000000000..d795cd14e --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrajectoryInterceptionConfidence.h" + +int +Vanetza_ITS2_TrajectoryInterceptionConfidence_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 <= 3L)) { + /* 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_Vanetza_ITS2_TrajectoryInterceptionConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -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_Vanetza_ITS2_TrajectoryInterceptionConfidence_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 ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence = { + "TrajectoryInterceptionConfidence", + "TrajectoryInterceptionConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrajectoryInterceptionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrajectoryInterceptionConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TrajectoryInterceptionConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.h b/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.h new file mode 100644 index 000000000..88bb994e2 --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionConfidence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrajectoryInterceptionConfidence_H_ +#define _Vanetza_ITS2_TrajectoryInterceptionConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrajectoryInterceptionConfidence { + Vanetza_ITS2_TrajectoryInterceptionConfidence_lessthan50percent = 0, + Vanetza_ITS2_TrajectoryInterceptionConfidence_between50and70Percent = 1, + Vanetza_ITS2_TrajectoryInterceptionConfidence_between70and90Percent = 2, + Vanetza_ITS2_TrajectoryInterceptionConfidence_above90Percent = 3 +} e_Vanetza_ITS2_TrajectoryInterceptionConfidence; + +/* Vanetza_ITS2_TrajectoryInterceptionConfidence */ +typedef long Vanetza_ITS2_TrajectoryInterceptionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrajectoryInterceptionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence; +asn_struct_free_f Vanetza_ITS2_TrajectoryInterceptionConfidence_free; +asn_struct_print_f Vanetza_ITS2_TrajectoryInterceptionConfidence_print; +asn_constr_check_f Vanetza_ITS2_TrajectoryInterceptionConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrajectoryInterceptionConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.c b/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.c new file mode 100644 index 000000000..3c3e6af64 --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrajectoryInterceptionIndication.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrajectoryInterceptionIndication_1[] = { + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_TrajectoryInterceptionIndication, subjectStation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "subjectStation" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_TrajectoryInterceptionIndication, trajectoryInterceptionProbability), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trajectoryInterceptionProbability" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_TrajectoryInterceptionIndication, trajectoryInterceptionConfidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrajectoryInterceptionConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trajectoryInterceptionConfidence" + }, +}; +static const int asn_MAP_Vanetza_ITS2_TrajectoryInterceptionIndication_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_TrajectoryInterceptionIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subjectStation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trajectoryInterceptionProbability */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* trajectoryInterceptionConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrajectoryInterceptionIndication_specs_1 = { + sizeof(struct Vanetza_ITS2_TrajectoryInterceptionIndication), + offsetof(struct Vanetza_ITS2_TrajectoryInterceptionIndication, _asn_ctx), + asn_MAP_Vanetza_ITS2_TrajectoryInterceptionIndication_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_TrajectoryInterceptionIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication = { + "TrajectoryInterceptionIndication", + "TrajectoryInterceptionIndication", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_TrajectoryInterceptionIndication_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_TrajectoryInterceptionIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.h b/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.h new file mode 100644 index 000000000..c1fa327e7 --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrajectoryInterceptionIndication_H_ +#define _Vanetza_ITS2_TrajectoryInterceptionIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "StationId.h" +#include "TrajectoryInterceptionProbability.h" +#include "TrajectoryInterceptionConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_TrajectoryInterceptionIndication */ +typedef struct Vanetza_ITS2_TrajectoryInterceptionIndication { + Vanetza_ITS2_StationId_t *subjectStation; /* OPTIONAL */ + Vanetza_ITS2_TrajectoryInterceptionProbability_t trajectoryInterceptionProbability; + Vanetza_ITS2_TrajectoryInterceptionConfidence_t *trajectoryInterceptionConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_TrajectoryInterceptionIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_TrajectoryInterceptionIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_TrajectoryInterceptionIndication_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrajectoryInterceptionIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.c b/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.c new file mode 100644 index 000000000..a4d48cd96 --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TrajectoryInterceptionProbability.h" + +int +Vanetza_ITS2_TrajectoryInterceptionProbability_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_Vanetza_ITS2_TrajectoryInterceptionProbability_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_Vanetza_ITS2_TrajectoryInterceptionProbability_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_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability = { + "TrajectoryInterceptionProbability", + "TrajectoryInterceptionProbability", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TrajectoryInterceptionProbability_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TrajectoryInterceptionProbability_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TrajectoryInterceptionProbability_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.h b/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.h new file mode 100644 index 000000000..6c9f83937 --- /dev/null +++ b/vanetza/asn1/its/r2/TrajectoryInterceptionProbability.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TrajectoryInterceptionProbability_H_ +#define _Vanetza_ITS2_TrajectoryInterceptionProbability_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TrajectoryInterceptionProbability { + Vanetza_ITS2_TrajectoryInterceptionProbability_unavailable = 63 +} e_Vanetza_ITS2_TrajectoryInterceptionProbability; + +/* Vanetza_ITS2_TrajectoryInterceptionProbability */ +typedef long Vanetza_ITS2_TrajectoryInterceptionProbability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TrajectoryInterceptionProbability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TrajectoryInterceptionProbability; +asn_struct_free_f Vanetza_ITS2_TrajectoryInterceptionProbability_free; +asn_struct_print_f Vanetza_ITS2_TrajectoryInterceptionProbability_print; +asn_constr_check_f Vanetza_ITS2_TrajectoryInterceptionProbability_constraint; +ber_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_decode_ber; +der_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_der; +xer_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_oer; +per_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_decode_uper; +per_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_uper; +per_type_decoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_decode_aper; +per_type_encoder_f Vanetza_ITS2_TrajectoryInterceptionProbability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TrajectoryInterceptionProbability_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TransmissionInterval.c b/vanetza/asn1/its/r2/TransmissionInterval.c new file mode 100644 index 000000000..af0f81be7 --- /dev/null +++ b/vanetza/asn1/its/r2/TransmissionInterval.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TransmissionInterval.h" + +int +Vanetza_ITS2_TransmissionInterval_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 <= 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_Vanetza_ITS2_TransmissionInterval_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..10000) */, + -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_Vanetza_ITS2_TransmissionInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 10000 } /* (1..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_Vanetza_ITS2_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TransmissionInterval_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TransmissionInterval_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TransmissionInterval_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TransmissionInterval_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TransmissionInterval.h b/vanetza/asn1/its/r2/TransmissionInterval.h new file mode 100644 index 000000000..5da69a9e6 --- /dev/null +++ b/vanetza/asn1/its/r2/TransmissionInterval.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TransmissionInterval_H_ +#define _Vanetza_ITS2_TransmissionInterval_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_TransmissionInterval */ +typedef long Vanetza_ITS2_TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TransmissionInterval; +asn_struct_free_f Vanetza_ITS2_TransmissionInterval_free; +asn_struct_print_f Vanetza_ITS2_TransmissionInterval_print; +asn_constr_check_f Vanetza_ITS2_TransmissionInterval_constraint; +ber_type_decoder_f Vanetza_ITS2_TransmissionInterval_decode_ber; +der_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_der; +xer_type_decoder_f Vanetza_ITS2_TransmissionInterval_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TransmissionInterval_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_oer; +per_type_decoder_f Vanetza_ITS2_TransmissionInterval_decode_uper; +per_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_uper; +per_type_decoder_f Vanetza_ITS2_TransmissionInterval_decode_aper; +per_type_encoder_f Vanetza_ITS2_TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TransmissionInterval_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TurningDirection.c b/vanetza/asn1/its/r2/TurningDirection.c new file mode 100644 index 000000000..f356ccce6 --- /dev/null +++ b/vanetza/asn1/its/r2/TurningDirection.c @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TurningDirection.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_Vanetza_ITS2_TurningDirection_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_Vanetza_ITS2_TurningDirection_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_Vanetza_ITS2_TurningDirection_value2enum_1[] = { + { 0, 4, "left" }, + { 1, 5, "right" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_TurningDirection_enum2value_1[] = { + 0, /* left(0) */ + 1 /* right(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TurningDirection_specs_1 = { + asn_MAP_Vanetza_ITS2_TurningDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_TurningDirection_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_Vanetza_ITS2_TurningDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TurningDirection = { + "TurningDirection", + "TurningDirection", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_TurningDirection_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TurningDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TurningDirection_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TurningDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TurningDirection_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TurningDirection_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TurningDirection_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TurningDirection_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_TurningDirection_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/TurningDirection.h b/vanetza/asn1/its/r2/TurningDirection.h new file mode 100644 index 000000000..570c44461 --- /dev/null +++ b/vanetza/asn1/its/r2/TurningDirection.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TurningDirection_H_ +#define _Vanetza_ITS2_TurningDirection_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TurningDirection { + Vanetza_ITS2_TurningDirection_left = 0, + Vanetza_ITS2_TurningDirection_right = 1 +} e_Vanetza_ITS2_TurningDirection; + +/* Vanetza_ITS2_TurningDirection */ +typedef long Vanetza_ITS2_TurningDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TurningDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TurningDirection; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_TurningDirection_specs_1; +asn_struct_free_f Vanetza_ITS2_TurningDirection_free; +asn_struct_print_f Vanetza_ITS2_TurningDirection_print; +asn_constr_check_f Vanetza_ITS2_TurningDirection_constraint; +ber_type_decoder_f Vanetza_ITS2_TurningDirection_decode_ber; +der_type_encoder_f Vanetza_ITS2_TurningDirection_encode_der; +xer_type_decoder_f Vanetza_ITS2_TurningDirection_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TurningDirection_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TurningDirection_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TurningDirection_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TurningDirection_encode_oer; +per_type_decoder_f Vanetza_ITS2_TurningDirection_decode_uper; +per_type_encoder_f Vanetza_ITS2_TurningDirection_encode_uper; +per_type_decoder_f Vanetza_ITS2_TurningDirection_decode_aper; +per_type_encoder_f Vanetza_ITS2_TurningDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TurningDirection_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/TurningRadius.c b/vanetza/asn1/its/r2/TurningRadius.c new file mode 100644 index 000000000..5ad145356 --- /dev/null +++ b/vanetza/asn1/its/r2/TurningRadius.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "TurningRadius.h" + +int +Vanetza_ITS2_TurningRadius_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_Vanetza_ITS2_TurningRadius_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_Vanetza_ITS2_TurningRadius_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_Vanetza_ITS2_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_TurningRadius_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_TurningRadius_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_TurningRadius_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_TurningRadius_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_TurningRadius_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_TurningRadius_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_TurningRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/TurningRadius.h b/vanetza/asn1/its/r2/TurningRadius.h new file mode 100644 index 000000000..e6c4e30b4 --- /dev/null +++ b/vanetza/asn1/its/r2/TurningRadius.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_TurningRadius_H_ +#define _Vanetza_ITS2_TurningRadius_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_TurningRadius { + Vanetza_ITS2_TurningRadius_outOfRange = 254, + Vanetza_ITS2_TurningRadius_unavailable = 255 +} e_Vanetza_ITS2_TurningRadius; + +/* Vanetza_ITS2_TurningRadius */ +typedef long Vanetza_ITS2_TurningRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_TurningRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_TurningRadius; +asn_struct_free_f Vanetza_ITS2_TurningRadius_free; +asn_struct_print_f Vanetza_ITS2_TurningRadius_print; +asn_constr_check_f Vanetza_ITS2_TurningRadius_constraint; +ber_type_decoder_f Vanetza_ITS2_TurningRadius_decode_ber; +der_type_encoder_f Vanetza_ITS2_TurningRadius_encode_der; +xer_type_decoder_f Vanetza_ITS2_TurningRadius_decode_xer; +xer_type_encoder_f Vanetza_ITS2_TurningRadius_encode_xer; +jer_type_encoder_f Vanetza_ITS2_TurningRadius_encode_jer; +oer_type_decoder_f Vanetza_ITS2_TurningRadius_decode_oer; +oer_type_encoder_f Vanetza_ITS2_TurningRadius_encode_oer; +per_type_decoder_f Vanetza_ITS2_TurningRadius_decode_uper; +per_type_encoder_f Vanetza_ITS2_TurningRadius_encode_uper; +per_type_decoder_f Vanetza_ITS2_TurningRadius_decode_aper; +per_type_encoder_f Vanetza_ITS2_TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_TurningRadius_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/UsageIndication.c b/vanetza/asn1/its/r2/UsageIndication.c new file mode 100644 index 000000000..a84347f7b --- /dev/null +++ b/vanetza/asn1/its/r2/UsageIndication.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "UsageIndication.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_Vanetza_ITS2_UsageIndication_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_Vanetza_ITS2_UsageIndication_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) */ +static const asn_INTEGER_enum_map_t asn_MAP_Vanetza_ITS2_UsageIndication_value2enum_1[] = { + { 0, 12, "noIndication" }, + { 1, 10, "specialUse" }, + { 2, 15, "rescueOperation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_Vanetza_ITS2_UsageIndication_enum2value_1[] = { + 0, /* noIndication(0) */ + 2, /* rescueOperation(2) */ + 1 /* specialUse(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_UsageIndication_specs_1 = { + asn_MAP_Vanetza_ITS2_UsageIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_UsageIndication_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_UsageIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_UsageIndication = { + "UsageIndication", + "UsageIndication", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_UsageIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_UsageIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_UsageIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_UsageIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_UsageIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_UsageIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_UsageIndication_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_UsageIndication_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_UsageIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/UsageIndication.h b/vanetza/asn1/its/r2/UsageIndication.h new file mode 100644 index 000000000..b0ebfd9e7 --- /dev/null +++ b/vanetza/asn1/its/r2/UsageIndication.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_UsageIndication_H_ +#define _Vanetza_ITS2_UsageIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_UsageIndication { + Vanetza_ITS2_UsageIndication_noIndication = 0, + Vanetza_ITS2_UsageIndication_specialUse = 1, + Vanetza_ITS2_UsageIndication_rescueOperation = 2 + /* + * Enumeration is extensible + */ +} e_Vanetza_ITS2_UsageIndication; + +/* Vanetza_ITS2_UsageIndication */ +typedef long Vanetza_ITS2_UsageIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_UsageIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_UsageIndication; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_UsageIndication_specs_1; +asn_struct_free_f Vanetza_ITS2_UsageIndication_free; +asn_struct_print_f Vanetza_ITS2_UsageIndication_print; +asn_constr_check_f Vanetza_ITS2_UsageIndication_constraint; +ber_type_decoder_f Vanetza_ITS2_UsageIndication_decode_ber; +der_type_encoder_f Vanetza_ITS2_UsageIndication_encode_der; +xer_type_decoder_f Vanetza_ITS2_UsageIndication_decode_xer; +xer_type_encoder_f Vanetza_ITS2_UsageIndication_encode_xer; +jer_type_encoder_f Vanetza_ITS2_UsageIndication_encode_jer; +oer_type_decoder_f Vanetza_ITS2_UsageIndication_decode_oer; +oer_type_encoder_f Vanetza_ITS2_UsageIndication_encode_oer; +per_type_decoder_f Vanetza_ITS2_UsageIndication_decode_uper; +per_type_encoder_f Vanetza_ITS2_UsageIndication_encode_uper; +per_type_decoder_f Vanetza_ITS2_UsageIndication_decode_aper; +per_type_encoder_f Vanetza_ITS2_UsageIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_UsageIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VDS.c b/vanetza/asn1/its/r2/VDS.c new file mode 100644 index 000000000..81702d5bb --- /dev/null +++ b/vanetza/asn1/its/r2/VDS.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VDS.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 +Vanetza_ITS2_VDS_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 == 6UL) + && !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_Vanetza_ITS2_VDS_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) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VDS_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 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_Vanetza_ITS2_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_Vanetza_ITS2_VDS_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VDS_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VDS_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VDS_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VDS_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VDS_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VDS_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VDS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VDS.h b/vanetza/asn1/its/r2/VDS.h new file mode 100644 index 000000000..5745dcae4 --- /dev/null +++ b/vanetza/asn1/its/r2/VDS.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VDS_H_ +#define _Vanetza_ITS2_VDS_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VDS */ +typedef IA5String_t Vanetza_ITS2_VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VDS; +asn_struct_free_f Vanetza_ITS2_VDS_free; +asn_struct_print_f Vanetza_ITS2_VDS_print; +asn_constr_check_f Vanetza_ITS2_VDS_constraint; +ber_type_decoder_f Vanetza_ITS2_VDS_decode_ber; +der_type_encoder_f Vanetza_ITS2_VDS_encode_der; +xer_type_decoder_f Vanetza_ITS2_VDS_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VDS_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VDS_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VDS_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VDS_encode_oer; +per_type_decoder_f Vanetza_ITS2_VDS_decode_uper; +per_type_encoder_f Vanetza_ITS2_VDS_encode_uper; +per_type_decoder_f Vanetza_ITS2_VDS_decode_aper; +per_type_encoder_f Vanetza_ITS2_VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VDS_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/ValidityDuration.c b/vanetza/asn1/its/r2/ValidityDuration.c new file mode 100644 index 000000000..5210672e5 --- /dev/null +++ b/vanetza/asn1/its/r2/ValidityDuration.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "ValidityDuration.h" + +int +Vanetza_ITS2_ValidityDuration_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 <= 86400L)) { + /* 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_Vanetza_ITS2_ValidityDuration_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..86400) */, + -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_Vanetza_ITS2_ValidityDuration_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 17, -1, 0, 86400 } /* (0..86400) */, + { 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_Vanetza_ITS2_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_ValidityDuration_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_ValidityDuration_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_ValidityDuration_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_ValidityDuration_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/ValidityDuration.h b/vanetza/asn1/its/r2/ValidityDuration.h new file mode 100644 index 000000000..580f2ab7e --- /dev/null +++ b/vanetza/asn1/its/r2/ValidityDuration.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_ValidityDuration_H_ +#define _Vanetza_ITS2_ValidityDuration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_ValidityDuration { + Vanetza_ITS2_ValidityDuration_timeOfDetection = 0, + Vanetza_ITS2_ValidityDuration_oneSecondAfterDetection = 1 +} e_Vanetza_ITS2_ValidityDuration; + +/* Vanetza_ITS2_ValidityDuration */ +typedef long Vanetza_ITS2_ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_ValidityDuration; +asn_struct_free_f Vanetza_ITS2_ValidityDuration_free; +asn_struct_print_f Vanetza_ITS2_ValidityDuration_print; +asn_constr_check_f Vanetza_ITS2_ValidityDuration_constraint; +ber_type_decoder_f Vanetza_ITS2_ValidityDuration_decode_ber; +der_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_der; +xer_type_decoder_f Vanetza_ITS2_ValidityDuration_decode_xer; +xer_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_xer; +jer_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_jer; +oer_type_decoder_f Vanetza_ITS2_ValidityDuration_decode_oer; +oer_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_oer; +per_type_decoder_f Vanetza_ITS2_ValidityDuration_decode_uper; +per_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_uper; +per_type_decoder_f Vanetza_ITS2_ValidityDuration_decode_aper; +per_type_encoder_f Vanetza_ITS2_ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ValidityDuration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VarLengthNumber.c b/vanetza/asn1/its/r2/VarLengthNumber.c new file mode 100644 index 000000000..8a5151864 --- /dev/null +++ b/vanetza/asn1/its/r2/VarLengthNumber.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VarLengthNumber.h" + +static int +memb_Vanetza_ITS2_content_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 <= 127L)) { + /* 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_Vanetza_ITS2_content_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -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_Vanetza_ITS2_content_constr_2 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) */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_VarLengthNumber_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_Vanetza_ITS2_VarLengthNumber_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 asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VarLengthNumber_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VarLengthNumber, choice.content), + (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_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_content_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_content_constraint_1 + }, + 0, 0, /* No default value */ + "content" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VarLengthNumber, choice.extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Ext1, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "extension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VarLengthNumber_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* content */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* extension */ +}; +static asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_VarLengthNumber_specs_1 = { + sizeof(struct Vanetza_ITS2_VarLengthNumber), + offsetof(struct Vanetza_ITS2_VarLengthNumber, _asn_ctx), + offsetof(struct Vanetza_ITS2_VarLengthNumber, present), + sizeof(((struct Vanetza_ITS2_VarLengthNumber *)0)->present), + asn_MAP_Vanetza_ITS2_VarLengthNumber_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VarLengthNumber = { + "VarLengthNumber", + "VarLengthNumber", + &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_Vanetza_ITS2_VarLengthNumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VarLengthNumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_VarLengthNumber_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VarLengthNumber_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VarLengthNumber.h b/vanetza/asn1/its/r2/VarLengthNumber.h new file mode 100644 index 000000000..40fc882db --- /dev/null +++ b/vanetza/asn1/its/r2/VarLengthNumber.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VarLengthNumber_H_ +#define _Vanetza_ITS2_VarLengthNumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" +#include "Ext1.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VarLengthNumber_PR { + Vanetza_ITS2_VarLengthNumber_PR_NOTHING, /* No components present */ + Vanetza_ITS2_VarLengthNumber_PR_content, + Vanetza_ITS2_VarLengthNumber_PR_extension +} Vanetza_ITS2_VarLengthNumber_PR; + +/* Vanetza_ITS2_VarLengthNumber */ +typedef struct Vanetza_ITS2_VarLengthNumber { + Vanetza_ITS2_VarLengthNumber_PR present; + union Vanetza_ITS2_VarLengthNumber_u { + long content; + Vanetza_ITS2_Ext1_t extension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VarLengthNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VarLengthNumber; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VarLengthNumber_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.c b/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.c new file mode 100644 index 000000000..a3ed94677 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleBreakdownSubCauseCode.h" + +int +Vanetza_ITS2_VehicleBreakdownSubCauseCode_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_Vanetza_ITS2_VehicleBreakdownSubCauseCode_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_Vanetza_ITS2_VehicleBreakdownSubCauseCode_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_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleBreakdownSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleBreakdownSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VehicleBreakdownSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.h b/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..584036f7a --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleBreakdownSubCauseCode.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleBreakdownSubCauseCode_H_ +#define _Vanetza_ITS2_VehicleBreakdownSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleBreakdownSubCauseCode { + Vanetza_ITS2_VehicleBreakdownSubCauseCode_unavailable = 0, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_lackOfFuel = 1, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_engineProblem = 3, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_transmissionProblem = 4, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_steeringProblem = 7, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_tyrePuncture = 8, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_tyrePressureProblem = 9, + Vanetza_ITS2_VehicleBreakdownSubCauseCode_vehicleOnFire = 10 +} e_Vanetza_ITS2_VehicleBreakdownSubCauseCode; + +/* Vanetza_ITS2_VehicleBreakdownSubCauseCode */ +typedef long Vanetza_ITS2_VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleBreakdownSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleBreakdownSubCauseCode; +asn_struct_free_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleBreakdownSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleHeight.c b/vanetza/asn1/its/r2/VehicleHeight.c new file mode 100644 index 000000000..2e844f7c5 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleHeight.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleHeight.h" + +int +Vanetza_ITS2_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 >= 1L && value <= 128L)) { + /* 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_Vanetza_ITS2_VehicleHeight_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -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_Vanetza_ITS2_VehicleHeight_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { 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_Vanetza_ITS2_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleHeight_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleHeight_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleHeight_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VehicleHeight_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleHeight.h b/vanetza/asn1/its/r2/VehicleHeight.h new file mode 100644 index 000000000..113fb8044 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleHeight.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleHeight_H_ +#define _Vanetza_ITS2_VehicleHeight_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleHeight { + Vanetza_ITS2_VehicleHeight_outOfRange = 126, + Vanetza_ITS2_VehicleHeight_unavailable = 127 +} e_Vanetza_ITS2_VehicleHeight; + +/* Vanetza_ITS2_VehicleHeight */ +typedef long Vanetza_ITS2_VehicleHeight_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleHeight; +asn_struct_free_f Vanetza_ITS2_VehicleHeight_free; +asn_struct_print_f Vanetza_ITS2_VehicleHeight_print; +asn_constr_check_f Vanetza_ITS2_VehicleHeight_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleHeight_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleHeight_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleHeight_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleHeight_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleHeight_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleHeight_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleIdentification.c b/vanetza/asn1/its/r2/VehicleIdentification.c new file mode 100644 index 000000000..b1354d171 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleIdentification.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleIdentification.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_WMInumber, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "wMInumber" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VDS, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vDS" + }, +}; +static const int asn_MAP_Vanetza_ITS2_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VehicleIdentification_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wMInumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vDS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VehicleIdentification_specs_1 = { + sizeof(struct Vanetza_ITS2_VehicleIdentification), + offsetof(struct Vanetza_ITS2_VehicleIdentification, _asn_ctx), + asn_MAP_Vanetza_ITS2_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleIdentification_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleIdentification_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleIdentification.h b/vanetza/asn1/its/r2/VehicleIdentification.h new file mode 100644 index 000000000..ebb34c927 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleIdentification.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleIdentification_H_ +#define _Vanetza_ITS2_VehicleIdentification_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "WMInumber.h" +#include "VDS.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VehicleIdentification */ +typedef struct Vanetza_ITS2_VehicleIdentification { + Vanetza_ITS2_WMInumber_t *wMInumber; /* OPTIONAL */ + Vanetza_ITS2_VDS_t *vDS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleIdentification; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VehicleIdentification_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VehicleIdentification_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleIdentification_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleLength.c b/vanetza/asn1/its/r2/VehicleLength.c new file mode 100644 index 000000000..dead7f306 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLength.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleLength.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleLengthValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleLengthConfidenceIndication" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VehicleLength_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vehicleLengthConfidenceIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VehicleLength_specs_1 = { + sizeof(struct Vanetza_ITS2_VehicleLength), + offsetof(struct Vanetza_ITS2_VehicleLength, _asn_ctx), + asn_MAP_Vanetza_ITS2_VehicleLength_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_Vanetza_ITS2_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VehicleLength_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleLength_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleLength_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLength_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleLength.h b/vanetza/asn1/its/r2/VehicleLength.h new file mode 100644 index 000000000..b6caa9b5f --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLength.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleLength_H_ +#define _Vanetza_ITS2_VehicleLength_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "VehicleLengthConfidenceIndication.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VehicleLength */ +typedef struct Vanetza_ITS2_VehicleLength { + Vanetza_ITS2_VehicleLengthValue_t vehicleLengthValue; + Vanetza_ITS2_VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLength; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VehicleLength_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VehicleLength_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleLength_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.c b/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.c new file mode 100644 index 000000000..e29807919 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleLengthConfidenceIndication.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_Vanetza_ITS2_VehicleLengthConfidenceIndication_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_Vanetza_ITS2_VehicleLengthConfidenceIndication_constr_1 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) */ +static const asn_INTEGER_enum_map_t asn_MAP_Vanetza_ITS2_VehicleLengthConfidenceIndication_value2enum_1[] = { + { 0, 16, "noTrailerPresent" }, + { 1, 29, "trailerPresentWithKnownLength" }, + { 2, 31, "trailerPresentWithUnknownLength" }, + { 3, 24, "trailerPresenceIsUnknown" }, + { 4, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_VehicleLengthConfidenceIndication_enum2value_1[] = { + 0, /* noTrailerPresent(0) */ + 3, /* trailerPresenceIsUnknown(3) */ + 1, /* trailerPresentWithKnownLength(1) */ + 2, /* trailerPresentWithUnknownLength(2) */ + 4 /* unavailable(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_Vanetza_ITS2_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_VehicleLengthConfidenceIndication_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleLengthConfidenceIndication_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleLengthConfidenceIndication_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.h b/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..252d3e654 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthConfidenceIndication.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleLengthConfidenceIndication_H_ +#define _Vanetza_ITS2_VehicleLengthConfidenceIndication_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleLengthConfidenceIndication { + Vanetza_ITS2_VehicleLengthConfidenceIndication_noTrailerPresent = 0, + Vanetza_ITS2_VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + Vanetza_ITS2_VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + Vanetza_ITS2_VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + Vanetza_ITS2_VehicleLengthConfidenceIndication_unavailable = 4 +} e_Vanetza_ITS2_VehicleLengthConfidenceIndication; + +/* Vanetza_ITS2_VehicleLengthConfidenceIndication */ +typedef long Vanetza_ITS2_VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f Vanetza_ITS2_VehicleLengthConfidenceIndication_free; +asn_struct_print_f Vanetza_ITS2_VehicleLengthConfidenceIndication_print; +asn_constr_check_f Vanetza_ITS2_VehicleLengthConfidenceIndication_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleLengthConfidenceIndication_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleLengthV2.c b/vanetza/asn1/its/r2/VehicleLengthV2.c new file mode 100644 index 000000000..2a2c7ec88 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthV2.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleLengthV2.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VehicleLengthV2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VehicleLengthV2, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VehicleLengthValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicleLengthValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VehicleLengthV2, trailerPresenceInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_TrailerPresenceInformation, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "trailerPresenceInformation" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VehicleLengthV2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicleLengthValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* trailerPresenceInformation */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VehicleLengthV2_specs_1 = { + sizeof(struct Vanetza_ITS2_VehicleLengthV2), + offsetof(struct Vanetza_ITS2_VehicleLengthV2, _asn_ctx), + asn_MAP_Vanetza_ITS2_VehicleLengthV2_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_Vanetza_ITS2_VehicleLengthV2 = { + "VehicleLengthV2", + "VehicleLengthV2", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthV2_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthV2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VehicleLengthV2_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VehicleLengthV2_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleLengthV2.h b/vanetza/asn1/its/r2/VehicleLengthV2.h new file mode 100644 index 000000000..41a1d6f20 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthV2.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleLengthV2_H_ +#define _Vanetza_ITS2_VehicleLengthV2_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VehicleLengthValue.h" +#include "TrailerPresenceInformation.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VehicleLengthV2 */ +typedef struct Vanetza_ITS2_VehicleLengthV2 { + Vanetza_ITS2_VehicleLengthValue_t vehicleLengthValue; + Vanetza_ITS2_TrailerPresenceInformation_t trailerPresenceInformation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VehicleLengthV2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLengthV2; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleLengthV2_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleLengthValue.c b/vanetza/asn1/its/r2/VehicleLengthValue.c new file mode 100644 index 000000000..13786f89c --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleLengthValue.h" + +int +Vanetza_ITS2_VehicleLengthValue_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 <= 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_Vanetza_ITS2_VehicleLengthValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..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_Vanetza_ITS2_VehicleLengthValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1023 } /* (1..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_Vanetza_ITS2_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleLengthValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleLengthValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleLengthValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VehicleLengthValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleLengthValue.h b/vanetza/asn1/its/r2/VehicleLengthValue.h new file mode 100644 index 000000000..cbd5e5f19 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleLengthValue.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleLengthValue_H_ +#define _Vanetza_ITS2_VehicleLengthValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleLengthValue { + Vanetza_ITS2_VehicleLengthValue_outOfRange = 1022, + Vanetza_ITS2_VehicleLengthValue_unavailable = 1023 +} e_Vanetza_ITS2_VehicleLengthValue; + +/* Vanetza_ITS2_VehicleLengthValue */ +typedef long Vanetza_ITS2_VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleLengthValue; +asn_struct_free_f Vanetza_ITS2_VehicleLengthValue_free; +asn_struct_print_f Vanetza_ITS2_VehicleLengthValue_print; +asn_constr_check_f Vanetza_ITS2_VehicleLengthValue_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleLengthValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleLengthValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleLengthValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleLengthValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleLengthValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleLengthValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleMass.c b/vanetza/asn1/its/r2/VehicleMass.c new file mode 100644 index 000000000..645cf92a7 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleMass.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleMass.h" + +int +Vanetza_ITS2_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 >= 1L && value <= 1024L)) { + /* 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_Vanetza_ITS2_VehicleMass_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -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_Vanetza_ITS2_VehicleMass_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { 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_Vanetza_ITS2_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VehicleMass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleMass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleMass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleMass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleMass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleMass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VehicleMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleMass.h b/vanetza/asn1/its/r2/VehicleMass.h new file mode 100644 index 000000000..bdf743cde --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleMass.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleMass_H_ +#define _Vanetza_ITS2_VehicleMass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleMass { + Vanetza_ITS2_VehicleMass_outOfRange = 1023, + Vanetza_ITS2_VehicleMass_unavailable = 1024 +} e_Vanetza_ITS2_VehicleMass; + +/* Vanetza_ITS2_VehicleMass */ +typedef long Vanetza_ITS2_VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleMass; +asn_struct_free_f Vanetza_ITS2_VehicleMass_free; +asn_struct_print_f Vanetza_ITS2_VehicleMass_print; +asn_constr_check_f Vanetza_ITS2_VehicleMass_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleMass_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleMass_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleMass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleMass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleMass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleMass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleMass_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleMass_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleMass_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleMass_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleMass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleRole.c b/vanetza/asn1/its/r2/VehicleRole.c new file mode 100644 index 000000000..940efd1d0 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleRole.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleRole.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_Vanetza_ITS2_VehicleRole_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_Vanetza_ITS2_VehicleRole_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_Vanetza_ITS2_VehicleRole_value2enum_1[] = { + { 0, 7, "default" }, + { 1, 15, "publicTransport" }, + { 2, 16, "specialTransport" }, + { 3, 14, "dangerousGoods" }, + { 4, 8, "roadWork" }, + { 5, 6, "rescue" }, + { 6, 9, "emergency" }, + { 7, 9, "safetyCar" }, + { 8, 11, "agriculture" }, + { 9, 10, "commercial" }, + { 10, 8, "military" }, + { 11, 12, "roadOperator" }, + { 12, 4, "taxi" }, + { 13, 4, "uvar" }, + { 14, 4, "rfu1" }, + { 15, 4, "rfu2" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_VehicleRole_enum2value_1[] = { + 8, /* agriculture(8) */ + 9, /* commercial(9) */ + 3, /* dangerousGoods(3) */ + 0, /* default(0) */ + 6, /* emergency(6) */ + 10, /* military(10) */ + 1, /* publicTransport(1) */ + 5, /* rescue(5) */ + 14, /* rfu1(14) */ + 15, /* rfu2(15) */ + 11, /* roadOperator(11) */ + 4, /* roadWork(4) */ + 7, /* safetyCar(7) */ + 2, /* specialTransport(2) */ + 12, /* taxi(12) */ + 13 /* uvar(13) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_VehicleRole_specs_1 = { + asn_MAP_Vanetza_ITS2_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_VehicleRole_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_Vanetza_ITS2_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_VehicleRole_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleRole_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleRole_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleRole_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleRole_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleRole_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleRole.h b/vanetza/asn1/its/r2/VehicleRole.h new file mode 100644 index 000000000..0d972eebb --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleRole.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleRole_H_ +#define _Vanetza_ITS2_VehicleRole_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleRole { + Vanetza_ITS2_VehicleRole_default = 0, + Vanetza_ITS2_VehicleRole_publicTransport = 1, + Vanetza_ITS2_VehicleRole_specialTransport = 2, + Vanetza_ITS2_VehicleRole_dangerousGoods = 3, + Vanetza_ITS2_VehicleRole_roadWork = 4, + Vanetza_ITS2_VehicleRole_rescue = 5, + Vanetza_ITS2_VehicleRole_emergency = 6, + Vanetza_ITS2_VehicleRole_safetyCar = 7, + Vanetza_ITS2_VehicleRole_agriculture = 8, + Vanetza_ITS2_VehicleRole_commercial = 9, + Vanetza_ITS2_VehicleRole_military = 10, + Vanetza_ITS2_VehicleRole_roadOperator = 11, + Vanetza_ITS2_VehicleRole_taxi = 12, + Vanetza_ITS2_VehicleRole_uvar = 13, + Vanetza_ITS2_VehicleRole_rfu1 = 14, + Vanetza_ITS2_VehicleRole_rfu2 = 15 +} e_Vanetza_ITS2_VehicleRole; + +/* Vanetza_ITS2_VehicleRole */ +typedef long Vanetza_ITS2_VehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_VehicleRole_specs_1; +asn_struct_free_f Vanetza_ITS2_VehicleRole_free; +asn_struct_print_f Vanetza_ITS2_VehicleRole_print; +asn_constr_check_f Vanetza_ITS2_VehicleRole_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleRole_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleRole_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleRole_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleRole_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleRole_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleRole_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleRole_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleRole_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleRole_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleRole_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleRole_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VehicleWidth.c b/vanetza/asn1/its/r2/VehicleWidth.c new file mode 100644 index 000000000..55e5905b8 --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleWidth.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VehicleWidth.h" + +int +Vanetza_ITS2_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 >= 1L && value <= 62L)) { + /* 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_Vanetza_ITS2_VehicleWidth_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -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_Vanetza_ITS2_VehicleWidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { 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_Vanetza_ITS2_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VehicleWidth_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VehicleWidth_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VehicleWidth_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VehicleWidth_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VehicleWidth.h b/vanetza/asn1/its/r2/VehicleWidth.h new file mode 100644 index 000000000..84030f5ed --- /dev/null +++ b/vanetza/asn1/its/r2/VehicleWidth.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VehicleWidth_H_ +#define _Vanetza_ITS2_VehicleWidth_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VehicleWidth { + Vanetza_ITS2_VehicleWidth_outOfRange = 61, + Vanetza_ITS2_VehicleWidth_unavailable = 62 +} e_Vanetza_ITS2_VehicleWidth; + +/* Vanetza_ITS2_VehicleWidth */ +typedef long Vanetza_ITS2_VehicleWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VehicleWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VehicleWidth; +asn_struct_free_f Vanetza_ITS2_VehicleWidth_free; +asn_struct_print_f Vanetza_ITS2_VehicleWidth_print; +asn_constr_check_f Vanetza_ITS2_VehicleWidth_constraint; +ber_type_decoder_f Vanetza_ITS2_VehicleWidth_decode_ber; +der_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_der; +xer_type_decoder_f Vanetza_ITS2_VehicleWidth_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VehicleWidth_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_oer; +per_type_decoder_f Vanetza_ITS2_VehicleWidth_decode_uper; +per_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_uper; +per_type_decoder_f Vanetza_ITS2_VehicleWidth_decode_aper; +per_type_encoder_f Vanetza_ITS2_VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VehicleWidth_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Velocity3dWithConfidence.c b/vanetza/asn1/its/r2/Velocity3dWithConfidence.c new file mode 100644 index 000000000..7071640bc --- /dev/null +++ b/vanetza/asn1/its/r2/Velocity3dWithConfidence.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Velocity3dWithConfidence.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_Velocity3dWithConfidence_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_Vanetza_ITS2_Velocity3dWithConfidence_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_Vanetza_ITS2_Velocity3dWithConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Velocity3dWithConfidence, choice.polarVelocity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityPolarWithZ, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "polarVelocity" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Velocity3dWithConfidence, choice.cartesianVelocity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityCartesian, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "cartesianVelocity" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Velocity3dWithConfidence_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* polarVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cartesianVelocity */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Velocity3dWithConfidence_specs_1 = { + sizeof(struct Vanetza_ITS2_Velocity3dWithConfidence), + offsetof(struct Vanetza_ITS2_Velocity3dWithConfidence, _asn_ctx), + offsetof(struct Vanetza_ITS2_Velocity3dWithConfidence, present), + sizeof(((struct Vanetza_ITS2_Velocity3dWithConfidence *)0)->present), + asn_MAP_Vanetza_ITS2_Velocity3dWithConfidence_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Velocity3dWithConfidence = { + "Velocity3dWithConfidence", + "Velocity3dWithConfidence", + &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_Vanetza_ITS2_Velocity3dWithConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Velocity3dWithConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_Velocity3dWithConfidence_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Velocity3dWithConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Velocity3dWithConfidence.h b/vanetza/asn1/its/r2/Velocity3dWithConfidence.h new file mode 100644 index 000000000..8d606e470 --- /dev/null +++ b/vanetza/asn1/its/r2/Velocity3dWithConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Velocity3dWithConfidence_H_ +#define _Vanetza_ITS2_Velocity3dWithConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VelocityPolarWithZ.h" +#include "VelocityCartesian.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Velocity3dWithConfidence_PR { + Vanetza_ITS2_Velocity3dWithConfidence_PR_NOTHING, /* No components present */ + Vanetza_ITS2_Velocity3dWithConfidence_PR_polarVelocity, + Vanetza_ITS2_Velocity3dWithConfidence_PR_cartesianVelocity +} Vanetza_ITS2_Velocity3dWithConfidence_PR; + +/* Vanetza_ITS2_Velocity3dWithConfidence */ +typedef struct Vanetza_ITS2_Velocity3dWithConfidence { + Vanetza_ITS2_Velocity3dWithConfidence_PR present; + union Vanetza_ITS2_Velocity3dWithConfidence_u { + Vanetza_ITS2_VelocityPolarWithZ_t polarVelocity; + Vanetza_ITS2_VelocityCartesian_t cartesianVelocity; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Velocity3dWithConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Velocity3dWithConfidence; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_Velocity3dWithConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Velocity3dWithConfidence_1[2]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Velocity3dWithConfidence_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Velocity3dWithConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VelocityCartesian.c b/vanetza/asn1/its/r2/VelocityCartesian.c new file mode 100644 index 000000000..af9fcba98 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityCartesian.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VelocityCartesian.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityCartesian_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityCartesian, xVelocity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "xVelocity" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityCartesian, yVelocity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yVelocity" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_VelocityCartesian, zVelocity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zVelocity" + }, +}; +static const int asn_MAP_Vanetza_ITS2_VelocityCartesian_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VelocityCartesian_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* yVelocity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zVelocity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VelocityCartesian_specs_1 = { + sizeof(struct Vanetza_ITS2_VelocityCartesian), + offsetof(struct Vanetza_ITS2_VelocityCartesian, _asn_ctx), + asn_MAP_Vanetza_ITS2_VelocityCartesian_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_VelocityCartesian_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityCartesian = { + "VelocityCartesian", + "VelocityCartesian", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VelocityCartesian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityCartesian_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VelocityCartesian_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VelocityCartesian_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VelocityCartesian.h b/vanetza/asn1/its/r2/VelocityCartesian.h new file mode 100644 index 000000000..5809e0089 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityCartesian.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VelocityCartesian_H_ +#define _Vanetza_ITS2_VelocityCartesian_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VelocityComponent.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_VelocityComponent; + +/* Vanetza_ITS2_VelocityCartesian */ +typedef struct Vanetza_ITS2_VelocityCartesian { + Vanetza_ITS2_VelocityComponent_t xVelocity; + Vanetza_ITS2_VelocityComponent_t yVelocity; + struct Vanetza_ITS2_VelocityComponent *zVelocity; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VelocityCartesian_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityCartesian; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VelocityCartesian_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityCartesian_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "VelocityComponent.h" + +#endif /* _Vanetza_ITS2_VelocityCartesian_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VelocityComponent.c b/vanetza/asn1/its/r2/VelocityComponent.c new file mode 100644 index 000000000..3876a1f55 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityComponent.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VelocityComponent.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityComponent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityComponent, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityComponentValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityComponent, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VelocityComponent_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_Vanetza_ITS2_VelocityComponent_specs_1 = { + sizeof(struct Vanetza_ITS2_VelocityComponent), + offsetof(struct Vanetza_ITS2_VelocityComponent, _asn_ctx), + asn_MAP_Vanetza_ITS2_VelocityComponent_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_Vanetza_ITS2_VelocityComponent = { + "VelocityComponent", + "VelocityComponent", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VelocityComponent_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityComponent_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VelocityComponent_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VelocityComponent_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VelocityComponent.h b/vanetza/asn1/its/r2/VelocityComponent.h new file mode 100644 index 000000000..09aa157d4 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityComponent.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VelocityComponent_H_ +#define _Vanetza_ITS2_VelocityComponent_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VelocityComponentValue.h" +#include "SpeedConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VelocityComponent */ +typedef struct Vanetza_ITS2_VelocityComponent { + Vanetza_ITS2_VelocityComponentValue_t value; + Vanetza_ITS2_SpeedConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VelocityComponent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityComponent; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VelocityComponent_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityComponent_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VelocityComponent_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VelocityComponentValue.c b/vanetza/asn1/its/r2/VelocityComponentValue.c new file mode 100644 index 000000000..fb14e4681 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityComponentValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VelocityComponentValue.h" + +int +Vanetza_ITS2_VelocityComponentValue_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 >= -16383L && value <= 16383L)) { + /* 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_Vanetza_ITS2_VelocityComponentValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-16383..16383) */, + -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_Vanetza_ITS2_VelocityComponentValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, -16383, 16383 } /* (-16383..16383) */, + { 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_Vanetza_ITS2_VelocityComponentValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityComponentValue = { + "VelocityComponentValue", + "VelocityComponentValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityComponentValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VelocityComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VelocityComponentValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VelocityComponentValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VelocityComponentValue.h b/vanetza/asn1/its/r2/VelocityComponentValue.h new file mode 100644 index 000000000..e581d6c9d --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityComponentValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VelocityComponentValue_H_ +#define _Vanetza_ITS2_VelocityComponentValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VelocityComponentValue { + Vanetza_ITS2_VelocityComponentValue_negativeOutOfRange = -16383, + Vanetza_ITS2_VelocityComponentValue_positiveOutOfRange = 16382, + Vanetza_ITS2_VelocityComponentValue_unavailable = 16383 +} e_Vanetza_ITS2_VelocityComponentValue; + +/* Vanetza_ITS2_VelocityComponentValue */ +typedef long Vanetza_ITS2_VelocityComponentValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VelocityComponentValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityComponentValue; +asn_struct_free_f Vanetza_ITS2_VelocityComponentValue_free; +asn_struct_print_f Vanetza_ITS2_VelocityComponentValue_print; +asn_constr_check_f Vanetza_ITS2_VelocityComponentValue_constraint; +ber_type_decoder_f Vanetza_ITS2_VelocityComponentValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_VelocityComponentValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VelocityComponentValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_VelocityComponentValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_VelocityComponentValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_VelocityComponentValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VelocityComponentValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VelocityPolarWithZ.c b/vanetza/asn1/its/r2/VelocityPolarWithZ.c new file mode 100644 index 000000000..871504c2e --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityPolarWithZ.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VelocityPolarWithZ.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityPolarWithZ_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityPolarWithZ, velocityMagnitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "velocityMagnitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VelocityPolarWithZ, velocityDirection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CartesianAngle, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "velocityDirection" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_VelocityPolarWithZ, zVelocity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VelocityComponent, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "zVelocity" + }, +}; +static const int asn_MAP_Vanetza_ITS2_VelocityPolarWithZ_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VelocityPolarWithZ_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* velocityMagnitude */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* velocityDirection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* zVelocity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VelocityPolarWithZ_specs_1 = { + sizeof(struct Vanetza_ITS2_VelocityPolarWithZ), + offsetof(struct Vanetza_ITS2_VelocityPolarWithZ, _asn_ctx), + asn_MAP_Vanetza_ITS2_VelocityPolarWithZ_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_VelocityPolarWithZ_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityPolarWithZ = { + "VelocityPolarWithZ", + "VelocityPolarWithZ", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VelocityPolarWithZ_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VelocityPolarWithZ_1, + 3, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VelocityPolarWithZ_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VelocityPolarWithZ.h b/vanetza/asn1/its/r2/VelocityPolarWithZ.h new file mode 100644 index 000000000..d59ef17f0 --- /dev/null +++ b/vanetza/asn1/its/r2/VelocityPolarWithZ.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VelocityPolarWithZ_H_ +#define _Vanetza_ITS2_VelocityPolarWithZ_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Speed.h" +#include "CartesianAngle.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_VelocityComponent; + +/* Vanetza_ITS2_VelocityPolarWithZ */ +typedef struct Vanetza_ITS2_VelocityPolarWithZ { + Vanetza_ITS2_Speed_t velocityMagnitude; + Vanetza_ITS2_CartesianAngle_t velocityDirection; + struct Vanetza_ITS2_VelocityComponent *zVelocity; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VelocityPolarWithZ_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VelocityPolarWithZ; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VelocityPolarWithZ_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VelocityPolarWithZ_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "VelocityComponent.h" + +#endif /* _Vanetza_ITS2_VelocityPolarWithZ_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VerticalAcceleration.c b/vanetza/asn1/its/r2/VerticalAcceleration.c new file mode 100644 index 000000000..295b236d9 --- /dev/null +++ b/vanetza/asn1/its/r2/VerticalAcceleration.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VerticalAccelerationValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalAccelerationValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "verticalAccelerationConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VerticalAcceleration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* verticalAccelerationValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* verticalAccelerationConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VerticalAcceleration_specs_1 = { + sizeof(struct Vanetza_ITS2_VerticalAcceleration), + offsetof(struct Vanetza_ITS2_VerticalAcceleration, _asn_ctx), + asn_MAP_Vanetza_ITS2_VerticalAcceleration_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_Vanetza_ITS2_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VerticalAcceleration_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VerticalAcceleration.h b/vanetza/asn1/its/r2/VerticalAcceleration.h new file mode 100644 index 000000000..d39d19337 --- /dev/null +++ b/vanetza/asn1/its/r2/VerticalAcceleration.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VerticalAcceleration_H_ +#define _Vanetza_ITS2_VerticalAcceleration_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VerticalAccelerationValue.h" +#include "AccelerationConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VerticalAcceleration */ +typedef struct Vanetza_ITS2_VerticalAcceleration { + Vanetza_ITS2_VerticalAccelerationValue_t verticalAccelerationValue; + Vanetza_ITS2_AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VerticalAcceleration_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VerticalAccelerationValue.c b/vanetza/asn1/its/r2/VerticalAccelerationValue.c new file mode 100644 index 000000000..0bdd2c2c8 --- /dev/null +++ b/vanetza/asn1/its/r2/VerticalAccelerationValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VerticalAccelerationValue.h" + +int +Vanetza_ITS2_VerticalAccelerationValue_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 >= -160L && value <= 161L)) { + /* 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_Vanetza_ITS2_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-160..161) */, + -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_Vanetza_ITS2_VerticalAccelerationValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, -160, 161 } /* (-160..161) */, + { 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_Vanetza_ITS2_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VerticalAccelerationValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VerticalAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VerticalAccelerationValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VerticalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VerticalAccelerationValue.h b/vanetza/asn1/its/r2/VerticalAccelerationValue.h new file mode 100644 index 000000000..432e8d83f --- /dev/null +++ b/vanetza/asn1/its/r2/VerticalAccelerationValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VerticalAccelerationValue_H_ +#define _Vanetza_ITS2_VerticalAccelerationValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VerticalAccelerationValue { + Vanetza_ITS2_VerticalAccelerationValue_negativeOutOfRange = -160, + Vanetza_ITS2_VerticalAccelerationValue_positiveOutOfRange = 160, + Vanetza_ITS2_VerticalAccelerationValue_unavailable = 161 +} e_Vanetza_ITS2_VerticalAccelerationValue; + +/* Vanetza_ITS2_VerticalAccelerationValue */ +typedef long Vanetza_ITS2_VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VerticalAccelerationValue; +asn_struct_free_f Vanetza_ITS2_VerticalAccelerationValue_free; +asn_struct_print_f Vanetza_ITS2_VerticalAccelerationValue_print; +asn_constr_check_f Vanetza_ITS2_VerticalAccelerationValue_constraint; +ber_type_decoder_f Vanetza_ITS2_VerticalAccelerationValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_VerticalAccelerationValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VerticalAccelerationValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_VerticalAccelerationValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_VerticalAccelerationValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VerticalAccelerationValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruClusterInformation.c b/vanetza/asn1/its/r2/VruClusterInformation.c new file mode 100644 index 000000000..a70fa603d --- /dev/null +++ b/vanetza/asn1/its/r2/VruClusterInformation.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruClusterInformation.h" + +static int +memb_Vanetza_ITS2_clusterBoundingBoxShape_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_Vanetza_ITS2_clusterBoundingBoxShape_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_Vanetza_ITS2_clusterBoundingBoxShape_constr_3 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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VruClusterInformation_1[] = { + { ATF_POINTER, 2, offsetof(struct Vanetza_ITS2_VruClusterInformation, clusterId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Identifier1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterId" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_VruClusterInformation, clusterBoundingBoxShape), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Shape, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_clusterBoundingBoxShape_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_clusterBoundingBoxShape_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_clusterBoundingBoxShape_constraint_1 + }, + 0, 0, /* No default value */ + "clusterBoundingBoxShape" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruClusterInformation, clusterCardinalitySize), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CardinalNumber1B, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterCardinalitySize" + }, + { ATF_POINTER, 1, offsetof(struct Vanetza_ITS2_VruClusterInformation, clusterProfiles), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruClusterProfiles, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "clusterProfiles" + }, +}; +static const int asn_MAP_Vanetza_ITS2_VruClusterInformation_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VruClusterInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* clusterId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* clusterBoundingBoxShape */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* clusterCardinalitySize */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* clusterProfiles */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VruClusterInformation_specs_1 = { + sizeof(struct Vanetza_ITS2_VruClusterInformation), + offsetof(struct Vanetza_ITS2_VruClusterInformation, _asn_ctx), + asn_MAP_Vanetza_ITS2_VruClusterInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Vanetza_ITS2_VruClusterInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruClusterInformation = { + "VruClusterInformation", + "VruClusterInformation", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruClusterInformation_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruClusterInformation_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VruClusterInformation_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VruClusterInformation_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VruClusterInformation.h b/vanetza/asn1/its/r2/VruClusterInformation.h new file mode 100644 index 000000000..dac99efa9 --- /dev/null +++ b/vanetza/asn1/its/r2/VruClusterInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruClusterInformation_H_ +#define _Vanetza_ITS2_VruClusterInformation_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Identifier1B.h" +#include "CardinalNumber1B.h" +#include "VruClusterProfiles.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Vanetza_ITS2_Shape; + +/* Vanetza_ITS2_VruClusterInformation */ +typedef struct Vanetza_ITS2_VruClusterInformation { + Vanetza_ITS2_Identifier1B_t *clusterId; /* OPTIONAL */ + struct Vanetza_ITS2_Shape *clusterBoundingBoxShape; /* OPTIONAL */ + Vanetza_ITS2_CardinalNumber1B_t clusterCardinalitySize; + Vanetza_ITS2_VruClusterProfiles_t *clusterProfiles; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VruClusterInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruClusterInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VruClusterInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VruClusterInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "Shape.h" + +#endif /* _Vanetza_ITS2_VruClusterInformation_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruClusterProfiles.c b/vanetza/asn1/its/r2/VruClusterProfiles.c new file mode 100644 index 000000000..50d6565f3 --- /dev/null +++ b/vanetza/asn1/its/r2/VruClusterProfiles.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruClusterProfiles.h" + +int +Vanetza_ITS2_VruClusterProfiles_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 == 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 BIT_STRING, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_VruClusterProfiles_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_Vanetza_ITS2_VruClusterProfiles_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_VruClusterProfiles_constr_1 CC_NOTUSED = { + 4}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruClusterProfiles = { + "VruClusterProfiles", + "VruClusterProfiles", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruClusterProfiles_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruClusterProfiles_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruClusterProfiles_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_VruClusterProfiles_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruClusterProfiles_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VruClusterProfiles.h b/vanetza/asn1/its/r2/VruClusterProfiles.h new file mode 100644 index 000000000..55c0fdf5d --- /dev/null +++ b/vanetza/asn1/its/r2/VruClusterProfiles.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruClusterProfiles_H_ +#define _Vanetza_ITS2_VruClusterProfiles_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruClusterProfiles { + Vanetza_ITS2_VruClusterProfiles_pedestrian = 0, + Vanetza_ITS2_VruClusterProfiles_bicyclist = 1, + Vanetza_ITS2_VruClusterProfiles_motorcyclist = 2, + Vanetza_ITS2_VruClusterProfiles_animal = 3 +} e_Vanetza_ITS2_VruClusterProfiles; + +/* Vanetza_ITS2_VruClusterProfiles */ +typedef BIT_STRING_t Vanetza_ITS2_VruClusterProfiles_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruClusterProfiles_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruClusterProfiles; +asn_struct_free_f Vanetza_ITS2_VruClusterProfiles_free; +asn_struct_print_f Vanetza_ITS2_VruClusterProfiles_print; +asn_constr_check_f Vanetza_ITS2_VruClusterProfiles_constraint; +ber_type_decoder_f Vanetza_ITS2_VruClusterProfiles_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruClusterProfiles_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruClusterProfiles_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruClusterProfiles_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruClusterProfiles_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruClusterProfiles_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruClusterProfiles_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruDeviceUsage.c b/vanetza/asn1/its/r2/VruDeviceUsage.c new file mode 100644 index 000000000..7c4849e5f --- /dev/null +++ b/vanetza/asn1/its/r2/VruDeviceUsage.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruDeviceUsage.h" + +int +Vanetza_ITS2_VruDeviceUsage_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_Vanetza_ITS2_VruDeviceUsage_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruDeviceUsage_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_Vanetza_ITS2_VruDeviceUsage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruDeviceUsage = { + "VruDeviceUsage", + "VruDeviceUsage", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruDeviceUsage_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruDeviceUsage_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruDeviceUsage_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruDeviceUsage_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruDeviceUsage.h b/vanetza/asn1/its/r2/VruDeviceUsage.h new file mode 100644 index 000000000..ea2fd58c6 --- /dev/null +++ b/vanetza/asn1/its/r2/VruDeviceUsage.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruDeviceUsage_H_ +#define _Vanetza_ITS2_VruDeviceUsage_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruDeviceUsage { + Vanetza_ITS2_VruDeviceUsage_unavailable = 0, + Vanetza_ITS2_VruDeviceUsage_other = 1, + Vanetza_ITS2_VruDeviceUsage_idle = 2, + Vanetza_ITS2_VruDeviceUsage_listeningToAudio = 3, + Vanetza_ITS2_VruDeviceUsage_typing = 4, + Vanetza_ITS2_VruDeviceUsage_calling = 5, + Vanetza_ITS2_VruDeviceUsage_playingGames = 6, + Vanetza_ITS2_VruDeviceUsage_reading = 7, + Vanetza_ITS2_VruDeviceUsage_viewing = 8 +} e_Vanetza_ITS2_VruDeviceUsage; + +/* Vanetza_ITS2_VruDeviceUsage */ +typedef long Vanetza_ITS2_VruDeviceUsage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruDeviceUsage; +asn_struct_free_f Vanetza_ITS2_VruDeviceUsage_free; +asn_struct_print_f Vanetza_ITS2_VruDeviceUsage_print; +asn_constr_check_f Vanetza_ITS2_VruDeviceUsage_constraint; +ber_type_decoder_f Vanetza_ITS2_VruDeviceUsage_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruDeviceUsage_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruDeviceUsage_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruDeviceUsage_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruDeviceUsage_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruDeviceUsage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruDeviceUsage_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruEnvironment.c b/vanetza/asn1/its/r2/VruEnvironment.c new file mode 100644 index 000000000..8b7a43f45 --- /dev/null +++ b/vanetza/asn1/its/r2/VruEnvironment.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruEnvironment.h" + +int +Vanetza_ITS2_VruEnvironment_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_Vanetza_ITS2_VruEnvironment_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruEnvironment_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_Vanetza_ITS2_VruEnvironment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruEnvironment = { + "VruEnvironment", + "VruEnvironment", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruEnvironment_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruEnvironment_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruEnvironment_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruEnvironment_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruEnvironment.h b/vanetza/asn1/its/r2/VruEnvironment.h new file mode 100644 index 000000000..c8e55af52 --- /dev/null +++ b/vanetza/asn1/its/r2/VruEnvironment.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruEnvironment_H_ +#define _Vanetza_ITS2_VruEnvironment_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruEnvironment { + Vanetza_ITS2_VruEnvironment_unavailable = 0, + Vanetza_ITS2_VruEnvironment_intersectionCrossing = 1, + Vanetza_ITS2_VruEnvironment_zebraCrossing = 2, + Vanetza_ITS2_VruEnvironment_sidewalk = 3, + Vanetza_ITS2_VruEnvironment_onVehicleRoad = 4, + Vanetza_ITS2_VruEnvironment_protectedGeographicArea = 5 +} e_Vanetza_ITS2_VruEnvironment; + +/* Vanetza_ITS2_VruEnvironment */ +typedef long Vanetza_ITS2_VruEnvironment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruEnvironment; +asn_struct_free_f Vanetza_ITS2_VruEnvironment_free; +asn_struct_print_f Vanetza_ITS2_VruEnvironment_print; +asn_constr_check_f Vanetza_ITS2_VruEnvironment_constraint; +ber_type_decoder_f Vanetza_ITS2_VruEnvironment_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruEnvironment_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruEnvironment_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruEnvironment_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruEnvironment_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruEnvironment_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruEnvironment_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruExteriorLights.c b/vanetza/asn1/its/r2/VruExteriorLights.c new file mode 100644 index 000000000..ca3f71996 --- /dev/null +++ b/vanetza/asn1/its/r2/VruExteriorLights.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruExteriorLights.h" + +static asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VruExteriorLights_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruExteriorLights, vehicular), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vehicular" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruExteriorLights, vruSpecific), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "vruSpecific" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VruExteriorLights_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vehicular */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* vruSpecific */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_VruExteriorLights_specs_1 = { + sizeof(struct Vanetza_ITS2_VruExteriorLights), + offsetof(struct Vanetza_ITS2_VruExteriorLights, _asn_ctx), + asn_MAP_Vanetza_ITS2_VruExteriorLights_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_Vanetza_ITS2_VruExteriorLights = { + "VruExteriorLights", + "VruExteriorLights", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruExteriorLights_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_VruExteriorLights_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VruExteriorLights_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VruExteriorLights.h b/vanetza/asn1/its/r2/VruExteriorLights.h new file mode 100644 index 000000000..b655c96ff --- /dev/null +++ b/vanetza/asn1/its/r2/VruExteriorLights.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruExteriorLights_H_ +#define _Vanetza_ITS2_VruExteriorLights_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "ExteriorLights.h" +#include "VruSpecificExteriorLights.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_VruExteriorLights */ +typedef struct Vanetza_ITS2_VruExteriorLights { + Vanetza_ITS2_ExteriorLights_t vehicular; + Vanetza_ITS2_VruSpecificExteriorLights_t vruSpecific; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VruExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruExteriorLights; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruExteriorLights_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruMovementControl.c b/vanetza/asn1/its/r2/VruMovementControl.c new file mode 100644 index 000000000..25bab145c --- /dev/null +++ b/vanetza/asn1/its/r2/VruMovementControl.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruMovementControl.h" + +int +Vanetza_ITS2_VruMovementControl_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_Vanetza_ITS2_VruMovementControl_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruMovementControl_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_Vanetza_ITS2_VruMovementControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruMovementControl = { + "VruMovementControl", + "VruMovementControl", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruMovementControl_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruMovementControl_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruMovementControl_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruMovementControl_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruMovementControl.h b/vanetza/asn1/its/r2/VruMovementControl.h new file mode 100644 index 000000000..fdc1d92b9 --- /dev/null +++ b/vanetza/asn1/its/r2/VruMovementControl.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruMovementControl_H_ +#define _Vanetza_ITS2_VruMovementControl_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruMovementControl { + Vanetza_ITS2_VruMovementControl_unavailable = 0, + Vanetza_ITS2_VruMovementControl_braking = 1, + Vanetza_ITS2_VruMovementControl_hardBraking = 2, + Vanetza_ITS2_VruMovementControl_stopPedaling = 3, + Vanetza_ITS2_VruMovementControl_brakingAndStopPedaling = 4, + Vanetza_ITS2_VruMovementControl_hardBrakingAndStopPedaling = 5, + Vanetza_ITS2_VruMovementControl_noReaction = 6 +} e_Vanetza_ITS2_VruMovementControl; + +/* Vanetza_ITS2_VruMovementControl */ +typedef long Vanetza_ITS2_VruMovementControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruMovementControl; +asn_struct_free_f Vanetza_ITS2_VruMovementControl_free; +asn_struct_print_f Vanetza_ITS2_VruMovementControl_print; +asn_constr_check_f Vanetza_ITS2_VruMovementControl_constraint; +ber_type_decoder_f Vanetza_ITS2_VruMovementControl_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruMovementControl_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruMovementControl_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruMovementControl_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruMovementControl_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruMovementControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruMovementControl_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruProfileAndSubprofile.c b/vanetza/asn1/its/r2/VruProfileAndSubprofile.c new file mode 100644 index 000000000..056b8630d --- /dev/null +++ b/vanetza/asn1/its/r2/VruProfileAndSubprofile.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruProfileAndSubprofile.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_VruProfileAndSubprofile_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_Vanetza_ITS2_VruProfileAndSubprofile_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) */ +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VruProfileAndSubprofile_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, choice.pedestrian), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "pedestrian" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, choice.bicyclistAndLightVruVehicle), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "bicyclistAndLightVruVehicle" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, choice.motorcyclist), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "motorcyclist" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, choice.animal), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_VruSubProfileAnimal, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "animal" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_VruProfileAndSubprofile_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pedestrian */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bicyclistAndLightVruVehicle */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* motorcyclist */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* animal */ +}; +asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_VruProfileAndSubprofile_specs_1 = { + sizeof(struct Vanetza_ITS2_VruProfileAndSubprofile), + offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, _asn_ctx), + offsetof(struct Vanetza_ITS2_VruProfileAndSubprofile, present), + sizeof(((struct Vanetza_ITS2_VruProfileAndSubprofile *)0)->present), + asn_MAP_Vanetza_ITS2_VruProfileAndSubprofile_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruProfileAndSubprofile = { + "VruProfileAndSubprofile", + "VruProfileAndSubprofile", + &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_Vanetza_ITS2_VruProfileAndSubprofile_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruProfileAndSubprofile_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + CHOICE_constraint + }, + asn_MBR_Vanetza_ITS2_VruProfileAndSubprofile_1, + 4, /* Elements count */ + &asn_SPC_Vanetza_ITS2_VruProfileAndSubprofile_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VruProfileAndSubprofile.h b/vanetza/asn1/its/r2/VruProfileAndSubprofile.h new file mode 100644 index 000000000..2a4b6e0c5 --- /dev/null +++ b/vanetza/asn1/its/r2/VruProfileAndSubprofile.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruProfileAndSubprofile_H_ +#define _Vanetza_ITS2_VruProfileAndSubprofile_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "VruSubProfilePedestrian.h" +#include "VruSubProfileBicyclist.h" +#include "VruSubProfileMotorcyclist.h" +#include "VruSubProfileAnimal.h" +#include "constr_CHOICE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruProfileAndSubprofile_PR { + Vanetza_ITS2_VruProfileAndSubprofile_PR_NOTHING, /* No components present */ + Vanetza_ITS2_VruProfileAndSubprofile_PR_pedestrian, + Vanetza_ITS2_VruProfileAndSubprofile_PR_bicyclistAndLightVruVehicle, + Vanetza_ITS2_VruProfileAndSubprofile_PR_motorcyclist, + Vanetza_ITS2_VruProfileAndSubprofile_PR_animal + /* Extensions may appear below */ + +} Vanetza_ITS2_VruProfileAndSubprofile_PR; + +/* Vanetza_ITS2_VruProfileAndSubprofile */ +typedef struct Vanetza_ITS2_VruProfileAndSubprofile { + Vanetza_ITS2_VruProfileAndSubprofile_PR present; + union Vanetza_ITS2_VruProfileAndSubprofile_u { + Vanetza_ITS2_VruSubProfilePedestrian_t pedestrian; + Vanetza_ITS2_VruSubProfileBicyclist_t bicyclistAndLightVruVehicle; + Vanetza_ITS2_VruSubProfileMotorcyclist_t motorcyclist; + Vanetza_ITS2_VruSubProfileAnimal_t animal; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_VruProfileAndSubprofile_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruProfileAndSubprofile; +extern asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_VruProfileAndSubprofile_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_VruProfileAndSubprofile_1[4]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruProfileAndSubprofile_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruProfileAndSubprofile_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSizeClass.c b/vanetza/asn1/its/r2/VruSizeClass.c new file mode 100644 index 000000000..bf79bd0d9 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSizeClass.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSizeClass.h" + +int +Vanetza_ITS2_VruSizeClass_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_Vanetza_ITS2_VruSizeClass_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) +static asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSizeClass_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_Vanetza_ITS2_VruSizeClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSizeClass = { + "VruSizeClass", + "VruSizeClass", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSizeClass_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSizeClass_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSizeClass_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSizeClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruSizeClass.h b/vanetza/asn1/its/r2/VruSizeClass.h new file mode 100644 index 000000000..2cd1edcdd --- /dev/null +++ b/vanetza/asn1/its/r2/VruSizeClass.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSizeClass_H_ +#define _Vanetza_ITS2_VruSizeClass_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSizeClass { + Vanetza_ITS2_VruSizeClass_unavailable = 0, + Vanetza_ITS2_VruSizeClass_low = 1, + Vanetza_ITS2_VruSizeClass_medium = 2, + Vanetza_ITS2_VruSizeClass_high = 3 +} e_Vanetza_ITS2_VruSizeClass; + +/* Vanetza_ITS2_VruSizeClass */ +typedef long Vanetza_ITS2_VruSizeClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSizeClass; +asn_struct_free_f Vanetza_ITS2_VruSizeClass_free; +asn_struct_print_f Vanetza_ITS2_VruSizeClass_print; +asn_constr_check_f Vanetza_ITS2_VruSizeClass_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSizeClass_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSizeClass_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSizeClass_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSizeClass_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSizeClass_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSizeClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSizeClass_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSpecificExteriorLights.c b/vanetza/asn1/its/r2/VruSpecificExteriorLights.c new file mode 100644 index 000000000..8f8f23888 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSpecificExteriorLights.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSpecificExteriorLights.h" + +int +Vanetza_ITS2_VruSpecificExteriorLights_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_Vanetza_ITS2_VruSpecificExteriorLights_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_Vanetza_ITS2_VruSpecificExteriorLights_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) +static asn_jer_constraints_t asn_JER_type_Vanetza_ITS2_VruSpecificExteriorLights_constr_1 CC_NOTUSED = { + 8}; +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights = { + "VruSpecificExteriorLights", + "VruSpecificExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSpecificExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSpecificExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + &asn_JER_type_Vanetza_ITS2_VruSpecificExteriorLights_constr_1, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSpecificExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/VruSpecificExteriorLights.h b/vanetza/asn1/its/r2/VruSpecificExteriorLights.h new file mode 100644 index 000000000..a8943d235 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSpecificExteriorLights.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSpecificExteriorLights_H_ +#define _Vanetza_ITS2_VruSpecificExteriorLights_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "BIT_STRING.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSpecificExteriorLights { + Vanetza_ITS2_VruSpecificExteriorLights_unavailable = 0, + Vanetza_ITS2_VruSpecificExteriorLights_backFlashLight = 1, + Vanetza_ITS2_VruSpecificExteriorLights_helmetLight = 2, + Vanetza_ITS2_VruSpecificExteriorLights_armLight = 3, + Vanetza_ITS2_VruSpecificExteriorLights_legLight = 4, + Vanetza_ITS2_VruSpecificExteriorLights_wheelLight = 5 +} e_Vanetza_ITS2_VruSpecificExteriorLights; + +/* Vanetza_ITS2_VruSpecificExteriorLights */ +typedef BIT_STRING_t Vanetza_ITS2_VruSpecificExteriorLights_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSpecificExteriorLights_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSpecificExteriorLights; +asn_struct_free_f Vanetza_ITS2_VruSpecificExteriorLights_free; +asn_struct_print_f Vanetza_ITS2_VruSpecificExteriorLights_print; +asn_constr_check_f Vanetza_ITS2_VruSpecificExteriorLights_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSpecificExteriorLights_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSpecificExteriorLights_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSpecificExteriorLights_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSpecificExteriorLights_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSpecificExteriorLights_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSpecificExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSpecificExteriorLights_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSubProfileAnimal.c b/vanetza/asn1/its/r2/VruSubProfileAnimal.c new file mode 100644 index 000000000..1d83ba831 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileAnimal.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSubProfileAnimal.h" + +int +Vanetza_ITS2_VruSubProfileAnimal_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_Vanetza_ITS2_VruSubProfileAnimal_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_Vanetza_ITS2_VruSubProfileAnimal_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_Vanetza_ITS2_VruSubProfileAnimal_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileAnimal = { + "VruSubProfileAnimal", + "VruSubProfileAnimal", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileAnimal_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSubProfileAnimal_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSubProfileAnimal_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSubProfileAnimal_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruSubProfileAnimal.h b/vanetza/asn1/its/r2/VruSubProfileAnimal.h new file mode 100644 index 000000000..3da7a758f --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileAnimal.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSubProfileAnimal_H_ +#define _Vanetza_ITS2_VruSubProfileAnimal_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSubProfileAnimal { + Vanetza_ITS2_VruSubProfileAnimal_unavailable = 0, + Vanetza_ITS2_VruSubProfileAnimal_wild_animal = 1, + Vanetza_ITS2_VruSubProfileAnimal_farm_animal = 2, + Vanetza_ITS2_VruSubProfileAnimal_service_animal = 3 +} e_Vanetza_ITS2_VruSubProfileAnimal; + +/* Vanetza_ITS2_VruSubProfileAnimal */ +typedef long Vanetza_ITS2_VruSubProfileAnimal_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSubProfileAnimal_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileAnimal; +asn_struct_free_f Vanetza_ITS2_VruSubProfileAnimal_free; +asn_struct_print_f Vanetza_ITS2_VruSubProfileAnimal_print; +asn_constr_check_f Vanetza_ITS2_VruSubProfileAnimal_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSubProfileAnimal_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSubProfileAnimal_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSubProfileAnimal_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSubProfileAnimal_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSubProfileAnimal_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileAnimal_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSubProfileAnimal_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSubProfileBicyclist.c b/vanetza/asn1/its/r2/VruSubProfileBicyclist.c new file mode 100644 index 000000000..a55e7be86 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileBicyclist.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSubProfileBicyclist.h" + +int +Vanetza_ITS2_VruSubProfileBicyclist_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_Vanetza_ITS2_VruSubProfileBicyclist_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_Vanetza_ITS2_VruSubProfileBicyclist_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_Vanetza_ITS2_VruSubProfileBicyclist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist = { + "VruSubProfileBicyclist", + "VruSubProfileBicyclist", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSubProfileBicyclist_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSubProfileBicyclist_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSubProfileBicyclist_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruSubProfileBicyclist.h b/vanetza/asn1/its/r2/VruSubProfileBicyclist.h new file mode 100644 index 000000000..4d0bd62ee --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileBicyclist.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSubProfileBicyclist_H_ +#define _Vanetza_ITS2_VruSubProfileBicyclist_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSubProfileBicyclist { + Vanetza_ITS2_VruSubProfileBicyclist_unavailable = 0, + Vanetza_ITS2_VruSubProfileBicyclist_bicyclist = 1, + Vanetza_ITS2_VruSubProfileBicyclist_wheelchair_user = 2, + Vanetza_ITS2_VruSubProfileBicyclist_horse_and_rider = 3, + Vanetza_ITS2_VruSubProfileBicyclist_rollerskater = 4, + Vanetza_ITS2_VruSubProfileBicyclist_e_scooter = 5, + Vanetza_ITS2_VruSubProfileBicyclist_personal_transporter = 6, + Vanetza_ITS2_VruSubProfileBicyclist_pedelec = 7, + Vanetza_ITS2_VruSubProfileBicyclist_speed_pedelec = 8, + Vanetza_ITS2_VruSubProfileBicyclist_roadbike = 9, + Vanetza_ITS2_VruSubProfileBicyclist_childrensbike = 10 +} e_Vanetza_ITS2_VruSubProfileBicyclist; + +/* Vanetza_ITS2_VruSubProfileBicyclist */ +typedef long Vanetza_ITS2_VruSubProfileBicyclist_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSubProfileBicyclist_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileBicyclist; +asn_struct_free_f Vanetza_ITS2_VruSubProfileBicyclist_free; +asn_struct_print_f Vanetza_ITS2_VruSubProfileBicyclist_print; +asn_constr_check_f Vanetza_ITS2_VruSubProfileBicyclist_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSubProfileBicyclist_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSubProfileBicyclist_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSubProfileBicyclist_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSubProfileBicyclist_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSubProfileBicyclist_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileBicyclist_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSubProfileBicyclist_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.c b/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.c new file mode 100644 index 000000000..3b91084ab --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSubProfileMotorcyclist.h" + +int +Vanetza_ITS2_VruSubProfileMotorcyclist_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_Vanetza_ITS2_VruSubProfileMotorcyclist_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_Vanetza_ITS2_VruSubProfileMotorcyclist_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_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist = { + "VruSubProfileMotorcyclist", + "VruSubProfileMotorcyclist", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSubProfileMotorcyclist_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSubProfileMotorcyclist_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSubProfileMotorcyclist_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.h b/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.h new file mode 100644 index 000000000..1e68f88be --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfileMotorcyclist.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSubProfileMotorcyclist_H_ +#define _Vanetza_ITS2_VruSubProfileMotorcyclist_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSubProfileMotorcyclist { + Vanetza_ITS2_VruSubProfileMotorcyclist_unavailable = 0, + Vanetza_ITS2_VruSubProfileMotorcyclist_moped = 1, + Vanetza_ITS2_VruSubProfileMotorcyclist_motorcycle = 2, + Vanetza_ITS2_VruSubProfileMotorcyclist_motorcycle_and_sidecar_right = 3, + Vanetza_ITS2_VruSubProfileMotorcyclist_motorcycle_and_sidecar_left = 4 +} e_Vanetza_ITS2_VruSubProfileMotorcyclist; + +/* Vanetza_ITS2_VruSubProfileMotorcyclist */ +typedef long Vanetza_ITS2_VruSubProfileMotorcyclist_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSubProfileMotorcyclist_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfileMotorcyclist; +asn_struct_free_f Vanetza_ITS2_VruSubProfileMotorcyclist_free; +asn_struct_print_f Vanetza_ITS2_VruSubProfileMotorcyclist_print; +asn_constr_check_f Vanetza_ITS2_VruSubProfileMotorcyclist_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSubProfileMotorcyclist_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSubProfileMotorcyclist_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/VruSubProfilePedestrian.c b/vanetza/asn1/its/r2/VruSubProfilePedestrian.c new file mode 100644 index 000000000..739427f71 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfilePedestrian.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "VruSubProfilePedestrian.h" + +int +Vanetza_ITS2_VruSubProfilePedestrian_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_Vanetza_ITS2_VruSubProfilePedestrian_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_Vanetza_ITS2_VruSubProfilePedestrian_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_Vanetza_ITS2_VruSubProfilePedestrian_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian = { + "VruSubProfilePedestrian", + "VruSubProfilePedestrian", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_VruSubProfilePedestrian_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_VruSubProfilePedestrian_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_VruSubProfilePedestrian_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/VruSubProfilePedestrian.h b/vanetza/asn1/its/r2/VruSubProfilePedestrian.h new file mode 100644 index 000000000..c5a686f50 --- /dev/null +++ b/vanetza/asn1/its/r2/VruSubProfilePedestrian.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_VruSubProfilePedestrian_H_ +#define _Vanetza_ITS2_VruSubProfilePedestrian_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_VruSubProfilePedestrian { + Vanetza_ITS2_VruSubProfilePedestrian_unavailable = 0, + Vanetza_ITS2_VruSubProfilePedestrian_ordinary_pedestrian = 1, + Vanetza_ITS2_VruSubProfilePedestrian_road_worker = 2, + Vanetza_ITS2_VruSubProfilePedestrian_first_responder = 3 +} e_Vanetza_ITS2_VruSubProfilePedestrian; + +/* Vanetza_ITS2_VruSubProfilePedestrian */ +typedef long Vanetza_ITS2_VruSubProfilePedestrian_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_VruSubProfilePedestrian_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_VruSubProfilePedestrian; +asn_struct_free_f Vanetza_ITS2_VruSubProfilePedestrian_free; +asn_struct_print_f Vanetza_ITS2_VruSubProfilePedestrian_print; +asn_constr_check_f Vanetza_ITS2_VruSubProfilePedestrian_constraint; +ber_type_decoder_f Vanetza_ITS2_VruSubProfilePedestrian_decode_ber; +der_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_der; +xer_type_decoder_f Vanetza_ITS2_VruSubProfilePedestrian_decode_xer; +xer_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_xer; +jer_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_jer; +oer_type_decoder_f Vanetza_ITS2_VruSubProfilePedestrian_decode_oer; +oer_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_oer; +per_type_decoder_f Vanetza_ITS2_VruSubProfilePedestrian_decode_uper; +per_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_uper; +per_type_decoder_f Vanetza_ITS2_VruSubProfilePedestrian_decode_aper; +per_type_encoder_f Vanetza_ITS2_VruSubProfilePedestrian_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_VruSubProfilePedestrian_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/WMInumber.c b/vanetza/asn1/its/r2/WMInumber.c new file mode 100644 index 000000000..e557f5dde --- /dev/null +++ b/vanetza/asn1/its/r2/WMInumber.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "WMInumber.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 +Vanetza_ITS2_WMInumber_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 <= 3UL) + && !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_Vanetza_ITS2_WMInumber_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_Vanetza_ITS2_WMInumber_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 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_Vanetza_ITS2_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_Vanetza_ITS2_WMInumber_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_WMInumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_WMInumber_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WMInumber_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_WMInumber_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_WMInumber_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_WMInumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/WMInumber.h b/vanetza/asn1/its/r2/WMInumber.h new file mode 100644 index 000000000..f3afec0ce --- /dev/null +++ b/vanetza/asn1/its/r2/WMInumber.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_WMInumber_H_ +#define _Vanetza_ITS2_WMInumber_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "IA5String.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_WMInumber */ +typedef IA5String_t Vanetza_ITS2_WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WMInumber; +asn_struct_free_f Vanetza_ITS2_WMInumber_free; +asn_struct_print_f Vanetza_ITS2_WMInumber_print; +asn_constr_check_f Vanetza_ITS2_WMInumber_constraint; +ber_type_decoder_f Vanetza_ITS2_WMInumber_decode_ber; +der_type_encoder_f Vanetza_ITS2_WMInumber_encode_der; +xer_type_decoder_f Vanetza_ITS2_WMInumber_decode_xer; +xer_type_encoder_f Vanetza_ITS2_WMInumber_encode_xer; +jer_type_encoder_f Vanetza_ITS2_WMInumber_encode_jer; +oer_type_decoder_f Vanetza_ITS2_WMInumber_decode_oer; +oer_type_encoder_f Vanetza_ITS2_WMInumber_encode_oer; +per_type_decoder_f Vanetza_ITS2_WMInumber_decode_uper; +per_type_encoder_f Vanetza_ITS2_WMInumber_encode_uper; +per_type_decoder_f Vanetza_ITS2_WMInumber_decode_aper; +per_type_encoder_f Vanetza_ITS2_WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_WMInumber_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Wgs84Angle.c b/vanetza/asn1/its/r2/Wgs84Angle.c new file mode 100644 index 000000000..bca5ade05 --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84Angle.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Wgs84Angle.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Wgs84Angle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Wgs84Angle, value), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Wgs84AngleValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "value" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_Wgs84Angle, confidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "confidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_Wgs84Angle_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_Vanetza_ITS2_Wgs84Angle_specs_1 = { + sizeof(struct Vanetza_ITS2_Wgs84Angle), + offsetof(struct Vanetza_ITS2_Wgs84Angle, _asn_ctx), + asn_MAP_Vanetza_ITS2_Wgs84Angle_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_Vanetza_ITS2_Wgs84Angle = { + "Wgs84Angle", + "Wgs84Angle", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Wgs84Angle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84Angle_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_Wgs84Angle_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_Wgs84Angle_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/Wgs84Angle.h b/vanetza/asn1/its/r2/Wgs84Angle.h new file mode 100644 index 000000000..165709e8e --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84Angle.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Wgs84Angle_H_ +#define _Vanetza_ITS2_Wgs84Angle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "Wgs84AngleValue.h" +#include "Wgs84AngleConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_Wgs84Angle */ +typedef struct Vanetza_ITS2_Wgs84Angle { + Vanetza_ITS2_Wgs84AngleValue_t value; + Vanetza_ITS2_Wgs84AngleConfidence_t confidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_Wgs84Angle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Wgs84Angle; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_Wgs84Angle_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_Wgs84Angle_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Wgs84Angle_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Wgs84AngleConfidence.c b/vanetza/asn1/its/r2/Wgs84AngleConfidence.c new file mode 100644 index 000000000..996876a8f --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84AngleConfidence.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Wgs84AngleConfidence.h" + +int +Vanetza_ITS2_Wgs84AngleConfidence_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 <= 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_Vanetza_ITS2_Wgs84AngleConfidence_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_Wgs84AngleConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_Wgs84AngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence = { + "Wgs84AngleConfidence", + "Wgs84AngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Wgs84AngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Wgs84AngleConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Wgs84AngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Wgs84AngleConfidence.h b/vanetza/asn1/its/r2/Wgs84AngleConfidence.h new file mode 100644 index 000000000..25457a39f --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84AngleConfidence.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Wgs84AngleConfidence_H_ +#define _Vanetza_ITS2_Wgs84AngleConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Wgs84AngleConfidence { + Vanetza_ITS2_Wgs84AngleConfidence_outOfRange = 126, + Vanetza_ITS2_Wgs84AngleConfidence_unavailable = 127 +} e_Vanetza_ITS2_Wgs84AngleConfidence; + +/* Vanetza_ITS2_Wgs84AngleConfidence */ +typedef long Vanetza_ITS2_Wgs84AngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Wgs84AngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Wgs84AngleConfidence; +asn_struct_free_f Vanetza_ITS2_Wgs84AngleConfidence_free; +asn_struct_print_f Vanetza_ITS2_Wgs84AngleConfidence_print; +asn_constr_check_f Vanetza_ITS2_Wgs84AngleConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_Wgs84AngleConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_Wgs84AngleConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Wgs84AngleConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_Wgs84AngleConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_Wgs84AngleConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_Wgs84AngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Wgs84AngleConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/Wgs84AngleValue.c b/vanetza/asn1/its/r2/Wgs84AngleValue.c new file mode 100644 index 000000000..030ea65e0 --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84AngleValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "Wgs84AngleValue.h" + +int +Vanetza_ITS2_Wgs84AngleValue_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 <= 3601L)) { + /* 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_Vanetza_ITS2_Wgs84AngleValue_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..3601) */, + -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_Vanetza_ITS2_Wgs84AngleValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3601 } /* (0..3601) */, + { 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_Vanetza_ITS2_Wgs84AngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Wgs84AngleValue = { + "Wgs84AngleValue", + "Wgs84AngleValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_Wgs84AngleValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_Wgs84AngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_Wgs84AngleValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_Wgs84AngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/Wgs84AngleValue.h b/vanetza/asn1/its/r2/Wgs84AngleValue.h new file mode 100644 index 000000000..2a9be1ced --- /dev/null +++ b/vanetza/asn1/its/r2/Wgs84AngleValue.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_Wgs84AngleValue_H_ +#define _Vanetza_ITS2_Wgs84AngleValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_Wgs84AngleValue { + Vanetza_ITS2_Wgs84AngleValue_wgs84North = 0, + Vanetza_ITS2_Wgs84AngleValue_wgs84East = 900, + Vanetza_ITS2_Wgs84AngleValue_wgs84South = 1800, + Vanetza_ITS2_Wgs84AngleValue_wgs84West = 2700, + Vanetza_ITS2_Wgs84AngleValue_doNotUse = 3600, + Vanetza_ITS2_Wgs84AngleValue_unavailable = 3601 +} e_Vanetza_ITS2_Wgs84AngleValue; + +/* Vanetza_ITS2_Wgs84AngleValue */ +typedef long Vanetza_ITS2_Wgs84AngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_Wgs84AngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_Wgs84AngleValue; +asn_struct_free_f Vanetza_ITS2_Wgs84AngleValue_free; +asn_struct_print_f Vanetza_ITS2_Wgs84AngleValue_print; +asn_constr_check_f Vanetza_ITS2_Wgs84AngleValue_constraint; +ber_type_decoder_f Vanetza_ITS2_Wgs84AngleValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_Wgs84AngleValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_Wgs84AngleValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_Wgs84AngleValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_Wgs84AngleValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_Wgs84AngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_Wgs84AngleValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/WheelBaseVehicle.c b/vanetza/asn1/its/r2/WheelBaseVehicle.c new file mode 100644 index 000000000..12a7e4fe9 --- /dev/null +++ b/vanetza/asn1/its/r2/WheelBaseVehicle.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "WheelBaseVehicle.h" + +int +Vanetza_ITS2_WheelBaseVehicle_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 <= 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_Vanetza_ITS2_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..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_Vanetza_ITS2_WheelBaseVehicle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 127 } /* (1..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_Vanetza_ITS2_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WheelBaseVehicle_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_WheelBaseVehicle_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_WheelBaseVehicle_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_WheelBaseVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/WheelBaseVehicle.h b/vanetza/asn1/its/r2/WheelBaseVehicle.h new file mode 100644 index 000000000..6ac874984 --- /dev/null +++ b/vanetza/asn1/its/r2/WheelBaseVehicle.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_WheelBaseVehicle_H_ +#define _Vanetza_ITS2_WheelBaseVehicle_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_WheelBaseVehicle { + Vanetza_ITS2_WheelBaseVehicle_outOfRange = 126, + Vanetza_ITS2_WheelBaseVehicle_unavailable = 127 +} e_Vanetza_ITS2_WheelBaseVehicle; + +/* Vanetza_ITS2_WheelBaseVehicle */ +typedef long Vanetza_ITS2_WheelBaseVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_WheelBaseVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WheelBaseVehicle; +asn_struct_free_f Vanetza_ITS2_WheelBaseVehicle_free; +asn_struct_print_f Vanetza_ITS2_WheelBaseVehicle_print; +asn_constr_check_f Vanetza_ITS2_WheelBaseVehicle_constraint; +ber_type_decoder_f Vanetza_ITS2_WheelBaseVehicle_decode_ber; +der_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_der; +xer_type_decoder_f Vanetza_ITS2_WheelBaseVehicle_decode_xer; +xer_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_xer; +jer_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_jer; +oer_type_decoder_f Vanetza_ITS2_WheelBaseVehicle_decode_oer; +oer_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_oer; +per_type_decoder_f Vanetza_ITS2_WheelBaseVehicle_decode_uper; +per_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_uper; +per_type_decoder_f Vanetza_ITS2_WheelBaseVehicle_decode_aper; +per_type_encoder_f Vanetza_ITS2_WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_WheelBaseVehicle_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/WrappedCpmContainer.c b/vanetza/asn1/its/r2/WrappedCpmContainer.c new file mode 100644 index 000000000..669feb5c9 --- /dev/null +++ b/vanetza/asn1/its/r2/WrappedCpmContainer.c @@ -0,0 +1,353 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "WrappedCpmContainer.h" + +static const long asn_VAL_1_Vanetza_ITS2_originatingVehicleContainer = 1; +static const long asn_VAL_2_Vanetza_ITS2_originatingRsuContainer = 2; +static const long asn_VAL_3_Vanetza_ITS2_sensorInformationContainer = 3; +static const long asn_VAL_4_Vanetza_ITS2_perceptionRegionContainer = 4; +static const long asn_VAL_5_Vanetza_ITS2_perceivedObjectContainer = 5; +static const asn_ioc_cell_t asn_IOS_Vanetza_ITS2_CpmContainers_1_rows[] = { + { "&id", aioc__value, &asn_DEF_Vanetza_ITS2_CpmContainerId, &asn_VAL_1_Vanetza_ITS2_originatingVehicleContainer }, + { "&Type", aioc__type, &asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer }, + { "&id", aioc__value, &asn_DEF_Vanetza_ITS2_CpmContainerId, &asn_VAL_2_Vanetza_ITS2_originatingRsuContainer }, + { "&Type", aioc__type, &asn_DEF_Vanetza_ITS2_OriginatingRsuContainer }, + { "&id", aioc__value, &asn_DEF_Vanetza_ITS2_CpmContainerId, &asn_VAL_3_Vanetza_ITS2_sensorInformationContainer }, + { "&Type", aioc__type, &asn_DEF_Vanetza_ITS2_SensorInformationContainer }, + { "&id", aioc__value, &asn_DEF_Vanetza_ITS2_CpmContainerId, &asn_VAL_4_Vanetza_ITS2_perceptionRegionContainer }, + { "&Type", aioc__type, &asn_DEF_Vanetza_ITS2_PerceptionRegionContainer }, + { "&id", aioc__value, &asn_DEF_Vanetza_ITS2_CpmContainerId, &asn_VAL_5_Vanetza_ITS2_perceivedObjectContainer }, + { "&Type", aioc__type, &asn_DEF_Vanetza_ITS2_PerceivedObjectContainer } +}; +static const asn_ioc_set_t asn_IOS_Vanetza_ITS2_CpmContainers_1[] = { + { 5, 2, asn_IOS_Vanetza_ITS2_CpmContainers_1_rows } +}; +static int +memb_Vanetza_ITS2_containerId_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 <= 16L)) { + /* 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_WrappedCpmContainer_Vanetza_ITS2_containerData_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_Vanetza_ITS2_CpmContainers_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 Vanetza_ITS2_WrappedCpmContainer, containerId)); + + 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_Vanetza_ITS2_containerData_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_Vanetza_ITS2_containerId_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -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_Vanetza_ITS2_containerId_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { 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_Vanetza_ITS2_containerData_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_Vanetza_ITS2_containerData_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_Vanetza_ITS2_containerData_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, choice.OriginatingVehicleContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_OriginatingVehicleContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "OriginatingVehicleContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, choice.OriginatingRsuContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_OriginatingRsuContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "OriginatingRsuContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, choice.SensorInformationContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_SensorInformationContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "SensorInformationContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, choice.PerceptionRegionContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PerceptionRegionContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "PerceptionRegionContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, choice.PerceivedObjectContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_PerceivedObjectContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "PerceivedObjectContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_containerData_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* OriginatingVehicleContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* OriginatingRsuContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* SensorInformationContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* PerceptionRegionContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* PerceivedObjectContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_Vanetza_ITS2_containerData_specs_3 = { + sizeof(struct Vanetza_ITS2_WrappedCpmContainer__containerData), + offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, _asn_ctx), + offsetof(struct Vanetza_ITS2_WrappedCpmContainer__containerData, present), + sizeof(((struct Vanetza_ITS2_WrappedCpmContainer__containerData *)0)->present), + asn_MAP_Vanetza_ITS2_containerData_tag2el_3, + 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_Vanetza_ITS2_containerData_3 = { + "containerData", + "containerData", + &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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + OPEN_TYPE_constraint + }, + asn_MBR_Vanetza_ITS2_containerData_3, + 5, /* Elements count */ + &asn_SPC_Vanetza_ITS2_containerData_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_WrappedCpmContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer, containerId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_CpmContainerId, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_containerId_constr_2, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_containerId_constr_2, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_containerId_constraint_1 + }, + 0, 0, /* No default value */ + "containerId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_WrappedCpmContainer, containerData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_containerData_3, + select_WrappedCpmContainer_Vanetza_ITS2_containerData_type, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_memb_Vanetza_ITS2_containerData_constr_3, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_memb_Vanetza_ITS2_containerData_constr_3, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + memb_Vanetza_ITS2_containerData_constraint_1 + }, + 0, 0, /* No default value */ + "containerData" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_WrappedCpmContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* containerId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* containerData */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_WrappedCpmContainer_specs_1 = { + sizeof(struct Vanetza_ITS2_WrappedCpmContainer), + offsetof(struct Vanetza_ITS2_WrappedCpmContainer, _asn_ctx), + asn_MAP_Vanetza_ITS2_WrappedCpmContainer_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_Vanetza_ITS2_WrappedCpmContainer = { + "WrappedCpmContainer", + "WrappedCpmContainer", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainer_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainer_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_WrappedCpmContainer_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_WrappedCpmContainer_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/WrappedCpmContainer.h b/vanetza/asn1/its/r2/WrappedCpmContainer.h new file mode 100644 index 000000000..20cc51f39 --- /dev/null +++ b/vanetza/asn1/its/r2/WrappedCpmContainer.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_WrappedCpmContainer_H_ +#define _Vanetza_ITS2_WrappedCpmContainer_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "CpmContainerId.h" +#include "ANY.h" +#include "asn_ioc.h" +#include "OriginatingVehicleContainer.h" +#include "OriginatingRsuContainer.h" +#include "SensorInformationContainer.h" +#include "PerceptionRegionContainer.h" +#include "PerceivedObjectContainer.h" +#include "OPEN_TYPE.h" +#include "constr_CHOICE.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_WrappedCpmContainer__containerData_PR { + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_NOTHING, /* No components present */ + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_OriginatingVehicleContainer, + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_OriginatingRsuContainer, + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_SensorInformationContainer, + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_PerceptionRegionContainer, + Vanetza_ITS2_WrappedCpmContainer__containerData_PR_PerceivedObjectContainer +} Vanetza_ITS2_WrappedCpmContainer__containerData_PR; + +/* Vanetza_ITS2_WrappedCpmContainer */ +typedef struct Vanetza_ITS2_WrappedCpmContainer { + Vanetza_ITS2_CpmContainerId_t containerId; + struct Vanetza_ITS2_WrappedCpmContainer__containerData { + Vanetza_ITS2_WrappedCpmContainer__containerData_PR present; + union Vanetza_ITS2_WrappedCpmContainer__Vanetza_ITS2_containerData_u { + Vanetza_ITS2_OriginatingVehicleContainer_t OriginatingVehicleContainer; + Vanetza_ITS2_OriginatingRsuContainer_t OriginatingRsuContainer; + Vanetza_ITS2_SensorInformationContainer_t SensorInformationContainer; + Vanetza_ITS2_PerceptionRegionContainer_t PerceptionRegionContainer; + Vanetza_ITS2_PerceivedObjectContainer_t PerceivedObjectContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } containerData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_WrappedCpmContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WrappedCpmContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_WrappedCpmContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_WrappedCpmContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_WrappedCpmContainer_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/WrappedCpmContainers.c b/vanetza/asn1/its/r2/WrappedCpmContainers.c new file mode 100644 index 000000000..e2a73e62f --- /dev/null +++ b/vanetza/asn1/its/r2/WrappedCpmContainers.c @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "WrappedCpmContainers.h" + +#if !defined(ASN_DISABLE_OER_SUPPORT) +static asn_oer_constraints_t asn_OER_type_Vanetza_ITS2_WrappedCpmContainers_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_Vanetza_ITS2_WrappedCpmContainers_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_Vanetza_ITS2_WrappedCpmContainers_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Vanetza_ITS2_WrappedCpmContainer, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_WrappedCpmContainers_specs_1 = { + sizeof(struct Vanetza_ITS2_WrappedCpmContainers), + offsetof(struct Vanetza_ITS2_WrappedCpmContainers, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WrappedCpmContainers = { + "WrappedCpmContainers", + "WrappedCpmContainers", + &asn_OP_SEQUENCE_OF, + asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrappedCpmContainers_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_WrappedCpmContainers_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_WrappedCpmContainers_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_OF_constraint + }, + asn_MBR_Vanetza_ITS2_WrappedCpmContainers_1, + 1, /* Single element */ + &asn_SPC_Vanetza_ITS2_WrappedCpmContainers_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/WrappedCpmContainers.h b/vanetza/asn1/its/r2/WrappedCpmContainers.h new file mode 100644 index 000000000..ebe4feb6e --- /dev/null +++ b/vanetza/asn1/its/r2/WrappedCpmContainers.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "CPM-PDU-Descriptions" + * found in "asn1/release2/TS103324v211/CPM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_WrappedCpmContainers_H_ +#define _Vanetza_ITS2_WrappedCpmContainers_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 Vanetza_ITS2_WrappedCpmContainer; + +/* Vanetza_ITS2_WrappedCpmContainers */ +typedef struct Vanetza_ITS2_WrappedCpmContainers { + A_SEQUENCE_OF(struct Vanetza_ITS2_WrappedCpmContainer) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_WrappedCpmContainers_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WrappedCpmContainers; +extern asn_SET_OF_specifics_t asn_SPC_Vanetza_ITS2_WrappedCpmContainers_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_WrappedCpmContainers_1[1]; +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_WrappedCpmContainers_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "WrappedCpmContainer.h" + +#endif /* _Vanetza_ITS2_WrappedCpmContainers_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.c b/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.c new file mode 100644 index 000000000..85487501d --- /dev/null +++ b/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "WrongWayDrivingSubCauseCode.h" + +int +Vanetza_ITS2_WrongWayDrivingSubCauseCode_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_Vanetza_ITS2_WrongWayDrivingSubCauseCode_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_Vanetza_ITS2_WrongWayDrivingSubCauseCode_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_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_WrongWayDrivingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_WrongWayDrivingSubCauseCode_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_WrongWayDrivingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.h b/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..4a0aa77d1 --- /dev/null +++ b/vanetza/asn1/its/r2/WrongWayDrivingSubCauseCode.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_WrongWayDrivingSubCauseCode_H_ +#define _Vanetza_ITS2_WrongWayDrivingSubCauseCode_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_WrongWayDrivingSubCauseCode { + Vanetza_ITS2_WrongWayDrivingSubCauseCode_unavailable = 0, + Vanetza_ITS2_WrongWayDrivingSubCauseCode_wrongLane = 1, + Vanetza_ITS2_WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_Vanetza_ITS2_WrongWayDrivingSubCauseCode; + +/* Vanetza_ITS2_WrongWayDrivingSubCauseCode */ +typedef long Vanetza_ITS2_WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_WrongWayDrivingSubCauseCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_WrongWayDrivingSubCauseCode; +asn_struct_free_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_free; +asn_struct_print_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_print; +asn_constr_check_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_constraint; +ber_type_decoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_decode_ber; +der_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_der; +xer_type_decoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_decode_xer; +xer_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_xer; +jer_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_jer; +oer_type_decoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_decode_oer; +oer_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_oer; +per_type_decoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f Vanetza_ITS2_WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_WrongWayDrivingSubCauseCode_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/YawRate.c b/vanetza/asn1/its/r2/YawRate.c new file mode 100644 index 000000000..68448b2fe --- /dev/null +++ b/vanetza/asn1/its/r2/YawRate.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "YawRate.h" + +asn_TYPE_member_t asn_MBR_Vanetza_ITS2_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_YawRateValue, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yawRateValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct Vanetza_ITS2_YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Vanetza_ITS2_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "yawRateConfidence" + }, +}; +static const ber_tlv_tag_t asn_DEF_Vanetza_ITS2_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Vanetza_ITS2_YawRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* yawRateValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* yawRateConfidence */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_YawRate_specs_1 = { + sizeof(struct Vanetza_ITS2_YawRate), + offsetof(struct Vanetza_ITS2_YawRate, _asn_ctx), + asn_MAP_Vanetza_ITS2_YawRate_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_Vanetza_ITS2_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_Vanetza_ITS2_YawRate_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_YawRate_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRate_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_YawRate_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRate_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) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_Vanetza_ITS2_YawRate_1, + 2, /* Elements count */ + &asn_SPC_Vanetza_ITS2_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/YawRate.h b/vanetza/asn1/its/r2/YawRate.h new file mode 100644 index 000000000..30bc19615 --- /dev/null +++ b/vanetza/asn1/its/r2/YawRate.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_YawRate_H_ +#define _Vanetza_ITS2_YawRate_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "YawRateValue.h" +#include "YawRateConfidence.h" +#include "constr_SEQUENCE.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Vanetza_ITS2_YawRate */ +typedef struct Vanetza_ITS2_YawRate { + Vanetza_ITS2_YawRateValue_t yawRateValue; + Vanetza_ITS2_YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Vanetza_ITS2_YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_YawRate; +extern asn_SEQUENCE_specifics_t asn_SPC_Vanetza_ITS2_YawRate_specs_1; +extern asn_TYPE_member_t asn_MBR_Vanetza_ITS2_YawRate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_YawRate_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/YawRateConfidence.c b/vanetza/asn1/its/r2/YawRateConfidence.c new file mode 100644 index 000000000..183ce1059 --- /dev/null +++ b/vanetza/asn1/its/r2/YawRateConfidence.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#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_Vanetza_ITS2_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_Vanetza_ITS2_YawRateConfidence_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { 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_Vanetza_ITS2_YawRateConfidence_value2enum_1[] = { + { 0, 13, "degSec-000-01" }, + { 1, 13, "degSec-000-05" }, + { 2, 13, "degSec-000-10" }, + { 3, 13, "degSec-001-00" }, + { 4, 13, "degSec-005-00" }, + { 5, 13, "degSec-010-00" }, + { 6, 13, "degSec-100-00" }, + { 7, 10, "outOfRange" }, + { 8, 11, "unavailable" } +}; +static const unsigned int asn_MAP_Vanetza_ITS2_YawRateConfidence_enum2value_1[] = { + 0, /* degSec-000-01(0) */ + 1, /* degSec-000-05(1) */ + 2, /* degSec-000-10(2) */ + 3, /* degSec-001-00(3) */ + 4, /* degSec-005-00(4) */ + 5, /* degSec-010-00(5) */ + 6, /* degSec-100-00(6) */ + 7, /* outOfRange(7) */ + 8 /* unavailable(8) */ +}; +const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_YawRateConfidence_specs_1 = { + asn_MAP_Vanetza_ITS2_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_Vanetza_ITS2_YawRateConfidence_enum2value_1, /* N => "tag"; sorted by N */ + 9, /* 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_Vanetza_ITS2_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRateConfidence_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_YawRateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_YawRateConfidence_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + NativeEnumerated_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Vanetza_ITS2_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/vanetza/asn1/its/r2/YawRateConfidence.h b/vanetza/asn1/its/r2/YawRateConfidence.h new file mode 100644 index 000000000..7362e258c --- /dev/null +++ b/vanetza/asn1/its/r2/YawRateConfidence.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_YawRateConfidence_H_ +#define _Vanetza_ITS2_YawRateConfidence_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeEnumerated.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_YawRateConfidence { + Vanetza_ITS2_YawRateConfidence_degSec_000_01 = 0, + Vanetza_ITS2_YawRateConfidence_degSec_000_05 = 1, + Vanetza_ITS2_YawRateConfidence_degSec_000_10 = 2, + Vanetza_ITS2_YawRateConfidence_degSec_001_00 = 3, + Vanetza_ITS2_YawRateConfidence_degSec_005_00 = 4, + Vanetza_ITS2_YawRateConfidence_degSec_010_00 = 5, + Vanetza_ITS2_YawRateConfidence_degSec_100_00 = 6, + Vanetza_ITS2_YawRateConfidence_outOfRange = 7, + Vanetza_ITS2_YawRateConfidence_unavailable = 8 +} e_Vanetza_ITS2_YawRateConfidence; + +/* Vanetza_ITS2_YawRateConfidence */ +typedef long Vanetza_ITS2_YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_Vanetza_ITS2_YawRateConfidence_specs_1; +asn_struct_free_f Vanetza_ITS2_YawRateConfidence_free; +asn_struct_print_f Vanetza_ITS2_YawRateConfidence_print; +asn_constr_check_f Vanetza_ITS2_YawRateConfidence_constraint; +ber_type_decoder_f Vanetza_ITS2_YawRateConfidence_decode_ber; +der_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_der; +xer_type_decoder_f Vanetza_ITS2_YawRateConfidence_decode_xer; +xer_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_xer; +jer_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_jer; +oer_type_decoder_f Vanetza_ITS2_YawRateConfidence_decode_oer; +oer_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_oer; +per_type_decoder_f Vanetza_ITS2_YawRateConfidence_decode_uper; +per_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_uper; +per_type_decoder_f Vanetza_ITS2_YawRateConfidence_decode_aper; +per_type_encoder_f Vanetza_ITS2_YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_YawRateConfidence_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/YawRateValue.c b/vanetza/asn1/its/r2/YawRateValue.c new file mode 100644 index 000000000..cf6f14b36 --- /dev/null +++ b/vanetza/asn1/its/r2/YawRateValue.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#include "YawRateValue.h" + +int +Vanetza_ITS2_YawRateValue_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 >= -32766L && 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_Vanetza_ITS2_YawRateValue_constr_1 CC_NOTUSED = { + { 2, 0 } /* (-32766..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_Vanetza_ITS2_YawRateValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -32766, 32767 } /* (-32766..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_Vanetza_ITS2_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_Vanetza_ITS2_YawRateValue_tags_1, + sizeof(asn_DEF_Vanetza_ITS2_YawRateValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_Vanetza_ITS2_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_Vanetza_ITS2_YawRateValue_tags_1) + /sizeof(asn_DEF_Vanetza_ITS2_YawRateValue_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + &asn_OER_type_Vanetza_ITS2_YawRateValue_constr_1, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_Vanetza_ITS2_YawRateValue_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + Vanetza_ITS2_YawRateValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/vanetza/asn1/its/r2/YawRateValue.h b/vanetza/asn1/its/r2/YawRateValue.h new file mode 100644 index 000000000..d3b1f6329 --- /dev/null +++ b/vanetza/asn1/its/r2/YawRateValue.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ETSI-ITS-CDD" + * found in "asn1/release2/TS102894-2v221-CDD.asn" + * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_ITS2_ -R` + */ + +#ifndef _Vanetza_ITS2_YawRateValue_H_ +#define _Vanetza_ITS2_YawRateValue_H_ + + +#include "asn_application.h" + +/* Including external dependencies */ +#include "NativeInteger.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Vanetza_ITS2_YawRateValue { + Vanetza_ITS2_YawRateValue_negativeOutOfRange = -32766, + Vanetza_ITS2_YawRateValue_positiveOutOfRange = 32766, + Vanetza_ITS2_YawRateValue_unavailable = 32767 +} e_Vanetza_ITS2_YawRateValue; + +/* Vanetza_ITS2_YawRateValue */ +typedef long Vanetza_ITS2_YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Vanetza_ITS2_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Vanetza_ITS2_YawRateValue; +asn_struct_free_f Vanetza_ITS2_YawRateValue_free; +asn_struct_print_f Vanetza_ITS2_YawRateValue_print; +asn_constr_check_f Vanetza_ITS2_YawRateValue_constraint; +ber_type_decoder_f Vanetza_ITS2_YawRateValue_decode_ber; +der_type_encoder_f Vanetza_ITS2_YawRateValue_encode_der; +xer_type_decoder_f Vanetza_ITS2_YawRateValue_decode_xer; +xer_type_encoder_f Vanetza_ITS2_YawRateValue_encode_xer; +jer_type_encoder_f Vanetza_ITS2_YawRateValue_encode_jer; +oer_type_decoder_f Vanetza_ITS2_YawRateValue_decode_oer; +oer_type_encoder_f Vanetza_ITS2_YawRateValue_encode_oer; +per_type_decoder_f Vanetza_ITS2_YawRateValue_decode_uper; +per_type_encoder_f Vanetza_ITS2_YawRateValue_encode_uper; +per_type_decoder_f Vanetza_ITS2_YawRateValue_decode_aper; +per_type_encoder_f Vanetza_ITS2_YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_YawRateValue_H_ */ +#include "asn_internal.h" diff --git a/vanetza/asn1/its/r2/asn_constant.h b/vanetza/asn1/its/r2/asn_constant.h new file mode 100644 index 000000000..32481a55a --- /dev/null +++ b/vanetza/asn1/its/r2/asn_constant.h @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _Vanetza_ITS2_ASN_CONSTANT_H +#define _Vanetza_ITS2_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_Vanetza_ITS2_AccelerationConfidence (0) +#define max_val_Vanetza_ITS2_AccelerationConfidence (102) +#define min_val_Vanetza_ITS2_AccelerationMagnitudeValue (0) +#define max_val_Vanetza_ITS2_AccelerationMagnitudeValue (161) +#define min_val_Vanetza_ITS2_AccelerationValue (-160) +#define max_val_Vanetza_ITS2_AccelerationValue (161) +#define min_val_Vanetza_ITS2_AccidentSubCauseCode (0) +#define max_val_Vanetza_ITS2_AccidentSubCauseCode (255) +#define min_val_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_Vanetza_ITS2_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_Vanetza_ITS2_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_Vanetza_ITS2_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_Vanetza_ITS2_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_Vanetza_ITS2_AirHumidity (1) +#define max_val_Vanetza_ITS2_AirHumidity (1001) +#define min_val_Vanetza_ITS2_AltitudeValue (-100000) +#define max_val_Vanetza_ITS2_AltitudeValue (800001) +#define min_val_Vanetza_ITS2_AngleConfidence (1) +#define max_val_Vanetza_ITS2_AngleConfidence (127) +#define min_val_Vanetza_ITS2_AxlesCount (2) +#define max_val_Vanetza_ITS2_AxlesCount (1002) +#define min_val_Vanetza_ITS2_BarometricPressure (2999) +#define max_val_Vanetza_ITS2_BarometricPressure (12002) +#define min_val_Vanetza_ITS2_BogiesCount (2) +#define max_val_Vanetza_ITS2_BogiesCount (101) +#define min_val_Vanetza_ITS2_CardinalNumber1B (0) +#define max_val_Vanetza_ITS2_CardinalNumber1B (255) +#define min_val_Vanetza_ITS2_CardinalNumber3b (1) +#define max_val_Vanetza_ITS2_CardinalNumber3b (8) +#define min_val_Vanetza_ITS2_CartesianAngleValue (0) +#define max_val_Vanetza_ITS2_CartesianAngleValue (3601) +#define min_val_Vanetza_ITS2_CartesianAngularAccelerationComponentValue (-255) +#define max_val_Vanetza_ITS2_CartesianAngularAccelerationComponentValue (256) +#define min_val_Vanetza_ITS2_CartesianAngularVelocityComponentValue (-255) +#define max_val_Vanetza_ITS2_CartesianAngularVelocityComponentValue (256) +#define min_val_Vanetza_ITS2_CauseCodeType (0) +#define max_val_Vanetza_ITS2_CauseCodeType (255) +#define min_val_Vanetza_ITS2_CartesianCoordinateSmall (-3094) +#define max_val_Vanetza_ITS2_CartesianCoordinateSmall (1001) +#define min_val_Vanetza_ITS2_CartesianCoordinate (-32768) +#define max_val_Vanetza_ITS2_CartesianCoordinate (32767) +#define min_val_Vanetza_ITS2_CartesianCoordinateLarge (-131072) +#define max_val_Vanetza_ITS2_CartesianCoordinateLarge (131071) +#define min_val_Vanetza_ITS2_ClusterBreakupReason (0) +#define max_val_Vanetza_ITS2_ClusterBreakupReason (15) +#define min_val_Vanetza_ITS2_ClusterLeaveReason (0) +#define max_val_Vanetza_ITS2_ClusterLeaveReason (15) +#define min_val_Vanetza_ITS2_CollisionRiskSubCauseCode (0) +#define max_val_Vanetza_ITS2_CollisionRiskSubCauseCode (255) +#define min_val_Vanetza_ITS2_ConfidenceLevel (1) +#define max_val_Vanetza_ITS2_ConfidenceLevel (101) +#define min_val_Vanetza_ITS2_CoordinateConfidence (1) +#define max_val_Vanetza_ITS2_CoordinateConfidence (4096) +#define min_val_Vanetza_ITS2_CorrelationCellValue (-100) +#define max_val_Vanetza_ITS2_CorrelationCellValue (101) +#define min_val_Vanetza_ITS2_CurvatureValue (-1023) +#define max_val_Vanetza_ITS2_CurvatureValue (1023) +#define min_val_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode (0) +#define max_val_Vanetza_ITS2_DangerousEndOfQueueSubCauseCode (255) +#define min_val_Vanetza_ITS2_DangerousSituationSubCauseCode (0) +#define max_val_Vanetza_ITS2_DangerousSituationSubCauseCode (255) +#define min_val_Vanetza_ITS2_DeltaAltitude (-12700) +#define max_val_Vanetza_ITS2_DeltaAltitude (12800) +#define min_val_Vanetza_ITS2_DeltaLatitude (-131071) +#define max_val_Vanetza_ITS2_DeltaLatitude (131072) +#define min_val_Vanetza_ITS2_DeltaLongitude (-131071) +#define max_val_Vanetza_ITS2_DeltaLongitude (131072) +#define min_val_Vanetza_ITS2_DeltaTimeMilliSecondPositive (1) +#define max_val_Vanetza_ITS2_DeltaTimeMilliSecondPositive (10000) +#define min_val_Vanetza_ITS2_DeltaTimeMilliSecondSigned (-2048) +#define max_val_Vanetza_ITS2_DeltaTimeMilliSecondSigned (2047) +#define min_val_Vanetza_ITS2_DeltaTimeQuarterSecond (1) +#define max_val_Vanetza_ITS2_DeltaTimeQuarterSecond (255) +#define min_val_Vanetza_ITS2_DeltaTimeTenthOfSecond (0) +#define max_val_Vanetza_ITS2_DeltaTimeTenthOfSecond (127) +#define min_val_Vanetza_ITS2_DeltaTimeSecond (0) +#define max_val_Vanetza_ITS2_DeltaTimeSecond (86400) +#define min_val_Vanetza_ITS2_DeltaTimeTenSeconds (0) +#define max_val_Vanetza_ITS2_DeltaTimeTenSeconds (127) +#define min_val_Vanetza_ITS2_Direction (0) +#define max_val_Vanetza_ITS2_Direction (3) +#define min_val_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_Vanetza_ITS2_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_Vanetza_ITS2_GenerationDeltaTime (0) +#define max_val_Vanetza_ITS2_GenerationDeltaTime (65535) +#define min_val_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_Vanetza_ITS2_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_Vanetza_ITS2_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_Vanetza_ITS2_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_Vanetza_ITS2_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_Vanetza_ITS2_HeadingConfidence (1) +#define max_val_Vanetza_ITS2_HeadingConfidence (127) +#define min_val_Vanetza_ITS2_HeadingValue (0) +#define max_val_Vanetza_ITS2_HeadingValue (3601) +#define min_val_Vanetza_ITS2_HeightLonCarr (1) +#define max_val_Vanetza_ITS2_HeightLonCarr (100) +#define min_val_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_Vanetza_ITS2_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_Vanetza_ITS2_HumanProblemSubCauseCode (0) +#define max_val_Vanetza_ITS2_HumanProblemSubCauseCode (255) +#define min_val_Vanetza_ITS2_Identifier1B (0) +#define max_val_Vanetza_ITS2_Identifier1B (255) +#define min_val_Vanetza_ITS2_Identifier2B (0) +#define max_val_Vanetza_ITS2_Identifier2B (65535) +#define min_val_Vanetza_ITS2_ImpassabilitySubCauseCode (0) +#define max_val_Vanetza_ITS2_ImpassabilitySubCauseCode (255) +#define min_val_Vanetza_ITS2_InformationQuality (0) +#define max_val_Vanetza_ITS2_InformationQuality (7) +#define min_val_Vanetza_ITS2_Iso3833VehicleType (0) +#define max_val_Vanetza_ITS2_Iso3833VehicleType (255) +#define min_val_Vanetza_ITS2_IssuerIdentifier (0) +#define max_val_Vanetza_ITS2_IssuerIdentifier (16383) +#define min_val_Vanetza_ITS2_LanePosition (-1) +#define max_val_Vanetza_ITS2_LanePosition (14) +#define min_val_Vanetza_ITS2_LaneType (0) +#define max_val_Vanetza_ITS2_LaneType (31) +#define min_val_Vanetza_ITS2_LaneWidth (0) +#define max_val_Vanetza_ITS2_LaneWidth (1023) +#define min_val_Vanetza_ITS2_Latitude (-900000000) +#define max_val_Vanetza_ITS2_Latitude (900000001) +#define min_val_Vanetza_ITS2_LateralAccelerationValue (-160) +#define max_val_Vanetza_ITS2_LateralAccelerationValue (161) +#define min_val_Vanetza_ITS2_Longitude (-1800000000) +#define max_val_Vanetza_ITS2_Longitude (1800000001) +#define min_val_Vanetza_ITS2_LongitudinalAccelerationValue (-160) +#define max_val_Vanetza_ITS2_LongitudinalAccelerationValue (161) +#define min_val_Vanetza_ITS2_LongitudinalLanePositionValue (0) +#define max_val_Vanetza_ITS2_LongitudinalLanePositionValue (32767) +#define min_val_Vanetza_ITS2_LongitudinalLanePositionConfidence (0) +#define max_val_Vanetza_ITS2_LongitudinalLanePositionConfidence (1023) +#define min_val_Vanetza_ITS2_MessageId (0) +#define max_val_Vanetza_ITS2_MessageId (255) +#define min_val_Vanetza_ITS2_NumberOfOccupants (0) +#define max_val_Vanetza_ITS2_NumberOfOccupants (127) +#define min_val_Vanetza_ITS2_ObjectPerceptionQuality (0) +#define max_val_Vanetza_ITS2_ObjectPerceptionQuality (15) +#define min_val_Vanetza_ITS2_ObjectDimensionValue (1) +#define max_val_Vanetza_ITS2_ObjectDimensionValue (256) +#define min_val_Vanetza_ITS2_ObjectDimensionConfidence (1) +#define max_val_Vanetza_ITS2_ObjectDimensionConfidence (32) +#define min_val_Vanetza_ITS2_OrdinalNumber1B (0) +#define max_val_Vanetza_ITS2_OrdinalNumber1B (255) +#define min_val_Vanetza_ITS2_OrdinalNumber3b (1) +#define max_val_Vanetza_ITS2_OrdinalNumber3b (8) +#define min_val_Vanetza_ITS2_OtherSubClass (0) +#define max_val_Vanetza_ITS2_OtherSubClass (255) +#define min_val_Vanetza_ITS2_PathId (0) +#define max_val_Vanetza_ITS2_PathId (14) +#define min_val_Vanetza_ITS2_PerformanceClass (0) +#define max_val_Vanetza_ITS2_PerformanceClass (7) +#define min_val_Vanetza_ITS2_PosCentMass (1) +#define max_val_Vanetza_ITS2_PosCentMass (63) +#define min_val_Vanetza_ITS2_PosFrontAx (1) +#define max_val_Vanetza_ITS2_PosFrontAx (20) +#define min_val_Vanetza_ITS2_Position1d (-8190) +#define max_val_Vanetza_ITS2_Position1d (8191) +#define min_val_Vanetza_ITS2_PosLonCarr (1) +#define max_val_Vanetza_ITS2_PosLonCarr (127) +#define min_val_Vanetza_ITS2_PosPillar (1) +#define max_val_Vanetza_ITS2_PosPillar (30) +#define min_val_Vanetza_ITS2_PostCrashSubCauseCode (0) +#define max_val_Vanetza_ITS2_PostCrashSubCauseCode (255) +#define min_val_Vanetza_ITS2_PrecipitationIntensity (1) +#define max_val_Vanetza_ITS2_PrecipitationIntensity (2001) +#define min_val_Vanetza_ITS2_ProtectedZoneId (0) +#define max_val_Vanetza_ITS2_ProtectedZoneId (134217727) +#define min_val_Vanetza_ITS2_PtActivationType (0) +#define max_val_Vanetza_ITS2_PtActivationType (255) +#define min_val_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode (0) +#define max_val_Vanetza_ITS2_RailwayLevelCrossingSubCauseCode (255) +#define min_val_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_Vanetza_ITS2_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_Vanetza_ITS2_RoadworksSubCauseCode (0) +#define max_val_Vanetza_ITS2_RoadworksSubCauseCode (255) +#define min_val_Vanetza_ITS2_SemiAxisLength (0) +#define max_val_Vanetza_ITS2_SemiAxisLength (4095) +#define min_val_Vanetza_ITS2_SensorType (0) +#define max_val_Vanetza_ITS2_SensorType (31) +#define min_val_Vanetza_ITS2_SequenceNumber (0) +#define max_val_Vanetza_ITS2_SequenceNumber (65535) +#define min_val_Vanetza_ITS2_SignalViolationSubCauseCode (0) +#define max_val_Vanetza_ITS2_SignalViolationSubCauseCode (255) +#define min_val_Vanetza_ITS2_SlowVehicleSubCauseCode (0) +#define max_val_Vanetza_ITS2_SlowVehicleSubCauseCode (255) +#define min_val_Vanetza_ITS2_SpeedConfidence (1) +#define max_val_Vanetza_ITS2_SpeedConfidence (127) +#define min_val_Vanetza_ITS2_SpeedLimit (1) +#define max_val_Vanetza_ITS2_SpeedLimit (255) +#define min_val_Vanetza_ITS2_SpeedValue (0) +#define max_val_Vanetza_ITS2_SpeedValue (16383) +#define min_val_Vanetza_ITS2_VelocityComponentValue (-16383) +#define max_val_Vanetza_ITS2_VelocityComponentValue (16383) +#define min_val_Vanetza_ITS2_StabilityLossProbability (0) +#define max_val_Vanetza_ITS2_StabilityLossProbability (63) +#define min_val_Vanetza_ITS2_StandardLength12b (0) +#define max_val_Vanetza_ITS2_StandardLength12b (4095) +#define min_val_Vanetza_ITS2_StandardLength9b (0) +#define max_val_Vanetza_ITS2_StandardLength9b (511) +#define min_val_Vanetza_ITS2_StandardLength1B (0) +#define max_val_Vanetza_ITS2_StandardLength1B (255) +#define min_val_Vanetza_ITS2_StandardLength2B (0) +#define max_val_Vanetza_ITS2_StandardLength2B (65535) +#define min_val_Vanetza_ITS2_StationaryVehicleSubCauseCode (0) +#define max_val_Vanetza_ITS2_StationaryVehicleSubCauseCode (255) +#define min_val_Vanetza_ITS2_StationId (0) +#define max_val_Vanetza_ITS2_StationId (4294967295) +#define min_val_Vanetza_ITS2_StationID (0) +#define max_val_Vanetza_ITS2_StationID (4294967295) +#define min_val_Vanetza_ITS2_StationType (0) +#define max_val_Vanetza_ITS2_StationType (255) +#define min_val_Vanetza_ITS2_SteeringWheelAngleConfidence (1) +#define max_val_Vanetza_ITS2_SteeringWheelAngleConfidence (127) +#define min_val_Vanetza_ITS2_SteeringWheelAngleValue (-511) +#define max_val_Vanetza_ITS2_SteeringWheelAngleValue (512) +#define min_val_Vanetza_ITS2_SubCauseCodeType (0) +#define max_val_Vanetza_ITS2_SubCauseCodeType (255) +#define min_val_Vanetza_ITS2_Temperature (-60) +#define max_val_Vanetza_ITS2_Temperature (67) +#define min_val_Vanetza_ITS2_TimestampIts (0) +#define max_val_Vanetza_ITS2_TimestampIts (4398046511103) +#define min_val_Vanetza_ITS2_TrafficConditionSubCauseCode (0) +#define max_val_Vanetza_ITS2_TrafficConditionSubCauseCode (255) +#define min_val_Vanetza_ITS2_TrafficParticipantType (0) +#define max_val_Vanetza_ITS2_TrafficParticipantType (255) +#define min_val_Vanetza_ITS2_TrajectoryInterceptionProbability (0) +#define max_val_Vanetza_ITS2_TrajectoryInterceptionProbability (63) +#define min_val_Vanetza_ITS2_TrajectoryInterceptionConfidence (0) +#define max_val_Vanetza_ITS2_TrajectoryInterceptionConfidence (3) +#define min_val_Vanetza_ITS2_TransmissionInterval (1) +#define max_val_Vanetza_ITS2_TransmissionInterval (10000) +#define min_val_Vanetza_ITS2_TurningRadius (1) +#define max_val_Vanetza_ITS2_TurningRadius (255) +#define min_val_Vanetza_ITS2_ValidityDuration (0) +#define max_val_Vanetza_ITS2_ValidityDuration (86400) +#define min_val_Vanetza_ITS2_VehicleBreakdownSubCauseCode (0) +#define max_val_Vanetza_ITS2_VehicleBreakdownSubCauseCode (255) +#define min_val_Vanetza_ITS2_VehicleHeight (1) +#define max_val_Vanetza_ITS2_VehicleHeight (128) +#define min_val_Vanetza_ITS2_VehicleLengthValue (1) +#define max_val_Vanetza_ITS2_VehicleLengthValue (1023) +#define min_val_Vanetza_ITS2_VehicleMass (1) +#define max_val_Vanetza_ITS2_VehicleMass (1024) +#define min_val_Vanetza_ITS2_VehicleWidth (1) +#define max_val_Vanetza_ITS2_VehicleWidth (62) +#define min_val_Vanetza_ITS2_VerticalAccelerationValue (-160) +#define max_val_Vanetza_ITS2_VerticalAccelerationValue (161) +#define min_val_Vanetza_ITS2_VruDeviceUsage (0) +#define max_val_Vanetza_ITS2_VruDeviceUsage (15) +#define min_val_Vanetza_ITS2_VruEnvironment (0) +#define max_val_Vanetza_ITS2_VruEnvironment (15) +#define min_val_Vanetza_ITS2_VruMovementControl (0) +#define max_val_Vanetza_ITS2_VruMovementControl (15) +#define min_val_Vanetza_ITS2_VruSubProfilePedestrian (0) +#define max_val_Vanetza_ITS2_VruSubProfilePedestrian (15) +#define min_val_Vanetza_ITS2_VruSubProfileBicyclist (0) +#define max_val_Vanetza_ITS2_VruSubProfileBicyclist (15) +#define min_val_Vanetza_ITS2_VruSubProfileMotorcyclist (0) +#define max_val_Vanetza_ITS2_VruSubProfileMotorcyclist (15) +#define min_val_Vanetza_ITS2_VruSubProfileAnimal (0) +#define max_val_Vanetza_ITS2_VruSubProfileAnimal (15) +#define min_val_Vanetza_ITS2_VruSizeClass (0) +#define max_val_Vanetza_ITS2_VruSizeClass (15) +#define min_val_Vanetza_ITS2_WheelBaseVehicle (1) +#define max_val_Vanetza_ITS2_WheelBaseVehicle (127) +#define min_val_Vanetza_ITS2_Wgs84AngleConfidence (1) +#define max_val_Vanetza_ITS2_Wgs84AngleConfidence (127) +#define min_val_Vanetza_ITS2_Wgs84AngleValue (0) +#define max_val_Vanetza_ITS2_Wgs84AngleValue (3601) +#define min_val_Vanetza_ITS2_WrongWayDrivingSubCauseCode (0) +#define max_val_Vanetza_ITS2_WrongWayDrivingSubCauseCode (255) +#define min_val_Vanetza_ITS2_YawRateValue (-32766) +#define max_val_Vanetza_ITS2_YawRateValue (32767) +#define Vanetza_ITS2_defaultValidity (600) +#define min_val_Vanetza_ITS2_CpmContainerId (1) +#define max_val_Vanetza_ITS2_CpmContainerId (16) + + +#ifdef __cplusplus +} +#endif + +#endif /* _Vanetza_ITS2_ASN_CONSTANT_H */