From e29e61270a4ef581e8f0aca3a99b72c82e85d059 Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Fri, 4 Aug 2017 02:46:28 -0700 Subject: [PATCH] skeleton for J2735 --- examples/README | 7 +- examples/sample.source.J2735/Makefile | 1155 +++++++++++++++++++++++++ examples/sample.source.J2735/README | 38 + examples/sample.source.J2735/config.h | 10 + 4 files changed, 1208 insertions(+), 2 deletions(-) create mode 100644 examples/sample.source.J2735/Makefile create mode 100644 examples/sample.source.J2735/README create mode 100644 examples/sample.source.J2735/config.h diff --git a/examples/README b/examples/README index 82a4a36d..cf6e2251 100644 --- a/examples/README +++ b/examples/README @@ -25,8 +25,11 @@ This directory contains a few examples. 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 00000000..a0c79c57 --- /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 00000000..d7583106 --- /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 00000000..2dda9297 --- /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) +