From eec14f0951b3a362d255291f465a00525573c4fb Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 14 Jul 2020 19:04:18 +0700 Subject: BTS_Tests_LAPDm: consider frequency hopping parameters Change-Id: Idd1ffe0ee97805b40bb5e37645aa53a9b1dc4b0a Related: SYS#4868, OS#4546 --- library/LAPDm_RAW_PT.ttcn | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'library') diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn index 394deab3..77f0452b 100644 --- a/library/LAPDm_RAW_PT.ttcn +++ b/library/LAPDm_RAW_PT.ttcn @@ -38,9 +38,8 @@ module LAPDm_RAW_PT { /* directly switch to a dedicated channel (without RACH/IMM.ASS */ type record DCCH_switch_req { - Arfcn arfcn, - RslChannelNr chan_nr, - GsmTsc tsc + ChannelDescription chan_desc, + L1ctlMA ma } type record DCCH_switch_res { @@ -236,17 +235,30 @@ module LAPDm_RAW_PT { /* store/save channel description */ chan_desc := imm_ass.chan_desc; - /* send DM_EST_REQ */ + /* send DM_EST_REQ, TODO: Mobile Allocation */ f_L1CTL_DM_EST_REQ_IA(L1CTL, imm_ass); set_ph_state(PH_STATE_DCH); } /* switching directly to a dedicated channel *without RACH/IMM-ASS */ - private function f_switch_dcch(Arfcn arfcn, RslChannelNr chan_nr, GsmTsc tsc) runs on lapdm_CT { + private function f_switch_dcch(in DCCH_switch_req sw_req) runs on lapdm_CT { set_ph_state(PH_STATE_TUNING_DCH); /* store/save channel description */ - chan_desc.chan_nr := chan_nr; - L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(chan_nr, tsc, arfcn.arfcn)); + chan_desc := sw_req.chan_desc; + + /* tune the L1 to the indicated channel */ + if (chan_desc.h) { + L1CTL.send(ts_L1CTL_DM_EST_REQ_H1(chan_desc.chan_nr, + chan_desc.tsc, + chan_desc.maio_hsn.hsn, + chan_desc.maio_hsn.maio, + sw_req.ma)); + } else { + L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(chan_desc.chan_nr, + chan_desc.tsc, + chan_desc.arfcn)); + } + set_ph_state(PH_STATE_DCH); } @@ -431,7 +443,7 @@ module LAPDm_RAW_PT { } [] LAPDM_SP.receive(DCCH_switch_req:?) -> value sw_req { var DCCH_switch_res res; - f_switch_dcch(sw_req.arfcn, sw_req.chan_nr, sw_req.tsc); + f_switch_dcch(sw_req); if (ph_state == PH_STATE_DCH) { res := { omit }; } else { -- cgit v1.2.3