Reformat code and make small alterations.

This commit is contained in:
Jonathan Naylor
2017-11-15 10:47:56 +00:00
parent 4e6bfb3682
commit 711bcbf745
15 changed files with 393 additions and 314 deletions

View File

@@ -128,6 +128,7 @@ CDMRSlot::~CDMRSlot()
delete[] m_rfEmbeddedData;
delete[] m_netEmbeddedData;
delete[] m_lastFrame;
delete[] m_rfTalkerAlias;
}
bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
@@ -333,7 +334,9 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
LogMessage("DMR Slot %u, received RF end of voice transmission, %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_slotNo, float(m_rfFrames) / 16.667F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount);
else
LogMessage("DMR Slot %u, received RF end of voice transmission, %.1f seconds, BER: %.1f%%", m_slotNo, float(m_rfFrames) / 16.667F, float(m_rfErrs * 100U) / float(m_rfBits));
m_display->writeDMRTA(m_slotNo,NULL," ");
m_display->writeDMRTA(m_slotNo, NULL, " ");
if (m_rfTimeout) {
writeEndRF();
return false;
@@ -619,9 +622,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 0U, data);
if (!(m_rfTalkerId & TALKER_ID_HEADER)) {
if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
if (m_rfTalkerId == TALKER_ID_NONE)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias, data, 6U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Header", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -636,9 +641,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 1U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK1)) {
if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias+6U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
if (m_rfTalkerId == TALKER_ID_NONE)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias + 6U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 1", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -653,10 +660,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 2U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK2)) {
if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
m_rfTalkerId |= TALKER_ID_BLOCK2;
::memcpy(m_rfTalkerAlias+6U+7U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
if (m_rfTalkerId == TALKER_ID_NONE)
::memset(m_rfTalkerAlias, 0, 32U);
::memcpy(m_rfTalkerAlias + 6U + 7U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 2", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -671,9 +679,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 3U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK3)) {
if (m_rfTalkerId==TALKER_ID_NONE) ::memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias+6U+7U+7U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
if (m_rfTalkerId == TALKER_ID_NONE)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias + 6U + 7U + 7U, data, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 3", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1186,7 +1196,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
// We've received the voice header and terminator haven't we?
m_netFrames += 2U;
LogMessage("DMR Slot %u, received network end of voice transmission, %.1f seconds, %u%% packet loss, BER: %.1f%%", m_slotNo, float(m_netFrames) / 16.667F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits));
m_display->writeDMRTA(m_slotNo,NULL," ");
m_display->writeDMRTA(m_slotNo, NULL, " ");
writeEndNet();
} else if (dataType == DT_DATA_HEADER) {
if (m_netState == RS_NET_DATA)
@@ -1398,9 +1408,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_HEADER:
if (!(m_netTalkerId & TALKER_ID_HEADER)) {
if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias, data+2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
if (!m_netTalkerId)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias, data + 2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Header", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1411,9 +1423,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK1:
if (!(m_netTalkerId & TALKER_ID_BLOCK1)) {
if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias+7U, data+2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
if (!m_netTalkerId)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias + 7U, data + 2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 1", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1424,9 +1438,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK2:
if (!(m_netTalkerId & TALKER_ID_BLOCK2)) {
if (!m_netTalkerId) ::memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias+7U+7U, data+2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
if (!m_netTalkerId)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias + 7U + 7U, data + 2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 2", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1437,9 +1453,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK3:
if (!(m_netTalkerId & TALKER_ID_BLOCK3)) {
if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
::memcpy(m_rfTalkerAlias+7U+7U+7U, data+2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
if (!m_netTalkerId)
::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias + 7U + 7U + 7U, data+2U, 7U);
m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 3", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1619,51 +1637,51 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
void CDMRSlot::logGPSposition(const unsigned char* data)
{
signed long longitudeI,latitudeI;
unsigned int errorI;
float longitude,latitude;
char errorS[30];
unsigned int errorI = (data[2U] & 0x0E) >> 1U;
errorI=((data[2U]&0x0E) >> 1U);
char errorS[30];
switch (errorI) {
case 0U:
::sprintf(errorS, "< 2m");
break;
case 1U:
::sprintf(errorS, "< 20m");
break;
case 2U:
::sprintf(errorS, "< 200m");
break;
case 3U:
::sprintf(errorS, "< 2km");
break;
case 4U:
::sprintf(errorS, "< 20km");
break;
case 5U:
::sprintf(errorS, "< 200km");
break;
case 6U:
::sprintf(errorS, "> 200km");
break;
default:
::sprintf(errorS, "not known or position invalid");
break;
case 0U:
::strcpy(errorS, "< 2m");
break;
case 1U:
::strcpy(errorS, "< 20m");
break;
case 2U:
::strcpy(errorS, "< 200m");
break;
case 3U:
::strcpy(errorS, "< 2km");
break;
case 4U:
::strcpy(errorS, "< 20km");
break;
case 5U:
::strcpy(errorS, "< 200km");
break;
case 6U:
::strcpy(errorS, "> 200km");
break;
default:
::strcpy(errorS, "not known or position invalid");
break;
}
longitudeI=(data[3U]<<16U)+(data[4U]<<8U)+(data[5U]);
if ((data[2]&0x01U)==0x01U) longitudeI=-longitudeI;
long longitudeI = (data[3U] << 16) + (data[4U] << 8) + data[5U];
if ((data[2U] & 0x01U) == 0x01U)
longitudeI = -longitudeI;
latitudeI=((data[6U]&0x7FU)<<16U)+(data[7U]<<8U)+(data[8U]);
if ((data[6U]&0x80U)==0x80U) latitudeI=-latitudeI;
long latitudeI = ((data[6U] & 0x7FU) << 16) + (data[7U] << 8) + data[8U];
if ((data[6U] & 0x80U) == 0x80U)
latitudeI = -latitudeI;
longitude=(float)360/33554432; // 360/2^25 steps
latitude=(float)180/16777216; // 180/2^24 steps
float longitude = 360.0F / 33554432.0F; // 360/2^25 steps
float latitude = 180.0F / 16777216.0F; // 180/2^24 steps
longitude*=longitudeI;
latitude*=latitudeI;
LogMessage("GPS position [%08f,%09f] (Position error %s)",latitude,longitude,errorS);
longitude *= longitudeI;
latitude *= latitudeI;
LogMessage("GPS position [%08f,%09f] (Position error %s)",latitude,longitude,errorS);
}
void CDMRSlot::clock()