BTS_Tests: generate g_AllChannels from module parameters

Change-Id: I600aa49768328b89707b4da13d61f6a8089ac351
This commit is contained in:
Vadim Yanitskiy 2020-11-16 17:08:03 +07:00
parent 42d8bd5012
commit 7e70709689
1 changed files with 48 additions and 17 deletions

View File

@ -469,25 +469,14 @@ private function f_init_trxc(TRXC_CODEC_PT pt, charstring id,
}
/* global init function */
friend function f_init() runs on test_CT {
friend function f_init(uint8_t trx_nr := 0)
runs on test_CT
{
var TrxParsItem trx_pars := mp_trx_pars[trx_nr];
var charstring id := testcasename();
g_AllChannels := {
/* TS 1..4: TCH/F */
valueof(ts_RslChanNr_Bm(1)), valueof(ts_RslChanNr_Bm(2)),
valueof(ts_RslChanNr_Bm(3)), valueof(ts_RslChanNr_Bm(4)),
/* TS 5: TCH/H */
valueof(ts_RslChanNr_Lm(5,0)), valueof(ts_RslChanNr_Lm(5,1)),
/* TS 0: SDCCH/4 */
valueof(ts_RslChanNr_SDCCH4(0,0)), valueof(ts_RslChanNr_SDCCH4(0,1)),
valueof(ts_RslChanNr_SDCCH4(0,2)), valueof(ts_RslChanNr_SDCCH4(0,3)),
/* TS 6: SDCCH/8 */
valueof(ts_RslChanNr_SDCCH8(6,0)), valueof(ts_RslChanNr_SDCCH8(6,1)),
valueof(ts_RslChanNr_SDCCH8(6,2)), valueof(ts_RslChanNr_SDCCH8(6,3)),
valueof(ts_RslChanNr_SDCCH8(6,4)), valueof(ts_RslChanNr_SDCCH8(6,5)),
valueof(ts_RslChanNr_SDCCH8(6,6)), valueof(ts_RslChanNr_SDCCH8(6,7))
};
/* FIXME: FACCH/H is unreliable with calypso firmware, see OS#3653 */
/* FIXME: FACCH/H is unreliable with calypso firmware, see OS#3653.
* TODO: also generate this list dynamically from module parameters. */
if (mp_bts_trxc_port != -1) {
g_AllChanTypes := {
/* TS 1..4: TCH/F */
@ -509,6 +498,48 @@ friend function f_init() runs on test_CT {
valueof(ts_RslChanNr_SDCCH8(6,4))
};
}
g_AllChannels := { };
/* Generate list of all logical channels from module parameters */
for (var integer tn := 0; tn < lengthof(trx_pars.ts); tn := tn + 1) {
select (trx_pars.ts[tn].config) {
case (GSM_PCHAN_CCCH_SDCCH4) {
g_AllChannels := g_AllChannels &
{ valueof(ts_RslChanNr_SDCCH4(tn, 0)),
valueof(ts_RslChanNr_SDCCH4(tn, 1)),
valueof(ts_RslChanNr_SDCCH4(tn, 2)),
valueof(ts_RslChanNr_SDCCH4(tn, 3)) };
}
case (GSM_PCHAN_SDCCH8) {
g_AllChannels := g_AllChannels &
{ valueof(ts_RslChanNr_SDCCH8(tn, 0)),
valueof(ts_RslChanNr_SDCCH8(tn, 1)),
valueof(ts_RslChanNr_SDCCH8(tn, 2)),
valueof(ts_RslChanNr_SDCCH8(tn, 3)),
valueof(ts_RslChanNr_SDCCH8(tn, 4)),
valueof(ts_RslChanNr_SDCCH8(tn, 5)),
valueof(ts_RslChanNr_SDCCH8(tn, 6)),
valueof(ts_RslChanNr_SDCCH8(tn, 7)) };
}
case (GSM_PCHAN_TCHH_TCHF_PDCH) {
g_AllChannels := g_AllChannels &
{ valueof(ts_RslChanNr_Lm(tn, 0)),
valueof(ts_RslChanNr_Lm(tn, 1)),
valueof(ts_RslChanNr_Bm(tn)) };
}
case (GSM_PCHAN_TCHH) {
g_AllChannels := g_AllChannels &
{ valueof(ts_RslChanNr_Lm(tn, 0)),
valueof(ts_RslChanNr_Lm(tn, 1)) };
}
case (GSM_PCHAN_TCHF, GSM_PCHAN_TCHF_PDCH) {
g_AllChannels := g_AllChannels &
{ valueof(ts_RslChanNr_Bm(tn)) };
}
}
}
f_init_rsl(id);
f_sleep(0.5); /* workaround for OS#3000 */
f_init_vty(id);