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;
// LibItsCam
import from LibItsCam_TestSystem all;
import from LibItsCam_TypesAndValues all;
// LibItsDenm
import from LibItsDenm_TestSystem all;
import from LibItsDenm_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 {
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
* @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_evcsn := PICS_GENERATE_EVCSN;
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;
} // 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
group configRsuSimulatorTypes {
type record CfInitialize {
} with {
variant "FIELDORDER(msb)"
}
type charstring CfEvent;
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;
CfEvent, CfEventInd, UtGnInitialize, UtCamInitialize, UtDenmInitialize
} // End of ConfigRsuSimulatorPort
} // End of group configRsuSimulatorPort
} // End of module ItsRSUsSimulator_TestSystem