Loading ttcn/dPMR_Pixits.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,15 @@ module dPMR_Pixits { modulepar {Bit8 PXT_SLOW_DATA_BYTE_3 := '10101001'B} modulepar {Bit8 PXT_SLOW_DATA_BYTE_4 := '01101100'B} /** * @desc Preset T3 DATA SINGLE FRAME * * @remark only used for TP 0836_1 and 0843_01 */ modulepar {Data PXT_SINGLE_T3_DATA_FRAME } // TODO set correctly! modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_CRC} modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC} } // end InputData group AddressesAndIdsUsed { Loading ttcn/dPMR_Templates.ttcn +43 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,18 @@ p_packetFrame ); template PacketDataFrameList m_packetDataFrameList_8Elem (template PacketFrame p_packetFrame) := { p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame } template PacketDataFrameList m_packetDataFrameList_1Elem (template PacketFrame p_packetFrame) := { p_packetFrame } template PacketDataFrameList m_packetDataFrameList_4Elem ( template PacketFrame p_packetFrame1, template PacketFrame p_packetFrame2, template PacketFrame p_packetFrame3, template PacketFrame p_packetFrame4) := { p_packetFrame1,p_packetFrame2,p_packetFrame3,p_packetFrame4 } group SuperFrameGroup { Loading Loading @@ -233,6 +245,19 @@ data := ? } template PacketFrame m_packetDataFrame (ColourCode p_cc, PacketDataFrameNumber p_packetDataFrameNumber, ValidDataLen p_validDataLen, CrcD p_crcD, Data p_data) := { colourCode := p_cc, packetDataFrameNumber := ? , validDataLength := p_validDataLen , reserved14bit := c_reserved14bitForT3Data , crcForData := p_crcD, data := p_data } } // end Group T3DataFrameGroup Loading Loading @@ -448,6 +473,7 @@ callInformation := { ciInformationNormalOrPws :=c_ciInformationNormal } } // end m_headerInformation template HeaderInformation m_ackHeaderInformation( HeaderType p_hdrTp, MsAddress p_calledId , MsAddress p_ownId, Loading @@ -472,7 +498,7 @@ MsAddress p_calledId , MsAddress p_ownId, CommunicationsMode p_commMode, CommsFormat p_commFormat CommsFormat p_commFormat // todo jp theis might be needed: in template CallInformation p_callInfo ) := { headerType := p_hdrTp, calledId := p_calledId, Loading @@ -499,6 +525,22 @@ callInformation := ? } // end mw_headerInformationVoiceTx template HeaderInformation mw_ackHeaderInformationTx ( MsAddress p_calledId , MsAddress p_ownId, template CommunicationsMode p_commMode, template CommsFormat p_commFormat, CiTypeAck p_ciTypeAck ) := { headerType := e_ackHeader, calledId := p_calledId, ownId := p_ownId, communicationsMode := p_commMode, commsFormat := p_commFormat, reserved2bit := c_reserved2bits, callInformation := { ciInformationAck:= { ciTypeAck :=p_ciTypeAck, ciInfoAck := ?}} } // end mw_ackHeaderInformationTx template HeaderInformation mw_headerConnectRequestTx ( MsAddress p_calledId , MsAddress p_ownId, CommunicationsMode p_commMode, Loading ttcn/dPMR_TestCases.ttcn +272 −9 Original line number Diff line number Diff line Loading @@ -1097,6 +1097,49 @@ module dPMR_TestCases { f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0808_01 testcase TC_PMR_0817_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_ackOnT3Data_MS01()); v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!! // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0817_01 testcase TC_PMR_0818_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_nackOnT3Data_MS01()); v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!! // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0818_01 } // end group Type3Data } // end group CSF_only group ISF_only {// Clause 5.3 Loading Loading @@ -1356,7 +1399,7 @@ module dPMR_TestCases { //Test Body tc_ac.start ; dp1Port.send( m_voiceorT1orT2PayloadTransmission( m_packetDataHeaderFrame( m_packetDataHeaderFrame( // todo jp this is wrong template, this should be only for t3! m_headerInformation( e_commStartHeader, vc_mse.iutId, Loading Loading @@ -1392,10 +1435,10 @@ module dPMR_TestCases { e_shortFileTransfer, e_finishAfterFrame, PXT_DATA_T1_F4_length)))), m_endFrame(m_endInformationNoAck))); m_endFrame(m_endInformationAck))); // TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( [] dp1Port.receive(m_acknowledgement( // TODO check if ok. m_headerInformation(e_ackHeader, vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p), vc_mse.colourCode) ) Loading @@ -1415,6 +1458,157 @@ module dPMR_TestCases { } // end f_TC_ackOnT1Data_MS01 /** * @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe. */ function f_TC_ackOnT3Data_MS01( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var default v_defvar; //Test System Parameters f_initMse(); //Default v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1)); //Preamble f_clientSyncAndVerdict(c_prDone, v_ret); //Test Body tc_ac.start ; dp1Port.send( m_T3DataPayloadTransmission( // todo check it does not contain matching! m_packetDataHeaderFrame( m_headerInformation( e_commStartHeader, vc_mse.iutId, vc_mse.testerId, e_dataT3, e_p2p), vc_mse.colourCode), m_packetDataFrameList_1Elem( m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME)), m_endFrame(m_endInformationAck)));// TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( mw_ackHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, e_ack), vc_mse.colourCode) ) { tc_ac.stop; setverdict(pass); } [] tc_ac.timeout { log("**** f_TC_ackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****"); setverdict(fail); } } // end alt //no Postamble deactivate; } // end f_TC_ackOnT3Data_MS01 /** * @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe. */ function f_TC_nackOnT3Data_MS01( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var default v_defvar; var AckFrame v_ackFrame; //Test System Parameters f_initMse(); //Default v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1)); //Preamble f_clientSyncAndVerdict(c_prDone, v_ret); //Test Body tc_ac.start ; dp1Port.send( m_T3DataPayloadTransmission(// todo check it does not contain matching! m_packetDataHeaderFrame( m_headerInformation( e_commStartHeader, vc_mse.iutId, vc_mse.testerId, e_dataT3, e_p2p), vc_mse.colourCode), m_packetDataFrameList_4Elem( m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC, PXT_SINGLE_T3_DATA_FRAME)), m_endFrame(m_endInformationAck)));// TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( mw_ackHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_dataT3, e_p2p, e_nackReqResend), vc_mse.colourCode)) -> value v_ackFrame { tc_ac.stop; if (v_ackFrame.headerInformation0.callInformation.ciInformationAck.ciInfoAck != '00000011'B) { log("**** f_TC_nackOnT3Data_MS01: Not correct framenumber in the Call Information Acknowledgement resend info ****"); setverdict(fail); } else { setverdict(pass); } } [] tc_ac.timeout { log("**** f_TC_nackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****"); setverdict(fail); } } // end alt //no Postamble deactivate; } // end f_TC_nackOnT3Data_MS01 /** * @desc Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of * Super Frames, and an End Frame, Loading Loading @@ -1934,15 +2128,19 @@ module dPMR_TestCases { } // end function f_TC_T3DataHeaderTx_MS01 /** * @desc Check that a T3DataHeader transmission from the MS (IUT) contain a Packet data header with a framsync of FS4 * @desc Check that a T3 Data message is received // TODO can this be removed??? * */ function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode ) /* function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var UInt16 v_sfCount := 0; var default v_defvar; var PacketDataHeader v_packetDataHeader; var PdS v_pdS; var PdM v_pdM; //Test System Parameters f_initMse(); Loading @@ -1963,9 +2161,74 @@ module dPMR_TestCases { vc_mse.iutId, p_commsMode, e_p2p), vc_mse.colourCode)) vc_mse.colourCode)) -> value v_packetDataHeader {// must be done in two steps. // get dpS and dpM v_pdS := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdS; v_pdM := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdM; if (v_pdS == e_frmTm80ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds1)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm160ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds2)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm240ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds3)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm320ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds4)), m_endFrame(mw_endInformation(e_AckReq)))) { // received correctly tc_ac.stop ; setverdict(pass); } } } else { tc_ac.stop ; setverdict(fail); } tc_ac.stop ; setverdict(pass); } Loading @@ -1980,7 +2243,7 @@ module dPMR_TestCases { deactivate; } // end function f_TC_T3DataHeaderTx_MS01 */ /** * @desc Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of * Super Frames, and an End Frame, Loading ttcn/dPMR_TestExecution.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ module dPMR_TestExecution { // } // end group SlowUserData // group Type3Data { // Clause 5.2.7 if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0808_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );} if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0819_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0820_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0821_01() );} Loading ttcn/dPMR_Types.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -545,7 +545,8 @@ module dPMR_Types { e_ifOACSUEnabledPleaseAccept (19), // Make a OACSU call and Say Ok when displayed the other party available e_makeOACSUCallAndCheckCallFail (20), // Make a OACSU call and Check That Call Fail e_enableSlowDataAndSetPresetSlowDataAndPresPtt (21), // Enable Slow Data and Set Preset Slow Data and press Ptt e_makeT3DataCall (9) // Make a T3 data call with preset data??? e_makeT3DataCall (22), // Make a T3 data call with preset data??? e_receiveT3DataCall (23) // receive T3 data call } // ------------ MS configuration parameters --------------- Loading Loading
ttcn/dPMR_Pixits.ttcn +9 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,15 @@ module dPMR_Pixits { modulepar {Bit8 PXT_SLOW_DATA_BYTE_3 := '10101001'B} modulepar {Bit8 PXT_SLOW_DATA_BYTE_4 := '01101100'B} /** * @desc Preset T3 DATA SINGLE FRAME * * @remark only used for TP 0836_1 and 0843_01 */ modulepar {Data PXT_SINGLE_T3_DATA_FRAME } // TODO set correctly! modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_CRC} modulepar {CrcD PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC} } // end InputData group AddressesAndIdsUsed { Loading
ttcn/dPMR_Templates.ttcn +43 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,18 @@ p_packetFrame ); template PacketDataFrameList m_packetDataFrameList_8Elem (template PacketFrame p_packetFrame) := { p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame,p_packetFrame } template PacketDataFrameList m_packetDataFrameList_1Elem (template PacketFrame p_packetFrame) := { p_packetFrame } template PacketDataFrameList m_packetDataFrameList_4Elem ( template PacketFrame p_packetFrame1, template PacketFrame p_packetFrame2, template PacketFrame p_packetFrame3, template PacketFrame p_packetFrame4) := { p_packetFrame1,p_packetFrame2,p_packetFrame3,p_packetFrame4 } group SuperFrameGroup { Loading Loading @@ -233,6 +245,19 @@ data := ? } template PacketFrame m_packetDataFrame (ColourCode p_cc, PacketDataFrameNumber p_packetDataFrameNumber, ValidDataLen p_validDataLen, CrcD p_crcD, Data p_data) := { colourCode := p_cc, packetDataFrameNumber := ? , validDataLength := p_validDataLen , reserved14bit := c_reserved14bitForT3Data , crcForData := p_crcD, data := p_data } } // end Group T3DataFrameGroup Loading Loading @@ -448,6 +473,7 @@ callInformation := { ciInformationNormalOrPws :=c_ciInformationNormal } } // end m_headerInformation template HeaderInformation m_ackHeaderInformation( HeaderType p_hdrTp, MsAddress p_calledId , MsAddress p_ownId, Loading @@ -472,7 +498,7 @@ MsAddress p_calledId , MsAddress p_ownId, CommunicationsMode p_commMode, CommsFormat p_commFormat CommsFormat p_commFormat // todo jp theis might be needed: in template CallInformation p_callInfo ) := { headerType := p_hdrTp, calledId := p_calledId, Loading @@ -499,6 +525,22 @@ callInformation := ? } // end mw_headerInformationVoiceTx template HeaderInformation mw_ackHeaderInformationTx ( MsAddress p_calledId , MsAddress p_ownId, template CommunicationsMode p_commMode, template CommsFormat p_commFormat, CiTypeAck p_ciTypeAck ) := { headerType := e_ackHeader, calledId := p_calledId, ownId := p_ownId, communicationsMode := p_commMode, commsFormat := p_commFormat, reserved2bit := c_reserved2bits, callInformation := { ciInformationAck:= { ciTypeAck :=p_ciTypeAck, ciInfoAck := ?}} } // end mw_ackHeaderInformationTx template HeaderInformation mw_headerConnectRequestTx ( MsAddress p_calledId , MsAddress p_ownId, CommunicationsMode p_commMode, Loading
ttcn/dPMR_TestCases.ttcn +272 −9 Original line number Diff line number Diff line Loading @@ -1097,6 +1097,49 @@ module dPMR_TestCases { f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0808_01 testcase TC_PMR_0817_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_ackOnT3Data_MS01()); v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!! // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0817_01 testcase TC_PMR_0818_01( ) runs on ServerSyncComp system TestAdapter { var Mse v_mse; var Ut v_ut; var FncRetCode v_ret := e_success; //Configuration Up f_cfMseUp(v_mse, v_ut); //Test body v_mse.start(f_TC_nackOnT3Data_MS01()); v_ut.start(f_TC_msAction_UT(m_commandCSF_utRequest( c_defaultPeerToPeerDialString, e_receiveT3DataCall))); // TODO JP must be wrong!!!! // synchronize both PTCs f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Configuration Down f_cfMseDown(v_mse, v_ut); } // end TC_PMR_0818_01 } // end group Type3Data } // end group CSF_only group ISF_only {// Clause 5.3 Loading Loading @@ -1356,7 +1399,7 @@ module dPMR_TestCases { //Test Body tc_ac.start ; dp1Port.send( m_voiceorT1orT2PayloadTransmission( m_packetDataHeaderFrame( m_packetDataHeaderFrame( // todo jp this is wrong template, this should be only for t3! m_headerInformation( e_commStartHeader, vc_mse.iutId, Loading Loading @@ -1392,10 +1435,10 @@ module dPMR_TestCases { e_shortFileTransfer, e_finishAfterFrame, PXT_DATA_T1_F4_length)))), m_endFrame(m_endInformationNoAck))); m_endFrame(m_endInformationAck))); // TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( [] dp1Port.receive(m_acknowledgement( // TODO check if ok. m_headerInformation(e_ackHeader, vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p), vc_mse.colourCode) ) Loading @@ -1415,6 +1458,157 @@ module dPMR_TestCases { } // end f_TC_ackOnT1Data_MS01 /** * @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe. */ function f_TC_ackOnT3Data_MS01( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var default v_defvar; //Test System Parameters f_initMse(); //Default v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1)); //Preamble f_clientSyncAndVerdict(c_prDone, v_ret); //Test Body tc_ac.start ; dp1Port.send( m_T3DataPayloadTransmission( // todo check it does not contain matching! m_packetDataHeaderFrame( m_headerInformation( e_commStartHeader, vc_mse.iutId, vc_mse.testerId, e_dataT3, e_p2p), vc_mse.colourCode), m_packetDataFrameList_1Elem( m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME)), m_endFrame(m_endInformationAck)));// TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( mw_ackHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p, e_ack), vc_mse.colourCode) ) { tc_ac.stop; setverdict(pass); } [] tc_ac.timeout { log("**** f_TC_ackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****"); setverdict(fail); } } // end alt //no Postamble deactivate; } // end f_TC_ackOnT3Data_MS01 /** * @desc Checks that the MS responds with an ACK when receiving T3 data and ack req in endframe. */ function f_TC_nackOnT3Data_MS01( ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var default v_defvar; var AckFrame v_ackFrame; //Test System Parameters f_initMse(); //Default v_defvar := activate(a_dftMse(vc_mse.colourCode, e_dataT1)); //Preamble f_clientSyncAndVerdict(c_prDone, v_ret); //Test Body tc_ac.start ; dp1Port.send( m_T3DataPayloadTransmission(// todo check it does not contain matching! m_packetDataHeaderFrame( m_headerInformation( e_commStartHeader, vc_mse.iutId, vc_mse.testerId, e_dataT3, e_p2p), vc_mse.colourCode), m_packetDataFrameList_4Elem( m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_CRC, PXT_SINGLE_T3_DATA_FRAME), m_packetDataFrame( vc_mse.colourCode, 1, 32, PXT_SINGLE_T3_DATA_FRAME_WRONG_CRC, PXT_SINGLE_T3_DATA_FRAME)), m_endFrame(m_endInformationAck)));// TODO is this correct? alt { [] dp1Port.receive(m_acknowledgement( mw_ackHeaderInformationTx( vc_mse.testerId, vc_mse.iutId, e_dataT3, e_p2p, e_nackReqResend), vc_mse.colourCode)) -> value v_ackFrame { tc_ac.stop; if (v_ackFrame.headerInformation0.callInformation.ciInformationAck.ciInfoAck != '00000011'B) { log("**** f_TC_nackOnT3Data_MS01: Not correct framenumber in the Call Information Acknowledgement resend info ****"); setverdict(fail); } else { setverdict(pass); } } [] tc_ac.timeout { log("**** f_TC_nackOnT3Data_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****"); setverdict(fail); } } // end alt //no Postamble deactivate; } // end f_TC_nackOnT3Data_MS01 /** * @desc Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of * Super Frames, and an End Frame, Loading Loading @@ -1934,15 +2128,19 @@ module dPMR_TestCases { } // end function f_TC_T3DataHeaderTx_MS01 /** * @desc Check that a T3DataHeader transmission from the MS (IUT) contain a Packet data header with a framsync of FS4 * @desc Check that a T3 Data message is received // TODO can this be removed??? * */ function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode ) /* function f_TC_T3Tx_MS01 (CommunicationsMode p_commsMode ) runs on Mse{ // Variables var FncRetCode v_ret := e_success; var UInt16 v_sfCount := 0; var default v_defvar; var PacketDataHeader v_packetDataHeader; var PdS v_pdS; var PdM v_pdM; //Test System Parameters f_initMse(); Loading @@ -1963,9 +2161,74 @@ module dPMR_TestCases { vc_mse.iutId, p_commsMode, e_p2p), vc_mse.colourCode)) vc_mse.colourCode)) -> value v_packetDataHeader {// must be done in two steps. // get dpS and dpM v_pdS := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdS; v_pdM := v_packetDataHeader.headerInformation0.callInformation.ciInformationNormalOrPws.ciInfoNormalOrPws.ciInformationNormal.ciInfoNormalDataT3.pdM; if (v_pdS == e_frmTm80ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds1)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm160ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds2)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm240ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds3)))) { tc_ac.stop ; setverdict(pass); } } } else if (v_pdS == e_frmTm320ms) { alt { [] dp1Port.receive(m_packetDataPayloadsAndEndFrame( m_packetDataFrameList( mw_packetDataFrame( vc_mse.colourCode, v_pdM, ?, m_userDataPds4)), m_endFrame(mw_endInformation(e_AckReq)))) { // received correctly tc_ac.stop ; setverdict(pass); } } } else { tc_ac.stop ; setverdict(fail); } tc_ac.stop ; setverdict(pass); } Loading @@ -1980,7 +2243,7 @@ module dPMR_TestCases { deactivate; } // end function f_TC_T3DataHeaderTx_MS01 */ /** * @desc Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of * Super Frames, and an End Frame, Loading
ttcn/dPMR_TestExecution.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -126,7 +126,7 @@ module dPMR_TestExecution { // } // end group SlowUserData // group Type3Data { // Clause 5.2.7 if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0808_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );} if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0817_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0819_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0820_01() );} // if (PIC_CSF_T3Data_INDIVIDUAL_DATA_MESSAGE) {execute(TC_PMR_0821_01() );} Loading
ttcn/dPMR_Types.ttcn +2 −1 Original line number Diff line number Diff line Loading @@ -545,7 +545,8 @@ module dPMR_Types { e_ifOACSUEnabledPleaseAccept (19), // Make a OACSU call and Say Ok when displayed the other party available e_makeOACSUCallAndCheckCallFail (20), // Make a OACSU call and Check That Call Fail e_enableSlowDataAndSetPresetSlowDataAndPresPtt (21), // Enable Slow Data and Set Preset Slow Data and press Ptt e_makeT3DataCall (9) // Make a T3 data call with preset data??? e_makeT3DataCall (22), // Make a T3 data call with preset data??? e_receiveT3DataCall (23) // receive T3 data call } // ------------ MS configuration parameters --------------- Loading