LibItsIvim_TestSystem.ttcn 4.7 KB
Newer Older
garciay's avatar
garciay committed
 *    @author      ETSI / STF517
Yann Garcia's avatar
Yann Garcia committed
 *    @version     $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/IVIM/LibItsIvim_TestSystem.ttcn $
 *                 $Id: LibItsIvim_TestSystem.ttcn,v 1.2 2018/05/31 15:57:12 dte Exp $
 *    @desc        Test System module for ITS IVIM
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 LibItsIvim_TestSystem {
    
    // LibCommon
    import from LibCommon_Time {modulepar all};
    import from LibCommon_Sync all;
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;

    // LibIts
    import from IVIM_PDU_Descriptions language "ASN.1:1997" all;    
    import from ITS_Container language "ASN.1:1997" all;
    
    // LibItsCommon
    import from LibItsCommon_TestSystem all;
    import from LibItsCommon_TypesAndValues all;
    
    // LibItsIvim
    import from LibItsIvim_TypesAndValues all;
    
    group portDefinitions {
    
        /**
         * @desc Adapter control port
         */
        type port AdapterControlPort message {
            out
                AcGnssPrimitive, AcSecPrimitive;
                AdapterControlResults;
        } // end AdapterControlPort
        
        /**
         * @desc Upper Tester port
         */
        type port UpperTesterPort message {
            out 
                UtIvimInitialize, UtIvimTrigger, UtIvimUpdate, UtIvimTermination;
                UtIvimResults, UtIvimEventInd;
        } // end UpperTesterPort
        
    } // end portDefinitions
    group interfacePorts {
        
        group facilityPorts {
            
            group fa1Ports {
    
                /**
                 * @desc FA1 IVIM Port (IVIM/BTP/GeoNet/RadioNetwork) 
                    in IvimInd;
                    out IvimReq;
                } // End of port IvimPort
                
            } // End of group fa1Ports
            
        } // End of group facilityPorts
    
    } // End of group interfacePorts
        
    group componentDefinitions {

        /**
         * @desc ITS System Adapter
         */
        type component ItsIvimSystem {
            
            port UpperTesterPort utPort;
            port AdapterControlPort acPort;
            
            // FA1 ports
            port IvimPort ivimPort;
            
        } // end component ItsAdapter
        
    } // End of group componentDefinitions
    
    /**
     * @desc Test component for ITS Facility layer 
     */
    type component ItsIvim extends ItsBaseComponent {

        port AdapterControlPort acPort;
        port UpperTesterPort utPort;

        // FA1 ports
        port IvimPort ivimPort;
        
        //timers
        
        //component variables
        
        //default
        var default vc_default := null;
        
        //global variables
        var SequenceNumber vc_sequenceNo := 0;
        var boolean vc_ivimReceived := false;
        
        var UtIvimEventIndList vc_utEvents := {};
        
Yann Garcia's avatar
Yann Garcia committed
        var boolean vc_ivimDefaultActive := true;
    } // End of component ItsIvim

    group facilityPrimitives {
            
        group fa1Primitives {
            
            /**
             * @desc FA1 IVIM Indication Primitive 
             * 
             * @member ivimMsg
             */
            type record IvimInd {
                IVIM        msgIn,
Yann Garcia's avatar
Yann Garcia committed
                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,
                encode (msgIn) "PER"
            }
            
            /**
             * @desc FA1 IVIM Request Primitive 
             * 
             * @member ivimMsg
             */
            type record IvimReq {
                IVIM msgOut
            }
            with {
                encode (msgOut) "PER"
            }
            
        } // End of group fa1Primitives
        
    } // End of group facilityPrimitives
    with {
        variant ""
        encode "LibIts_Interface"
    } // end interfacePrimitives    
         
} // End of module LibItsIvim_TestSystem