LibItsMapemSpatem_TestSystem.ttcn 4 KB
Newer Older
/**
 *    @author   ETSI / STF484
 *    @version  $URL$
 *              $Id$
 *    @desc     Test System module for ITS MAPEM SPATEM
 *
 */
module LibItsMapemSpatem_TestSystem {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_Time all;
    import from LibCommon_Sync all;
    import from LibCommon_DataStrings all;

    // LibIts
    import from ITS_Container language "ASN.1:1997" all;
    import from MAPEM_PDU_Descriptions language "ASN.1:1997" all;
    import from SPATEM_PDU_Descriptions language "ASN.1:1997" all;
    import from EfcDsrcGeneric language "ASN.1:1997" all;

    // LibItsCommon
    import from LibItsCommon_TestSystem all;
    import from LibItsCommon_TypesAndValues all;
    
    // LibItsMapemSpatem
    import from LibItsMapemSpatem_TypesAndValues all;
    
    group portDefinitions {
    
        /**
         * @desc Upper Tester port
         */
        type port UpperTesterPort message {
            out 
                UtInitialize, UtMapemSpatemTrigger;
            in 
                UtInitializeResult, UtMapemSpatemTriggerResult, UtMapemEventInd , UtSpatemEventInd;
        } // end UpperTesterPort

    } // end portDefinitions

    group interfacePorts {

        /**
        * @desc Application MapSpat Port
        */
        type port MapemSpatemPort message { in MapemInd , SpatemInd ; out MapemReq , SpatemReq }
    
    } // End of group interfacePorts

    /**
    * @desc ITS System Adapter
    */
    type component ItsMapemSpatemSystem {
            
        port UpperTesterPort utPort;
        port MapemSpatemPort mapemSpatemPort;

    } // End of component ITS System Adapter
     
    /**
     * @desc Test component for ITS MAPEM-SPATEM application layer 
     */
    type component ItsMapemSpatem extends ItsBaseComponent {

        port UpperTesterPort utPort;
        port MapemSpatemPort mapemSpatemPort;
        //timers
        
        //component variables
        var MapemInd vc_mapMsg;
        var SpatemInd vc_spatMsg;
        var UtMapemEventIndList vc_utMapemEvents := {};
        var UtSpatemEventIndList vc_utSpatemEvents := {};
        
        //default
        var default vc_default := null;
        
        //global variables
        var boolean vc_mapemReceived := false;
        var boolean vc_spatemReceived := false;
    } // End of component ItsMapemSpatem

    group ApplPrimitives {
        
        type record MapemInd {
            MAPEM       msgIn,
            UInt8       gnNextHeader optional,
            UInt8       gnHeaderType optional,
            UInt8       gnHeaderSubtype optional,
            UInt32      gnLifetime optional,
            UInt8       gnTrafficClass optional,
            UInt16      btpDestinationPort optional,
            UInt16      btpInfo optional,
            Oct16       ssp optional,
            Oct16       its_aid optional
        }
        with {
            encode (msgIn) "LibItsMapemSpatem_asn1"
        }
        
        type record SpatemInd {
            SPATEM      msgIn,
            UInt8       gnNextHeader optional,
            UInt8       gnHeaderType optional,
            UInt8       gnHeaderSubtype optional,
            UInt32      gnLifetime optional,
            UInt8       gnTrafficClass optional,
            UInt16      btpDestinationPort optional,
            UInt16      btpInfo optional,
            Oct16       ssp optional,
            Oct16       its_aid optional
        }
        with {
            encode (msgIn) "LibItsMapemSpatem_asn1"
        }
        
        /**
        * @desc Appl MAPEM and SPATEM Request Primitive 
        */
        type record MapemReq { 
            MAPEM msgOut 
        }
        with {
            encode (msgOut) "LibItsMapemSpatem_asn1"
        }
        type record SpatemReq { 
            SPATEM msgOut
        }
        with {
            encode (msgOut) "LibItsMapemSpatem_asn1"
        }
            
    } with { 
        encode "LibIts_Interface" 
    } // End of group ApplPrimitives
    
} // End of module LibItsMapemSpatem_TestSystem