laforge has uploaded this change for review.

View Change

Fix missing generation of waiting-time-extension in some situations

In the function set_tpdu_state(), there is a missing transition to
WAIT_TX state. This is fine if you are coming from the WAIT_PB state,
which has already restarted the waiting timer via
card_emu_uart_update_wt(), but if you are coming from the WAIT_RX
state, then card_emu_uart_update_wt() is never called and the USART
timer is never restarted. (Because the transmitter is left enabled in
WAIT_RX, the response is still sent to the modem; it is just the
half-wait timeouts that are missing).

Change-Id: Ib4eb964c073192e8f067004625af818ba2caf003
---
M firmware/libcommon/source/card_emu.c
1 file changed, 9 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/93/30093/1
diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c
index c85b08c..e6907e6 100644
--- a/firmware/libcommon/source/card_emu.c
+++ b/firmware/libcommon/source/card_emu.c
@@ -775,6 +775,15 @@
/* prepare to extend the waiting time once half of it is reached */
card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time);
break;
+ case TPDU_S_WAIT_TX:
+ /* If we came from WAIT_RX, disable the receiver and
+ * enable the transmitter. If we came from WAIT_RX or
+ * WAIT_PB, reset the waiting time so that we can extend
+ * waiting time if needed. */
+ card_emu_uart_enable(ch->uart_chan, ENABLE_TX);
+ /* prepare to extend the waiting time once half of it is reached */
+ card_emu_uart_update_wt(ch->uart_chan, ch->waiting_time);
+ break;
default:
break;
}

To view, visit change 30093. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: Ib4eb964c073192e8f067004625af818ba2caf003
Gerrit-Change-Number: 30093
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge@osmocom.org>
Gerrit-CC: jtavares <jtavares@kvh.com>
Gerrit-MessageType: newchange