Newer
Older
// 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;
garciay
committed
* @desc RSU position
garciay
committed
var LongPosVector vc_longPosVectorRsu;
garciay
committed
* @desc RSU Geonetworking area
garciay
committed
var GeoArea vc_geoArea;
garciay
committed
* @desc Supported sent messages templates: one or more from CAM, DENM, MAPEM, SPATEM, IVIM, SSEM
var template (value) RsuMessagesValueList vc_rsuMessagesValueList := {};
/**
* @desc Current RSU identifier
*/
var integer vc_rsu_id := PX_RSU_ID - 1;
garciay
committed
* @desc DENM event counter: one RSU can send one or mode different DENM
garciay
committed
* @desc DENM sequence number index
garciay
committed
* @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
garciay
committed
* @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;
/**
* @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;
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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