diff options
author | Daniel Friesel <derf@finalrewind.org> | 2016-02-12 20:46:34 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2016-02-12 20:46:34 +0100 |
commit | 712950db5e0c08d7b31a5074765d507f73da423c (patch) | |
tree | 575ae37257e87e1fe11581be5fe45a2a592d2eaf /src/fecmodem.h | |
parent | 285952ea1dc6ac40d67820844033d6115ab7e404 (diff) |
quick&dirty hamming buffer implementation.
Diffstat (limited to 'src/fecmodem.h')
-rw-r--r-- | src/fecmodem.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/fecmodem.h b/src/fecmodem.h index dd36f68..00487ee 100644 --- a/src/fecmodem.h +++ b/src/fecmodem.h @@ -9,10 +9,21 @@ class FECModem : public Modem { private: + enum HammingState : uint8_t { + FIRST_BYTE, + SECOND_BYTE + }; + HammingState hammingState; + uint8_t buf_byte; + uint8_t parity128(uint8_t byte); uint8_t parity2416(uint8_t byte1, uint8_t byte2); 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; }; + uint8_t buffer_available(void); + uint8_t buffer_get(void); }; extern FECModem modem; |