/** * @author ETSI / STF422_EETS * @version $URL:$ * $Id:$ * @desc Fast service advertisement protocol (ISO 24102-5) functions */ module LibItsFsap_Functions { // Libcommon import from LibCommon_Sync all; import from LibCommon_Time { function f_sleepIgnoreDef }; // LibIts import from CALMmanagement language "ASN.1:1997" { type ITS_scuId//, ApplicationID, }; import from CALMfsap language "ASN.1:1997" { type GCschedule, ServiceDataReg }; import from CALMmsap language "ASN.1:1997" { type CommandRef }; import from LibItsFntp_TypesAndValues { const c_portNon }; import from LibItsMgt_Templates all; import from LibItsMgt_Functions all; import from LibItsFsap_TypesAndValues all; import from LibItsFsap_Templates all; import from LibItsFsap_Pixits all; import from LibItsFsap_Pics all; import from LibItsCommon_Functions { function f_utInitializeIut, f_utCommandRequest }; import from LibItsFntp_Templates all; import from LibIts_Interface { type ItsMgt, ItsAdapterComponent }; group fsapConfigurationFunctions { /** * @desc This configuration features: *
  • Host and Router are separated (see ISO/WD 24102-3 - Figure 1 - Implementation architecture II & III)
  • *
  • MGT1 IISC Port (IISC/LAN) is used if specified
  • * @param p_iicpMGM Set to true if IISC port shall be used */ function f_cf01Up(in boolean p_iicpMGM) runs on ItsMgt { // Sanity check // FIXME Check control to be done here // if (not(PICS_ITS_S_INW)) { // log("*** f_cf01Up: ERROR: PICS_ITS_S_INW required for executing the TC ***"); // stop; // } // Map map(self:acPort, system:acPort); map(self:utPort, system:utPort); map(self:mgtMNSapPort, system:mgtMNSapPort); if (p_iicpMGM == true) { map(self:iiscPort, system:iiscPort); } // Connect f_connect4SelfOrClientSync(); // Set processing on shutdown activate(a_cf01Down(p_iicpMGM)); // Initialize the component f_initialiseComponent("cf01Up"); // Initialze the IUT f_initialState(); } // End of function f_cf01Up function f_cf01Down(in boolean p_iicpMGM) runs on ItsMgt { deactivate; // Unmap unmap(self:acPort, system:acPort); unmap(self:utPort, system:utPort); unmap(self:mgtMNSapPort, system:mgtMNSapPort); if (p_iicpMGM == true) { unmap(self:iiscPort, system:iiscPort); // FIXME To be removed } // Disconnect f_disconnect4SelfOrClientSync(); } // end f_cf01Down /** * @desc Behavior function for initializing component's variables and tables * @param p_componentName Name of the component */ function f_initialiseComponent(in charstring p_componentName) runs on ItsMgt { // Initialize variables // vc_componentName := p_componentName; // vc_portNumber := { portLong := c_portNon }; // vc_scuId := 255; // Set defaults //activate(a_fsapDefault()); // FIXME Default for Fsap module activate(a_mgtMFSapPortDefault()); // Default for MGT module / MF-SAP port if (PICS_ITS_S_INW == true) { // FIXME Use a function activate(a_iiscDefault()); // Default for Iisc module } } // end f_initialiseComponent } // End of group fsapConfigurationFunctions group preambles { /** * @desc Brings the IUT into an initial state. */ function f_initialState() { f_utInitializeIut(m_fsapInitialize); f_sleepIgnoreDef(2.0); // Wait until the IUT is in a stable situation (beaconing...) } // End of function f_initialState } // End of group preambles group postambles { /** * @desc The default postamble. */ function f_poDefault() runs on ItsMgt { //empty } } // End of group postambles group adapterControl { /** * @desc Triggers event in the test system adaptation via NF-SAP interface. * @param p_event The event to trigger */ function f_acTriggerEvent(template (value) AcFsapPrimitive p_event) runs on ItsAdapterComponent { acPort.send(p_event); } } // End of group adapterControl group testerFunctions { } // End of group testerFunctions // group mfSapFunctions { // // /** // * @desc Generate a correctly formatted GCctxTxCmd message via IN-SAP interface // * @param p_commandRef Unique cyclic reference number of command. Same value as in related MN-REQUEST.request // * @verdict Unchanged // */ // function f_mfSapGenerateGCregServer(in CommandRef p_commandRef) runs on ItsMgt { // f_mgtGenerateGCregServer( // p_commandRef, // m_gCregServer( // f_getIutApplicationID(), // f_getIutGCschedule(), // PX_USER_PRIORITY, // f_getIutServiceDataReg() // ) // ); // } // // } // End of group mfSapFunctions // group iutFunctions { /** * @desc Gets the Local/source ITS scuID * @return The Local/source ITS scuID * @see PX_LOCAL_ITS_SCU_ID * @verdict Unchanged * @see ISO/WD 24102-4 - Table 2 — ITS-SCU-ID value assignment */ function f_getIutLocalITSscuId() return ITS_scuId { return PX_LOCAL_ITS_SCU_ID; } // /** // * @desc Gets the SAM retransmit timer. // * @return SAM retransmit timer // */ // function f_getSAMRetransmitTimer() return float { // var float v_samRetransmitTimer; // // v_samRetransmitTimer := int2float( // (PICS_SAM_RETRANSMIT_TIMER/1000)); // // return v_samRetransmitTimer; // } // // /** // * @desc Gets the maximum SAM jitter. // * @return Maximum SAM jitter // */ // function f_getSAMMaxJitter() return float { // var float v_samRetransmitTimerMaxJitter := int2float(PICS_SAM_RETRANSMIT_TIMER)/1000.0; // // return v_samRetransmitTimerMaxJitter; // } // // /** // * @desc TODO // * @return TODO // * @verdict TODO // */ // function f_getIutApplicationID() return ApplicationID { // return PX_APPLICATION_ID_1; // } // // /** // * @desc TODO // * @return TODO // * @verdict TODO // */ // function f_getIutGCschedule() return GCschedule { // return { PX_GSCHED_1_0, PX_GSCHED_1_1 }; // } // // /** // * @desc TODO // * @return TODO // * @verdict TODO // */ // function f_getIutServiceDataReg() return ServiceDataReg { // return PX_SERVICE_DATA_REG_1; // } // } // End of group iutFunctions group fsapAltsteps { /** * @desc The base default. */ altstep a_fsapDefault() runs on ItsMgt { [] tc_wait.timeout { log("*** a_fsapDefault: ERROR: Timeout while awaiting reaction of the IUT prior to Upper Tester action ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } [] tc_ac.timeout { log("*** a_fsapDefault: ERROR: Timeout while awaiting the reception of a message ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } [] any timer.timeout { log("*** a_fsapDefault: INCONC: An unknown timer has expired in default ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } [] a_shutdown() { f_poDefault(); log("*** a_fsapDefault: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***"); if(self == mtc) { f_cf01Down(PICS_IICP_MGM); } stop; } } // End of altstep a_fsapDefault() /** * @desc Default handling cf01 de-initialisation. * @param TODO */ altstep a_cf01Down(in boolean p_iicpMGM) runs on ItsMgt { [] a_shutdown() { f_poDefault(); f_cf01Down(p_iicpMGM); log("*** a_cf01Down: INFO: TEST COMPONENT NOW STOPPING ITSELF! ***"); stop; } } // End of altstep a_cf01Down() } // End of group fsapAltsteps } // End of module LibItsFsap_Functions