LibItsCommon_TypesAndValues.ttcn 7.62 KB
Newer Older
garciay's avatar
garciay committed
 *  @author      ETSI / STF405 / STF449 / STF484 / STF517
garciay's avatar
garciay committed
 *  @version     $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/Common/LibItsCommon_TypesAndValues.ttcn $
 *               $Id: LibItsCommon_TypesAndValues.ttcn 1318 2017-01-26 10:20:53Z filatov $
 *  @desc        Module containing common types and values for ITS Protocols
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 LibItsCommon_TypesAndValues {
    
garciay's avatar
garciay committed
    // LibCommon
    import from LibCommon_DataStrings all;
    
    // LibIts
    import from ITS_Container language "ASN.1:1997" all;

    group acPrimitives {
        /**
         * @desc TA primitives for security support
         * @member acSetCertificate     Primitive used to activate security support
         * @member acDisableSecurity    Primitive used to deactiate security support
         */
        type union AcSecPrimitive {
            AcEnableSecurity acEnableSecurity,
            AcDisableSecurity acDisableSecurity
        } // End of type AcSecPrimitive
        
        /**
         * @desc    Primitive used to activate security support
         * @member  certificateId The certificate identifier to be used
        type record AcEnableSecurity {
            charstring certificateId,
            boolean    enforceSecurity
        } // End of type AcEnableSecurity
        /**
         * @desc    Primitive used to deactiate security support
         */
        type record AcDisableSecurity {
            boolean disable
        } // End of type AcDisableSecurity
Yann Garcia's avatar
Yann Garcia committed
         * @desc    Primitive for receiving response from TA
         * @desc    TA primitives for GNSS
         * @member  loadScenario                -
         * @member  startScenario               -
         * @member  stopScenario                -
         * @member  distanceCovered             -
         */
        type union AcGnssPrimitive {
            AcLoadScenario loadScenario,
            AcStartScenario startScenario,
            AcStopScenario stopScenario,
            AcDistanceToCover distanceToCover,
garciay's avatar
garciay committed
            AcSpeed speed,
            AcChangeSpeed changeSpeed,
garciay's avatar
garciay committed
            AcChangeHeading changeHeading,
            AcTimeInRunningScenario timeInRunningScenario
        }
        
        /**
         * @desc    Primitive for receiving response from TA
garciay's avatar
garciay committed
         * @member  acGnssResponse        Primitive for receiving response from TA
         * @member  acGnssDistanceCovered Primitive for receiving an indication if requested distance was covered from TA
         * @member  AcGnssSpeedReached    Primitive for receiving an indication if speed was reached
         * @member  acGnssTimeReached     Primitive for receiving an indication if requested time was reached from TA
         * @member  acSecResponse         
        type union AdapterControlResults {
          boolean acGnssResponse,
          boolean acGnssDistanceCovered,
garciay's avatar
garciay committed
          boolean acGnssSpeedReached,
          boolean acGnssTimeReached,
garciay's avatar
garciay committed
        /**
         * @desc    Primitive for receiving response from TA
         */
        type AdapterControlResults.acSecResponse AcSecResponse;
        
        type AdapterControlResults.acGnssResponse AcGnssResponse;
        
        /**
         * @desc    Primitive for receiving an indication if requested distance was covered from TA
         */
        type AdapterControlResults.acGnssDistanceCovered AcGnssDistanceCovered;
garciay's avatar
garciay committed
        /**
         * @desc    Primitive for receiving an indication if speed was reached
         */
        type AdapterControlResults.acGnssSpeedReached AcGnssSpeedReached;
        
        /**
         * @desc    Primitive for receiving an indication if requested time was reached from TA
         */
        type AdapterControlResults.acGnssTimeReached AcGnssTimeReached;
        
        /**
         * @desc    Primitive for loading a scenario
         * @member  scenario   Scenario to load
         */
        type record AcLoadScenario {
            Scenario scenario
        }
        
        type enumerated Scenario {
            e_staticPosition(0),
garciay's avatar
garciay committed
            e_dynamicPositionTwoAccelerationsLowSpeed(101),
            e_dynamicPositionTwoAccelerations(102),
            e_dynamicPositionChangeHeading(104),
            e_dynamicPositionSixAccelerations(106),
            e_dynamicPosition200m(200),
garciay's avatar
garciay committed
            e_dynamicPosition250m(250),
            e_dynamicPosition1000m(1000),
garciay's avatar
garciay committed
            e_dynamicPosition1000m_45ms(1045),
            e_dynamicPosition1500m(1500)
        }
        
        /**
         * @desc    Primitive for starting the loaded scenario
         */
        type record AcStartScenario {
        }
        
        /**
         * @desc    Primitive for stopping the loaded scenario
         */
        type record AcStopScenario {
        }
        
        /**
         * @desc Primitive to inform when given distance was covered
         */
        type record AcDistanceToCover {
            float distance
        }
        
garciay's avatar
garciay committed
        /**
         * @desc Defines the check for speed values.
         * e_accelerate - speed value should be equal or above the speed value to check
         * e_deaccelerate - speed value should be equal or below the speed value to check
         * e_fix - speed value should be equal the speed value to check
         */
        type enumerated SpeedTrend {
          e_accelerate(0),
          e_deaccelerate(1),
          e_fix(2)
        }
        with {
          variant "8 bits"
        }
        
        /**
         * @desc    Primitive to inform when speed is reached
         */
        type record AcSpeed{
            float speed,
            SpeedTrend speedTrend
        }
        
        /**
         * @desc Primitive to change speed in current scenario
         */
        type record AcChangeSpeed {
            SpeedValue deltaSpeed
        }
        
        /**
         * @desc Primitive to change heading in current scenario
         */
        type record AcChangeHeading {
            HeadingValue deltaHeading
        }
        
garciay's avatar
garciay committed
        /**
         * @desc Primitive to inform when given time in the running scenario was reached
         */
        type record AcTimeInRunningScenario {
            integer time
        }
        
    } // end acPrimitives
    with {
        encode "AdapterControl"
    }
garciay's avatar
garciay committed

    /**
     * @see ETSI TS 102 965 Intelligent Transport Systems (ITS); Application Object Identifier (ITS-AID); Registration list ETSI ITS registration list
Yann Garcia's avatar
Yann Garcia committed
     * @see https://standards.iso.org/iso/ts/17419/TS17419%20Assigned%20Numbers/TS17419_ITS-AID_AssignedNumbers.pdf
    group securityConstants {
Yann Garcia's avatar
Yann Garcia committed
        const integer c_its_aid_CAM   := 36;
        const integer c_its_aid_DENM  := 37;
        const integer c_its_aid_GPC   := 128;
        const integer c_its_aid_SPAT  := 137;
        const integer c_its_aid_MAP   := 138;
        const integer c_its_aid_IVI   := 139;
garciay's avatar
garciay committed
        const integer c_its_aid_TLC   := 140;
        const integer c_its_aid_TLS   := 140;
garciay's avatar
garciay committed
        const integer c_its_aid_GN    := 141;
Yann Garcia's avatar
Yann Garcia committed
        const integer c_its_aid_SCR   := 623; // Secured Certificate Request, https://standards.ieee.org/products-services/regauth/psid/public.html
}
with {
    encode "LibItsCommon"
}