Clean up the YSF code a little more.
This commit is contained in:
parent
2701506c44
commit
55010aaaf6
|
@ -97,19 +97,10 @@ bool CYSFControl::writeModem(unsigned char *data)
|
|||
if (m_state != RS_RF_AUDIO)
|
||||
return false;
|
||||
|
||||
unsigned char orig[YSF_FRAME_LENGTH_BYTES];
|
||||
::memcpy(orig, data + 2U, YSF_FRAME_LENGTH_BYTES);
|
||||
|
||||
unsigned char fi = fich.getFI();
|
||||
if (valid && fi == YSF_FI_HEADER) {
|
||||
CSync::addYSFSync(data + 2U);
|
||||
|
||||
fich.encode(data + 2U);
|
||||
|
||||
unsigned int errs = calculateBER(orig, data + 2U, YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES);
|
||||
m_errs += errs;
|
||||
m_bits += 240U;
|
||||
|
||||
m_frames++;
|
||||
|
||||
valid = m_payload.processHeaderData(data + 2U);
|
||||
|
@ -158,12 +149,6 @@ bool CYSFControl::writeModem(unsigned char *data)
|
|||
} else if (valid && fi == YSF_FI_TERMINATOR) {
|
||||
CSync::addYSFSync(data + 2U);
|
||||
|
||||
fich.encode(data + 2U);
|
||||
|
||||
unsigned int errs = calculateBER(orig, data + 2U, YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES);
|
||||
m_errs += errs;
|
||||
m_bits += 240U;
|
||||
|
||||
m_frames++;
|
||||
|
||||
m_payload.processHeaderData(data + 2U);
|
||||
|
@ -201,12 +186,6 @@ bool CYSFControl::writeModem(unsigned char *data)
|
|||
unsigned char ft = fich.getFT();
|
||||
unsigned char dt = fich.getDT();
|
||||
|
||||
fich.encode(data + 2U);
|
||||
|
||||
unsigned int errs = calculateBER(orig, data + 2U, YSF_SYNC_LENGTH_BYTES + YSF_FICH_LENGTH_BYTES);
|
||||
m_errs += errs;
|
||||
m_bits += 240U;
|
||||
|
||||
m_frames++;
|
||||
|
||||
switch (dt) {
|
||||
|
@ -298,11 +277,6 @@ bool CYSFControl::writeModem(unsigned char *data)
|
|||
} else {
|
||||
CSync::addYSFSync(data + 2U);
|
||||
|
||||
// Only calculate the BER on the sync word
|
||||
unsigned int errs = calculateBER(orig, data + 2U, YSF_SYNC_LENGTH_BYTES);
|
||||
m_errs += errs;
|
||||
m_bits += 40U;
|
||||
|
||||
m_frames++;
|
||||
|
||||
if (m_duplex) {
|
||||
|
@ -452,18 +426,3 @@ void CYSFControl::closeFile()
|
|||
m_fp = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int CYSFControl::calculateBER(const unsigned char* orig, const unsigned char *curr, unsigned int length) const
|
||||
{
|
||||
unsigned int errors = 0U;
|
||||
|
||||
for (unsigned int i = 0U; i < length; i++) {
|
||||
unsigned char v = orig[i] ^ curr[i];
|
||||
while (v != 0U) {
|
||||
v &= v - 1U;
|
||||
errors++;
|
||||
}
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
|
|
@ -66,8 +66,6 @@ private:
|
|||
bool openFile();
|
||||
bool writeFile(const unsigned char* data);
|
||||
void closeFile();
|
||||
|
||||
unsigned int calculateBER(const unsigned char* orig, const unsigned char* curr, unsigned int length) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -184,12 +184,6 @@ unsigned char CYSFFICH::getDT() const
|
|||
return m_fich[2U] & 0x03U;
|
||||
}
|
||||
|
||||
void CYSFFICH::setFI(unsigned char fi)
|
||||
{
|
||||
m_fich[0U] &= 0x3FU;
|
||||
m_fich[0U] |= (fi << 6) & 0xC0U;
|
||||
}
|
||||
|
||||
void CYSFFICH::setMR(unsigned char mr)
|
||||
{
|
||||
m_fich[2U] &= 0xC7U;
|
||||
|
|
Loading…
Reference in a new issue