LibItsIvim_TestSystem.ttcn 4.37 KB
Newer Older
/**
 *    @author     ETSI / STF517
 *    @version     $URL$
 *                 $Id$
 *    @desc        Test System module for ITS IVIM
 *
 */
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;
                AcGnssResponse, AcGnssDistanceCovered, AcSecResponse;
        } // end AdapterControlPort
        
        /**
         * @desc Upper Tester port
         */
        type port UpperTesterPort message {
            out 
                UtInitialize, UtIvimTrigger, UtIvimUpdate, UtIvimTermination, UtChangePosition, UtChangePseudonym;
            in 
                UtInitializeResult, UtIvimTriggerResult, UtIvimUpdateResult, UtIvimTerminationResult,
                UtChangePositionResult, UtChangePseudonymResult, UtIvimEventInd;
        } // end UpperTesterPort
        
    } // end portDefinitions
    group interfacePorts {
        
        group facilityPorts {
            
            group fa1Ports {
    
                /**
                 * @desc FA1 IVIM Port (IVIM/BTP/GeoNet/G5) 
                 */
                type port IvimPort message {
                    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 := {};
        
    } // End of component ItsIvim

    group facilityPrimitives {
            
        group fa1Primitives {
            
            /**
             * @desc FA1 IVIM Indication Primitive 
             * 
             * @member ivimMsg
             */
            type record IvimInd {
                IVIM        msgIn,
                UInt8       gnNextHeader optional,
                UInt8       gnHeaderType optional,
                UInt8       gnHeaderSubtype optional,
                UInt32      gnLifetime optional,
                UInt8       gnTrafficClass optional,
                UInt16      btpDestinationPort optional,
                UInt16      btpInfo optional,
                Bit256      ssp optional,
            }
            with {
                encode (msgIn) "LibItsIvim_asn1"
            }
            
            /**
             * @desc FA1 IVIM Request Primitive 
             * 
             * @member ivimMsg
             */
            type record IvimReq {
                IVIM msgOut
            }
            with {
                encode (msgOut) "LibItsIvim_asn1"
            }
            
        } // End of group fa1Primitives
        
    } // End of group facilityPrimitives
    with {
        encode "LibIts_Interface"
    } // end interfacePrimitives    
         
} // End of module LibItsIvim_TestSystem