module ItsRSUsSimulator_TestSystem { // LibIts import from ITS_Container language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; // LibItsGeoNetworking import from LibItsGeoNetworking_TestSystem all; import from LibItsGeoNetworking_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 { /** * @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; 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; } // End of component ItsRSUsSimulator /** * @desc Test system component for ITS Network and Transport layer */ type component ItsRSUsSimulatorSystem extends ItsGeoNetworkingSystem { port ConfigRsuSimulatorPort cfPort; } type record of record { boolean detected, ItsRSUsSimulator component_, integer stationId, integer detectionCounter } VehiclesSimulator; group configRsuSimulatorTypes { type record CfInitialize { }; type charstring CfEvent; type boolean CfResult; type union CfEventInd { anytype empty } } with { encode "ConfigTester" }// End of group configRsuSimulatorTypes group configRsuSimulatorPort { /** * @desc Configuration RSUsimulator port */ type port ConfigRsuSimulatorPort message { out CfInitialize, CfResult; in CfEvent, CfEventInd } // End of ConfigRsuSimulatorPort } // End of group configRsuSimulatorPort } // End of module ItsRSUsSimulator_TestSystem