ItsAutoInterop_Functions.ttcn 14.5 KB
Newer Older
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