LibItsCam_TypesAndValues.ttcn 6.2 KB
Newer Older
garciay's avatar
garciay committed
 *    @author   ETSI / STF405 / STF449 / STF484 / STF517
 *    @version  $URL$
 *              $Id$
 *    @desc     Module containing types and values for CAM Protocol
garciay's avatar
garciay committed
 *    @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;
filatov's avatar
filatov committed
//    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;
filatov's avatar
filatov committed
//    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; 
garciay's avatar
garciay committed
        
        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;
        
garciay's avatar
garciay committed
        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 
         * @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,
            AccelerationControl setAccelerationControlStatus,
            ExteriorLights setExteriorLightsStatus,
            HeadingValue changeHeading,
            DriveDirection setDriveDirection,
            YawRateValue changeYawRate,
            StationType setStationType,
            VehicleRole setVehicleRole,
            EmbarkationStatus setEmbarkationStatus,
            PtActivation setPtActivation,
            DangerousGoodsBasic setDangerousGoods,
            LightBarSirenInUse setLightBarSirene
        /**
         * @desc Upper Tester result message of request of triggering of an event at IUT 
         */        
//FIXME RGY As discussed, simple boolean responses are collected to a union for forward compatibility
//        type boolean UtCamTriggerResult;
          type union UpperTesterCamResults {
            boolean utCamTriggerResult
          }
          
          type UpperTesterCamResults.utCamTriggerResult UtCamTriggerResult;
        /**
         * @desc Upper Tester message to check event/status on CAM IUT 
         */
        type record UtCamEventInd {
            CAM camMsg
        } 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"
    } // end utPrimitives
}
with {
    encode "LibItsCam"
}