From 0afdcbff09f182dc589b161df6ced71dad8e3f97 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 4 Mar 2016 23:43:42 +0100 Subject: Modem: Reset hamming state when (re)enabling the modem --- src/fecmodem.cc | 6 ++++++ src/fecmodem.h | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/fecmodem.cc b/src/fecmodem.cc index 85221dc..a75c27b 100644 --- a/src/fecmodem.cc +++ b/src/fecmodem.cc @@ -58,6 +58,12 @@ uint8_t FECModem::hamming2416(uint8_t *byte1, uint8_t *byte2, uint8_t parity) return 0; } +void FECModem::enable() +{ + this->Modem::enable(); + hammingState = FIRST_BYTE; +} + uint8_t FECModem::buffer_available() { // XXX this reset implementation is _completely_ broken diff --git a/src/fecmodem.h b/src/fecmodem.h index 087aae4..1d8931b 100644 --- a/src/fecmodem.h +++ b/src/fecmodem.h @@ -37,7 +37,9 @@ class FECModem : public Modem { uint8_t correct128(uint8_t *byte, uint8_t parity); uint8_t hamming2416(uint8_t *byte1, uint8_t *byte2, uint8_t parity); public: - FECModem() : Modem() { hammingState = FIRST_BYTE; }; + FECModem() : Modem() {}; + + void enable(void); /** * Checks if there are unprocessed bytes in the receive buffer. -- cgit v1.2.3