ItsRSUsSimulator_TestSystem.ttcn 8.51 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
/**dfvdfgd
*/
garciay's avatar
garciay committed
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;
garciay's avatar
garciay committed
    
  // 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;
    
  // LibItsIvim
  import from LibItsIvim_TestSystem all;
  import from LibItsIvim_TypesAndValues all;
    
  // LibItsMapemSpatem
  import from LibItsMapemSpatem_TestSystem all;
  import from LibItsMapemSpatem_TypesAndValues all;
    
  // LibItsSremSsem
  import from LibItsSremSsem_TestSystem all;
  import from LibItsSremSsem_TypesAndValues all;
    
  // LibItsRtcmem
  import from LibItsRtcmem_TestSystem all;
  import from LibItsRtcmem_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 {
garciay's avatar
garciay committed
    /**
     * @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 more different DENM
     */
    var integer vc_denmEventCounter := 0;
    /**
Yann Garcia's avatar
Yann Garcia committed
     * @desc CAM/DENM/SREM 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
Yann Garcia's avatar
Yann Garcia committed

    var integer vc_sremEventCounter := 0;

    var integer vc_ssemEventCounter := 0;

    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;
Yann Garcia's avatar
Yann Garcia committed
    var boolean vc_rtcmem := PICS_GENERATE_RTCMEM;
    var boolean vc_srem   := PICS_GENERATE_SREM;
    var boolean vc_ssem   := PICS_GENERATE_SSEM;
    var boolean vc_pki    := PICS_PKI_SUPPORT;
    //var boolean vc_evcsn := PICS_GENERATE_EVCSN;
    var float vc_cam_timer_value  := PICS_CAM_FREQUENCY;
Yann Garcia's avatar
Yann Garcia committed
    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_rtcmem          := PICS_RTCMEM_FREQUENCY;
    timer tc_ivim            := PICS_IVIM_FREQUENCY;
    timer tc_srem            := PICS_SREM_FREQUENCY;
    timer tc_ssem            := PICS_SSEM_FREQUENCY;
    timer vc_ssem_timer_value := PICS_SSEM_REPETITION_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
YannGarcia's avatar
YannGarcia committed
  } VehiclesSimulator;

  group configRsuSimulatorTypes {
    type record CfInitialize {
      integer i
    } with {
      variant "FIELDORDER(msb)"
      }
    type charstring CfEvent;
    type boolean CfResult;
    type union CfEventInd {
      anytype empty
    }
YannGarcia's avatar
YannGarcia committed
  } // End of group configRsuSimulatorTypes

  group configRsuSimulatorPort {
    /**
     * @desc Configuration RSUsimulator port
     */
    type port ConfigRsuSimulatorPort message {
YannGarcia's avatar
YannGarcia committed
      out
Yann Garcia's avatar
Yann Garcia committed
      CfInitialize, CfResult, UtGnResults, UtGnEventInd, UtCamResults, UtCamEventInd, UtDenmResults, UtDenmEventInd, UtPkiResults, UtIvimResults, UtIvimEventInd, UtMapemSpatemResults, UtMapemEventInd, UtSpatemEventInd, UtSremResults, UtSremEventInd, UtSsemEventInd, UtRtcmemResults, UtRtcmemEventInd;
YannGarcia's avatar
YannGarcia committed
      in
Yann Garcia's avatar
Yann Garcia committed
      CfEvent, CfEventInd, UtGnInitialize, UtCamInitialize, UtDenmInitialize, UtGnTrigger, UtCamTrigger, UtDenmTrigger, UtDenmUpdate, UtDenmTermination, UtPkiInitialize, UtPkiTrigger, UtIvimInitialize, UtIvimTrigger, UtIvimUpdate, UtIvimTermination, UtMapemSpatemInitialize, UtMapemSpatemTrigger, UtSremInitialize, UtSremTrigger, UtSremUpdate, UtSremCancelation, UtRtcmemInitialize, UtRtcmemTrigger, UtRtcmemUpdate, UtRtcmemTermination
      } // End of ConfigRsuSimulatorPort
  } // End of group configRsuSimulatorPort 
} // End of module ItsRSUsSimulator_TestSystem