##// END OF EJS Templates
commit after merge
commit after merge

File last commit:

r27:237de88e9fa6 default
r38:c75479f183af default
Show More
hkdisplay.cpp
398 lines | 21.0 KiB | text/x-c | CppLexer
#include "hkdisplay.h"
HKDisplay::HKDisplay(QWidget *parent) :
QWidget(parent)
{
mainLayout = new QGridLayout();
setupLFRStatusWord();
setupLFRSWVersion();
setupTCStatistics();
setupAnomalyStatistics();
setupSpaceWireIFStatistics();
setupErrorCountersSpaceWire();
mainLayout->addWidget(groupbox_lfrStatusWord, 0,0,1,1);
mainLayout->addWidget(groupbox_lfrSWVersion, 0,1,1,1);
mainLayout->addWidget(groupbox_tcStatistics, 1,0,1,1);
mainLayout->addWidget(groupbox_anomalyStatistics, 1,1,1,1);
mainLayout->addWidget(groupbox_spacewireIFStatisctics, 1, 2, 1, 1);
mainLayout->addWidget(groupbox_errorCountersSpaceWire, 1, 3, 1, 1);
mainLayout->setColumnStretch(4, 1);
this->setLayout(mainLayout);
}
void HKDisplay::setupLFRStatusWord()
{
groupbox_lfrStatusWord = new QGroupBox("LFR Status Word");
box_lfrStatusWord = new QVBoxLayout();
hk_lfr_mode = new QLabel("hk_lfr_mode: -");
hk_lfr_dpu_spw_enabled = new QLabel("hk_lfr_dpu_spw_enabled: -");
hk_lfr_dpu_link_state = new QLabel("hk_lfr_dpu_link_state: -");
sy_lfr_watchdog_enabled = new QLabel("sy_lfr_watchdog_enabled: -");
hk_lfr_calib_enabled = new QLabel("hk_lfr_calib_enabled: -");
hk_lfr_reset_cause = new QLabel("hk_lfr_reset_cause: -");
box_lfrStatusWord->addWidget(hk_lfr_mode);
box_lfrStatusWord->addWidget(hk_lfr_dpu_spw_enabled);
box_lfrStatusWord->addWidget(hk_lfr_dpu_link_state);
box_lfrStatusWord->addWidget(sy_lfr_watchdog_enabled);
box_lfrStatusWord->addWidget(hk_lfr_calib_enabled);
box_lfrStatusWord->addWidget(hk_lfr_reset_cause);
box_lfrStatusWord->insertStretch(6);
groupbox_lfrStatusWord->setLayout(box_lfrStatusWord);
}
void HKDisplay::setupLFRSWVersion()
{
groupbox_lfrSWVersion = new QGroupBox("LFR Software Version");
box_lfrSWVersion = new QVBoxLayout();
sy_lfr_sw_version_n1 = new QLabel("sy_lfr_sw_version_n1: -");
sy_lfr_sw_version_n2 = new QLabel("sy_lfr_sw_version_n2: -");
sy_lfr_sw_version_n3 = new QLabel("sy_lfr_sw_version_n3: -");
sy_lfr_sw_version_n4 = new QLabel("sy_lfr_sw_version_n4: -");
box_lfrSWVersion->addWidget(sy_lfr_sw_version_n1);
box_lfrSWVersion->addWidget(sy_lfr_sw_version_n2);
box_lfrSWVersion->addWidget(sy_lfr_sw_version_n3);
box_lfrSWVersion->addWidget(sy_lfr_sw_version_n4);
box_lfrSWVersion->insertStretch(4);
groupbox_lfrSWVersion->setLayout(box_lfrSWVersion);
}
void HKDisplay::setupTCStatistics()
{
groupbox_tcStatistics = new QGroupBox("TC Statistics");
box_tcStatistics = new QVBoxLayout();
hk_lfr_update_info_tc_cnt = new QLabel("hk_lfr_update_info_tc_cnt: -");
hk_lfr_update_time_tc_cnt = new QLabel("hk_lfr_update_time_tc_cnt: -");
hk_dpu_exe_tc_lfr_cnt = new QLabel("hk_dpu_exe_tc_lfr_cnt: -");
hk_dpu_rej_tc_lfr_cnt = new QLabel("hk_dpu_rej_tc_lfr_cnt: -");
hk_lfr_last_exe_tc_id = new QLabel("hk_lfr_last_exe_tc_id: -");
hk_lfr_last_exe_tc_type = new QLabel("hk_lfr_last_exe_tc_type: -");
hk_lfr_last_exe_tc_subtype = new QLabel("hk_lfr_last_exe_tc_subtype: -");
hk_lfr_last_exe_tc_time = new QLabel("hk_lfr_last_exe_tc_time: -");
hk_lfr_last_rej_tc_id = new QLabel("hk_lfr_last_rej_tc_id: -");
hk_lfr_last_rej_tc_type = new QLabel("hk_lfr_last_rej_tc_type: -");
hk_lfr_last_rej_tc_subtype = new QLabel("hk_lfr_last_rej_tc_subtype: -");
hk_lfr_last_rej_tc_time = new QLabel("hk_lfr_last_rej_tc_time: -");
box_tcStatistics->addWidget(hk_lfr_update_info_tc_cnt);
box_tcStatistics->addWidget(hk_lfr_update_time_tc_cnt);
box_tcStatistics->addWidget(hk_dpu_exe_tc_lfr_cnt);
box_tcStatistics->addWidget(hk_dpu_rej_tc_lfr_cnt);
box_tcStatistics->addWidget(hk_lfr_last_exe_tc_id);
box_tcStatistics->addWidget(hk_lfr_last_exe_tc_type);
box_tcStatistics->addWidget(hk_lfr_last_exe_tc_subtype);
box_tcStatistics->addWidget(hk_lfr_last_exe_tc_time);
box_tcStatistics->addWidget(hk_lfr_last_rej_tc_id);
box_tcStatistics->addWidget(hk_lfr_last_rej_tc_type);
box_tcStatistics->addWidget(hk_lfr_last_rej_tc_subtype);
box_tcStatistics->addWidget(hk_lfr_last_rej_tc_time);
box_tcStatistics->insertStretch(12, 1);
groupbox_tcStatistics->setLayout(box_tcStatistics);
}
void HKDisplay::setupAnomalyStatistics()
{
groupbox_anomalyStatistics = new QGroupBox("Anomaly Statistics");
box_anomalyStatistics = new QVBoxLayout();
hk_lfr_le_cnt = new QLabel("hk_lfr_le_cnt: -");
hk_lfr_me_cnt = new QLabel("hk_lfr_me_cnt: -");
hk_lfr_he_cnt = new QLabel("hk_lfr_he_cnt: -");
hk_lfr_last_er_rid = new QLabel("hk_lfr_last_er_rid: -");
hk_lfr_last_er_code = new QLabel("hk_lfr_last_er_code: -");
hk_lfr_last_er_time = new QLabel("hk_lfr_last_er_time: -");
box_anomalyStatistics->addWidget(hk_lfr_le_cnt);
box_anomalyStatistics->addWidget(hk_lfr_me_cnt);
box_anomalyStatistics->addWidget(hk_lfr_he_cnt);
box_anomalyStatistics->addWidget(hk_lfr_last_er_rid);
box_anomalyStatistics->addWidget(hk_lfr_last_er_code);
box_anomalyStatistics->addWidget(hk_lfr_last_er_time);
box_anomalyStatistics->insertStretch(6, 1);
groupbox_anomalyStatistics->setLayout(box_anomalyStatistics);
}
void HKDisplay::setupSpaceWireIFStatistics()
{
groupbox_spacewireIFStatisctics = new QGroupBox("SpaceWire IF Statistics");
box_spacewireIFStatisctics = new QVBoxLayout();
hk_lfr_dpu_spw_pkt_rcv_cnt = new QLabel("hk_lfr_dpu_spw_pkt_rcv_cnt: -");
hk_lfr_dpu_spw_pkt_sent_cnt = new QLabel("hk_lfr_dpu_spw_pkt_sent_cnt: -");
hk_lfr_dpu_spw_tick_out_cnt = new QLabel("hk_lfr_dpu_spw_tick_out_cnt: -");
hk_lfr_dpu_spw_last_timc = new QLabel("hk_lfr_dpu_spw_last_timc: -");
box_spacewireIFStatisctics->addWidget(hk_lfr_dpu_spw_pkt_rcv_cnt);
box_spacewireIFStatisctics->addWidget(hk_lfr_dpu_spw_pkt_sent_cnt);
box_spacewireIFStatisctics->addWidget(hk_lfr_dpu_spw_tick_out_cnt);
box_spacewireIFStatisctics->addWidget(hk_lfr_dpu_spw_last_timc);
box_spacewireIFStatisctics->insertStretch(5);
groupbox_spacewireIFStatisctics->setLayout(box_spacewireIFStatisctics->layout());
}
void HKDisplay::setupErrorCountersSpaceWire()
{
groupbox_errorCountersSpaceWire = new QGroupBox("SpaceWire Error Counters");
box_errorCountersSpaceWire = new QVBoxLayout();
hk_lfr_dpu_spw_parity = new QLabel("hk_lfr_dpu_spw_parity: -");
hk_lfr_dpu_spw_disconnect = new QLabel("hk_lfr_dpu_spw_disconnect: -");
hk_lfr_dpu_spw_escape = new QLabel("hk_lfr_dpu_spw_escape: -");
hk_lfr_dpu_spw_credit = new QLabel("hk_lfr_dpu_spw_credit: -");
hk_lfr_dpu_spw_write_sync = new QLabel("hk_lfr_dpu_spw_write_sync: -");
hk_lfr_dpu_spw_rx_ahb = new QLabel("hk_lfr_dpu_spw_rx_ahb: -");
hk_lfr_dpu_spw_tx_ahb = new QLabel("hk_lfr_dpu_spw_tx_ahb: -");
hk_lfr_dpu_spw_header_crc = new QLabel("hk_lfr_dpu_spw_header_crc: -");
hk_lfr_dpu_spw_data_crc = new QLabel("hk_lfr_dpu_spw_data_crc: -");
hk_lfr_dpu_spw_early_eop = new QLabel("hk_lfr_dpu_spw_early_eop: -");
hk_lfr_dpu_spw_invalid_addr = new QLabel("hk_lfr_dpu_spw_invalid_addr: -");
hk_lfr_dpu_spw_eep = new QLabel("hk_lfr_dpu_spw_eep: -");
hk_lfr_dpu_spw_rx_too_big = new QLabel("hk_lfr_dpu_spw_rx_too_big: -");
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_parity);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_disconnect);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_escape);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_credit);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_write_sync);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_rx_ahb);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_tx_ahb);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_header_crc);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_data_crc);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_early_eop);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_invalid_addr);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_eep);
box_errorCountersSpaceWire->addWidget(hk_lfr_dpu_spw_rx_too_big);
groupbox_errorCountersSpaceWire->setLayout(box_errorCountersSpaceWire->layout());
}
void HKDisplay::displayPacket(TMPacketToRead *tmPacketToRead)
{
Packet_TM_LFR_HK_t *housekeepingPacket;
if (tmPacketToRead->size != HK_PACKET_SIZE) {
emit displayMessage("in displayPacket *** HK packet size is "
+ QString::number(tmPacketToRead->size)
+ " instead of "
+ QString::number(HK_PACKET_SIZE));
}
else {
housekeepingPacket = (Packet_TM_LFR_HK_t *) tmPacketToRead->Value;
updateLFRMode(housekeepingPacket);
updateSWVersion(housekeepingPacket);
updateTCStatistics(housekeepingPacket);
updateAnomalyStatistics(housekeepingPacket);
updateSpaceWireIFStatistics(housekeepingPacket);
updateErrorCountersSpaceWire(housekeepingPacket);
}
}
void HKDisplay::updateLFRMode(Packet_TM_LFR_HK_t *housekeepingPacket)
{
hk_lfr_mode->setText("hk_lfr_mode: "
+QString::number( ( (housekeepingPacket->lfr_status_word[0] & 0x70) >> 4 ) )
);
}
void HKDisplay::updateSWVersion(Packet_TM_LFR_HK_t *housekeepingPacket)
{
sy_lfr_sw_version_n1->setText("sy_lfr_sw_version_n1: "
+QString::number( housekeepingPacket->lfr_sw_version[0] )
);
sy_lfr_sw_version_n2->setText("sy_lfr_sw_version_n2: "
+QString::number( housekeepingPacket->lfr_sw_version[1] )
);
sy_lfr_sw_version_n3->setText("sy_lfr_sw_version_n3: "
+QString::number( housekeepingPacket->lfr_sw_version[2] )
);
sy_lfr_sw_version_n4->setText("sy_lfr_sw_version_n4: "
+QString::number( housekeepingPacket->lfr_sw_version[3] )
);
}
void HKDisplay::updateTCStatistics(Packet_TM_LFR_HK_t *housekeepingPacket)
{
// TC Statistics
hk_lfr_update_info_tc_cnt->setText("hk_lfr_update_info_tc_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_update_info_tc_cnt[0] * 256
+ housekeepingPacket->hk_lfr_update_info_tc_cnt[1])
);
hk_lfr_update_time_tc_cnt->setText("hk_lfr_update_time_tc_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_update_time_tc_cnt[0] * 256
+ housekeepingPacket->hk_lfr_update_time_tc_cnt[1])
);
hk_dpu_exe_tc_lfr_cnt->setText("hk_dpu_exe_tc_lfr_cnt: "
+ QString::number(
housekeepingPacket->hk_dpu_exe_tc_lfr_cnt[0] * 256
+ housekeepingPacket->hk_dpu_exe_tc_lfr_cnt[1])
);
hk_dpu_rej_tc_lfr_cnt->setText("hk_dpu_rej_tc_lfr_cnt: "
+ QString::number(
housekeepingPacket->hk_dpu_rej_tc_lfr_cnt[0] * 256
+ housekeepingPacket->hk_dpu_rej_tc_lfr_cnt[1])
);
hk_lfr_last_exe_tc_id->setText("hk_lfr_last_exe_tc_id: "
+ QString::number(
housekeepingPacket->hk_lfr_last_exe_tc_id[0] * 256
+ housekeepingPacket->hk_lfr_last_exe_tc_id[1], 16)
);
hk_lfr_last_exe_tc_type->setText("hk_lfr_last_exe_tc_type: "
+ QString::number(
housekeepingPacket->hk_lfr_last_exe_tc_type[0] * 256
+ housekeepingPacket->hk_lfr_last_exe_tc_type[1])
);
hk_lfr_last_exe_tc_subtype->setText("hk_lfr_last_exe_tc_subtype: "
+ QString::number(
housekeepingPacket->hk_lfr_last_exe_tc_subtype[0] * 256
+ housekeepingPacket->hk_lfr_last_exe_tc_subtype[1])
);
hk_lfr_last_exe_tc_time->setText("hk_lfr_last_exe_tc_time: "
+ QString::number(
(housekeepingPacket->hk_lfr_last_exe_tc_time[0] << 24)
+ (housekeepingPacket->hk_lfr_last_exe_tc_time[1] << 16)
+ (housekeepingPacket->hk_lfr_last_exe_tc_time[2] << 8)
+ (housekeepingPacket->hk_lfr_last_exe_tc_time[3]), 16
)
);
hk_lfr_last_rej_tc_id->setText("hk_lfr_last_rej_tc_id: "
+ QString::number(
housekeepingPacket->hk_lfr_last_rej_tc_id[0] * 256
+ housekeepingPacket->hk_lfr_last_rej_tc_id[1], 16)
);
hk_lfr_last_rej_tc_type->setText("hk_lfr_last_rej_tc_type: "
+ QString::number(
housekeepingPacket->hk_lfr_last_rej_tc_type[0] * 256
+ housekeepingPacket->hk_lfr_last_rej_tc_type[1])
);
hk_lfr_last_rej_tc_subtype->setText("hk_lfr_last_rej_tc_subtype: "
+ QString::number(
housekeepingPacket->hk_lfr_last_rej_tc_subtype[0] * 256
+ housekeepingPacket->hk_lfr_last_rej_tc_subtype[1])
);
hk_lfr_last_rej_tc_time->setText("hk_lfr_last_rej_tc_time: "
+ QString::number(
(housekeepingPacket->hk_lfr_last_rej_tc_time[0] << 24)
+ (housekeepingPacket->hk_lfr_last_rej_tc_time[1] << 16)
+ (housekeepingPacket->hk_lfr_last_rej_tc_time[2] << 8)
+ (housekeepingPacket->hk_lfr_last_rej_tc_time[3]), 16
)
);
}
void HKDisplay::updateAnomalyStatistics(Packet_TM_LFR_HK_t *housekeepingPacket)
{
// Anomaly Statistics
hk_lfr_le_cnt->setText("hk_lfr_le_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_le_cnt[0] * 256
+ housekeepingPacket->hk_lfr_le_cnt[1])
);
hk_lfr_me_cnt->setText("hk_lfr_me_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_me_cnt[0] * 256
+ housekeepingPacket->hk_lfr_me_cnt[1])
);
hk_lfr_he_cnt->setText("hk_lfr_he_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_he_cnt[0] * 256
+ housekeepingPacket->hk_lfr_he_cnt[1])
);
hk_lfr_last_er_rid->setText("hk_lfr_last_er_rid: "
+ QString::number(
housekeepingPacket->hk_lfr_last_er_rid[0] * 256
+ housekeepingPacket->hk_lfr_last_er_rid[1])
);
hk_lfr_last_er_code->setText("hk_lfr_last_er_code: "
+ QString::number(
housekeepingPacket->hk_lfr_last_er_code)
);
hk_lfr_last_er_time->setText("hk_lfr_last_er_time: "
+ QString::number(
(housekeepingPacket->hk_lfr_last_er_time[0] << 24)
+ (housekeepingPacket->hk_lfr_last_er_time[1] << 16)
+ (housekeepingPacket->hk_lfr_last_er_time[2] << 8)
+ (housekeepingPacket->hk_lfr_last_er_time[3]), 16
)
);
}
void HKDisplay::updateSpaceWireIFStatistics(Packet_TM_LFR_HK_t *housekeepingPacket)
{
hk_lfr_dpu_spw_pkt_rcv_cnt->setText("hk_lfr_dpu_spw_pkt_rcv_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_pkt_rcv_cnt[0] * 256
+ housekeepingPacket->hk_lfr_dpu_spw_pkt_rcv_cnt[1])
);
hk_lfr_dpu_spw_pkt_sent_cnt->setText("hk_lfr_dpu_spw_pkt_sent_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_pkt_sent_cnt[0] * 256
+ housekeepingPacket->hk_lfr_dpu_spw_pkt_sent_cnt[1])
);
hk_lfr_dpu_spw_tick_out_cnt->setText("hk_lfr_dpu_spw_tick_out_cnt: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_tick_out_cnt)
);
hk_lfr_dpu_spw_last_timc->setText("hk_lfr_dpu_spw_last_timc: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_last_timc)
);
}
void HKDisplay::updateErrorCountersSpaceWire(Packet_TM_LFR_HK_t *housekeepingPacket)
{
hk_lfr_dpu_spw_parity->setText("hk_lfr_dpu_spw_parity: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_parity)
);
hk_lfr_dpu_spw_disconnect->setText("hk_lfr_dpu_spw_disconnect: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_disconnect)
);
hk_lfr_dpu_spw_escape->setText("hk_lfr_dpu_spw_escape: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_escape)
);
hk_lfr_dpu_spw_credit->setText("hk_lfr_dpu_spw_credit: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_credit)
);
hk_lfr_dpu_spw_write_sync->setText("hk_lfr_dpu_spw_write_sync: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_write_sync)
);
hk_lfr_dpu_spw_rx_ahb->setText("hk_lfr_dpu_spw_rx_ahb: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_rx_ahb)
);
hk_lfr_dpu_spw_tx_ahb->setText("hk_lfr_dpu_spw_tx_ahb: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_tx_ahb)
);
hk_lfr_dpu_spw_header_crc->setText("hk_lfr_dpu_spw_header_crc: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_header_crc)
);
hk_lfr_dpu_spw_data_crc->setText("hk_lfr_dpu_spw_data_crc: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_data_crc)
);
hk_lfr_dpu_spw_early_eop->setText("hk_lfr_dpu_spw_early_eop: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_early_eop)
);
hk_lfr_dpu_spw_invalid_addr->setText("hk_lfr_dpu_spw_invalid_addr: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_invalid_addr)
);
hk_lfr_dpu_spw_eep->setText("hk_lfr_dpu_spw_eep: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_eep)
);
hk_lfr_dpu_spw_rx_too_big->setText("hk_lfr_dpu_spw_rx_too_big: "
+ QString::number(
housekeepingPacket->hk_lfr_dpu_spw_rx_too_big)
);
}