From e84705e5e18c1c7c5fb0b22361c1eec5ea170054 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Thu, 3 Apr 2014 23:25:22 +0200 Subject: [PATCH] Reworked HDLC struct --- Modem/afsk.c | 46 +++++++++++++++++++++++----------------------- Modem/afsk.h | 8 ++++---- buildrev.h | 2 +- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Modem/afsk.c b/Modem/afsk.c index 0f0b3aa..237d517 100644 --- a/Modem/afsk.c +++ b/Modem/afsk.c @@ -66,73 +66,73 @@ static bool hdlcParse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo) { bool ret = true; - hdlc->demod_bits <<= 1; - hdlc->demod_bits |= bit ? 1 : 0; + hdlc->demodulatedBits <<= 1; + hdlc->demodulatedBits |= bit ? 1 : 0; /* HDLC Flag */ - if (hdlc->demod_bits == HDLC_FLAG) + if (hdlc->demodulatedBits == HDLC_FLAG) { if (!fifo_isfull(fifo)) { fifo_push(fifo, HDLC_FLAG); - hdlc->rxstart = true; + hdlc->receiving = true; } else { ret = false; - hdlc->rxstart = false; + hdlc->receiving = false; } - hdlc->currchar = 0; - hdlc->bit_idx = 0; + hdlc->currentByte = 0; + hdlc->bitIndex = 0; return ret; } /* Reset */ - if ((hdlc->demod_bits & HDLC_RESET) == HDLC_RESET) + if ((hdlc->demodulatedBits & HDLC_RESET) == HDLC_RESET) { - hdlc->rxstart = false; + hdlc->receiving = false; return ret; } - if (!hdlc->rxstart) + if (!hdlc->receiving) return ret; /* Stuffed bit */ - if ((hdlc->demod_bits & 0x3f) == 0x3e) + if ((hdlc->demodulatedBits & 0x3f) == 0x3e) return ret; - if (hdlc->demod_bits & 0x01) - hdlc->currchar |= 0x80; + if (hdlc->demodulatedBits & 0x01) + hdlc->currentByte |= 0x80; - if (++hdlc->bit_idx >= 8) + if (++hdlc->bitIndex >= 8) { - if ((hdlc->currchar == HDLC_FLAG - || hdlc->currchar == HDLC_RESET - || hdlc->currchar == AX25_ESC)) + if ((hdlc->currentByte == HDLC_FLAG + || hdlc->currentByte == HDLC_RESET + || hdlc->currentByte == AX25_ESC)) { if (!fifo_isfull(fifo)) fifo_push(fifo, AX25_ESC); else { - hdlc->rxstart = false; + hdlc->receiving = false; ret = false; } } if (!fifo_isfull(fifo)) - fifo_push(fifo, hdlc->currchar); + fifo_push(fifo, hdlc->currentByte); else { - hdlc->rxstart = false; + hdlc->receiving = false; ret = false; } - hdlc->currchar = 0; - hdlc->bit_idx = 0; + hdlc->currentByte = 0; + hdlc->bitIndex = 0; } else - hdlc->currchar >>= 1; + hdlc->currentByte >>= 1; return ret; } diff --git a/Modem/afsk.h b/Modem/afsk.h index 2d7ef08..ff74750 100644 --- a/Modem/afsk.h +++ b/Modem/afsk.h @@ -16,10 +16,10 @@ typedef struct Hdlc { - uint8_t demod_bits; ///< Bitstream from the demodulator. - uint8_t bit_idx; ///< Current received bit. - uint8_t currchar; ///< Current received character. - bool rxstart; ///< True if an HDLC_FLAG char has been found in the bitstream. + uint8_t demodulatedBits; // Incoming bitstream from demodulator + uint8_t bitIndex; // The current received bit in the current received byte + uint8_t currentByte; // The byte we're currently receiving + bool receiving; // Whether or not where actually receiving data (or just noise ;P) } Hdlc; #define AFSK_RXFIFO_OVERRUN BV(0) diff --git a/buildrev.h b/buildrev.h index d834001..e0e494e 100644 --- a/buildrev.h +++ b/buildrev.h @@ -1,2 +1,2 @@ -#define VERS_BUILD 49 +#define VERS_BUILD 51 #define VERS_HOST "vixen"