Commit f414e6f5 authored by YannGarcia's avatar YannGarcia
Browse files

Merging TTF002 in TTF011 - Phase1: AtsCAM, AtsDENM, AtsGeoNetworking, AtsSecurity, AtsPki

parent 79f6072b
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
module LibItsCam_EncdecDeclarations {

    // LibIts
    import from CAM_PDU_Descriptions language "ASN.1:1997" all;
    
    // LibItsCam
    import from LibItsCam_TypesAndValues all; 

    external function fx_enc_CamReq (CamReq p) return bitstring
        with {extension "prototype(convert) encode(LibIts_Interface)"}
    
    external function fx_dec_CamReq (inout bitstring b, out CamReq p) return integer
        with {extension "prototype(sliding) decode(LibIts_Interface)"}

    external function fx_dec_CamInd (inout bitstring b, out CamInd p) return integer
        with {extension "prototype(sliding) decode(LibIts_Interface)"}
        
    external function fx_enc_CAM (CAM p) return bitstring
        with {extension "prototype(convert) encode(PER)"}

    external function fx_dec_CAM (inout bitstring b, out CAM p) return integer
        with {extension "prototype(sliding) decode(PER)"}

    external function fx_enc_UtCamInitialize (UtCamInitialize p) return bitstring
        with {extension "prototype(convert) encode(UpperTester)"}
    
    external function fx_enc_UtCamChangePosition (UtCamChangePosition p) return bitstring
        with {extension "prototype(convert) encode(UpperTester)"}
    
    external function fx_enc_UtCamTrigger (UtCamTrigger p) return bitstring
        with {extension "prototype(convert) encode(UpperTester)"}
    
    external function fx_dec_UtCamResults (inout bitstring b, out UtCamResults p) return integer
        with {extension "prototype(sliding) decode(UpperTester)"}
    
    external function fx_dec_UtCamEventInd (inout bitstring b, out UtCamEventInd p) return integer
        with {extension "prototype(sliding) decode(UpperTester)"}
    
} // End of module LibItsCam_EncdecDeclarations 
+130 −0
Original line number Diff line number Diff line
/**
 *    @author   ETSI / STF405 / STF449 / STF484 / STF517
 *    @version  $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Pics.ttcn $
 *              $Id: LibItsCam_Pics.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *    @desc     CAM PICS
 *    @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_Pics {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    
    group camPics {
        
        /**
         * @desc Is the IUT RSU?
         * @see  ETSI TS 102 868-1 Table A.1
         */
        modulepar boolean PICS_RSU := false;
        
        /**
         * @desc Is the IUT running in secured mode?
         * @see  ETSI TS 102 868-1 Table A.1
         */
        modulepar boolean PICS_IS_IUT_SECURED := false;
        
        /**
         * @desc Is IUT a public transport vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_PUBLICTRANS := false;
        
        /**
         * @desc Is IUT a special transport vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_SPECIALTRANS := false;
        
        /**
         * @desc Is IUT a dangerous goods vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_DANGEROUSGOODS := false;
        
        /**
         * @desc Is IUT a road works vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_ROADWORKS := false;
        
        /**
         * @desc Is IUT a rescue vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_RESCUE := false;
        
        /**
         * @desc Is IUT an emergency vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_EMERGENCY := false;
        
        /**
         * @desc Is IUT a safety car vehicle 
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_SAFETY_CAR := false;
        
        /**
         * @desc Does IUT support 'specialVehicleContainer' in CamParameters?
         * @see  ETSI TS 102 868-1 Table A.2
         */
        modulepar boolean PICS_SPECIALVEHICLECONTAINER := true;
        
        /**
         * @desc Maximum time interval between CAM generations (in seconds).
         *       Default value, as per base standard: 1.0s 
         * @see  ETSI TS 102 868-1 Table A.5
         */
        modulepar float PICS_T_GENCAMMAX := 1.000;
        
        /**
         * @desc Minimum time interval between CAM generations (in seconds).
         *       Default value, as per base standard: 0.1s 
         * @see  ETSI TS 102 868-1 Table A.5
         */
        modulepar float PICS_T_GENCAMMIN := 0.100;
        
        /**
         * @desc Minimum time interval between CAM generations (in seconds) 
         *       according to the requirements of the 
         *       Decentralized Congestion Control(DCC).
         *       Default value, as per base standard: 0.1s 
         * @see  ETSI TS 102 868-1 Table A.5
         */
        modulepar float PICS_T_GENCAMDCC := 0.100;
        
        /**
         * @desc Support for CAM generation
         * @see  ETSI TS 102 868-1 Table A.3
         */
        modulepar boolean PICS_CAM_GENERATION := true;

        /**
         * @desc Support for CAM reception
         * @see  ETSI TS 102 868-1 Table A.3
         */
        modulepar boolean PICS_CAM_RECEPTION := true;
        
    } // end camPics

    group radioComm {

      type enumerated RadioAccess {
          e_its_g5,
          e_lte_cv2x
      }

      /**
       * @desc Does radio communication use ITS-G5 or LTE-V2X?
       * @see  ETSI TS 102 868-1 Table A.3
       */
      modulepar RadioAccess PICS_RADIO_COMM := e_its_g5;
      
    } // End of group radioComm
} // end LibItsCam_Pics
+21 −0
Original line number Diff line number Diff line
/**
 *  @author   ETSI / STF405 / STF449 / STF484 / STF517
 *  @version  $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Pixits.ttcn $
 *            $Id: LibItsCam_Pixits.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *  @desc     Module containing Pixits for CAM
 *  @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_Pixits {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
    
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    
} // End of module LibItsSecurity_Pixits
 No newline at end of file
+878 −0

File added.

Preview size limit exceeded, changes collapsed.

+227 −0
Original line number Diff line number Diff line
/**
 *    @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

    group facilityPrimitives {
            
        group fa1Primitives {
            
            /**
             * @desc FA1 CAM Indication Primitive 
             */
            type record CamInd {
                CAM         msgIn,
                UInt64      recvTime,
                UInt8       gnNextHeader optional,
                UInt8       gnHeaderType optional,
                UInt8       gnHeaderSubtype optional,
                UInt32      gnLifetime optional,
                UInt8       gnTrafficClass optional,
                UInt16      btpDestinationPort optional,
                UInt16      btpInfo optional,
                Bit256      ssp optional,
                UInt32      its_aid optional
            }
            with {
                 encode (msgIn) "PER"
            }
                
            /**
             * @desc FA1 CAM Request Primitive 
             */
            type record CamReq {
                CAM msgOut
            }
            with {
                 encode (msgOut) "PER"
            }
            
        } // end fa1Primitives
            
    } // End of group facilityPrimitives
    with {
        variant ""
        encode "LibIts_Interface"
    } // end interfacePrimitives    
     
}
with {
  encode "LibItsCam"
  }
Loading