LibItsDenm_TypesAndValues.ttcn 5.99 KB
Newer Older
garciay's avatar
garciay committed
 *  @author     ETSI / STF449 / STF484 / STF517
garciay's avatar
garciay committed
 *  @version    $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/DENM/LibItsDenm_TypesAndValues.ttcn $
 *              $Id: LibItsDenm_TypesAndValues.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *  @desc       Module containing type and value definitions for DENM
 *
 */
module LibItsDenm_TypesAndValues {
    
garciay's avatar
garciay committed
  //LibCommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;

garciay's avatar
garciay committed
  // LibIts
  import from DENM_PDU_Descriptions language "ASN.1:1997" all;
  import from ITS_Container language "ASN.1:1997" all;
garciay's avatar
garciay committed
  group actionTypes {
garciay's avatar
garciay committed
    /**
     * @desc Indication of whether event cancellation has to be raised by the test system or iut
     */
    type enumerated Trigger {
      e_ets(0),
      e_iut(1)
      }
garciay's avatar
garciay committed
  } // end group actionTypes
garciay's avatar
garciay committed
  group otherTypes {
garciay's avatar
garciay committed
    /**
     * @desc List of SituationContainers used in behaviours 
     */
    type record of SituationContainer SituationContainerList;
garciay's avatar
garciay committed
    /**
     * @desc List of ActionIDs used in behaviours 
     */
    type record of ActionID ActionIDList;
garciay's avatar
garciay committed
  }
garciay's avatar
garciay committed
  group denmConstants {
garciay's avatar
garciay committed
    const ValidityDuration c_duration_2sec := 2;
    const ValidityDuration c_duration_5sec := 5;
    const ValidityDuration c_duration_10sec := 10;
garciay's avatar
garciay committed
    const TransmissionInterval c_interval_1sec := 1000;
    const TransmissionInterval c_interval_2sec := 2000;
    const TransmissionInterval c_interval_4sec := 4000;
    const TransmissionInterval c_interval_5sec := 5000;
    const TransmissionInterval c_interval_10sec := 10000;
garciay's avatar
garciay committed
  } // end group denmConstants
garciay's avatar
garciay committed
    group certificates {
garciay's avatar
garciay committed
    const charstring PX_CERT_IUT_DENM_01 := "CERT_IUT_DENM_BO_01_AT";
    const charstring PX_CERT_IUT_DENM_02 := "CERT_IUT_DENM_BO_02_AT";
garciay's avatar
garciay committed
  }
garciay's avatar
garciay committed
  group utPrimitives {
        
    /**
     * @desc Upper Tester message to initialize IUT 
     * @member hashedId8 In case of secured mode set, hashedId8 indicate which certificate the IUT shall use
     */
    type record UtDenmInitialize {
      Oct8 hashedId8 
      } with {
      variant "FIELDORDER(msb)"
      }

    /**
     * @desc Upper Tester results message of the DENM IUT
     * @member utDenmInitialize             -
     * @member utDenmTriggerResult          -
     * @member utDenmUpdateResult,          -
     * @member utDenmChangePositionResult   -
garciay's avatar
garciay committed
     * @member utDenmChangePseudonymResult      -
garciay's avatar
garciay committed
     */
    type union UtDenmResults {
      boolean utDenmInitializeResult,
YannGarcia's avatar
YannGarcia committed
      UtDenmTriggerResult utDenmTriggerResult,
      UtDenmUpdateResult utDenmUpdateResult,
      boolean utDenmTerminationResult,
      boolean utDenmChangePositionResult,
      boolean utDenmChangePseudonymResult
    } with {
garciay's avatar
garciay committed
      variant ""
YannGarcia's avatar
YannGarcia committed
    } // End of type UtDenmResults

    /**
     * @desc Upper Tester message to request triggering of an event at IUT 
    */
garciay's avatar
garciay committed
    type record UtDenmTrigger {
      TimestampIts detectionTime,
      ValidityDuration validityDuration optional,
      ValidityDuration repetitionDuration optional,
      SituationContainer situation,
      RelevanceDistance relevanceDistance,
      RelevanceTrafficDirection relevanceTrafficDirection,
      TransmissionInterval transmissionInterval optional,
      TransmissionInterval repetitionInterval optional,
      AlacarteContainer alacarte optional
Yann Garcia's avatar
Yann Garcia committed
    } with {
garciay's avatar
garciay committed
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester result message of request of triggering of an event at IUT 
     */
    type record UtDenmTriggerResult {
      boolean result,
      ActionID actionId
Yann Garcia's avatar
Yann Garcia committed
    } with {
garciay's avatar
garciay committed
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester message to update an event at IUT 
     */
    type record UtDenmUpdate {
      ActionID actionId,
      TimestampIts detectionTime,
      ValidityDuration validityDuration optional,
      SituationContainer situation optional,
      LocationContainer location optional,
      RelevanceDistance relevanceDistance optional,
      RelevanceTrafficDirection relevanceTrafficDirection optional,
      TransmissionInterval transmissionInterval optional,
      TransmissionInterval repetitionInterval optional,
      AlacarteContainer alacarte optional
Yann Garcia's avatar
Yann Garcia committed
    } with {
garciay's avatar
garciay committed
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester result message of an update request of an event on DENM IUT 
     */
    type record UtDenmUpdateResult { 
      boolean result,
      ActionID actionId
Yann Garcia's avatar
Yann Garcia committed
    } with {
garciay's avatar
garciay committed
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester message to request the termination of an event at IUT 
     */
    type record UtDenmTermination {
      ActionID actionId
Yann Garcia's avatar
Yann Garcia committed
    } with {
garciay's avatar
garciay committed
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester message to change the position of IUT. Values a relatives 
     */
    type record UtDenmChangePosition {
      Int32 latitude,
      Int32 longitude,
      Int32 elevation
      } with {
      variant "FIELDORDER(msb)"
      }
        
    /**
     * @desc Upper Tester message to change the pseudonym of the DENM IUT 
     */
garciay's avatar
garciay committed
    type record UtDenmChangePseudonym {
garciay's avatar
garciay committed
      // empty on purpose
    } with {
      variant "FIELDORDER(msb)"
Yann Garcia's avatar
Yann Garcia committed
    }
garciay's avatar
garciay committed
        
    /**
     * @desc Upper Tester message to check event/status on DENM IUT 
     */
    type record UtDenmEventInd {
      DENM denMsg
      } with {
      encode (denMsg) "LibItsDenm_asn1"
      }
        
    /**
     * @desc List of Upper Tester messages to check event/status on DENM IUT 
     */
    type record of UtDenmEventInd UtDenmEventIndList;
        
    /**
     * @desc List of ActionID received in response to the Upper Tester triggered messages
     */
    type record of ActionID UtDenmActionIDList;
        
  }
  with {
    encode "UpperTester"
    variant ""
garciay's avatar
garciay committed
  encode "LibItsDenm"
  }