LibItsCam_TypesAndValues.ttcn 7.35 KB
Newer Older
ASN.1 Documenter's avatar
ASN.1 Documenter committed
/**
 *    @author   ETSI / STF405 / STF449 / STF484 / STF517
 *    @version  $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_TypesAndValues.ttcn $
 *              $Id: LibItsCam_TypesAndValues.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *    @desc     Module containing types and values for CAM Protocol
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *
 */
module LibItsCam_TypesAndValues {

  // LibCommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;

  // LibIts
  import from ITS_Container language "ASN.1:1997" all;
  import from CAM_PDU_Descriptions language "ASN.1:1997" all;
  //    import from DENM_PDU_Descriptions language "ASN.1:1997" all;

  group camValues {
        
    const float c_lowFrequencyGenerationTime := 0.5; //500 ms
    const float c_specialVehicleGenerationTime := 0.5; //500 ms
        
    const AccelerationControl c_accCtrlIdle             := '0000000'B;
        
    const ExteriorLights c_elAllLightsOff           := '00000000'B; 
        
    const VehicleRole c_vehicleRole_publicTransport := publicTransport;
    const VehicleRole c_vehicleRole_specialTransport := specialTransport;
    const VehicleRole c_vehicleRole_dangerousGoods := dangerousGoods;
    const VehicleRole c_vehicleRole_roadWork := roadWork;
    const VehicleRole c_vehicleRole_rescue := rescue;
    const VehicleRole c_vehicleRole_emergency := emergency;
    const VehicleRole c_vehicleRole_safetyCar := safetyCar;
        
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives1 := explosives1;
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives2 := explosives2;
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives3 := explosives3;
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives4 := explosives4;
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives5 := explosives5;
    const DangerousGoodsBasic c_dangerousGoodsBasic_explosives6 := explosives6;
    const DangerousGoodsBasic c_dangerousGoodsBasic_flammableGases := flammableGases;
    const DangerousGoodsBasic c_dangerousGoodsBasic_nonFlammableGases := nonFlammableGases;
    const DangerousGoodsBasic c_dangerousGoodsBasic_toxicGases := toxicGases;
    const DangerousGoodsBasic c_dangerousGoodsBasic_flammableLiquids := flammableLiquids;
    const DangerousGoodsBasic c_dangerousGoodsBasic_flammableSolids := flammableSolids;
    const DangerousGoodsBasic c_dangerousGoodsBasic_substancesLiableToSpontaneousCombustion := substancesLiableToSpontaneousCombustion;
    const DangerousGoodsBasic c_dangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater := substancesEmittingFlammableGasesUponContactWithWater;
    const DangerousGoodsBasic c_dangerousGoodsBasic_oxidizingSubstances := oxidizingSubstances;
    const DangerousGoodsBasic c_dangerousGoodsBasic_organicPeroxides := organicPeroxides;
    const DangerousGoodsBasic c_dangerousGoodsBasic_toxicSubstances := toxicSubstances;
    const DangerousGoodsBasic c_dangerousGoodsBasic_infectiousSubstances := infectiousSubstances;
    const DangerousGoodsBasic c_dangerousGoodsBasic_radioactiveMaterial := radioactiveMaterial;
    const DangerousGoodsBasic c_dangerousGoodsBasic_corrosiveSubstances := corrosiveSubstances;
    const DangerousGoodsBasic c_dangerousGoodsBasic_miscellaneousDangerousSubstances := miscellaneousDangerousSubstances;
       
  } // end group camValues

  group certificates {

    const charstring PX_CERT_IUT_CAM_02 := "CERT_IUT_CAM_BO_02_AT";
    const charstring PX_CERT_IUT_CAM_03 := "CERT_IUT_CAM_BO_03_AT";

  }

  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 UtCamInitialize {
      Oct8 hashedId8 
      } with {
      variant "FIELDORDER(msb)"
      }

    /**
     * @desc Upper Tester results message of the CAM IUT
     * @member utCamInitialize                -
     * @member utCamTriggerResult             -
     * @member utCamChangePositionResult      -
     * @member utActivatePositionTimeResult   -
     * @member utDeactivatePositionTimeResult -
     */
    type union UtCamResults {
      boolean utCamInitializeResult,
        boolean utCamTriggerResult,
        boolean utCamChangePositionResult,
        boolean utActivatePositionTimeResult,
        boolean utDeactivatePositionTimeResult
      } with {
      variant ""
      } // End of type UtCamResults
	
        /**
         * @desc Upper Tester message to change the position of IUT. Values a relatives 
         */
    type record UtCamChangePosition {
      Int32 latitude,
      Int32 longitude,
      Int32 elevation
      } with {
      variant "FIELDORDER(msb)"
      }
        
    /**
     * @desc 
     * @member changeCurvature Changes the curvature.
     * @member changeSpeed Changes the speed in cm/s.
     * @member setAccelerationControlStatus Sets the acceleration control status.
     * @member setExteriorLightsStatus Sets the exterior lights status.
     * @member changeHeading Changes the heading.
     * @member setDriveDirection Sets the drive direction.
     * @member setStationType
     * @member setVehicleRole
     * @member setEmbarkationStatus
     * @member setPtActivation
     * @member setDangerousGoods
     * @member setLightBarSireneStatus
     * @member changeYawRate Changes the yaw rate in offsets of 0.01 degrees per second.
     */
    type union UtCamTrigger {
      CurvatureValue changeCurvature,
        Int16 changeSpeed,
        AccelerationControl setAccelerationControlStatus,
        ExteriorLights setExteriorLightsStatus,
        HeadingValue changeHeading,
        DriveDirection setDriveDirection,
        YawRateValue changeYawRate,
        StationType setStationType,
        VehicleRole setVehicleRole,
        EmbarkationStatus setEmbarkationStatus,
        PtActivation setPtActivation,
        DangerousGoodsBasic setDangerousGoods,
        LightBarSirenInUse setLightBarSirene
      } with {
      variant ""
      }
        
    /**
         * @desc Upper Tester result message of request of triggering of an event at IUT 
     */
    type record UtActivatePositionTime {
      // empty on purpose
    } with {
      variant "FIELDORDER(msb)"
      }
        
    /**
     * @desc Upper Tester message to deactivate position and/or time
     */
    type record UtDeactivatePositionTime {
      // empty on purpose
    } with {
      variant "FIELDORDER(msb)"
      }
        
    /**
     * @desc Upper Tester message to check event/status on CAM IUT 
     */
    type record UtCamEventInd {
      CAM camMsg // TODO Rename into caMsg to be compliant with UtDenmEventInd
    } with {
      encode (camMsg) "LibItsCam_asn1"
    }
        
    /**
     * @desc List of Upper Tester messages to check event/status on CAM IUT 
     */
    type record of UtCamEventInd UtCamEventIndList;
        
  } with {
    encode "UpperTester"
    variant ""
    } // end utPrimitives
}
with {
  encode "LibItsCam"
  }