Newer
Older
// 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
// AtsRSUsSimulator
import from ItsRSUsSimulator_TypesAndValues all;
import from ItsRSUsSimulator_Pics all;
import from ItsRSUsSimulator_Pixits all;
type component ItsPkiHttpRsuSimulator extends ItsPkiHttp {
port ResultPort resultPort
}
type port ResultPort message {
inout EcData, AtData
} with {
extension "internal"
}
/**
* @desc Test component for ITS Network and Transport layer
*/
type component ItsRSUsSimulator extends ItsGeoNetworking {
* @desc RSUsimulator configuration port
*/
port ConfigRsuSimulatorPort cfPort;
/**
* @desc Internal communication port
*/
port ResultPort resultPort;
/** Use httPort when EC and AT are served by the same end point */
port HttpPort httpEcPort; /** Enrolment end point */
port HttpPort httpAtVPort; /** Authorization Validation end point */
port HttpPort httpAtPort; /** Authorization end point */
var Certificate vc_eaCertificate; /** Test Adapter EA certificate */
var octetstring vc_eaPrivateKey; /** Test Adapter EA private key for signature */
var octetstring vc_eaPrivateEncKey; /** Test Adapter EA private key for encryption */
var octetstring vc_eaWholeHash; /** Test Adapter EA whole-hash for signature check */
var octetstring vc_eaWholeHash256; /** Test Adapter EA whole-hash using SHA 256 for encryption because of encryption key size ==32 */
var HashedId8 vc_eaHashedId8; /** Test Adapter EA HashedId8 for decryption of IUT's response */
var octetstring vc_aaPrivateKey; /** Test Adapter AA private key for signature */
var octetstring vc_aaPrivateEncKey; /** Test Adapter AA private key for encryption */
var HashedId8 vc_aaHashedId8; /** Test Adapter AA HashedId8 for decryption of IUT's response */
var octetstring vc_aaWholeHash; /** Test Adapter AA whole-hash for signature check */
var octetstring vc_aaWholeHash256; /** Test Adapter EA whole-hash using SHA 256 for encryption because of encryption key size ==32 */
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/**
* @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;
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 integer vc_security_state := 0; // 0: initial, 1: enrolled, 2:authorization
var integer vc_ec_counter := 0;
var SequenceOfEcData vc_ec_certificates := {};
var integer vc_at_counter := 0;
var SequenceOfAtData vc_at_certificates := {};
} // End of component ItsRSUsSimulator
/**
* @desc Test system component for ITS Network and Transport layer
*/
type component ItsRSUsSimulatorSystem extends ItsGeoNetworkingSystem {
port HttpPort httpPort;
port HttpPort httpPort_notif;
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 ""
group configRsuSimulatorPort {
/**
* @desc Configuration RSUsimulator port
*/
type port ConfigRsuSimulatorPort message {
out
CfInitialize, CfResult, UtGnResults, UtCamResults, UtDenmResults, UtGnEventInd, UtCamEventInd, UtDenmEventInd, UtPkiResults;
in
CfEvent, CfEventInd, UtGnInitialize, UtCamInitialize, UtDenmInitialize, UtGnTrigger, UtCamTrigger, UtDenmTrigger, UtDenmUpdate, UtDenmTermination, UtPkiInitialize, UtPkiTrigger
} // End of ConfigRsuSimulatorPort
} // End of group configRsuSimulatorPort
} // End of module ItsRSUsSimulator_TestSystem