Commit b59633c7 authored by mogos's avatar mogos
Browse files

added adapterControl port (0006821)

parent f86e4c0d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1384,7 +1384,7 @@ module AtsECall_IVS_Testcases {
                c_mbYes);

            modem.send(m_setAutomaticAlAck(PX_WORKER, true, c_clearDownAlAck));
            f_expectFeedback(mw_anyConfigChanged);
            f_adapterExpect(mw_anyConfigChanged);

            // AL-ACK clear down
            vc_messageIdentifier := c_initialMessageIdentifier;
@@ -1662,7 +1662,7 @@ module AtsECall_IVS_Testcases {
            f_clearDown(NETWORK, 10.0);

            modem.send(m_setAutomaticAlAck(PX_WORKER, true, c_positiveAlAck));
            f_expectFeedback(mw_anyConfigChanged);
            f_adapterExpect(mw_anyConfigChanged);

            uiPort.send(ShowMessageBox: {
                    title := "Callback",
@@ -1778,7 +1778,7 @@ module AtsECall_IVS_Testcases {
            f_mnoExpect(mw_callHangUp(PX_WORKER, ?, EXTERNAL), PX_TIMEOUT, true);

            modem.send(m_setAutomaticAlAck(PX_WORKER, true, c_positiveAlAck));
            f_expectFeedback(mw_anyConfigChanged);
            f_adapterExpect(mw_anyConfigChanged);

            t_callbackDelay.start;

+58 −18
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ module LibItsECall_Functions {
    import from MSDASN1Module language "ASN.1:1997" all
    with {
        encode "MSDEncode";
    };
    }
    import from LibLogger all;
    import from LibUserInterface all;
    
@@ -170,7 +170,7 @@ module LibItsECall_Functions {
        }
        else {
            modem.send(m_setAutomaticAlAck(PX_WORKER, true, c_clearDownAlAck));
            f_expectFeedback(mw_anyConfigChanged);
            f_adapterExpect(mw_anyConfigChanged);

            modem.send(m_inbandRequestMsd(PX_WORKER));
            f_verifyMSD(PX_ECALL_MESSAGE);
@@ -275,12 +275,12 @@ module LibItsECall_Functions {
        p_configuration.eCallMessage := v_eCallMessageExpanded;

        vc_eCallMessage := v_eCallMessageExpanded;

//TODO create equivalent for Psap Mtc
        modem.send(m_setConfig(PX_WORKERS[0].id, v_psapConfig));
        f_expectFeedback(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, ?), p_ignoreOtherMessages := true);
//		  f_adapterExpect(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, ?), p_ignoreOtherMessages := true);

        modem.send(m_setConfig(PX_WORKERS[0].id, p_configuration));
        f_expectFeedback(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, p_configuration), p_ignoreOtherMessages := true);
//		  f_adapterExpect(p_e := mw_ivsConfigChanged(p_workerConf.id, ?, p_configuration), p_ignoreOtherMessages := true);
    }

    /**
@@ -358,6 +358,44 @@ module LibItsECall_Functions {
        return v_result;
    }

    /**
     * @desc   Wait for a specific adapter control event
     * @param  p_e                      Expected event to be received
     * @param  p_event_timeout          Timeout value for receiving the event
     * @param  p_ignoreOtherMessages    Whether other events shall be ignored or not
     * @return FeedbackResult           Received event if reception is successful, or failure
     */
    function f_adapterExpect(template AdapterEvent p_e, float p_event_timeout := PX_TIMEOUT, in boolean p_ignoreOtherMessages := false) runs on PsapMtc return ExpectResult {
        timer t := p_event_timeout;
        var AdapterEvent v_received;
        var ExpectResult v_result;
        v_result.failure := false;

        if (getverdict == fail or getverdict == inconc) {
            return v_result;
        }

        t.start;
        alt {
            [] adapterControl.receive(p_e) -> value v_received {
                v_result.adapterEvent := v_received;
                t.stop;
            }

            [p_ignoreOtherMessages] mno.receive {
                repeat;
            }

            [] t.timeout {
                v_result.failure := true;
                log("Expecting", p_e);
                f_stopIvsTestcase(inconc, "Timeout!");
            }
        }

        return v_result;
    }

    /**
     * @desc Decodes the encoded eCallMessage if it valid and sets the decoded field of ECallMessageUnion,
     * otherwise the ECallMessageUnion is unchanged.
@@ -482,10 +520,6 @@ module LibItsECall_Functions {
                repeat;
            }

            [] modem.receive(mw_ivsConfigChanged(PX_WORKERS[0].id, ?, ?)) {
                repeat;
            }

            [] modem.receive(mw_timerExpired(p_worker := PX_WORKERS[0].id)) -> value v_modemEvent {
                f_stopPsapTestcase(fail, "Timer " & v_modemEvent.timerExpired.name & " expired");
            }
@@ -518,6 +552,12 @@ module LibItsECall_Functions {



            [] adapterControl.receive(mw_ivsConfigChanged(PX_WORKERS[0].id, ?, ?)) {
                repeat;
            }



            [] any port.receive {
                f_stopPsapTestcase(fail, "Wrong message received!");
            }
@@ -614,10 +654,10 @@ module LibItsECall_Functions {
            p_configuration.internalSubscriber := PX_INTERNAL_SUBSCRIBER;

            modem.send(m_setConfig(PX_WORKER, v_ivsConfig));
            f_expectFeedback(p_e := mw_ivsConfigChanged(PX_WORKER, ?, ?), p_ignoreOtherMessages := true);
            f_adapterExpect(p_e := mw_ivsConfigChanged(PX_WORKER, ?, ?), p_ignoreOtherMessages := true);

            modem.send(m_setConfig(PX_WORKER, p_configuration));
            f_expectFeedback(p_e := mw_psapConfigChanged(PX_WORKER, ?, p_configuration), p_ignoreOtherMessages := true);
            f_adapterExpect(p_e := mw_psapConfigChanged(PX_WORKER, ?, p_configuration), p_ignoreOtherMessages := true);

            vc_initialized := true;
            vc_messageIdentifier := c_initialMessageIdentifier;
@@ -666,7 +706,7 @@ module LibItsECall_Functions {

            // reset modem state
            modem.send(m_setConfig(PX_WORKER, v_ivsConfig));
            f_expectFeedback(p_e := mw_ivsConfigChanged(PX_WORKER, ?, ?), p_ignoreOtherMessages := true);
            f_adapterExpect(p_e := mw_ivsConfigChanged(PX_WORKER, ?, ?), p_ignoreOtherMessages := true);

            unmap(self:modem, system:modem);
        } // end f_configIvsModemDown
+87 −85
Original line number Diff line number Diff line
@@ -80,13 +80,6 @@ module LibItsECall_Templates {
        
        group anyEventTemplates {
                    
            /**
             * @desc Receive template for any ConfigChanged event
             */
            template Event mw_anyConfigChanged := {
                configChanged := ?
            }

            /**
             * @desc Receive template for any InbandNackSent event
             */
@@ -110,84 +103,6 @@ module LibItsECall_Templates {
            
        } // end anyEventTemplates
        
        /**
         * @desc  Receive template for ConfigurationChanged event (IVS mode)
         * @param p_worker      Target worker process
         * @param p_time        Event timestamp
         * @param p_parameters  Expected configuration parameters
         */
        template Event mw_ivsConfigChanged (
            template(present) integer p_worker,
            template(present) charstring p_time,
            template(present) ModemConfiguration p_parameters
        ) := {
            configChanged := {
                worker := p_worker,
                time :=  p_time,
                parameters := {
                    mode := p_parameters.mode,
                    t3Timer := p_parameters.t3Timer,
                    t4Timer := *,
                    t5Timer := p_parameters.t5Timer,
                    t6Timer := p_parameters.t6Timer,
                    t7Timer := p_parameters.t7Timer,
                    t8Timer := *,
                    sendNecDisabler := *,
                    numberOfAlAcks := *,
                    numberOfLlAcks := *,
                    eCallMessage := p_parameters.eCallMessage,
                    automaticAlAck := *,
                    alAckValue := *,
                    inbandState := p_parameters.inbandState,
                    inbandControl := p_parameters.inbandControl,
                    inbandDirection := p_parameters.inbandDirection,
                    internalSubscriber := p_parameters.internalSubscriber,
                    ignoreAlClearDown := p_parameters.ignoreAlClearDown,
                    simulateCrcError := p_parameters.simulateCrcError,
                    ignoreSendSignal := *
                }
            }
        }
            
        /**
         * @desc  Receive template for ConfigurationChanged event (PSAP mode)
         * @param p_worker      Target worker process
         * @param p_time        Event timestamp
         * @param p_parameters  Expected configuration parameters
         */
        template Event mw_psapConfigChanged (
            template(present) integer p_worker,
            template(present) charstring p_time,
            template(present) ModemConfiguration p_parameters
        ) := {
            configChanged := {
                worker := p_worker,
                time :=  p_time,
                parameters := {
                    mode := p_parameters.mode,
                    t3Timer := *,
                    t4Timer := p_parameters.t4Timer,
                    t5Timer := *,
                    t6Timer := p_parameters.t6Timer,
                    t7Timer := *,
                    t8Timer := p_parameters.t8Timer,
                    sendNecDisabler := p_parameters.sendNecDisabler,
                    numberOfAlAcks := p_parameters.numberOfAlAcks,
                    numberOfLlAcks := p_parameters.numberOfLlAcks,
                    eCallMessage := *,
                    automaticAlAck := p_parameters.automaticAlAck,
                    alAckValue := p_parameters.alAckValue,
                    inbandState := p_parameters.inbandState,
                    inbandControl := p_parameters.inbandControl,
                    inbandDirection := p_parameters.inbandDirection,
                    internalSubscriber := p_parameters.internalSubscriber,
                    ignoreAlClearDown := *,
                    simulateCrcError := p_parameters.simulateCrcError,
                    ignoreSendSignal := p_parameters.ignoreSendSignal
                }
            }
        }
                
        /**
         * @desc  Receive template for InbandMsdReceived event
         * @param p_worker          Target worker process
@@ -675,6 +590,93 @@ module LibItsECall_Templates {
        }
    }

    group adapterControlTemplates {
        /**
         * @desc Receive template for any ConfigChanged event
         */
        template AdapterEvent mw_anyConfigChanged := {
            configChanged := ?
        }

        /**
         * @desc  Receive template for ConfigurationChanged event (IVS mode)
         * @param p_worker      Target worker process
         * @param p_time        Event timestamp
         * @param p_parameters  Expected configuration parameters
         */
        template AdapterEvent mw_ivsConfigChanged (
            template(present) integer p_worker,
            template(present) charstring p_time,
            template(present) ModemConfiguration p_parameters
        ) := {
            configChanged := {
                worker := p_worker,
                time :=  p_time,
                parameters := {
                    mode := p_parameters.mode,
                    t3Timer := p_parameters.t3Timer,
                    t4Timer := *,
                    t5Timer := p_parameters.t5Timer,
                    t6Timer := p_parameters.t6Timer,
                    t7Timer := p_parameters.t7Timer,
                    t8Timer := *,
                    sendNecDisabler := *,
                    numberOfAlAcks := *,
                    numberOfLlAcks := *,
                    eCallMessage := p_parameters.eCallMessage,
                    automaticAlAck := *,
                    alAckValue := *,
                    inbandState := p_parameters.inbandState,
                    inbandControl := p_parameters.inbandControl,
                    inbandDirection := p_parameters.inbandDirection,
                    internalSubscriber := p_parameters.internalSubscriber,
                    ignoreAlClearDown := p_parameters.ignoreAlClearDown,
                    simulateCrcError := p_parameters.simulateCrcError,
                    ignoreSendSignal := *
                }
            }
        }
            
        /**
         * @desc  Receive template for ConfigurationChanged event (PSAP mode)
         * @param p_worker      Target worker process
         * @param p_time        Event timestamp
         * @param p_parameters  Expected configuration parameters
         */
        template AdapterEvent mw_psapConfigChanged (
            template(present) integer p_worker,
            template(present) charstring p_time,
            template(present) ModemConfiguration p_parameters
        ) := {
            configChanged := {
                worker := p_worker,
                time :=  p_time,
                parameters := {
                    mode := p_parameters.mode,
                    t3Timer := *,
                    t4Timer := p_parameters.t4Timer,
                    t5Timer := *,
                    t6Timer := p_parameters.t6Timer,
                    t7Timer := *,
                    t8Timer := p_parameters.t8Timer,
                    sendNecDisabler := p_parameters.sendNecDisabler,
                    numberOfAlAcks := p_parameters.numberOfAlAcks,
                    numberOfLlAcks := p_parameters.numberOfLlAcks,
                    eCallMessage := *,
                    automaticAlAck := p_parameters.automaticAlAck,
                    alAckValue := p_parameters.alAckValue,
                    inbandState := p_parameters.inbandState,
                    inbandControl := p_parameters.inbandControl,
                    inbandDirection := p_parameters.inbandDirection,
                    internalSubscriber := p_parameters.internalSubscriber,
                    ignoreAlClearDown := *,
                    simulateCrcError := p_parameters.simulateCrcError,
                    ignoreSendSignal := p_parameters.ignoreSendSignal
                }
            }
        }
    }
    
    group commandTemplates {
        
        /**  Generic send template for SetConfig command
+9 −1
Original line number Diff line number Diff line
@@ -36,6 +36,13 @@ module LibItsECall_TestSystem {
            out CallAcceptCmd, CallHangUpCmd, CallRejectBusyCmd, CallCreateCmd, CallCancelCmd;
        }
        
        /**
         * @desc Adapter control port
         */
        type port AdapterControlPort message {
            in AdapterEvent;
            out SetConfigCmd;
        }
    } // end portDefinitions
    
    group componentDefinitions {
@@ -50,6 +57,7 @@ module LibItsECall_TestSystem {
         * @member vc_uiComponent   User interface component (for non-blocking user interaction)
         */
        type component ECallMtc {
			port AdapterControlPort adapterControl;
            port ModemPort modem;
            port UIPort uiPort;
            port MNOPort mno;
+29 −20
Original line number Diff line number Diff line
@@ -136,7 +136,6 @@ module LibItsECall_TypesAndValues {

            /**
             * @desc    Top-level aggregation type for Events
             * @member  configChanged
             * @member  inbandMsdReceived
             * @member  inbandLlAckSent
             * @member  inbandLlAckReceived
@@ -151,7 +150,6 @@ module LibItsECall_TypesAndValues {
             * @member  timerExpired
             */
            type union Event {
                ConfigChangedEvent                  configChanged,
                InbandMsdReceivedEvent              inbandMsdReceived,
                InbandLlAckSentEvent                inbandLlAckSent,
                InbandLlAckReceivedEvent            inbandLlAckReceived,
@@ -166,23 +164,6 @@ module LibItsECall_TypesAndValues {
                TimerExpiredEvent                   timerExpired
            }
            
            /**
             * @desc   Generated whenever one or more configuration options changed
             * @member worker        Worker process that generated this event
             * @member time          Event timestamp
             * @member parameters    Configuration parameters
             * @remark mode: PSAP, IVS
             */
            type record ConfigChangedEvent {
                integer worker,
                charstring time,
                ModemConfiguration parameters
            } with {
                variant "event;config_changed";
                variant (worker) "worker";
                variant (time) "time";
            }
              
            /**
             * @desc   Indicates the successful reception of an MSD
             * @member worker        Worker process that generated this event
@@ -713,6 +694,33 @@ module LibItsECall_TypesAndValues {
        encode "SimulatorInterface";
    }

	group adapterControl {
		/**
		 * @desc    Top-level aggregation type for Adapter Events
		 * @member configChangedEvent
		 */
		type union AdapterEvent {
			ConfigChangedEvent configChanged
		}

		/**
		 * @desc   Generated whenever one or more configuration options changed
		 * @member worker        Worker process that generated this event
		 * @member time          Event timestamp
		 * @member parameters    Configuration parameters
		 * @remark mode: PSAP, IVS
		 */
		type record ConfigChangedEvent {
			integer worker,
			charstring time,
			ModemConfiguration parameters
		} with {
			variant "event;config_changed";
			variant (worker) "worker";
			variant (time) "time";
		}
	}

    group misc {
    
        /**
@@ -723,7 +731,8 @@ module LibItsECall_TypesAndValues {
        type union ExpectResult {
            boolean failure,
            Event event,
            MnoEvent mnoEvent
            MnoEvent mnoEvent,
            AdapterEvent adapterEvent
        }

        /**