Commit dc812eff authored by petersenj's avatar petersenj
Browse files

Implemented 1004_01, 1007_01, 1007_02, 1008_01, 1009_01, but will redesign...

Implemented 1004_01, 1007_01, 1007_02, 1008_01, 1009_01, but will redesign these with external functions instead...
parent e2606cb9
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -428,6 +428,32 @@ group UtilityFunctions {

			} // end f_msToStandby_UT
		
			/**
			 * @desc	This function will put the MS in an idle mode listening to a 
			 *			certain channel using the Pixit id or address
			 * @param	p_cc the colour code (the channel), The polite level
			*/
			function f_msToStandbyPoliteLevel_UT(UtActParams p_utActParam, PoliteLvl p_politeLevel ) 
			runs on Ut
			return FncRetCode {
				//Variables
				var FncRetCode v_ret := e_success;

				//Preamble 
				if (PIC_ISF_OR_CSF == e_isf) {
					v_ret := f_handshake_Ut(m_isfStandby_utRequest(f_getChannelNrFromColourCode(vc_ut.colourCode), 
																	  p_politeLevel, 
																	  f_getCommonId(vc_ut.iutId),
																	  p_utActParam));
				} else { // its e_csf
					v_ret := f_handshake_Ut(m_csfStandby_utRequest(f_getChannelNrFromColourCode(vc_ut.colourCode), 
																	  p_politeLevel, 
																	  p_utActParam));
				}

				return v_ret;

			} // end f_msToStandbyPoliteLevel_UT
		
	}//end UtFunctions

+18 −1
Original line number Diff line number Diff line
@@ -84,6 +84,21 @@
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame
			}

			template SuperFrameList m_superFrameList_188Elem ( template SuperFrame p_superFrame) := {
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame,
			  p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame, p_superFrame,p_superFrame,p_superFrame,p_superFrame

			}
			template SuperFrameList mw_superFrameList_OneOrManyElem ( template SuperFrame p_superFrame) := superset (
			  p_superFrame
			);
@@ -741,7 +756,9 @@
			taActParams := e_taStandby
		}
		
		template TaRequest m_interfereOnWrongCC(ChannelNumber p_channelNumber,


		template TaRequest m_interfereOnCC(ChannelNumber p_channelNumber,
												Int8   p_signalLevel,
												ColourCode	  p_cc,
												TaActParams	  p_taAction) := {
+548 −7
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ module dPMR_TestCases {
		group ChannelAccess { // Clause 5.1.2

			/**
			* interference on channel
			* interference on channel, IUT config to impolite
			*/
			testcase TC_PMR_1004_01(   )
			runs on ServerSyncComp
@@ -125,17 +125,20 @@ module dPMR_TestCases {
				f_cfMseUp(v_mse, v_ut);

				//Test body  
				v_mse.start(f_TC_transmitOnWrongCCAndReceiveVoice_MS01()); // TODO TODO implement!!!
				v_mse.start(f_TC_transmitOnWrongCC_MS02());
				v_mse.start(f_TC_voiceTx_MS01());
				if (PIC_ISF_OR_CSF == e_isf) {
					v_ut.start(f_TC_msAction_UT(e_politeToOwnCC, m_commandISFCSF_utRequest( 	omit , 
					v_ut.start(f_TC_msAction_UT(e_toStandby, m_commandISFCSF_utRequest( 	omit , 
																			c_defaultCommonId,
																			e_pressPtt)));
				} else {
					v_ut.start(f_TC_msAction_UT(e_politeToOwnCC, m_commandISFCSF_utRequest(	c_defaultPeerToPeerDialString, 
					v_ut.start(f_TC_msAction_UT(e_toStandby, m_commandISFCSF_utRequest(	c_defaultPeerToPeerDialString, 
																			omit , 
																			e_pressPtt)));
				}



				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

@@ -143,6 +146,126 @@ module dPMR_TestCases {
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_1004_01

			/**
			* interference on channel, IUT config to impolite
			*/
			testcase TC_PMR_1007_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_transmitLongVoice_MS02());
				v_mse.start(f_TC_sendVoiceWithAckReqAndReceiveAck_MS01());
				v_ut.start(f_TC_msToStandbyPoliteLevel_UT(e_impolite));


				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_1007_01
			
			/**
			* interference on channel, IUT config to polite to own cc
			*/
			testcase TC_PMR_1007_02(   )
			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_transmitLongVoice_MS02());
				v_mse.start(f_TC_sendVoiceWithAckReqAndReceiveAckWithin_t_ack_MS01());
				v_ut.start(f_TC_msToStandbyPoliteLevel_UT(e_politeCc));


				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_1007_02
			
			/**
			* interference on channel, IUT config to impolite to own cc
			*/
			testcase TC_PMR_1008_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_transmitLongVoiceOnGroup_MS02());
				v_mse.start(f_TC_voiceTx_MS01());
				if (PIC_ISF_OR_CSF == e_isf) {
					v_ut.start(f_TC_msAction_UT(e_toStandby, 
									m_commandISFCSF_utRequest(	
										omit , 
										c_defaultCommonId,
										e_pressPtt)));
				} else {
					v_ut.start(f_TC_msAction_UT(e_toStandby, 
									m_commandISFCSF_utRequest(	
										c_defaultCallGroupDialString, 
										omit , 
										e_pressPtt)));
				}


				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_1008_01
			
			/**
			* interference on channel, IUT config to polite to own cc
			*/
			testcase TC_PMR_1009_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_transmitLongVoiceNotToIUT_MS02());
				v_mse.start(f_TC_voiceTxNotTransmitted_MS01()); // TODO JP implement

					v_ut.start(f_TC_msAction_UT(e_toStandby, 
									m_commandISFCSF_utRequest(	
										omit , 
										c_defaultCommonId,
										e_pressPtt)));

				// synchronize both PTCs
				f_serverSync2ClientsAndStop({c_prDone, c_tbDone});

				// Configuration Down
				f_cfMseDown(v_mse, v_ut);
			} // end TC_PMR_1008_01
			
		} // end group ChannelAccess

		group Framing {// Clause 5.1.3
@@ -2594,6 +2717,135 @@ module dPMR_TestCases {

		} // end function f_TC_sendVoice_MS01

		/**
		 * @desc 	this function will send a voice (test Tone) transmission with default addresses default (p2p in CSF) and ask for acknowledge
		 */
		function f_TC_sendVoiceWithAckReqAndReceiveAck_MS01()
		runs on Mse{
			// Variables
			var default v_dftMse;
			var FncRetCode v_ret := e_success;
	
			//Test System Parameters
			f_initMse();

			//Default
			v_dftMse := activate(a_dftMse(vc_mse.colourCode, e_voice));
		
			//Preamble
			v_ret := f_taToStandby();
			f_clientSyncAndVerdict(c_prDone, v_ret); 
	
			//Test Body
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_4Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationAck))
						);
			alt {
				[] dp1Port.receive(m_acknowledgement(
									    m_headerInformation(e_ackHeader, vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p),
										vc_mse.colourCode)
								   )
					{
						tc_ac.stop;
						setverdict(pass);
					}
				[] tc_ac.timeout {
						log("**** f_TC_ackOnConnectionRequest_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****");
						setverdict(fail);	
					}
			} // end alt
		f_clientSyncAndVerdict(c_tbDone, v_ret); 
			//no Postamble
		
			deactivate;

		} // end function f_TC_sendVoiceWithAckReqAndReceiveAck_MS01
		
		/**
		 * @desc 	this function will send a voice (test Tone) transmission with default addresses default (p2p in CSF) and ask for acknowledge
		 */
		function f_TC_sendVoiceWithAckReqAndReceiveAckWithin_t_ack_MS01()
		runs on Mse{
			// Variables
			var default v_dftMse;
			var FncRetCode v_ret := e_success;
	
			//Test System Parameters
			f_initMse();

			//Default
			v_dftMse := activate(a_dftMse(vc_mse.colourCode, e_voice));
		
			//Preamble
			v_ret := f_taToStandby();
			f_clientSyncAndVerdict(c_prDone, v_ret); 
	
			//Test Body
			tc_ac.start ;
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_4Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationAck))
						);
			tc_t_ack.start;
			alt {
				[] dp1Port.receive(m_acknowledgement(
									    m_headerInformation(e_ackHeader, vc_mse.testerId, vc_mse.iutId, e_voice, e_p2p),
										vc_mse.colourCode)
								   )
					{
						tc_ac.stop;
						if (tc_t_ack.running) {
							log("**** f_TC_sendVoiceWithAckReqAndReceiveAckWithin_t_ack_MS01: T_ACK_TIMER still running, ack sent too early ****");
							setverdict(fail);
						} else {
							setverdict(pass);
						}
					}
				[] tc_ac.timeout {
						log("**** f_TC_sendVoiceWithAckReqAndReceiveAckWithin_t_ack_MS01: Timeout: TC Timer expiration before reception of Acknowledgement ****");
						setverdict(fail);	
					}
				[] tc_t_ack.timeout {
						// Just receive it and
						repeat; 
					}
			} // end alt
		f_clientSyncAndVerdict(c_tbDone, v_ret); 
			//no Postamble
		
			deactivate;

		} // end function f_TC_sendVoiceWithAckReqAndReceiveAckWithin_t_ack_MS01
		
		/**
		 * @desc 	this function will send a voice (test Tone) transmission with default group default (p2p in CSF)
		 */
@@ -2981,6 +3233,272 @@ module dPMR_TestCases {

		} // end function f_TC_voiceTx_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, is not sent from the IUT
		*/
		function f_TC_voiceTxNotTransmitted_MS01 (  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;

			//Test System Parameters
			f_initMse();
	
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_voice));

			//Preamble
			v_ret := f_taToStandby();
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body
			tc_ac.start ;
			alt {
			[] dp1Port.receive(	m_voiceorT1orT2PayloadTransmission(
									m_headerFrame(
										mw_headerInformationTx(
											vc_mse.testerId, 
											vc_mse.iutId, 
											e_voice, 
											e_p2p),
					                       vc_mse.colourCode),
									mw_superFrameList_OneOrManyElem(
										m_superFrame(
											mw_frame1Voice(vc_mse.testerIdUP ),
				            	       		mw_frame2Voice(vc_mse.testerIdLP, vc_mse.colourCode),
											mw_frame3Voice(vc_mse.iutIdUP),
											mw_frame4Voice(vc_mse.iutIdLP,vc_mse.colourCode))),
									m_endFrame(mw_endInformation(e_noAckReq)))) 
 				{
					// received correctly
					tc_ac.stop ;
					setverdict(fail);
					log("**** f_TC_voiceTx_MS01: Timeout: data received when that should not be sent ****");
				}
			[] tc_ac.timeout // TODO seams that this is 2 secconds, is this correct???
			  	{
					// TODO might be neccessary to set this within the testtone period that should be about 1 minute
					setverdict(pass);	
				}
			} // end alt
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_voiceTxNotTransmitted_MS01
		
		/**
		* @desc	send  a voice transmission from the MS_2 consists of a Header Frame, a list of
		*       Super Frames, and an End Frame, TA shall emmit on voice -102dBm and on WRONG colour code
		*/
		function f_TC_transmitOnWrongCC_MS02 (  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;

			//Test System Parameters
			f_initMse();
	
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_voice));

			//Preamble
			
			v_ret := f_handshake_Ta(m_interfereOnCC(
										f_getChannelNrFromColourCode(
											vc_mse.colourCode), c_102dBm, f_getWrongColourCode(vc_mse.colourCode),e_continousVoiceOnChannelWithWrongCC ));
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_188Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationNoAck))
						) 
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_transmitOnWrongCC_MS02

		/**
		* @desc	send  a voice transmission from the MS_2 consists of a Header Frame, a list of
		*       Super Frames, and an End Frame, TA shall emmit on voice -102dBm and on WRONG colour code
		*/
		function f_TC_transmitLongVoice_MS02 (  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;

			//Test System Parameters
			f_initMse();
	
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_voice));

			//Preamble
			
			v_ret := f_handshake_Ta(m_interfereOnCC(
										f_getChannelNrFromColourCode(
											vc_mse.colourCode), c_102dBm, vc_mse.colourCode, e_taStandby ));
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_188Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationNoAck))
						) 
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_transmitLongVoice_MS02
		
		/**
		* @desc	send  a voice transmission from the MS_2 consists of a Header Frame, a list of
		*       Super Frames, and an End Frame, TA shall emmit on voice -102dBm and not to the IUT
		*/
		function f_TC_transmitLongVoiceNotToIUT_MS02 (  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;
			var ApplicableCommonId v_notTheIUT;

			v_notTheIUT := 2;
			if (v_notTheIUT == PXT_APPLICABLE_COMMON_ID) {
				v_notTheIUT := 3;
			}
			//Test System Parameters
			f_initMse();
			
			vc_mse.iutId :=  { isfAddress := {common_ID := int2bit(v_notTheIUT,c_commonIdLength), fixedPart := c_isfFixedPart}};
			vc_mse.iutIdUP 		:= f_msAddress2Upper(vc_mse.iutId);
			vc_mse.iutIdLP 		:= f_msAddress2Lower(vc_mse.iutId);
	
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_voice));

			//Preamble
			
			v_ret := f_handshake_Ta(m_interfereOnCC(
										f_getChannelNrFromColourCode(
											vc_mse.colourCode), c_102dBm, vc_mse.colourCode, e_taStandby ));
			f_clientSyncAndVerdict(c_prDone, v_ret);

			
			//Test Body
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_188Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationNoAck))
						) 
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_transmitLongVoice_MS02
		
		/**
		* @desc	send  a voice transmission from the MS_2 consists of a Header Frame, a list of
		*       Super Frames, and an End Frame, TA shall emmit on voice -102dBm and on WRONG colour code
		*/
		function f_TC_transmitLongVoiceOnGroup_MS02 (  )
		runs on Mse{
			// Variables
			var FncRetCode v_ret := e_success;
			var UInt16 v_sfCount := 0;
			var default v_defvar;

			//Test System Parameters
			f_initMse();
			vc_mse.iutId :=  { csfAddress := '101010101111110111000100'B}; // c_defaultIutDialString as address and that the called address is c_defaultCallGroupDialString
			vc_mse.iutIdUP 		:= f_msAddress2Upper(vc_mse.iutId);
			vc_mse.iutIdLP 		:= f_msAddress2Lower(vc_mse.iutId);
			
			//Default
			v_defvar := activate(a_dftMse(vc_mse.colourCode, e_voice));

			//Preamble
			
			v_ret := f_handshake_Ta(m_interfereOnCC(
										f_getChannelNrFromColourCode(
											vc_mse.colourCode), c_102dBm, vc_mse.colourCode, e_taStandby ));
			f_clientSyncAndVerdict(c_prDone, v_ret);

			//Test Body
			dp1Port.send(	m_voiceorT1orT2PayloadTransmission(
								m_headerFrame(									
									m_headerInformation(e_commStartHeader,
														vc_mse.iutId, 
														vc_mse.testerId, 
														e_voice, 
														e_p2p),
									vc_mse.colourCode),
								m_superFrameList_188Elem(
									m_superFrame(
										m_frame1AudibleTestTone(vc_mse.iutIdUP, PXT_VOICE_TEST_TONE_F1),
										m_frame2AudibleTestTone(vc_mse.iutIdLP, PXT_VOICE_TEST_TONE_F2, vc_mse.colourCode),
										m_frame3AudibleTestTone(vc_mse.testerIdUP, PXT_VOICE_TEST_TONE_F3),
										m_frame4AudibleTestTone(vc_mse.testerIdLP, PXT_VOICE_TEST_TONE_F4, vc_mse.colourCode)
									)
								),
								m_endFrame(m_endInformationNoAck))
						) 
			f_clientSyncAndVerdict(c_tbDone, v_ret);

			deactivate;

		} // end function f_TC_transmitLongVoiceOnGroup_MS02
		
		/**
		* @desc	Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of
		*       Super Frames, and an End Frame, TA shall emmit on voice -102dBm and on WRONG colour code
@@ -3000,7 +3518,7 @@ module dPMR_TestCases {

			//Preamble
			
			v_ret := f_handshake_Ta(m_interfereOnWrongCC(
			v_ret := f_handshake_Ta(m_interfereOnCC(
										f_getChannelNrFromColourCode(
											vc_mse.colourCode), c_102dBm, f_getWrongColourCode(vc_mse.colourCode),e_continousVoiceOnChannelWithWrongCC ));
			f_clientSyncAndVerdict(c_prDone, v_ret);
@@ -3038,7 +3556,7 @@ module dPMR_TestCases {

			deactivate;

		} // end function f_TC_voiceTx_MS01
		} // end function f_TC_transmitOnWrongCCAndReceiveVoice_MS01
		
		/**
		* @desc	Check that a voice transmission from the MS (IUT) consists of a Header Frame, a list of
@@ -4590,6 +5108,29 @@ module dPMR_TestCases {
			} // end f_TC_msToStandby_UT
	
		
			/**
			 * @desc	This function will put the MS in an idle mode listening to a 
			 *			certain channel using the Pixit id or address
			*/
			function f_TC_msToStandbyPoliteLevel_UT(PoliteLvl p_politeLevel ) 
			runs on Ut {
				//Variables
				var default v_dftUt;
				var FncRetCode v_ret := e_success;

				//Test System Parameters
				f_initUt();
			
				//Default
				v_dftUt := activate(a_dftUt());

				v_ret := f_msToStandbyPoliteLevel_UT(e_toStandby, p_politeLevel);

				f_clientSyncAndVerdict(c_prDone, v_ret);

				deactivate;
				
			} // end f_TC_msToStandby_UT



+6 −2
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@ module dPMR_TestExecution {
	import from dPMR_Functions all;
	import from dPMR_Values all;


//	import from DMR_TestCasesDemo all;

	control{
@@ -31,6 +30,11 @@ module dPMR_TestExecution {

			if (PIC_MS_POLITE_OWN_CC) {execute(TC_PMR_1004_01() );}
			
			if (PIC_ISF_OR_CSF == e_csf) {execute(TC_PMR_1007_01() );}
			if (PIC_ISF_OR_CSF == e_csf) {execute(TC_PMR_1007_02() );}
			
			execute(TC_PMR_1008_01() );
			if ((PIC_ISF_OR_CSF == e_isf) and PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_1009_01() );}	
		//}
		//	group Framing {// Clause 5.1.3
			if (PIC_CSF_VOICE_SUPPORT or PIC_ISF_VOICE_SUPPORT) {execute(TC_PMR_0401_01() );}
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ module dPMR_TestSystem {
	import from dPMR_Types all;
	import from dPMR_Messages all;
	import from dPMR_Pixits all;
	//import from dPMR_Pics all;

group componentDefs {

@@ -32,6 +33,7 @@ group componentDefs {
		timer tc_ac := PXT_TAC;
		timer tc_noac := PXT_TNOAC;
		timer tc_wait := PXT_TWAIT;
		timer tc_t_ack := 3.0; // TODO JP cannot use the pics, get circular reference!!! Check why

		//Component variable
		var MseParams vc_mse ;
Loading