module ItsRSUsSimulator_TestSystem { // LibIts import from ITS_Container language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; import from IEEE1609dot2BaseTypes language "ASN.1:1997" all; import from IEEE1609dot2 language "ASN.1:1997" all; // LibItsGeoNetworking import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_TypesAndValues all; // LibItsCam import from LibItsCam_TestSystem all; import from LibItsCam_TypesAndValues all; // LibItsDenm import from LibItsDenm_TestSystem all; import from LibItsDenm_TypesAndValues all; // LibItsHttp import from LibItsHttp_TestSystem all; import from LibItsHttp_TypesAndValues all; // LibItsPki import from LibItsPki_TestSystem all; import from LibItsPki_TypesAndValues all; // AtsRSUsSimulator import from ItsRSUsSimulator_TypesAndValues all; import from ItsRSUsSimulator_Pics all; import from ItsRSUsSimulator_Pixits all; /** * @desc Test component for ITS Network and Transport layer */ type component ItsRSUsSimulator extends ItsGeoNetworking, ItsPkiHttp { /** * @desc RSUsimulator configuration port */ port ConfigRsuSimulatorPort cfPort; /** * @desc RSU position */ var LongPosVector vc_longPosVectorRsu; /** * @desc RSU Geonetworking area */ var GeoArea vc_geoArea; /** * @desc Supported sent messages templates: one or more from CAM, DENM, MAPEM, SPATEM, IVIM, SSEM * @see PICS_GENERATE_xxx */ var template (value) RsuMessagesValueList vc_rsuMessagesValueList := {}; /** * @desc Current RSU identifier */ var integer vc_rsu_id := PX_RSU_ID - 1; /** * @desc DENM event counter: one RSU can send one or mode different DENM */ var integer vc_denmEventCounter := 0; /** * @desc DENM sequence number index */ var SequenceNumber vc_sequenceNumber := 0; /** * @desc TODO */ var MsgCount vc_msgIssueRevision := 0; /** * @desc List of MovementState per intersection and per RSU */ var template (value) MovementListPerIntersectionRsu vc_states; /** * @desc The SPATEM message to use in SignalGroupParmList */ var integer vc_signalGroupParmId := 0; // TODO Use a PIXIT /** * @desc Current SPATEM state */ var integer vc_spatemStatesId := 0; /** * @desc TimeMark of the begining of a new SPATEM phase */ var TimeMark vc_currentPhaseStartTime := 36001; /** * @desc Estimated TimeMark of the end of the current SPATEM phase */ var TimeMark vc_endPhaseStartTime := 0; /** * @desc Repetition duration times of SPATEM phases */ /* TODO To be removed * var SpatemRepetionDuration vc_repitition_duration := { PICS_SPATEM_REPITITION_DURATION_STATE_1, PICS_SPATEM_REPITITION_DURATION_STATE_2, PICS_SPATEM_REPITITION_DURATION_STATE_3 }; */ var integer vc_spatemStatesNum := 3; // Two states var boolean vc_beacon := PICS_GENERATE_BEACON; var boolean vc_cam := PICS_GENERATE_CAM; var boolean vc_denm := PICS_GENERATE_DENM; var boolean vc_ivim := PICS_GENERATE_IVIM; var boolean vc_mapem := PICS_GENERATE_MAPEM; var boolean vc_spatem := PICS_GENERATE_SPATEM; var boolean vc_pki := PICS_PKI_SUPPORT; //var boolean vc_evcsn := PICS_GENERATE_EVCSN; var float vc_cam_timer_value := PICS_CAM_FREQUENCY; timer tc_beacon := PICS_BEACON_FREQUENCY; timer tc_cam := PICS_CAM_FREQUENCY; timer tc_denm := PICS_DENM_FREQUENCY; timer tc_mapem := PICS_MAPEM_FREQUENCY; timer tc_spatem := PICS_SPATEM_FREQUENCY; timer tc_ivim := PICS_IVIM_FREQUENCY; //timer tc_evcsn := PICS_EVCSN_FREQUENCY; var boolean vc_reenrolment := false; var integer vc_ec_certificates_counter := 0; var SequenceOfCertificate vc_ec_certificates := {}; var integer vc_at_certificates_counter := 0; var SequenceOfCertificate vc_at_certificates := {}; } // End of component ItsRSUsSimulator /** * @desc Test system component for ITS Network and Transport layer */ type component ItsRSUsSimulatorSystem extends ItsGeoNetworkingSystem, HttpTestAdapter { port ConfigRsuSimulatorPort cfPort; } type record of record { boolean detected, ItsRSUsSimulator component_, integer stationId, integer detectionCounter } VehiclesSimulator; group configRsuSimulatorTypes { type record CfInitialize { integer i } with { variant "FIELDORDER(msb)" } type charstring CfEvent; type boolean CfResult; type union CfEventInd { anytype empty } } with { variant "" } // End of group configRsuSimulatorTypes group configRsuSimulatorPort { /** * @desc Configuration RSUsimulator port */ type port ConfigRsuSimulatorPort message { out CfInitialize, CfResult, UtGnResults, UtCamResults, UtDenmResults, UtCamEventInd, UtPkiResults; in CfEvent, CfEventInd, UtGnInitialize, UtCamInitialize, UtDenmInitialize, UtGnTrigger, UtCamTrigger, UtPkiInitialize, UtPkiTrigger } // End of ConfigRsuSimulatorPort } // End of group configRsuSimulatorPort } // End of module ItsRSUsSimulator_TestSystem