summaryrefslogtreecommitdiff
path: root/src/fecmodem.h
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2016-02-12 20:46:34 +0100
committerDaniel Friesel <derf@finalrewind.org>2016-02-12 20:46:34 +0100
commit712950db5e0c08d7b31a5074765d507f73da423c (patch)
tree575ae37257e87e1fe11581be5fe45a2a592d2eaf /src/fecmodem.h
parent285952ea1dc6ac40d67820844033d6115ab7e404 (diff)
quick&dirty hamming buffer implementation.
Diffstat (limited to 'src/fecmodem.h')
-rw-r--r--src/fecmodem.h11
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;