L1CTL: Try FBSB up to 10 times in f_L1CTL_FBSB()
For some reason, even with a perfectly valid/strong signal, the FBSB task sometimes fails in the firmware. Let's wrap a loop around it and try up to 10 times before failing the test. Change-Id: I2262278dcd7e2f0cf4d293e0549527866522bece
This commit is contained in:
parent
344c0cf6cf
commit
8fe9eba3eb
|
@ -35,17 +35,20 @@ module L1CTL_PortType {
|
||||||
|
|
||||||
function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) {
|
function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) {
|
||||||
timer T := 5.0;
|
timer T := 5.0;
|
||||||
pt.send(t_L1CTL_FBSB_REQ(arfcn, t_L1CTL_FBSB_F_ALL, 0, ccch_mode, 0));
|
for (var integer i := 0; i < 10; i := i+1) {
|
||||||
|
pt.send(t_L1CTL_FBSB_REQ(arfcn, t_L1CTL_FBSB_F_ALL, 0, ccch_mode, 63));
|
||||||
T.start
|
T.start
|
||||||
alt {
|
alt {
|
||||||
[] pt.receive(t_L1CTL_FBSB_CONF(0)) {};
|
[] pt.receive(t_L1CTL_FBSB_CONF(0)) { return; };
|
||||||
[] pt.receive(t_L1CTL_FBSB_CONF(?)) {
|
[] pt.receive(t_L1CTL_FBSB_CONF(?)) { }
|
||||||
|
[i == 9] pt.receive(t_L1CTL_FBSB_CONF(?)) {
|
||||||
setverdict(fail, "FBSB Failed with non-zero return code");
|
setverdict(fail, "FBSB Failed with non-zero return code");
|
||||||
};
|
};
|
||||||
[] pt.receive { repeat; };
|
[] pt.receive { repeat; };
|
||||||
[] T.timeout { setverdict(fail, "Timeout in FBSB") };
|
[] T.timeout { setverdict(fail, "Timeout in FBSB") };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function f_L1CTL_RACH(L1CTL_PT pt, uint8_t ra, uint8_t combined := 1, uint16_t offset := 0) return GsmFrameNumber {
|
function f_L1CTL_RACH(L1CTL_PT pt, uint8_t ra, uint8_t combined := 1, uint16_t offset := 0) return GsmFrameNumber {
|
||||||
var L1ctlDlMessage rc;
|
var L1ctlDlMessage rc;
|
||||||
|
|
Loading…
Reference in New Issue