Clean up the CRC routines a little.
This commit is contained in:
parent
0881df603d
commit
7852bd53b5
23
CRC.cpp
23
CRC.cpp
|
@ -118,6 +118,7 @@ const uint16_t CCITT16_TABLE2[] = {
|
||||||
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
|
0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
|
||||||
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 };
|
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 };
|
||||||
|
|
||||||
|
|
||||||
bool CCRC::checkFiveBit(bool* in, unsigned int tcrc)
|
bool CCRC::checkFiveBit(bool* in, unsigned int tcrc)
|
||||||
{
|
{
|
||||||
assert(in != NULL);
|
assert(in != NULL);
|
||||||
|
@ -144,28 +145,6 @@ void CCRC::encodeFiveBit(const bool* in, unsigned int& tcrc)
|
||||||
tcrc = total;
|
tcrc = total;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char CCRC::encodeEightBit(const unsigned char *in, unsigned int length)
|
|
||||||
{
|
|
||||||
assert(in != NULL);
|
|
||||||
|
|
||||||
unsigned char crc = 0x00U;
|
|
||||||
|
|
||||||
for (unsigned int i = 0U; i < length; i++) {
|
|
||||||
crc ^= in[i];
|
|
||||||
|
|
||||||
for (unsigned int j = 0U; j < 8U; j++) {
|
|
||||||
if ((crc & 0x80U) == 0x80U) {
|
|
||||||
crc <<= 1;
|
|
||||||
crc ^= 0x07U;
|
|
||||||
} else {
|
|
||||||
crc <<= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return crc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CCRC::addCCITT162(unsigned char *in, unsigned int length)
|
void CCRC::addCCITT162(unsigned char *in, unsigned int length)
|
||||||
{
|
{
|
||||||
assert(in != NULL);
|
assert(in != NULL);
|
||||||
|
|
2
CRC.h
2
CRC.h
|
@ -31,8 +31,6 @@ public:
|
||||||
static bool checkCCITT161(const unsigned char* in, unsigned int length);
|
static bool checkCCITT161(const unsigned char* in, unsigned int length);
|
||||||
static bool checkCCITT162(const unsigned char* in, unsigned int length);
|
static bool checkCCITT162(const unsigned char* in, unsigned int length);
|
||||||
|
|
||||||
static unsigned char encodeEightBit(const unsigned char* in, unsigned int length);
|
|
||||||
|
|
||||||
static unsigned char crc8(const unsigned char* in, unsigned int length);
|
static unsigned char crc8(const unsigned char* in, unsigned int length);
|
||||||
|
|
||||||
static bool crcFICH(const unsigned char* fich);
|
static bool crcFICH(const unsigned char* fich);
|
||||||
|
|
|
@ -53,7 +53,7 @@ bool CDMRControl::processWakeup(const unsigned char* data)
|
||||||
|
|
||||||
unsigned int bsId = csbk.getBSId();
|
unsigned int bsId = csbk.getBSId();
|
||||||
if (bsId == 0xFFFFFFU) {
|
if (bsId == 0xFFFFFFU) {
|
||||||
LogMessage("CSBK BS_Dwn_Act for any received from %u", csbk.getSrcId());
|
LogMessage("CSBK BS_Dwn_Act for ANY received from %u", csbk.getSrcId());
|
||||||
return true;
|
return true;
|
||||||
} else if (bsId == m_id) {
|
} else if (bsId == m_id) {
|
||||||
LogMessage("CSBK BS_Dwn_Act for %u received from %u", bsId, csbk.getSrcId());
|
LogMessage("CSBK BS_Dwn_Act for %u received from %u", bsId, csbk.getSrcId());
|
||||||
|
|
Loading…
Reference in a new issue