skeleton for J2735
diff --git a/examples/README b/examples/README
index 82a4a36..cf6e225 100644
--- a/examples/README
+++ b/examples/README
@@ -25,8 +25,11 @@
Before trying to compile, read the README file in that directory.
8. The ./sample.source.ULP directory contains the Open Mobile Alliance
- UserPlane Location Protocol decoder. Before trying to compile, read the
- README file in that directory.
+ UserPlane Location Protocol decoder.
+ Before trying to compile, read the README file in that directory.
+
+9. The ./sample.source.J2735 directory contains the SAE J2735-201603 decoder.
+ Before trying to compile, read the README file in that directory.
The crfc2asn1.pl script can be used to extract ASN.1 data from RFC texts.
For instance, it is used to extract X.509, MEGACO, and LDAPv3 ASN.1 modules
diff --git a/examples/sample.source.J2735/Makefile b/examples/sample.source.J2735/Makefile
new file mode 100644
index 0000000..a0c79c5
--- /dev/null
+++ b/examples/sample.source.J2735/Makefile
@@ -0,0 +1,1155 @@
+ASN_MODULE_SOURCES= \
+ MessageFrame.c \
+ RegionalExtension.c \
+ BasicSafetyMessage.c \
+ PartIIcontent.c \
+ PartII-Id.c \
+ CommonSafetyRequest.c \
+ EmergencyVehicleAlert.c \
+ IntersectionCollision.c \
+ MapData.c \
+ NMEAcorrections.c \
+ PersonalSafetyMessage.c \
+ ProbeDataManagement.c \
+ ProbeVehicleData.c \
+ RoadSideAlert.c \
+ RTCMcorrections.c \
+ SPAT.c \
+ SignalRequestMessage.c \
+ SignalStatusMessage.c \
+ TravelerInformation.c \
+ TestMessage00.c \
+ TestMessage01.c \
+ TestMessage02.c \
+ TestMessage03.c \
+ TestMessage04.c \
+ TestMessage05.c \
+ TestMessage06.c \
+ TestMessage07.c \
+ TestMessage08.c \
+ TestMessage09.c \
+ TestMessage10.c \
+ TestMessage11.c \
+ TestMessage12.c \
+ TestMessage13.c \
+ TestMessage14.c \
+ TestMessage15.c \
+ AccelerationSet4Way.c \
+ AccelSteerYawRateConfidence.c \
+ AdvisorySpeed.c \
+ AdvisorySpeedList.c \
+ AntennaOffsetSet.c \
+ ApproachOrLane.c \
+ BrakeSystemStatus.c \
+ BSMcoreData.c \
+ BumperHeights.c \
+ Circle.c \
+ ComputedLane.c \
+ ConfidenceSet.c \
+ ConnectingLane.c \
+ Connection.c \
+ ConnectionManeuverAssist.c \
+ ConnectsToList.c \
+ DataParameters.c \
+ DDate.c \
+ DDateTime.c \
+ DFullTime.c \
+ DMonthDay.c \
+ DTime.c \
+ DYearMonth.c \
+ DisabledVehicle.c \
+ EmergencyDetails.c \
+ EnabledLaneList.c \
+ EventDescription.c \
+ FullPositionVector.c \
+ GenericLane.c \
+ GeographicalPath.c \
+ GeometricProjection.c \
+ Header.c \
+ IntersectionAccessPoint.c \
+ IntersectionGeometry.c \
+ IntersectionGeometryList.c \
+ IntersectionReferenceID.c \
+ IntersectionState.c \
+ IntersectionStateList.c \
+ ExitService.c \
+ GenericSignage.c \
+ SpeedLimit.c \
+ WorkZone.c \
+ J1939data.c \
+ TireDataList.c \
+ TireData.c \
+ AxleWeightList.c \
+ AxleWeightSet.c \
+ LaneAttributes.c \
+ LaneDataAttribute.c \
+ LaneDataAttributeList.c \
+ LaneList.c \
+ LaneTypeAttributes.c \
+ ManeuverAssistList.c \
+ MovementEventList.c \
+ MovementEvent.c \
+ MovementList.c \
+ MovementState.c \
+ Node-LL-24B.c \
+ Node-LL-28B.c \
+ Node-LL-32B.c \
+ Node-LL-36B.c \
+ Node-LL-44B.c \
+ Node-LL-48B.c \
+ Node-LLmD-64b.c \
+ Node-XY-20b.c \
+ Node-XY-22b.c \
+ Node-XY-24b.c \
+ Node-XY-26b.c \
+ Node-XY-28b.c \
+ Node-XY-32b.c \
+ NodeAttributeLLList.c \
+ NodeAttributeSetLL.c \
+ NodeAttributeSetXY.c \
+ NodeAttributeXYList.c \
+ NodeListLL.c \
+ NodeListXY.c \
+ NodeLL.c \
+ NodeOffsetPointLL.c \
+ NodeOffsetPointXY.c \
+ NodeSetLL.c \
+ NodeSetXY.c \
+ NodeXY.c \
+ ObstacleDetection.c \
+ OffsetSystem.c \
+ OverlayLaneList.c \
+ PathHistory.c \
+ PathHistoryPointList.c \
+ PathHistoryPoint.c \
+ PathPrediction.c \
+ PivotPointDescription.c \
+ Position3D.c \
+ PositionalAccuracy.c \
+ PositionConfidenceSet.c \
+ PreemptPriorityList.c \
+ SignalControlZone.c \
+ PrivilegedEvents.c \
+ PropelledInformation.c \
+ RegionList.c \
+ RegionOffsets.c \
+ RegionPointSet.c \
+ RegulatorySpeedLimit.c \
+ RequestedItemList.c \
+ RequestorDescription.c \
+ RequestorPositionVector.c \
+ RequestorType.c \
+ RestrictionClassAssignment.c \
+ RestrictionClassList.c \
+ RestrictionUserTypeList.c \
+ RestrictionUserType.c \
+ RoadLaneSetList.c \
+ RoadSegmentList.c \
+ RoadSegmentReferenceID.c \
+ RoadSegment.c \
+ RoadSignID.c \
+ RTCMheader.c \
+ RTCMmessageList.c \
+ RTCMPackage.c \
+ Sample.c \
+ SegmentAttributeLLList.c \
+ SegmentAttributeXYList.c \
+ ShapePointSet.c \
+ SignalRequesterInfo.c \
+ SignalRequestList.c \
+ SignalRequestPackage.c \
+ SignalRequest.c \
+ SignalStatusList.c \
+ SignalStatusPackageList.c \
+ SignalStatusPackage.c \
+ SignalStatus.c \
+ SnapshotDistance.c \
+ Snapshot.c \
+ SnapshotTime.c \
+ SpecialVehicleExtensions.c \
+ SpeedandHeadingandThrottleConfidence.c \
+ SpeedLimitList.c \
+ SpeedProfileMeasurementList.c \
+ SpeedProfile.c \
+ SupplementalVehicleExtensions.c \
+ TimeChangeDetails.c \
+ TrailerData.c \
+ TrailerHistoryPointList.c \
+ TrailerHistoryPoint.c \
+ TrailerUnitDescriptionList.c \
+ TrailerUnitDescription.c \
+ TransmissionAndSpeed.c \
+ TravelerDataFrameList.c \
+ TravelerDataFrame.c \
+ ValidRegion.c \
+ VehicleClassification.c \
+ VehicleData.c \
+ VehicleIdent.c \
+ VehicleID.c \
+ VehicleSafetyExtensions.c \
+ VehicleSize.c \
+ VehicleStatusRequest.c \
+ VehicleStatusRequestList.c \
+ VehicleStatus.c \
+ VerticalOffset.c \
+ WeatherProbe.c \
+ WeatherReport.c \
+ WiperSet.c \
+ Acceleration.c \
+ AccelerationConfidence.c \
+ AdvisorySpeedType.c \
+ AllowedManeuvers.c \
+ AmbientAirPressure.c \
+ AmbientAirTemperature.c \
+ DSRC_Angle.c \
+ AnimalPropelledType.c \
+ AnimalType.c \
+ AntiLockBrakeStatus.c \
+ ApproachID.c \
+ Attachment.c \
+ AttachmentRadius.c \
+ AuxiliaryBrakeStatus.c \
+ BasicVehicleClass.c \
+ BasicVehicleRole.c \
+ BrakeAppliedPressure.c \
+ BrakeAppliedStatus.c \
+ BrakeBoostApplied.c \
+ BumperHeight.c \
+ CoarseHeading.c \
+ CodeWord.c \
+ CoefficientOfFriction.c \
+ Confidence.c \
+ Count.c \
+ DDay.c \
+ DeltaAngle.c \
+ DeltaTime.c \
+ DescriptiveName.c \
+ DHour.c \
+ DirectionOfUse.c \
+ DistanceUnits.c \
+ DMinute.c \
+ DMonth.c \
+ DOffset.c \
+ DrivenLineOffsetLg.c \
+ DrivenLineOffsetSm.c \
+ DrivingWheelAngle.c \
+ DSecond.c \
+ DSRCmsgID.c \
+ Duration.c \
+ DYear.c \
+ ElevationConfidence.c \
+ DSRC_Elevation.c \
+ Extent.c \
+ ExteriorLights.c \
+ FuelType.c \
+ FurtherInfoID.c \
+ GNSSstatus.c \
+ GrossDistance.c \
+ GrossSpeed.c \
+ HeadingConfidence.c \
+ Heading.c \
+ HeadingSlice.c \
+ IntersectionID.c \
+ IntersectionStatusObject.c \
+ IsDolly.c \
+ Iso3833VehicleType.c \
+ ITIStextPhrase.c \
+ AxleLocation.c \
+ AxleWeight.c \
+ CargoWeight.c \
+ DriveAxleLiftAirPressure.c \
+ DriveAxleLocation.c \
+ DriveAxleLubePressure.c \
+ DriveAxleTemperature.c \
+ SteeringAxleLubePressure.c \
+ SteeringAxleTemperature.c \
+ TireLeakageRate.c \
+ TireLocation.c \
+ TirePressureThresholdDetection.c \
+ TirePressure.c \
+ TireTemp.c \
+ TrailerWeight.c \
+ WheelEndElectFault.c \
+ WheelSensorStatus.c \
+ LaneAttributes-Barrier.c \
+ LaneAttributes-Bike.c \
+ LaneAttributes-Crosswalk.c \
+ LaneAttributes-Parking.c \
+ LaneAttributes-Sidewalk.c \
+ LaneAttributes-Striping.c \
+ LaneAttributes-TrackedVehicle.c \
+ LaneAttributes-Vehicle.c \
+ LaneConnectionID.c \
+ LaneDirection.c \
+ LaneID.c \
+ LaneSharing.c \
+ LaneWidth.c \
+ Latitude.c \
+ LayerID.c \
+ LayerType.c \
+ LightbarInUse.c \
+ Longitude.c \
+ Location-quality.c \
+ Location-tech.c \
+ MergeDivergeNodeAngle.c \
+ MessageBLOB.c \
+ MinuteOfTheYear.c \
+ MinutesDuration.c \
+ MotorizedPropelledType.c \
+ MovementPhaseState.c \
+ DSRC_MsgCount.c \
+ MsgCRC.c \
+ MultiVehicleResponse.c \
+ MUTCDCode.c \
+ NMEA-MsgType.c \
+ NMEA-Payload.c \
+ NMEA-Revision.c \
+ NodeAttributeLL.c \
+ NodeAttributeXY.c \
+ NumberOfParticipantsInCluster.c \
+ ObjectCount.c \
+ ObstacleDirection.c \
+ ObstacleDistance.c \
+ Offset-B09.c \
+ Offset-B10.c \
+ Offset-B11.c \
+ Offset-B12.c \
+ Offset-B13.c \
+ Offset-B14.c \
+ Offset-B16.c \
+ OffsetLL-B12.c \
+ OffsetLL-B14.c \
+ OffsetLL-B16.c \
+ OffsetLL-B18.c \
+ OffsetLL-B22.c \
+ OffsetLL-B24.c \
+ PayloadData.c \
+ PedestrianBicycleDetect.c \
+ HumanPropelledType.c \
+ PersonalAssistive.c \
+ PersonalClusterRadius.c \
+ PersonalCrossingInProgress.c \
+ PersonalCrossingRequest.c \
+ PersonalDeviceUsageState.c \
+ PersonalDeviceUserType.c \
+ PivotingAllowed.c \
+ PositionConfidence.c \
+ PrioritizationResponseStatus.c \
+ Priority.c \
+ PriorityRequestType.c \
+ PrivilegedEventFlags.c \
+ ProbeSegmentNumber.c \
+ PublicSafetyAndRoadWorkerActivity.c \
+ PublicSafetyDirectingTrafficSubType.c \
+ PublicSafetyEventResponderWorkerType.c \
+ RadiusOfCurvature.c \
+ Radius-B12.c \
+ RainSensor.c \
+ RegionId.c \
+ RequestedItem.c \
+ RequestID.c \
+ RequestImportanceLevel.c \
+ RequestSubRole.c \
+ ResponseType.c \
+ RestrictionAppliesTo.c \
+ RestrictionClassID.c \
+ RoadRegulatorID.c \
+ RoadSegmentID.c \
+ RoadwayCrownAngle.c \
+ RTCM-Revision.c \
+ RTCMmessage.c \
+ Scale-B12.c \
+ SecondOfTime.c \
+ SegmentAttributeLL.c \
+ SegmentAttributeXY.c \
+ SemiMajorAxisAccuracy.c \
+ SemiMajorAxisOrientation.c \
+ SemiMinorAxisAccuracy.c \
+ SignalGroupID.c \
+ SignalReqScheme.c \
+ SignPrority.c \
+ SirenInUse.c \
+ SpeedAdvice.c \
+ SpeedConfidence.c \
+ SpeedLimitType.c \
+ SpeedProfileMeasurement.c \
+ Speed.c \
+ SSPindex.c \
+ StabilityControlStatus.c \
+ StationID.c \
+ SteeringWheelAngleConfidence.c \
+ SteeringWheelAngleRateOfChange.c \
+ SteeringWheelAngle.c \
+ SunSensor.c \
+ TemporaryID.c \
+ TermDistance.c \
+ TermTime.c \
+ ThrottleConfidence.c \
+ ThrottlePosition.c \
+ TimeConfidence.c \
+ TimeIntervalConfidence.c \
+ DSRC_TimeMark.c \
+ TimeOffset.c \
+ TractionControlStatus.c \
+ TrailerMass.c \
+ TransitStatus.c \
+ TransitVehicleOccupancy.c \
+ TransitVehicleStatus.c \
+ TransmissionState.c \
+ TravelerInfoType.c \
+ UniqueMSGID.c \
+ URL-Base.c \
+ URL-Link.c \
+ URL-Short.c \
+ UserSizeAndBehaviour.c \
+ VehicleEventFlags.c \
+ VehicleHeight.c \
+ VehicleLength.c \
+ VehicleMass.c \
+ VehicleStatusDeviceTypeTag.c \
+ VehicleType.c \
+ VehicleWidth.c \
+ Velocity.c \
+ VerticalAccelerationThreshold.c \
+ VerticalAcceleration.c \
+ VertOffset-B07.c \
+ VertOffset-B08.c \
+ VertOffset-B09.c \
+ VertOffset-B10.c \
+ VertOffset-B11.c \
+ VertOffset-B12.c \
+ VINstring.c \
+ WaitOnStopline.c \
+ WiperRate.c \
+ WiperStatus.c \
+ YawRateConfidence.c \
+ YawRate.c \
+ ZoneLength.c \
+ Zoom.c \
+ AltitudeConfidence.c \
+ AltitudeValue.c \
+ EmissionType.c \
+ Altitude.c \
+ PrioritizationResponse.c \
+ PrioritizationResponseList.c \
+ ConnectionManeuverAssist-addGrpC.c \
+ IntersectionState-addGrpC.c \
+ MapData-addGrpC.c \
+ Position3D-addGrpC.c \
+ RestrictionUserType-addGrpC.c \
+ SignalHeadLocation.c \
+ SignalHeadLocationList.c \
+ VehicleToLanePosition.c \
+ VehicleToLanePositionList.c \
+ AddGrpB_Angle.c \
+ Day.c \
+ DayOfWeek.c \
+ DegreesLat.c \
+ DegreesLong.c \
+ AddGrpB_Elevation.c \
+ Holiday.c \
+ Hour.c \
+ LatitudeDMS.c \
+ LongitudeDMS.c \
+ MaxTimetoChange.c \
+ MinTimetoChange.c \
+ Minute.c \
+ MinutesAngle.c \
+ Month.c \
+ AddGrpB_MsgCount.c \
+ Second.c \
+ SecondsAngle.c \
+ SummerTime.c \
+ TenthSecond.c \
+ TimeRemaining.c \
+ Year.c \
+ LatitudeDMS2.c \
+ LongitudeDMS2.c \
+ Node-LLdms-48b.c \
+ Node-LLdms-80b.c \
+ LaneDataAttribute-addGrpB.c \
+ MovementEvent-addGrpB.c \
+ NodeOffsetPointXY-addGrpB.c \
+ Position3D-addGrpB.c \
+ AddGrpB_TimeMark.c \
+ EssMobileFriction.c \
+ EssPrecipRate.c \
+ EssPrecipSituation.c \
+ EssPrecipYesNo.c \
+ EssSolarRadiation.c \
+ GenericLocations.c \
+ IncidentResponseEquipment.c \
+ ITIStext.c \
+ ResponderGroupAffected.c \
+ VehicleGroupAffected.c \
+ ITIScodesAndText.c \
+ ITIScodes.c
+
+ASN_MODULE_HEADERS= \
+ MessageFrame.h \
+ RegionalExtension.h \
+ BasicSafetyMessage.h \
+ PartIIcontent.h \
+ PartII-Id.h \
+ CommonSafetyRequest.h \
+ EmergencyVehicleAlert.h \
+ IntersectionCollision.h \
+ MapData.h \
+ NMEAcorrections.h \
+ PersonalSafetyMessage.h \
+ ProbeDataManagement.h \
+ ProbeVehicleData.h \
+ RoadSideAlert.h \
+ RTCMcorrections.h \
+ SPAT.h \
+ SignalRequestMessage.h \
+ SignalStatusMessage.h \
+ TravelerInformation.h \
+ TestMessage00.h \
+ TestMessage01.h \
+ TestMessage02.h \
+ TestMessage03.h \
+ TestMessage04.h \
+ TestMessage05.h \
+ TestMessage06.h \
+ TestMessage07.h \
+ TestMessage08.h \
+ TestMessage09.h \
+ TestMessage10.h \
+ TestMessage11.h \
+ TestMessage12.h \
+ TestMessage13.h \
+ TestMessage14.h \
+ TestMessage15.h \
+ AccelerationSet4Way.h \
+ AccelSteerYawRateConfidence.h \
+ AdvisorySpeed.h \
+ AdvisorySpeedList.h \
+ AntennaOffsetSet.h \
+ ApproachOrLane.h \
+ BrakeSystemStatus.h \
+ BSMcoreData.h \
+ BumperHeights.h \
+ Circle.h \
+ ComputedLane.h \
+ ConfidenceSet.h \
+ ConnectingLane.h \
+ Connection.h \
+ ConnectionManeuverAssist.h \
+ ConnectsToList.h \
+ DataParameters.h \
+ DDate.h \
+ DDateTime.h \
+ DFullTime.h \
+ DMonthDay.h \
+ DTime.h \
+ DYearMonth.h \
+ DisabledVehicle.h \
+ EmergencyDetails.h \
+ EnabledLaneList.h \
+ EventDescription.h \
+ FullPositionVector.h \
+ GenericLane.h \
+ GeographicalPath.h \
+ GeometricProjection.h \
+ Header.h \
+ IntersectionAccessPoint.h \
+ IntersectionGeometry.h \
+ IntersectionGeometryList.h \
+ IntersectionReferenceID.h \
+ IntersectionState.h \
+ IntersectionStateList.h \
+ ExitService.h \
+ GenericSignage.h \
+ SpeedLimit.h \
+ WorkZone.h \
+ J1939data.h \
+ TireDataList.h \
+ TireData.h \
+ AxleWeightList.h \
+ AxleWeightSet.h \
+ LaneAttributes.h \
+ LaneDataAttribute.h \
+ LaneDataAttributeList.h \
+ LaneList.h \
+ LaneTypeAttributes.h \
+ ManeuverAssistList.h \
+ MovementEventList.h \
+ MovementEvent.h \
+ MovementList.h \
+ MovementState.h \
+ Node-LL-24B.h \
+ Node-LL-28B.h \
+ Node-LL-32B.h \
+ Node-LL-36B.h \
+ Node-LL-44B.h \
+ Node-LL-48B.h \
+ Node-LLmD-64b.h \
+ Node-XY-20b.h \
+ Node-XY-22b.h \
+ Node-XY-24b.h \
+ Node-XY-26b.h \
+ Node-XY-28b.h \
+ Node-XY-32b.h \
+ NodeAttributeLLList.h \
+ NodeAttributeSetLL.h \
+ NodeAttributeSetXY.h \
+ NodeAttributeXYList.h \
+ NodeListLL.h \
+ NodeListXY.h \
+ NodeLL.h \
+ NodeOffsetPointLL.h \
+ NodeOffsetPointXY.h \
+ NodeSetLL.h \
+ NodeSetXY.h \
+ NodeXY.h \
+ ObstacleDetection.h \
+ OffsetSystem.h \
+ OverlayLaneList.h \
+ PathHistory.h \
+ PathHistoryPointList.h \
+ PathHistoryPoint.h \
+ PathPrediction.h \
+ PivotPointDescription.h \
+ Position3D.h \
+ PositionalAccuracy.h \
+ PositionConfidenceSet.h \
+ PreemptPriorityList.h \
+ SignalControlZone.h \
+ PrivilegedEvents.h \
+ PropelledInformation.h \
+ RegionList.h \
+ RegionOffsets.h \
+ RegionPointSet.h \
+ RegulatorySpeedLimit.h \
+ RequestedItemList.h \
+ RequestorDescription.h \
+ RequestorPositionVector.h \
+ RequestorType.h \
+ RestrictionClassAssignment.h \
+ RestrictionClassList.h \
+ RestrictionUserTypeList.h \
+ RestrictionUserType.h \
+ RoadLaneSetList.h \
+ RoadSegmentList.h \
+ RoadSegmentReferenceID.h \
+ RoadSegment.h \
+ RoadSignID.h \
+ RTCMheader.h \
+ RTCMmessageList.h \
+ RTCMPackage.h \
+ Sample.h \
+ SegmentAttributeLLList.h \
+ SegmentAttributeXYList.h \
+ ShapePointSet.h \
+ SignalRequesterInfo.h \
+ SignalRequestList.h \
+ SignalRequestPackage.h \
+ SignalRequest.h \
+ SignalStatusList.h \
+ SignalStatusPackageList.h \
+ SignalStatusPackage.h \
+ SignalStatus.h \
+ SnapshotDistance.h \
+ Snapshot.h \
+ SnapshotTime.h \
+ SpecialVehicleExtensions.h \
+ SpeedandHeadingandThrottleConfidence.h \
+ SpeedLimitList.h \
+ SpeedProfileMeasurementList.h \
+ SpeedProfile.h \
+ SupplementalVehicleExtensions.h \
+ TimeChangeDetails.h \
+ TrailerData.h \
+ TrailerHistoryPointList.h \
+ TrailerHistoryPoint.h \
+ TrailerUnitDescriptionList.h \
+ TrailerUnitDescription.h \
+ TransmissionAndSpeed.h \
+ TravelerDataFrameList.h \
+ TravelerDataFrame.h \
+ ValidRegion.h \
+ VehicleClassification.h \
+ VehicleData.h \
+ VehicleIdent.h \
+ VehicleID.h \
+ VehicleSafetyExtensions.h \
+ VehicleSize.h \
+ VehicleStatusRequest.h \
+ VehicleStatusRequestList.h \
+ VehicleStatus.h \
+ VerticalOffset.h \
+ WeatherProbe.h \
+ WeatherReport.h \
+ WiperSet.h \
+ Acceleration.h \
+ AccelerationConfidence.h \
+ AdvisorySpeedType.h \
+ AllowedManeuvers.h \
+ AmbientAirPressure.h \
+ AmbientAirTemperature.h \
+ DSRC_Angle.h \
+ AnimalPropelledType.h \
+ AnimalType.h \
+ AntiLockBrakeStatus.h \
+ ApproachID.h \
+ Attachment.h \
+ AttachmentRadius.h \
+ AuxiliaryBrakeStatus.h \
+ BasicVehicleClass.h \
+ BasicVehicleRole.h \
+ BrakeAppliedPressure.h \
+ BrakeAppliedStatus.h \
+ BrakeBoostApplied.h \
+ BumperHeight.h \
+ CoarseHeading.h \
+ CodeWord.h \
+ CoefficientOfFriction.h \
+ Confidence.h \
+ Count.h \
+ DDay.h \
+ DeltaAngle.h \
+ DeltaTime.h \
+ DescriptiveName.h \
+ DHour.h \
+ DirectionOfUse.h \
+ DistanceUnits.h \
+ DMinute.h \
+ DMonth.h \
+ DOffset.h \
+ DrivenLineOffsetLg.h \
+ DrivenLineOffsetSm.h \
+ DrivingWheelAngle.h \
+ DSecond.h \
+ DSRCmsgID.h \
+ Duration.h \
+ DYear.h \
+ ElevationConfidence.h \
+ DSRC_Elevation.h \
+ Extent.h \
+ ExteriorLights.h \
+ FuelType.h \
+ FurtherInfoID.h \
+ GNSSstatus.h \
+ GrossDistance.h \
+ GrossSpeed.h \
+ HeadingConfidence.h \
+ Heading.h \
+ HeadingSlice.h \
+ IntersectionID.h \
+ IntersectionStatusObject.h \
+ IsDolly.h \
+ Iso3833VehicleType.h \
+ ITIStextPhrase.h \
+ AxleLocation.h \
+ AxleWeight.h \
+ CargoWeight.h \
+ DriveAxleLiftAirPressure.h \
+ DriveAxleLocation.h \
+ DriveAxleLubePressure.h \
+ DriveAxleTemperature.h \
+ SteeringAxleLubePressure.h \
+ SteeringAxleTemperature.h \
+ TireLeakageRate.h \
+ TireLocation.h \
+ TirePressureThresholdDetection.h \
+ TirePressure.h \
+ TireTemp.h \
+ TrailerWeight.h \
+ WheelEndElectFault.h \
+ WheelSensorStatus.h \
+ LaneAttributes-Barrier.h \
+ LaneAttributes-Bike.h \
+ LaneAttributes-Crosswalk.h \
+ LaneAttributes-Parking.h \
+ LaneAttributes-Sidewalk.h \
+ LaneAttributes-Striping.h \
+ LaneAttributes-TrackedVehicle.h \
+ LaneAttributes-Vehicle.h \
+ LaneConnectionID.h \
+ LaneDirection.h \
+ LaneID.h \
+ LaneSharing.h \
+ LaneWidth.h \
+ Latitude.h \
+ LayerID.h \
+ LayerType.h \
+ LightbarInUse.h \
+ Longitude.h \
+ Location-quality.h \
+ Location-tech.h \
+ MergeDivergeNodeAngle.h \
+ MessageBLOB.h \
+ MinuteOfTheYear.h \
+ MinutesDuration.h \
+ MotorizedPropelledType.h \
+ MovementPhaseState.h \
+ DSRC_MsgCount.h \
+ MsgCRC.h \
+ MultiVehicleResponse.h \
+ MUTCDCode.h \
+ NMEA-MsgType.h \
+ NMEA-Payload.h \
+ NMEA-Revision.h \
+ NodeAttributeLL.h \
+ NodeAttributeXY.h \
+ NumberOfParticipantsInCluster.h \
+ ObjectCount.h \
+ ObstacleDirection.h \
+ ObstacleDistance.h \
+ Offset-B09.h \
+ Offset-B10.h \
+ Offset-B11.h \
+ Offset-B12.h \
+ Offset-B13.h \
+ Offset-B14.h \
+ Offset-B16.h \
+ OffsetLL-B12.h \
+ OffsetLL-B14.h \
+ OffsetLL-B16.h \
+ OffsetLL-B18.h \
+ OffsetLL-B22.h \
+ OffsetLL-B24.h \
+ PayloadData.h \
+ PedestrianBicycleDetect.h \
+ HumanPropelledType.h \
+ PersonalAssistive.h \
+ PersonalClusterRadius.h \
+ PersonalCrossingInProgress.h \
+ PersonalCrossingRequest.h \
+ PersonalDeviceUsageState.h \
+ PersonalDeviceUserType.h \
+ PivotingAllowed.h \
+ PositionConfidence.h \
+ PrioritizationResponseStatus.h \
+ Priority.h \
+ PriorityRequestType.h \
+ PrivilegedEventFlags.h \
+ ProbeSegmentNumber.h \
+ PublicSafetyAndRoadWorkerActivity.h \
+ PublicSafetyDirectingTrafficSubType.h \
+ PublicSafetyEventResponderWorkerType.h \
+ RadiusOfCurvature.h \
+ Radius-B12.h \
+ RainSensor.h \
+ RegionId.h \
+ RequestedItem.h \
+ RequestID.h \
+ RequestImportanceLevel.h \
+ RequestSubRole.h \
+ ResponseType.h \
+ RestrictionAppliesTo.h \
+ RestrictionClassID.h \
+ RoadRegulatorID.h \
+ RoadSegmentID.h \
+ RoadwayCrownAngle.h \
+ RTCM-Revision.h \
+ RTCMmessage.h \
+ Scale-B12.h \
+ SecondOfTime.h \
+ SegmentAttributeLL.h \
+ SegmentAttributeXY.h \
+ SemiMajorAxisAccuracy.h \
+ SemiMajorAxisOrientation.h \
+ SemiMinorAxisAccuracy.h \
+ SignalGroupID.h \
+ SignalReqScheme.h \
+ SignPrority.h \
+ SirenInUse.h \
+ SpeedAdvice.h \
+ SpeedConfidence.h \
+ SpeedLimitType.h \
+ SpeedProfileMeasurement.h \
+ Speed.h \
+ SSPindex.h \
+ StabilityControlStatus.h \
+ StationID.h \
+ SteeringWheelAngleConfidence.h \
+ SteeringWheelAngleRateOfChange.h \
+ SteeringWheelAngle.h \
+ SunSensor.h \
+ TemporaryID.h \
+ TermDistance.h \
+ TermTime.h \
+ ThrottleConfidence.h \
+ ThrottlePosition.h \
+ TimeConfidence.h \
+ TimeIntervalConfidence.h \
+ DSRC_TimeMark.h \
+ TimeOffset.h \
+ TractionControlStatus.h \
+ TrailerMass.h \
+ TransitStatus.h \
+ TransitVehicleOccupancy.h \
+ TransitVehicleStatus.h \
+ TransmissionState.h \
+ TravelerInfoType.h \
+ UniqueMSGID.h \
+ URL-Base.h \
+ URL-Link.h \
+ URL-Short.h \
+ UserSizeAndBehaviour.h \
+ VehicleEventFlags.h \
+ VehicleHeight.h \
+ VehicleLength.h \
+ VehicleMass.h \
+ VehicleStatusDeviceTypeTag.h \
+ VehicleType.h \
+ VehicleWidth.h \
+ Velocity.h \
+ VerticalAccelerationThreshold.h \
+ VerticalAcceleration.h \
+ VertOffset-B07.h \
+ VertOffset-B08.h \
+ VertOffset-B09.h \
+ VertOffset-B10.h \
+ VertOffset-B11.h \
+ VertOffset-B12.h \
+ VINstring.h \
+ WaitOnStopline.h \
+ WiperRate.h \
+ WiperStatus.h \
+ YawRateConfidence.h \
+ YawRate.h \
+ ZoneLength.h \
+ Zoom.h \
+ AltitudeConfidence.h \
+ AltitudeValue.h \
+ EmissionType.h \
+ Altitude.h \
+ PrioritizationResponse.h \
+ PrioritizationResponseList.h \
+ ConnectionManeuverAssist-addGrpC.h \
+ IntersectionState-addGrpC.h \
+ MapData-addGrpC.h \
+ Position3D-addGrpC.h \
+ RestrictionUserType-addGrpC.h \
+ SignalHeadLocation.h \
+ SignalHeadLocationList.h \
+ VehicleToLanePosition.h \
+ VehicleToLanePositionList.h \
+ AddGrpB_Angle.h \
+ Day.h \
+ DayOfWeek.h \
+ DegreesLat.h \
+ DegreesLong.h \
+ AddGrpB_Elevation.h \
+ Holiday.h \
+ Hour.h \
+ LatitudeDMS.h \
+ LongitudeDMS.h \
+ MaxTimetoChange.h \
+ MinTimetoChange.h \
+ Minute.h \
+ MinutesAngle.h \
+ Month.h \
+ AddGrpB_MsgCount.h \
+ Second.h \
+ SecondsAngle.h \
+ SummerTime.h \
+ TenthSecond.h \
+ TimeRemaining.h \
+ Year.h \
+ LatitudeDMS2.h \
+ LongitudeDMS2.h \
+ Node-LLdms-48b.h \
+ Node-LLdms-80b.h \
+ LaneDataAttribute-addGrpB.h \
+ MovementEvent-addGrpB.h \
+ NodeOffsetPointXY-addGrpB.h \
+ Position3D-addGrpB.h \
+ AddGrpB_TimeMark.h \
+ EssMobileFriction.h \
+ EssPrecipRate.h \
+ EssPrecipSituation.h \
+ EssPrecipYesNo.h \
+ EssSolarRadiation.h \
+ GenericLocations.h \
+ IncidentResponseEquipment.h \
+ ITIStext.h \
+ ResponderGroupAffected.h \
+ VehicleGroupAffected.h \
+ ITIScodesAndText.h \
+ ITIScodes.h
+
+ASN_MODULE_HEADERS+=ANY.h
+ASN_MODULE_SOURCES+=ANY.c
+ASN_MODULE_HEADERS+=BOOLEAN.h
+ASN_MODULE_SOURCES+=BOOLEAN.c
+ASN_MODULE_HEADERS+=INTEGER.h
+ASN_MODULE_HEADERS+=NativeEnumerated.h
+ASN_MODULE_HEADERS+=IA5String.h
+ASN_MODULE_SOURCES+=IA5String.c
+ASN_MODULE_SOURCES+=INTEGER.c
+ASN_MODULE_SOURCES+=NativeEnumerated.c
+ASN_MODULE_HEADERS+=NativeInteger.h
+ASN_MODULE_SOURCES+=NativeInteger.c
+ASN_MODULE_SOURCES+=NativeInteger_oer.c
+ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
+ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
+ASN_MODULE_HEADERS+=asn_SET_OF.h
+ASN_MODULE_SOURCES+=asn_SET_OF.c
+ASN_MODULE_HEADERS+=constr_CHOICE.h
+ASN_MODULE_SOURCES+=constr_CHOICE.c
+ASN_MODULE_HEADERS+=constr_SEQUENCE.h
+ASN_MODULE_SOURCES+=constr_SEQUENCE.c
+ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
+ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
+ASN_MODULE_HEADERS+=constr_SET_OF.h
+ASN_MODULE_SOURCES+=constr_SET_OF.c
+ASN_MODULE_HEADERS+=asn_application.h
+ASN_MODULE_HEADERS+=asn_system.h
+ASN_MODULE_HEADERS+=asn_codecs.h
+ASN_MODULE_HEADERS+=asn_internal.h
+ASN_MODULE_HEADERS+=OCTET_STRING.h
+ASN_MODULE_SOURCES+=OCTET_STRING.c
+ASN_MODULE_HEADERS+=BIT_STRING.h
+ASN_MODULE_SOURCES+=BIT_STRING.c
+ASN_MODULE_SOURCES+=asn_codecs_prim.c
+ASN_MODULE_HEADERS+=asn_codecs_prim.h
+ASN_MODULE_HEADERS+=ber_tlv_length.h
+ASN_MODULE_SOURCES+=ber_tlv_length.c
+ASN_MODULE_HEADERS+=ber_tlv_tag.h
+ASN_MODULE_SOURCES+=ber_tlv_tag.c
+ASN_MODULE_HEADERS+=ber_decoder.h
+ASN_MODULE_SOURCES+=ber_decoder.c
+ASN_MODULE_HEADERS+=der_encoder.h
+ASN_MODULE_SOURCES+=der_encoder.c
+ASN_MODULE_HEADERS+=constr_TYPE.h
+ASN_MODULE_SOURCES+=constr_TYPE.c
+ASN_MODULE_HEADERS+=constraints.h
+ASN_MODULE_SOURCES+=constraints.c
+ASN_MODULE_HEADERS+=xer_support.h
+ASN_MODULE_SOURCES+=xer_support.c
+ASN_MODULE_HEADERS+=xer_decoder.h
+ASN_MODULE_SOURCES+=xer_decoder.c
+ASN_MODULE_HEADERS+=xer_encoder.h
+ASN_MODULE_SOURCES+=xer_encoder.c
+ASN_MODULE_HEADERS+=oer_decoder.h
+ASN_MODULE_SOURCES+=oer_decoder.c
+ASN_MODULE_HEADERS+=oer_encoder.h
+ASN_MODULE_SOURCES+=oer_encoder.c
+ASN_MODULE_HEADERS+=oer_support.h
+ASN_MODULE_SOURCES+=oer_support.c
+ASN_MODULE_HEADERS+=per_support.h
+ASN_MODULE_SOURCES+=per_support.c
+ASN_MODULE_HEADERS+=per_decoder.h
+ASN_MODULE_SOURCES+=per_decoder.c
+ASN_MODULE_HEADERS+=per_encoder.h
+ASN_MODULE_SOURCES+=per_encoder.c
+ASN_MODULE_HEADERS+=per_opentype.h
+ASN_MODULE_SOURCES+=per_opentype.c
+ASN_CONVERTER_SOURCES+=converter-sample.c
+
+
+lib_LTLIBRARIES=libsomething.la
+libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
+
+# This file may be used as an input for make(3)
+# Remove the lines below to convert it into a pure .am file
+TARGET = j2735-dump
+CFLAGS += -DASN_CONVERTER_TITLE="J2735 DSRC decoder" -DHAVE_CONFIG_H -DJUNKTEST -D_DEFAULT_SOURCE -DPDU=MessageFrame -I.
+OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o}
+
+all: MessageFrame.c $(TARGET)
+
+$(TARGET): ${OBJS}
+ $(CC) $(CFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS)
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+
+.c.o:
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+clean:
+ rm -f $(TARGET)
+ rm -f $(OBJS)
+
+regen: regenerate-from-asn1-source
+
+regenerate-from-asn1-source:
+ ../../asn1c/asn1c -S ../../skeletons -pdu=MessageFrame -fcompound-names -gen-PER ../j2735.asn1
+
+
+MessageFrame.c: ../sample.makefile.regen ../j2735.asn1
+ make regen-makefile
+ @touch MessageFrame.c
+ make
+
+regen-makefile:
+ TITLE="J2735 DSRC decoder" \
+ ASN1CMDOPTS="-fcompound-names -gen-PER" \
+ ASN1MODULES="../j2735.asn1" \
+ ASN1PDU=MessageFrame \
+ PROGNAME=j2735-dump \
+ CFLAGS="" \
+ ../sample.makefile.regen
+
+check: ${TARGET} check-ber check-xer check-per
+ @echo ================
+ @echo All tests passed
+ @echo ================
+
+check-ber:
+ @if test -f sample-MessageFrame-1.[db]er ; then \
+ for f in sample-MessageFrame-*.[db]er; do \
+ for b in 1 17 33 980 8192; do \
+ echo "Recoding $$f into XER and back ($$b)..."; \
+ ./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \
+ ./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
+ diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \
+ rm -f ./.tmp.[12].$$$$; \
+ echo "Test junking $$f (please wait)..."; \
+ ./${TARGET} -J0.0001 -n 1000 -b $$b -iber -onull $$f || exit 5; \
+ ./${TARGET} -J0.001 -n 1000 -b $$b -iber -onull $$f || exit 6; \
+ done; done; fi
+
+check-xer:
+ @if test -f sample-MessageFrame-1.xer ; then \
+ for f in sample-MessageFrame-*.xer; do \
+ for b in 1 17 33 980 8192; do \
+ echo "Recoding $$f into DER and back ($$b)..."; \
+ ./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+ ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
+ diff $$f ./.tmp.2.$$$$ || exit 4; \
+ rm -f ./.tmp.[12].$$$$; \
+ echo "Test junking $$f (please wait)..."; \
+ ./${TARGET} -J0.0001 -n 1000 -b $$b -ixer -onull $$f || exit 5; \
+ ./${TARGET} -J0.001 -n 1000 -b $$b -ixer -onull $$f || exit 6; \
+ done; done; fi
+
+check-per:
+ @if test -f sample-MessageFrame-1-nopad.per ; then \
+ for f in sample-MessageFrame-[1-9]-nopad.per; do \
+ for b in 1 17 33 980 8192; do \
+ echo "Recoding non-padded $$f into DER into XER and back ($$b)..."; \
+ ./${TARGET} -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \
+ ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \
+ ./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \
+ diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \
+ rm -f ./.tmp.[123].$$$$; \
+ echo "Test junking $$f (please wait)..."; \
+ ./${TARGET} -J0.0001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 6; \
+ ./${TARGET} -J0.001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 7; \
+ done; done; fi
+ @if test -f sample-MessageFrame-1.per ; then \
+ for f in sample-*-[1-9].per; do \
+ pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \
+ for b in 1 17 33 980 8192; do \
+ echo "Recoding $$f into DER into XER and back ($$b)..."; \
+ ./${TARGET} -b $$b -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \
+ ./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \
+ ./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \
+ diff $$f ./.tmp.1.$$$$ || exit 6; \
+ rm -f ./.tmp.[12].$$$$; \
+ echo "Test junking $$f (please wait)..."; \
+ ./${TARGET} -J0.0001 -n 1000 -b $$b -iper -onull $$f || exit 7; \
+ ./${TARGET} -J0.001 -n 1000 -b $$b -iper -onull $$f || exit 8; \
+ done; done; fi
+
+distclean: clean
+ rm -f $(ASN_MODULE_SOURCES)
+ rm -f $(ASN_MODULE_HEADERS)
+ rm -f $(ASN_CONVERTER_SOURCES) $(ASN_CONVERTER_HEADERS)
+ rm -f Makefile.am.sample
diff --git a/examples/sample.source.J2735/README b/examples/sample.source.J2735/README
new file mode 100644
index 0000000..d758310
--- /dev/null
+++ b/examples/sample.source.J2735/README
@@ -0,0 +1,38 @@
+
+GENERAL INFORMATION
+===================
+
+The SAE J2735-201603 Dedicated Short Range Communications (DSRC)
+Message Set Dictionary decoder.
+Invoking `make` will compile the ASN.1 specifications from the
+../j2735.asn1 file.
+
+THERE IS NO j2735.asn1 FILE THERE YET!
+
+OBTAINING THE J2735 SPECIFICATION
+=================================
+
+Go to http://standards.sae.org/j2735_201603/ and download the files.
+
+You should extract the ASN.1 module from there and save it
+as the ../j2735.asn1 file. The ../j2735.asn1 file should start with
+the following line
+ "DSRC DEFINITIONS AUTOMATIC TAGS ::="
+and end with the "END" token.
+Be careful not to copy any non-ASN.1 preambles from that .DOC file.
+
+After obtaining the j2735.asn1, type `make` in the directory containing
+this README file.
+
+j2735-dump USAGE
+================
+
+The j2735-dump utility may be used to dump the contents of the UPER-encoded
+DSRC message record file:
+
+ ./j2735-dump j2735file.per # Print as XML (BASIC-XER)
+
+The full list of recognized command line options may be obtained with
+
+ > ./j2735-dump -h
+
diff --git a/examples/sample.source.J2735/config.h b/examples/sample.source.J2735/config.h
new file mode 100644
index 0000000..2dda929
--- /dev/null
+++ b/examples/sample.source.J2735/config.h
@@ -0,0 +1,10 @@
+
+extern int opt_debug;
+
+#define ASN_DEBUG(fmt, args...) do { \
+ if(opt_debug < 2) break; \
+ fprintf(stderr, fmt, ##args); \
+ fprintf(stderr, " (%s:%d)\n", \
+ __FILE__, __LINE__); \
+ } while(0)
+