Merge branch 'master' into mqtt

This commit is contained in:
Jonathan Naylor 2025-03-03 14:27:42 +00:00
commit dcee575722
4 changed files with 65 additions and 187 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2010,2014,2016,2018,2021,2023 by Jonathan Naylor G4KLX
* Copyright (C) 2010,2014,2016,2018,2021,2023,2025 by Jonathan Naylor G4KLX
* Copyright (C) 2016 Mathias Weyland, HB9FRV
*
* This program is free software; you can redistribute it and/or modify
@ -812,8 +812,6 @@ unsigned int CAMBEFEC::regenerateDStar(unsigned int& a, unsigned int& b) const
unsigned int data;
bool valid1 = CGolay24128::decode24128(a, data);
if (!valid1)
return 10U;
// The PRNG
unsigned int p = PRNG_TABLE[data];
@ -822,14 +820,15 @@ unsigned int CAMBEFEC::regenerateDStar(unsigned int& a, unsigned int& b) const
unsigned int datb;
bool valid2 = CGolay24128::decode24128(b, datb);
if (!valid2)
return 10U;
a = CGolay24128::encode24128(data);
b = CGolay24128::encode24128(datb);
b ^= p;
if (!valid1 || !valid2)
return 10U;
unsigned int v = a ^ orig_a;
unsigned int errsA = CUtils::countBits(v);
@ -848,12 +847,6 @@ unsigned int CAMBEFEC::regenerateDMR(unsigned int& a, unsigned int& b, unsigned
unsigned int data;
bool valid = CGolay24128::decode24128(a, data);
if (!valid) {
a = 0xF00292U;
b = 0x0E0B20U;
c = 0x000000U;
return 10U; // An invalid A block gives an error count of 10
}
a = CGolay24128::encode24128(data);
@ -868,6 +861,13 @@ unsigned int CAMBEFEC::regenerateDMR(unsigned int& a, unsigned int& b, unsigned
b ^= p;
if (!valid) {
a = 0xF00292U;
b = 0x0E0B20U;
c = 0x000000U;
return 10U; // An invalid A block gives an error count of 10
}
unsigned int v = a ^ orig_a;
unsigned int errsA = CUtils::countBits(v);
@ -883,4 +883,3 @@ unsigned int CAMBEFEC::regenerateDMR(unsigned int& a, unsigned int& b, unsigned
return errsA + errsB;
}
#endif