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; 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 */ /** * @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 integer vc_security_state := 0; // 0: initial, 1: enrolled, 2:authorization var boolean vc_reenrolment := false; 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 ConfigRsuSimulatorPort cfPort; port HttpPort httpPort; port HttpPort httpPort_notif; } 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, 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