Fix DMR JSON handling.

This commit is contained in:
Jonathan Naylor
2023-06-16 12:58:29 +01:00
parent c0eb51f0ba
commit ac076a7a23

View File

@@ -213,7 +213,8 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_aveRSSI += m_rssi;
m_rssiCountTotal++;
writeJSONRSSI();
m_rssiAccum += m_rssi;
m_rssiCount++;
}
bool dataSync = (data[1U] & DMR_SYNC_DATA) == DMR_SYNC_DATA;
@@ -321,6 +322,8 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
setShortLC(m_slotNo, dstId, flco, ACTIVITY_VOICE);
m_display->writeDMR(m_slotNo, src, flco == FLCO_GROUP, dst, "R");
m_display->writeDMRRSSI(m_slotNo, m_rssi);
writeJSONRSSI();
writeJSONBER();
}
LogMessage("DMR Slot %u, received RF voice header from %s to %s%s", m_slotNo, src.c_str(), flco == FLCO_GROUP ? "TG " : "", dst.c_str());
@@ -457,6 +460,7 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_DATA);
m_display->writeDMR(m_slotNo, src, gi, dst, "R");
m_display->writeDMRRSSI(m_slotNo, m_rssi);
writeJSONRSSI();
}
LogMessage("DMR Slot %u, received RF data header from %s to %s%s, %u blocks", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str(), m_rfFrames);
@@ -567,6 +571,7 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, ACTIVITY_DATA);
m_display->writeDMR(m_slotNo, src, gi, dst, "R");
m_display->writeDMRRSSI(m_slotNo, m_rssi);
writeJSONRSSI();
}
return true;
@@ -627,23 +632,24 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
if (fid == FID_ETSI || fid == FID_DMRA) {
errors = m_fec.regenerateDMR(data + 2U);
LogDebug("DMR Slot %u, audio sequence no. 0, errs: %u/141 (%.1f%%)", m_slotNo, errors, float(errors) / 1.41F);
m_display->writeDMRBER(m_slotNo, float(errors) / 1.41F);
m_rfErrs += errors;
m_bitErrsAccum += errors;
m_display->writeDMRBER(m_slotNo, float(errors) / 1.41F);
writeJSONBER();
}
m_bitsCount += 141U;
m_rfBits += 141U;
m_rfFrames++;
writeJSONBER();
m_rfEmbeddedReadN = (m_rfEmbeddedReadN + 1U) % 2U;
m_rfEmbeddedWriteN = (m_rfEmbeddedWriteN + 1U) % 2U;
m_rfEmbeddedData[m_rfEmbeddedWriteN].reset();
m_display->writeDMRRSSI(m_slotNo, m_rssi);
writeJSONRSSI();
if (!m_rfTimeout) {
data[0U] = TAG_DATA;
@@ -679,17 +685,17 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
if (fid == FID_ETSI || fid == FID_DMRA) {
errors = m_fec.regenerateDMR(data + 2U);
LogDebug("DMR Slot %u, audio sequence no. %u, errs: %u/141 (%.1f%%)", m_slotNo, m_rfN, errors, float(errors) / 1.41F);
m_display->writeDMRBER(m_slotNo, float(errors) / 1.41F);
m_rfErrs += errors;
m_bitErrsAccum += errors;
m_display->writeDMRBER(m_slotNo, float(errors) / 1.41F);
writeJSONBER();
}
m_bitsCount += 141U;
m_rfBits += 141U;
m_rfFrames++;
writeJSONBER();
// Get the LCSS from the EMB
CDMREMB emb;
emb.putData(data + 2U);
@@ -973,8 +979,6 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_rfBits += 141U;
m_rfFrames++;
writeJSONBER();
data[0U] = TAG_DATA;
data[1U] = 0x00U;
@@ -990,6 +994,8 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_display->writeDMR(m_slotNo, src, flco == FLCO_GROUP, dst, "R");
m_display->writeDMRRSSI(m_slotNo, m_rssi);
m_display->writeDMRBER(m_slotNo, float(errors) / 1.41F);
writeJSONRSSI();
writeJSONBER();
}
LogMessage("DMR Slot %u, received RF late entry from %s to %s%s", m_slotNo, src.c_str(), flco == FLCO_GROUP ? "TG " : "", dst.c_str());
@@ -2362,9 +2368,6 @@ void CDMRSlot::enable(bool enabled)
void CDMRSlot::writeJSONRSSI()
{
m_rssiAccum += m_rssi;
m_rssiCount++;
if (m_rssiCount >= RSSI_COUNT) {
nlohmann::json json;