LibItsCam_TypesAndValues.ttcn 4.77 KB
Newer Older
/**
 *    @author   ETSI / STF405 / STF449
 *    @version  $URL$
 *              $Id$
 *    @desc     Module containing types and values for CAM Protocol
 *
 */
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;
    import from LibItsCommon_TypesAndValues {
        type UtChangePosition
    };

    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 AccelerationControl c_brakePedalEngaged       := '0000001'B;
        const AccelerationControl c_gasPedalEngaged         := '0000010'B;
        const AccelerationControl c_emergencyBrakeEngaged   := '0000100'B;
        const AccelerationControl c_collisionWarningEngaged := '0001000'B;
        const AccelerationControl c_accEngaged              := '0010000'B;
        const AccelerationControl c_cruiseControlEngaged    := '0100000'B;
        const AccelerationControl c_speedLimiterEngaged     := '1000000'B;
        
        const ExteriorLights c_elAllLightsOff           := '00000000'B; 
        const ExteriorLights c_lowBeamHeadlightsOn      := '00000001'B; 
        const ExteriorLights c_highBeamHeadlightsOn     := '00000010'B; 
        const ExteriorLights c_leftTurnSignalOn         := '00000100'B; 
        const ExteriorLights c_rightTurnSignalOn        := '00001000'B; 
        const ExteriorLights c_daytimeRunningLightsOn   := '00010000'B; 
        const ExteriorLights c_reverseLightOn           := '00100000'B; 
        const ExteriorLights c_fogLightOn               := '01000000'B; 
        const ExteriorLights c_parkingLightsOn          := '10000000'B; 
      
    } // end group camValues

    group utPrimitives {

        group utCommonPrimitives {
                    
            /**
             * @desc Upper Tester message to check event/status on IUT 
             */    
            type record UtCheck { /* FIXME: change this as in DENM */
                UtCamTrigger utEvent
            } with {
                encode (utEvent) "UpperTester"
            }
            
            /**
             * @desc Upper Tester response message  
             */    
            type boolean UtResult;
        }
        with {
            encode "LibItsCommon"
        }
        
        /**
         * @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 setDangerousGoodsExt
         * @member setLightBarSireneStatus
         * @member changeYawRate Changes the yaw rate in offsets of 0.01 degrees per second.
         * @member changePosition Changes the position in the direction of the current heading in meters.
         * @member checkLdm Checks that the received CAM was provided at LDM.
         */
        type union UtCamTrigger {
            CurvatureValue changeCurvature,
            SpeedValue changeSpeed,
            AccelerationControl setAccelerationControlStatus,
            ExteriorLights setExteriorLightsStatus,
            HeadingValue changeHeading,
            DriveDirection setDriveDirection,
            YawRateValue changeYawRate,
            StationType setStationType,
            VehicleRole setVehicleRole,
            EmbarkationStatus setEmbarkationStatus,
            PtActivation setPtActivation,
            DangerousGoodsBasic setDangerousGoods,
            DangerousGoodsExtended setDangerousGoodsExt,
            LightBarSirenInUse setLightBarSirene,    
            UtChangePosition changePosition,  /* FIXME: obselete, to be removed */
            CAM checkLdm /* FIXME: obselete, to be removed */
        }

        /**
         * @desc Upper Tester result message of request of triggering of an event at IUT 
         */        
        type boolean UtCamTriggerResult;
        
    } with {
            encode "UpperTester"
    } // end utPrimitives
}
with {
    encode "LibItsCam"
}