Newer
Older
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 EVCSN_PDU_Descriptions 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_ASN1_NamedNumbers all;
// import from LibItsCommon_ASN1_ISDSRC_NamedNumbers all;
import from LibCommon_DataStrings 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) octetstring p_beacon := omit,
in template (omit) CAM p_cam := omit,
in template (omit) DENMs p_denms := 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,
} // 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) GnRawPayload p_payload
) modifies m_geoNwBroadcastPacket := {
payload := p_payload
} // End of template m_geoNwBroadcastPacket_payload
/**
* @desc Send template for GeoNetworking TSB Packet
* @param p_seqNumber Sequence number of TSB packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_hopLimit The maximum number of hops (Default: c_defaultHopLimit)
* @param p_trafficClass TODO
* @param p_payload TODO
*/
template (value) GnNonSecuredPacket m_geoNwTsbPacket_payload(
in template (value) UInt16 p_seqNumber,
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
in template (value) TrafficClass p_trafficClass := m_trafficClass,
in template (value) GnRawPayload p_payload
) modifies m_geoNwTsbPacket:= {
payload := p_payload
}
/**
* @desc Send template for GeoNetworking SHB Packet
* @param p_sourceLongPosVec Long position vector of source
* @param p_hopLimit The maximum number of hops (Default: c_defaultHopLimit)
* @param p_trafficClass TODO
* @param p_payload TODO
*/
template (value) GnNonSecuredPacket m_geoNwShbPacket_payload(
in template (value) LongPosVector p_sourceLongPosVec,
in template (value) GnRawPayload p_payload
) modifies m_geoNwShbPacket:= {
payload := p_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_geoNwBroadcastPacketWithNextHeader_srem(
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) UInt16 p_seqNumber := ?,
in template (present) NextHeader p_nextHeader := ?
) modifies mw_geoNwBroadcastPacketWithNextHeader := {
payload := f_payload_template(PICS_SREM_BTP_DESTINATION_PORT, PICS_SREM_BTP_SOURCE_PORT)
* @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_geoNwTsbPacketWithNextHeader_srem(
in template (present) UInt16 p_seqNumber := ?,
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (value) NextHeader p_nextHeader
) modifies mw_geoNwTsbPacketWithNextHeader := {
payload := f_payload_template(PICS_SREM_BTP_DESTINATION_PORT, PICS_SREM_BTP_SOURCE_PORT)
/**
* @desc Receive template for GeoNetworking DENM 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_geoNwTsbPacketWithNextHeader_denm(
in template (present) UInt16 p_seqNumber := ?,
in template (present) LongPosVector p_sourceLongPosVec := ?
) modifies mw_geoNwTsbPacket := {
payload := f_payload_template(PICS_DENM_BTP_DESTINATION_PORT, PICS_DENM_BTP_SOURCE_PORT)
} // End of template mw_geoNwTsbPacketWithNextHeader_denm
/**
* @desc Receive template for GeoNetworking CAM 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_geoNwShbPacketWithNextHeader_cam(
in template (present) LongPosVector p_sourceLongPosVec := ?,
in template (present) UInt8 p_hopLimit := ?,
payload := f_payload_template(PICS_CAM_BTP_DESTINATION_PORT, PICS_CAM_BTP_SOURCE_PORT)
} // End of template mw_geoNwShbPacketWithNextHeader_cam
} // 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
/**
* @desc Receive template for long position vector with strict position check
* @param p_longPosVector The base long position vector
*/
template LongPosVector mw_longPosVectorPosition_vendors(
in template (value) Oct6 p_mid
) := {
gnAddr := {
typeOfAddress := ?,
stationType := ?,
stationCountryCode := ?,
},
timestamp_ := ?,
latitude := ?,
longitude := ?,
//FIXME May the delta factor should be based on the actual speed value -> low speed=lower delta, high speed=higher delta
speed := ?,
heading := ?
}
} // End of group positionTemplates
group camTemplates {
template (value) HighFrequencyContainer m_highFrequencyContainer_rsuContainerHighFrequency(
in template (value) RSUContainerHighFrequency p_rsuContainerHighFrequency
) := {
rsuContainerHighFrequency := p_rsuContainerHighFrequency
}
template (value) RSUContainerHighFrequency m_rSUContainerHighFrequency(
in template (value) ProtectedCommunicationZonesRSU p_protectedCommunicationZonesRSU
) := {
protectedCommunicationZonesRSU := p_protectedCommunicationZonesRSU
}
template (value) CAM m_camParm(
in template (value) StationID p_stationID,
in template (value) ITS_Container.StationType p_stationType := StationType_roadSideUnit_,
in template (value) VehicleRole p_vehicleRole := roadOperator,
in template (value) ReferencePosition p_rsuPosition,
in template (value) PathHistory p_pathHistory,
in template (value) HighFrequencyContainer p_highFrequencyContainer
) := {
header := {
protocolVersion := ItsPduHeader_protocolVersion_currentVersion_,
messageID := ItsPduHeader_messageID_cam_,
stationID := p_stationID
},
cam := {
generationDeltaTime := 0, // Dynamic parameter
camParameters := {
basicContainer := {
highFrequencyContainer := p_highFrequencyContainer,
lowFrequencyContainer := {
exteriorLights := '00000000'B,
specialVehicleContainer := omit
}
}
} // End of template m_camParm
template (present) CAM mw_cam_stationID(
in template (present) BasicVehicleContainerHighFrequency p_basicVehicleContainer := mw_HF_BV_speed(?),
in template (value) StationID p_stationID,
in template (present) ReferencePosition p_referencePosition := ?
) modifies mw_camMsg_HF_BV := {
header := {
stationID := p_stationID
},
cam := {
camParameters := {
basicContainer := {
stationType := ?,
referencePosition := p_referencePosition
}
}
}
} // End of template mw_cam_stationID
} // End of group camTemplates
group mapemTemplates {
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
}
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
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
}
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
} // End of ivimTemplates
group evcsnTemplates {
template (value) EvcsnPdu m_evcsnParm(
in template (value) StationID p_stationID,
in template (value) EVChargingSpotNotificationPOIMessage p_evcsn
) := {
header := {
protocolVersion := ItsPduHeader_protocolVersion_currentVersion_,
messageID := 7, //ItsPduHeader_messageID_evcsn_,
stationID := p_stationID
},
evcsn := p_evcsn
}
template (value) EVChargingSpotNotificationPOIMessage m_evcsn(
in template (value) ItsPOIHeader p_poiHeader,
in template (value) ItsEVCSNData p_evcsnData
) := {
poiHeader := p_poiHeader,
evcsnData := p_evcsnData
}
template (value) ItsPOIHeader m_itsPOIHeader(
in template (value) POIType p_poiType := 1,
in template (value) TimestampIts p_timeStamp,
in template (value) boolean p_relayCapable := true
) := {
poiType := p_poiType,
timeStamp := p_timeStamp,
relayCapable := p_relayCapable
}
template (value) ItsEVCSNData m_itsEVCSNData(
in template (value) NumberStations p_totalNumberOfStations := 1,
in template (value) ItsChargingStationDatas p_itsChargingStationDatas
) := {
totalNumberOfStations := p_totalNumberOfStations,
chargingStationsData := p_itsChargingStationDatas
}
} // End of group evcsnTemplates
/**
* @desc Send template for DENM PDU
* @param p_denm The DEN Message
*/
template (value) DENM m_denmPdu_rsu(
in template (value) StationID p_stationID,
in template (value) DecentralizedEnvironmentalNotificationMessage p_denm
) := {
header := LibItsDenm_Templates.m_itsPduHeader(p_stationID),
denm := p_denm
}
/**
* @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,
garciay
committed
in template (value) Traces p_traces,
in template (value) ValidityDuration p_validityDuration := 86400,
in template (value) RelevanceDistance p_relevanceDistance := lessThan100m,
in template (value) RelevanceTrafficDirection p_relevanceTrafficDirection := upstreamTraffic
) := {
managementContainer := {
actionID := {
originatingStationID := p_originatingStationID,
sequenceNumber := p_sequenceNumber
},
detectionTime := f_getCurrentTime(),
referenceTime := f_getCurrentTime(), // FIXME To be checked
termination := omit,
eventPosition := p_eventPosition,
relevanceDistance := p_relevanceDistance,
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,
garciay
committed
traces := p_traces,
roadType := omit
} // End of field locationContainer
} // End of template m_denmParm
} // End of module ItsRSUsSimulator_Templates