Commit 22087a77 authored by garciay's avatar garciay
Browse files

Early draft TTCN-3 version of DTS/ITS-00147

parent d01f1c77
Loading
Loading
Loading
Loading
+330 −0
Original line number Diff line number Diff line
module ItsAutoInterop_Functions { 
    
    // LibItsCommon
    import from LibItsCommon_TypesAndValues all;
    
    // LibItsGeoNetworking
    import from LibItsGeoNetworking_TypesAndValues all;
    import from LibItsGeoNetworking_Functions all;
    import from LibItsGeoNetworking_TestSystem all;
    
    // ItsInterop
    import from ItsAutoInterop_TestSystem all;
    
    function f_cfPtcUp(
                      in ItsAutoInteropGeonetworking p_eut,
                      in charstring p_mainUtComponent := c_compMTC, 
                      in Scenario p_scenario := e_staticPosition
    ) runs on ItsAutoInteropGeonetworking /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // EUT
        map(p_eut:acPort, system:acPort); 
        map(p_eut:utPort, system:utPort); 
        map(p_eut:hmiPort, system:hmiPort); 
        map(p_eut:geoNetworkingPort, system:geoNetworkingPort);
        connect(p_eut:syncPort, self:syncPort);
        
        //activate(a_cfPtcDown()); // FIXME To be done
        
        //Initialze the IUT
        f_initialiseSecuredMode();
        
        // MTC intializes IUT
        f_initialState(p_scenario);
        
    } // End of function f_cfPtcUp
    
    function f_cf02Up(
                      out ItsAutoInteropGeonetworking p_eut1,
                      out ItsAutoInteropGeonetworking p_eut2,
                      in charstring p_mainUtComponent := c_compMTC, 
                      in Scenario p_scenario := e_staticPosition
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // Create components
        p_eut1 := ItsAutoInteropGeonetworking.create(c_compNodeB); // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2 := ItsAutoInteropGeonetworking.create(c_compNodeC);
        
        // Map & Connect
        map(self:acPort, system:acPort);
        map(self:utPort, system:utPort);
        connect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        map(p_eut1:acPort, system:acPort); // TODO Check if required
//        map(p_eut1:utPort, system:utPort); // TODO Check if required
//        map(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        map(p_eut2:acPort, system:acPort); // TODO Check if required
//        map(p_eut2:utPort, system:utPort); // TODO Check if required
//        map(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut2:syncPort, self:syncPort);
        // EUT1/EUT2
        connect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); 
        
        activate(a_cf02Down());
        
//        //Initialze the IUT
//        if(p_mainUtComponent == c_compMTC) {
//            // Initialise secured mode
//            f_initialiseSecuredMode();
//            
//            // MTC intializes IUT
//            f_initialState(p_scenario);
//        }
    
    } // End of function f_cf02Up
    
    function f_cf03Up(
                      out ItsAutoInteropGeonetworking p_eut1,
                      out ItsAutoInteropGeonetworking p_eut2,
                      out ItsAutoInteropGeonetworking p_eut3,
                      in charstring p_mainUtComponent := c_compMTC, 
                      in Scenario p_scenario := e_staticPosition
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
      
        // Create components
        p_eut1 := ItsAutoInteropGeonetworking.create(c_compNodeB); // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2 := ItsAutoInteropGeonetworking.create(c_compNodeC);
        p_eut3 := ItsAutoInteropGeonetworking.create(c_compNodeD);
        
        // Map & Connect
        map(self:acPort, system:acPort);
        map(self:utPort, system:utPort);
        connect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        map(p_eut1:acPort, system:acPort); // TODO Check if required
//        map(p_eut1:utPort, system:utPort); // TODO Check if required
//        map(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        map(p_eut2:acPort, system:acPort); // TODO Check if required
//        map(p_eut2:utPort, system:utPort); // TODO Check if required
//        map(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut2:syncPort, self:syncPort);
//        // EUT3
//        map(p_eut3:acPort, system:acPort); // TODO Check if required
//        map(p_eut3:utPort, system:utPort); // TODO Check if required
//        map(p_eut3:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut3:syncPort, self:syncPort);
        // EUT1/EUT2/EUT3
        connect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); // FIXME To be include into the loop
        connect(p_eut1:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        connect(p_eut2:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        
        activate(a_cf03Down());
        
//        //Initialze the IUT
//        if(p_mainUtComponent == c_compMTC) {
//            // Initialise secured mode
//            f_initialiseSecuredMode();
//            
//            // MTC intializes IUT
//            f_initialState(p_scenario);
//        }
    
    } // End of function f_cf03Up
    
    function f_cfMtc04Up(
                      out ItsAutoInteropGeonetworking p_eut1,
                      out ItsAutoInteropGeonetworking p_eut2,
                      out ItsAutoInteropGeonetworking p_eut3,
                      out ItsAutoInteropGeonetworking p_eut4,
                      in charstring p_mainUtComponent := c_compMTC, 
                      in Scenario p_scenario := e_staticPosition
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
      
        // Create components
        p_eut1 := ItsAutoInteropGeonetworking.create(c_compNodeB); // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2 := ItsAutoInteropGeonetworking.create(c_compNodeC);
        p_eut3 := ItsAutoInteropGeonetworking.create(c_compNodeD);
        p_eut4 := ItsAutoInteropGeonetworking.create(c_compNodeE);
        
        // Map & Connect
        map(self:acPort, system:acPort);
        map(self:utPort, system:utPort);
        connect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        map(p_eut1:acPort, system:acPort); // TODO Check if required
//        map(p_eut1:utPort, system:utPort); // TODO Check if required
//        map(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        map(p_eut2:acPort, system:acPort); // TODO Check if required
//        map(p_eut2:utPort, system:utPort); // TODO Check if required
//        map(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut2:syncPort, self:syncPort);
//        // EUT3
//        map(p_eut3:acPort, system:acPort); // TODO Check if required
//        map(p_eut3:utPort, system:utPort); // TODO Check if required
//        map(p_eut3:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut3:syncPort, self:syncPort);
//        // EUT4
//        map(p_eut4:acPort, system:acPort); // TODO Check if required
//        map(p_eut4:utPort, system:utPort); // TODO Check if required
//        map(p_eut4:geoNetworkingPort, system:geoNetworkingPort);
//        connect(p_eut4:syncPort, self:syncPort);
        // EUT1/EUT2/EUT3/EUT4
        connect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); // FIXME To be include into the loop
        connect(p_eut1:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        connect(p_eut1:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        connect(p_eut2:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        connect(p_eut2:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        connect(p_eut3:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        
        activate(a_cf04Down());
        
//        //Initialze the IUT
//        if(p_mainUtComponent == c_compMTC) {
//            // Initialise secured mode
//            f_initialiseSecuredMode();
//            
//            // MTC intializes IUT
//            f_initialState(p_scenario);
//        }
        
    } // End of function f_cfMtc04Up
    
    function f_cfPtcDown(
                        inout ItsAutoInteropGeonetworking p_eut
    ) runs on ItsAutoInteropGeonetworking /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // Wait components done
        p_eut.done;
        
        deactivate;
        
        // EUT
        unmap(p_eut:acPort, system:acPort); 
        unmap(p_eut:utPort, system:utPort); 
        unmap(p_eut:hmiPort, system:hmiPort); 
        unmap(p_eut:geoNetworkingPort, system:geoNetworkingPort);
        disconnect(p_eut:syncPort, self:syncPort);
        
    } // End of function f_cfPtcDown
    
    function f_cf02Down(
                        inout ItsAutoInteropGeonetworking p_eut1,
                        inout ItsAutoInteropGeonetworking p_eut2
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // Wait components done
        p_eut1.done; // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2.done;
        
        deactivate;
        
        // Unmap & disconnect
        unmap(self:acPort, system:acPort);
        unmap(self:utPort, system:utPort);
        disconnect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        unmap(p_eut1:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut1:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        unmap(p_eut2:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut2:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut2:syncPort, self:syncPort);
//        // EUT1/EUT2
//        disconnect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); 
        
    } // End of function f_cf02Down
    
    function f_cf03Down(
                        inout ItsAutoInteropGeonetworking p_eut1,
                        inout ItsAutoInteropGeonetworking p_eut2,
                        inout ItsAutoInteropGeonetworking p_eut3
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // Wait components done
        p_eut1.done; // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2.done;
        p_eut3.done;
        
        deactivate;
        
        // Unmap & disconnect
        unmap(self:acPort, system:acPort);
        unmap(self:utPort, system:utPort);
        disconnect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        unmap(p_eut1:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut1:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        unmap(p_eut2:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut2:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut2:syncPort, self:syncPort);
//        // EUT2
//        unmap(p_eut3:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut3:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut3:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut3:syncPort, self:syncPort);
        // EUT1/EUT2/EUT3
        disconnect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); 
        disconnect(p_eut1:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort); 
        disconnect(p_eut3:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort); 
        
    } // End of function f_cf03Down
    
    function f_cfMtc04Down(
                        inout ItsAutoInteropGeonetworking p_eut1,
                        inout ItsAutoInteropGeonetworking p_eut2,
                        inout ItsAutoInteropGeonetworking p_eut3,
                        inout ItsAutoInteropGeonetworking p_eut4
    ) runs on ItsMtc /* TITAN TODO: mtc ItsMtc system ItsGeoNetworkingSystem */ {
        
        // Wait components done
        p_eut1.done; // FIXME To be include into the loop changing inputs p_eut<n> into array 
        p_eut2.done;
        p_eut3.done;
        p_eut4.done;
        
        deactivate;
        
        // Unmap & disconnect
        unmap(self:acPort, system:acPort);
        unmap(self:utPort, system:utPort);
        disconnect(self:syncPort, mtc:syncPort);
        
//        // EUT1
//        unmap(p_eut1:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut1:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut1:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut1:syncPort, self:syncPort);
//        // EUT2
//        unmap(p_eut2:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut2:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut2:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut2:syncPort, self:syncPort);
//        // EUT3
//        unmap(p_eut3:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut3:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut3:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut3:syncPort, self:syncPort);
//        // EUT4
//        unmap(p_eut4:acPort, system:acPort); // TODO Check if required
//        unmap(p_eut4:utPort, system:utPort); // TODO Check if required
//        unmap(p_eut4:geoNetworkingPort, system:geoNetworkingPort);
//        disconnect(p_eut4:syncPort, self:syncPort);
        // EUT1/EUT2/EUT3/EUT4
        disconnect(p_eut1:eutGeoNetworkingPort, p_eut2:eutGeoNetworkingPort); // FIXME To be include into the loop
        disconnect(p_eut1:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        disconnect(p_eut1:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        disconnect(p_eut2:eutGeoNetworkingPort, p_eut3:eutGeoNetworkingPort);
        disconnect(p_eut2:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        disconnect(p_eut3:eutGeoNetworkingPort, p_eut4:eutGeoNetworkingPort);
        
    } // End of function f_cfMtc04Down
    
} // End of module ItsAutoInterop_Functions 
+33 −0
Original line number Diff line number Diff line
module ItsAutoInterop_Pics {
    
    // LibCommon
    import from LibCommon_BasicTypesAndValues 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;
    
    // LibItsBtp
    import from LibItsBtp_TypesAndValues all;
    import from LibItsBtp_Templates all;
    
    // LibItsGeoNetworking
    import from LibItsGeoNetworking_TypesAndValues all;
    
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    
    modulepar BtpPortId PICS_CAM_BTP_DESTINATION_PORT  := 2001;
    
    modulepar BtpPortId PICS_CAM_BTP_SOURCE_PORT       := 0;
    
    modulepar UInt32 PICS_CAM_ITS_AID                  := 36;
    
    modulepar BtpPortId PICS_DENM_BTP_DESTINATION_PORT := 2002;
    
    modulepar BtpPortId PICS_DENM_BTP_SOURCE_PORT      := 0;
    
    modulepar UInt32 PICS_DENM_ITS_AID                 := 37;
    
} // End of module ItsAutoInterop_Pics 
+54 −0
Original line number Diff line number Diff line
module ItsAutoInterop_Pixits {
    
    // Libcommon
    import from LibCommon_BasicTypesAndValues all;
    
    // ItsInterop
    import from ItsAutoInterop_TypesAndValues all;
    
    /**
     * @desc 
     *       Possible values: on-link or off-link
     */
    modulepar charstring PX_CAPTURE_MODE := "on-link"; 
    
    /**
     * @desc 
     */
    modulepar charstring PX_PCAP_FILE_NAME := "g5capture.pcap";
    
    modulepar EutDescriptions PX_EUT_DESC := {
        {
            '000000000001'O,
            111,
            '000000000001'O
        }, // EUT_1
        {
            '000000000002'O,
            222,
            '000000000003'O
        }, // EUT_2
		{
            '000000000003'O,
            333,
            '000000000003'O
		}, // EUT_3
		{
            '000000000004'O,
            444,
            '000000000004'O
		} // EUT_4
    }
    
    /**
     * @desc 
     */
//    modulepar charstring PX_PCAP_MIDs_FILTER := "00:00:00:00:00:00;11:11:11:11:11:11";
    
    /**
     * @desc 
     */
    modulepar UInt32 PX_PCAP_START_OFFSET := 0;

    
} // End of module ItsAutoInterop_Pixits
+185 −0

File added.

Preview size limit exceeded, changes collapsed.

+875 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading