From 4e68f6543e2afbaeb945230e0ca06362029aae56 Mon Sep 17 00:00:00 2001 From: Brian Webb Date: Mon, 4 Jun 2012 21:16:40 -0700 Subject: [PATCH] Added tracking of dropped packets to PipX and turned off visible text on signal strength meters. --- flight/Libraries/inc/packet_handler.h | 1 + .../Modules/RadioComBridge/RadioComBridge.c | 8 ++- .../plugins/config/configpipxtremewidget.cpp | 1 + .../src/plugins/config/pipxtreme.ui | 54 +++++++++++++++---- shared/uavobjectdefinition/pipxstatus.xml | 1 + 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/flight/Libraries/inc/packet_handler.h b/flight/Libraries/inc/packet_handler.h index f60372998..b73bcb5ad 100644 --- a/flight/Libraries/inc/packet_handler.h +++ b/flight/Libraries/inc/packet_handler.h @@ -83,6 +83,7 @@ typedef struct { uint16_t retries; uint16_t errors; uint16_t uavtalk_errors; + uint16_t dropped; uint16_t resets; uint8_t ecc[RS_ECC_NPARITY]; } PHStatusPacket, *PHStatusPacketHandle; diff --git a/flight/Modules/RadioComBridge/RadioComBridge.c b/flight/Modules/RadioComBridge/RadioComBridge.c index c78ba75a9..a24d6721e 100644 --- a/flight/Modules/RadioComBridge/RadioComBridge.c +++ b/flight/Modules/RadioComBridge/RadioComBridge.c @@ -73,6 +73,7 @@ typedef struct { uint16_t errors; uint16_t uavtalk_errors; uint16_t resets; + uint16_t dropped; int8_t rssi; uint8_t lastContact; } PairStats; @@ -104,6 +105,7 @@ typedef struct { uint32_t radioRxErrors; uint32_t UAVTalkErrors; uint32_t packetErrors; + uint32_t droppedPackets; uint16_t txBytes; uint16_t rxBytes; @@ -245,6 +247,7 @@ static int32_t RadioComBridgeInitialize(void) data->pairStats[i].errors = 0; data->pairStats[i].uavtalk_errors = 0; data->pairStats[i].resets = 0; + data->pairStats[i].dropped = 0; data->pairStats[i].lastContact = 0; } // The first slot is reserved for our current pairID @@ -313,7 +316,7 @@ static void comUAVTalkTask(void *parameters) // No packets available? if (p == NULL) { - DEBUG_PRINTF(2, "Packet dropped!\n\r"); + data->droppedPackets++; continue; } @@ -625,6 +628,7 @@ static void transparentCommTask(void * parameters) // No packets available? if (p == NULL) { + data->droppedPackets++; // Wait a bit for a packet to come available. vTaskDelay(5); continue; @@ -702,6 +706,7 @@ static void radioStatusTask(void *parameters) pipxStatus.Retries = data->comTxRetries; pipxStatus.Errors = data->packetErrors; pipxStatus.UAVTalkErrors = data->UAVTalkErrors; + pipxStatus.Dropped = data->droppedPackets; pipxStatus.Resets = PIOS_RFM22B_Resets(pios_rfm22b_id); pipxStatus.TXRate = (uint16_t)((float)(data->txBytes * 1000) / STATS_UPDATE_PERIOD_MS); data->txBytes = 0; @@ -721,6 +726,7 @@ static void radioStatusTask(void *parameters) pipxStatus.Retries += data->pairStats[i].retries; pipxStatus.Errors += data->pairStats[i].errors; pipxStatus.UAVTalkErrors += data->pairStats[i].uavtalk_errors; + pipxStatus.Dropped += data->pairStats[i].dropped; pipxStatus.Resets += data->pairStats[i].resets; pipxStatus.LinkState = PIPXSTATUS_LINKSTATE_CONNECTED; } diff --git a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp index ba3eae983..72d615f98 100644 --- a/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp +++ b/ground/openpilotgcs/src/plugins/config/configpipxtremewidget.cpp @@ -76,6 +76,7 @@ ConfigPipXtremeWidget::ConfigPipXtremeWidget(QWidget *parent) : ConfigTaskWidget addUAVObjectToWidgetRelation("PipXStatus", "Errors", m_pipx->Errors); addUAVObjectToWidgetRelation("PipXStatus", "UAVTalkErrors", m_pipx->UAVTalkErrors); addUAVObjectToWidgetRelation("PipXStatus", "Resets", m_pipx->Resets); + addUAVObjectToWidgetRelation("PipXStatus", "Dropped", m_pipx->Dropped); addUAVObjectToWidgetRelation("PipXStatus", "RXRate", m_pipx->RXRate); addUAVObjectToWidgetRelation("PipXStatus", "TXRate", m_pipx->TXRate); diff --git a/ground/openpilotgcs/src/plugins/config/pipxtreme.ui b/ground/openpilotgcs/src/plugins/config/pipxtreme.ui index 0d021dadd..8a5c2dec4 100644 --- a/ground/openpilotgcs/src/plugins/config/pipxtreme.ui +++ b/ground/openpilotgcs/src/plugins/config/pipxtreme.ui @@ -156,7 +156,7 @@ -127 - true + false %v dBm @@ -185,7 +185,7 @@ 0 - true + false %v dBm @@ -214,7 +214,7 @@ 0 - true + false %v dBm @@ -243,7 +243,7 @@ 0 - true + false %v dBm @@ -631,7 +631,7 @@ - + Retries @@ -775,9 +775,9 @@ - + - TX Rate (B/s) + Dropped Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -785,7 +785,7 @@ - + 75 @@ -811,6 +811,42 @@ + + + TX Rate (B/s) + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 75 + true + + + + QLineEdit { + border: none; + border-radius: 1px; + padding: 0 8px; + background: rgba(0, 0, 0, 16); +/* background: transparent; */ +/* selection-background-color: darkgray;*/ +} + + + false + + + true + + + + RX Rate (B/s) @@ -820,7 +856,7 @@ - + diff --git a/shared/uavobjectdefinition/pipxstatus.xml b/shared/uavobjectdefinition/pipxstatus.xml index b99a77c88..c9dc2644b 100755 --- a/shared/uavobjectdefinition/pipxstatus.xml +++ b/shared/uavobjectdefinition/pipxstatus.xml @@ -14,6 +14,7 @@ +