module ItsRSUsSimulator_Templates { // LibCommon import from LibCommon_BasicTypesAndValues all; // LibIts import from ITS_Container language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; import from IVIM_PDU_Descriptions language "ASN.1:1997" all; import from IVI language "ASN.1:1997" all; import from SSEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Functions all; // LibItsGeoNetworking import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_Functions all; import from LibItsGeoNetworking_Templates all; import from LibItsGeoNetworking_TypesAndValues all; // LibItsBtp import from LibItsBtp_TypesAndValues all; import from LibItsBtp_Templates all; // LibItsCam import from LibItsCam_Templates all; // LibItsDenm import from LibItsDenm_Templates all; // LibItsMapemSpatem import from LibItsMapemSpatem_Templates all; // LibItsIvim import from LibItsIvim_Templates all; // AtsRSUsSimulator import from ItsRSUsSimulator_TypesAndValues all; import from ItsRSUsSimulator_Functions all; import from ItsRSUsSimulator_Pics all; template (omit) RsuMessagesValue m_rsuProfile( in template (omit) CAM p_cam := omit, in template (omit) DENMs p_denms := omit, in template (omit) MAPEM p_mapem := omit, in template (omit) SPATEMs p_spatems := omit, in template (omit) IVIM p_ivim := omit, in template (omit) SSEM p_ssem := omit ) := { cam := p_cam, denms := p_denms, mapem := p_mapem, spatems := p_spatems, ivim := p_ivim } // End of template RsuMessagesValue group geoNetworkingTemplates { template (value) GnNonSecuredPacket m_geoNwBroadcastPacket_payload( in template (value) LongPosVector p_sourceLongPosVec, in template (value) UInt16 p_seqNumber, in template (value) GeoBroadcastArea p_broadcastArea, in template (value) UInt8 p_hopLimit := c_defaultHopLimit, in template (value) TrafficClass p_trafficClass := m_trafficClass, in template (value) Payload p_payload ) modifies m_geoNwBroadcastPacket := { payload := p_payload } // End of template m_geoNwBroadcastPacket_payload /** * @desc Receive template for GeoNetworking Unicast Packet * @param p_destinationShortPosVec Short position vector of destination * @param p_seqNumber Sequence number of GeoUnicast packet * @param p_nextHeader Id of next header */ template (present) GnNonSecuredPacket mw_geoNwUnicastPacketWithNextHeader_srem( in template (present) ShortPosVector p_destinationShortPosVec, in template (present) UInt16 p_seqNumber, in template (present) NextHeader p_nextHeader ) modifies mw_geoNwUnicastPacketWithNextHeader := { payload := { decodedPayload := { btpPacket := mw_btpB( ?, // TODO PICS_SREM_BTP_DESTINATION_PORT ?, ? ) }, rawPayload := ? } } } // End of group geoNetworkingTemplates group positionTemplates { /** * @desc The test system reference position. */ template (value) ReferencePosition m_rsuPosition( in template (value) Latitude p_latitude, in template (value) Longitude p_longitude ) := { latitude := f_integer2Latitude(valueof(p_latitude)), longitude := f_integer2Latitude(valueof(p_longitude)), positionConfidenceEllipse := { semiMajorConfidence := SemiAxisLength_oneCentimeter_, semiMinorConfidence := SemiAxisLength_oneCentimeter_, semiMajorOrientation := HeadingValue_wgs84North_ }, altitude := { altitudeValue := AltitudeValue_referenceEllipsoidSurface_, altitudeConfidence := unavailable } } // End of template m_rsuPosition } // End of group positionTemplates group camTemplates { template (value) CAM m_camParm( in template (value) StationID p_stationID, in template (value) ReferencePosition p_rsuPosition, in template (value) PathHistory p_pathHistory ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_cam_, stationID := p_stationID }, cam := { generationDeltaTime := 0, // Dynamic parameter camParameters := { basicContainer := { stationType := StationType_roadSideUnit_, referencePosition := p_rsuPosition }, highFrequencyContainer := { rsuContainerHighFrequency := { protectedCommunicationZonesRSU := omit/*{ }*/ } }, lowFrequencyContainer := omit,/*{ basicVehicleContainerLowFrequency := { vehicleRole := roadOperator, exteriorLights := ExteriorLights_daytimeRunningLightsOn_, pathHistory := p_pathHistory } }*/ specialVehicleContainer := omit } } } // End of template m_camParm } // End of group camTemplates group mapemTemplates { template (value) MAPEM m_mapemParm( in template (value) StationID p_stationID, in template (value) MapData p_map ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_mapem_, stationID := p_stationID }, map_ := p_map } } // End of group mapemTemplates group spatemTemplates { template (value) SPATEM m_spatemParm( in template (value) StationID p_stationID, in template (value) SPAT p_spat ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_spatem_, stationID := p_stationID }, spat := p_spat } } // End of group spatemTemplates group ivimTemplates { template (value) IVIM m_ivimParm( in template (value) StationID p_stationID, in template (value) IviStructure p_ivi ) := { header := { protocolVersion := ItsPduHeader_protocolVersion_currentVersion_, messageID := ItsPduHeader_messageID_ivim_, stationID := p_stationID }, ivi := p_ivi } } // End of group ivimTemplates group denmTemplates { /** * @desc Send template for Alacarte Container including lanePosition */ template (omit) AlacarteContainer m_alacarte( in template (omit) RoadWorksContainerExtended p_roadWorksContainerExtended ) := { lanePosition := omit, impactReduction := omit, externalTemperature := omit, roadWorks := p_roadWorksContainerExtended, positioningSolution := omit, stationaryVehicle := omit } template (value) DenmParmContainers m_denmParmContainers( in template (value) StationID p_originatingStationID, in template (value) SequenceNumber p_sequenceNumber, in template (value) TransmissionInterval p_repetitionInterval, in template (value) ReferencePosition p_eventPosition, in template (value) CauseCodeType p_causeCodeType, in template (value) EventHistory p_eventHistory, in template (value) ValidityDuration p_validityDuration := 86400, in template (value) RelevanceDistance p_relevanceDistance := lessThan200m ) := { managementContainer := { actionID := { originatingStationID := p_originatingStationID, sequenceNumber := p_sequenceNumber }, detectionTime := 0, referenceTime := f_getCurrentTime(), // FIXME To be checked termination := omit, eventPosition := p_eventPosition, relevanceDistance := p_relevanceDistance, relevanceTrafficDirection := omit, validityDuration := p_validityDuration, transmissionInterval := p_repetitionInterval, stationType := StationType_roadSideUnit_ }, // End of field managementContainer situationContainer := { informationQuality := 0, eventType := { causeCode := p_causeCodeType, subCauseCode := 0 }, linkedCause := omit, eventHistory := p_eventHistory }, // End of field situationContainer locationContainer := { eventSpeed := omit, eventPositionHeading := omit, traces := { { { pathPosition := { deltaLatitude := 0, deltaLongitude := 0, deltaAltitude := 0 }, pathDeltaTime := 0 } } }, roadType := omit } // End of field locationContainer } // End of template m_denmParm } // End of group denmTemplates } // End of module ItsRSUsSimulator_Templates