summaryrefslogtreecommitdiff
path: root/cesar/ce/rx/bitloading/fsm/src/fsm.c
diff options
context:
space:
mode:
authorCyril Jourdan2013-05-17 10:49:19 +0200
committerCyril Jourdan2013-05-24 08:42:30 +0200
commit83512c89e58e7b54b677e3fb601624ba12dac859 (patch)
treee4ef271397b58f8b62747e4fc7f532b4f9b1d1f3 /cesar/ce/rx/bitloading/fsm/src/fsm.c
parentfe3068ed91a25903b167e951cdd128ad52ec47c8 (diff)
cesar/ce/rx/bl: handle interval_sound events in global FSM, closes #3957
The goal is to avoid that sound directed to an interval we can not match are treated by global FSM as sound events, what causes a global CE restart. This can lead to too many CE restarts and to an accumulation of measure in CE's mailbox, which leads to the observed assert.
Diffstat (limited to 'cesar/ce/rx/bitloading/fsm/src/fsm.c')
-rw-r--r--cesar/ce/rx/bitloading/fsm/src/fsm.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cesar/ce/rx/bitloading/fsm/src/fsm.c b/cesar/ce/rx/bitloading/fsm/src/fsm.c
index 8fab52c793..2e0a183b91 100644
--- a/cesar/ce/rx/bitloading/fsm/src/fsm.c
+++ b/cesar/ce/rx/bitloading/fsm/src/fsm.c
@@ -128,6 +128,13 @@ ce_rx_bl_fsm_measure_to_event (sta_t *sta,
has_interval = CE_RX_FSM_MEASURE_TO_EVENT_TYPE_INTERVAL;
measure->fsm_id = interval % ce_rx_bl_intervals_fsm_count_;
}
+ else if (type != CE_RX_FSM_MEASURE_TO_EVENT_TYPE_DATA)
+ {
+ /* Indicate that sound frame received is directed to an interval
+ * but let the global fsm handle it as we can not match this
+ * actual interval. */
+ has_interval = CE_RX_FSM_MEASURE_TO_EVENT_TYPE_INTERVAL;
+ }
}
return event_tab[has_interval][type];