diff --git a/common/paulcommon/header/hkdisplay.h b/common/paulcommon/header/hkdisplay.h --- a/common/paulcommon/header/hkdisplay.h +++ b/common/paulcommon/header/hkdisplay.h @@ -23,19 +23,21 @@ public: void setupLFRSWVersion(); void setupLFR_FPGA_Version(); void setupVE1E2(); + void setupResourcesStatistics(); void setupTCStatistics(); void setupAnomalyStatistics(); void setupSpaceWireIFStatistics(); void setupErrorCountersSpaceWire(); - void update_lfr_status_word(Packet_TM_LFR_HK_t *housekeepingPacket); - void updateSWVersion(Packet_TM_LFR_HK_t *housekeepingPacket); - void update_FPGA_version(Packet_TM_LFR_HK_t *housekeepingPacket); - void update_v_e1_e2(Packet_TM_LFR_HK_t *housekeepingPacket); - void updateTCStatistics(Packet_TM_LFR_HK_t *housekeepingPacket); - void updateAnomalyStatistics(Packet_TM_LFR_HK_t *housekeepingPacket); - void updateSpaceWireIFStatistics(Packet_TM_LFR_HK_t *housekeepingPacket); - void updateErrorCountersSpaceWire(Packet_TM_LFR_HK_t *housekeepingPacket); + void update_lfr_status_word( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateSWVersion( Packet_TM_LFR_HK_t *housekeepingPacket); + void update_FPGA_version( Packet_TM_LFR_HK_t *housekeepingPacket); + void update_v_e1_e2( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateResourceStatistics( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateTCStatistics( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateAnomalyStatistics( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateSpaceWireIFStatistics( Packet_TM_LFR_HK_t *housekeepingPacket); + void updateErrorCountersSpaceWire( Packet_TM_LFR_HK_t *housekeepingPacket); signals: void displayMessage(QString message); @@ -49,6 +51,7 @@ private: QGroupBox *groupbox_tcStatistics; QGroupBox *groupbox_anomalyStatistics; QGroupBox *groupbox_v_e1_e2; + QGroupBox *groupbox_resourceStatistics; //*********************************** //*********************************** QGroupBox *groupbox_vhdlBlockStatus; @@ -63,6 +66,7 @@ private: QVBoxLayout *box_lfrSWVersion; QVBoxLayout *box_lfr_FPGA_Version; QVBoxLayout *box_v_e1_e2; + QVBoxLayout *box_resourceStatistics; QVBoxLayout *box_tcStatistics; QVBoxLayout *box_anomalyStatistics; //*********************************** @@ -94,6 +98,10 @@ private: QLabel *hk_lfr_sc_v_f3; QLabel *hk_lfr_sc_e1_f3; QLabel *hk_lfr_sc_e2_f3; + // resource_statistics + QLabel *hk_lfr_cpu_load; + QLabel *hk_lfr_cpu_load_max; + QLabel *hk_lfr_cpu_load_ave; // QLabel *hk_lfr_update_info_tc_cnt; QLabel *hk_lfr_update_time_tc_cnt; diff --git a/common/paulcommon/src/hkdisplay.cpp b/common/paulcommon/src/hkdisplay.cpp --- a/common/paulcommon/src/hkdisplay.cpp +++ b/common/paulcommon/src/hkdisplay.cpp @@ -12,6 +12,7 @@ HKDisplay::HKDisplay(QWidget *parent) : setupLFRSWVersion(); setupLFR_FPGA_Version(); setupVE1E2(); + setupResourcesStatistics(); setupTCStatistics(); setupAnomalyStatistics(); setupSpaceWireIFStatistics(); @@ -21,6 +22,7 @@ HKDisplay::HKDisplay(QWidget *parent) : groupbox_lfrSWVersion->setFont(font); groupbox_lfr_FPGA_Version->setFont(font); groupbox_v_e1_e2->setFont(font); + groupbox_resourceStatistics->setFont(font); groupbox_tcStatistics->setFont(font); groupbox_anomalyStatistics->setFont(font); groupbox_spacewireIFStatisctics->setFont(font); @@ -30,6 +32,7 @@ HKDisplay::HKDisplay(QWidget *parent) : mainLayout->addWidget(groupbox_lfrSWVersion, 0,1,1,1); mainLayout->addWidget(groupbox_lfr_FPGA_Version, 0,2,1,1); mainLayout->addWidget(groupbox_v_e1_e2, 0,3,1,1); + mainLayout->addWidget(groupbox_resourceStatistics, 0,4,1,1); mainLayout->addWidget(groupbox_tcStatistics, 1,0,1,1); mainLayout->addWidget(groupbox_spacewireIFStatisctics, 1, 1, 1, 1); mainLayout->addWidget(groupbox_errorCountersSpaceWire, 1, 2, 1, 1); @@ -106,6 +109,20 @@ void HKDisplay::setupVE1E2() groupbox_v_e1_e2->setLayout(box_v_e1_e2); } +void HKDisplay::setupResourcesStatistics() +{ + groupbox_resourceStatistics = new QGroupBox("cpu load"); + box_resourceStatistics = new QVBoxLayout(); + hk_lfr_cpu_load = new QLabel("load: -"); + hk_lfr_cpu_load_max = new QLabel("load max: -"); + hk_lfr_cpu_load_ave = new QLabel("load ave: -"); + box_resourceStatistics->addWidget(hk_lfr_cpu_load); + box_resourceStatistics->addWidget(hk_lfr_cpu_load_max); + box_resourceStatistics->addWidget(hk_lfr_cpu_load_ave); + box_resourceStatistics->insertStretch(3); + groupbox_resourceStatistics->setLayout(box_resourceStatistics); +} + void HKDisplay::setupTCStatistics() { groupbox_tcStatistics = new QGroupBox("TC Statistics"); @@ -225,6 +242,7 @@ void HKDisplay::displayPacket(TMPacketTo updateSWVersion( housekeepingPacket ); update_FPGA_version( housekeepingPacket ); update_v_e1_e2( housekeepingPacket ); + updateResourceStatistics( housekeepingPacket ); updateTCStatistics( housekeepingPacket ); updateAnomalyStatistics( housekeepingPacket ); updateSpaceWireIFStatistics( housekeepingPacket ); @@ -311,6 +329,21 @@ void HKDisplay::update_v_e1_e2(Packet_TM hk_lfr_sc_e2_f3->setText("e2_f3: " + QString::number( e2 ) ); } +void HKDisplay::updateResourceStatistics(Packet_TM_LFR_HK_t *housekeepingPacket) +{ + unsigned char cpu_load; + unsigned char cpu_load_max; + unsigned char cpu_load_ave; + + cpu_load = housekeepingPacket->hk_lfr_cpu_load; + cpu_load_max = housekeepingPacket->hk_lfr_cpu_load_max; + cpu_load_ave = housekeepingPacket->hk_lfr_cpu_load_aver; + + hk_lfr_cpu_load->setText( "load: " + QString::number( cpu_load ) ); + hk_lfr_cpu_load_max->setText( "load max: " + QString::number( cpu_load_max ) ); + hk_lfr_cpu_load_ave->setText( "load ave: " + QString::number( cpu_load_ave ) ); +} + void HKDisplay::updateTCStatistics(Packet_TM_LFR_HK_t *housekeepingPacket) { // TC Statistics diff --git a/projects/rmapplugin/Makefile b/projects/rmapplugin/Makefile --- a/projects/rmapplugin/Makefile +++ b/projects/rmapplugin/Makefile @@ -3,7 +3,7 @@ # Generated by qmake (3.0) (Qt 5.2.1) # Project: rmapplugin.pro # Template: lib -# Command: /bin/qmake-qt5 -spec linux-g++-64 -o Makefile rmapplugin.pro +# Command: /usr/bin/qmake-qt5 -o Makefile rmapplugin.pro ############################################################################# MAKEFILE = Makefile @@ -21,7 +21,7 @@ LFLAGS = -m64 -Wl,-O1 -Wl,-z,relr LIBS = $(SUBLIBS) -L/usr/X11R6/lib64 /home/spacewire/usb/spw_usb_driver_v2.68/lib/x86_64/libSpaceWireUSBAPI.so /home/spacewire/usb/spw_usb_driver_v2.68/lib/x86_64/libConfigLibraryUSB.so -lwfdisplay -lpaulcommon -llppmonengine -llppmoncommon -ldl -lutil -lm -lpython2.7 -lPythonQt_QtAll -lPythonQt -lQt5PrintSupport -lQt5Svg -lQt5Widgets -lQt5Network -lQt5Xml -lQt5Gui -lQt5Core -lGL -lpthread AR = ar cqs RANLIB = -QMAKE = /bin/qmake-qt5 +QMAKE = /usr/bin/qmake-qt5 TAR = tar -cf COMPRESS = gzip -9f COPY = cp -f @@ -347,7 +347,7 @@ Makefile: rmapplugin.pro /usr/lib64/qt5/ /lib64/libQt5Xml.prl \ /lib64/libQt5Gui.prl \ /lib64/libQt5Core.prl - $(QMAKE) -spec linux-g++-64 -o Makefile rmapplugin.pro + $(QMAKE) -o Makefile rmapplugin.pro /usr/lib64/qt5/mkspecs/features/spec_pre.prf: /usr/lib64/qt5/mkspecs/common/shell-unix.conf: /usr/lib64/qt5/mkspecs/common/unix.conf: @@ -453,7 +453,7 @@ rmapplugin.pro: /lib64/libQt5Gui.prl: /lib64/libQt5Core.prl: qmake: FORCE - @$(QMAKE) -spec linux-g++-64 -o Makefile rmapplugin.pro + @$(QMAKE) -o Makefile rmapplugin.pro qmake_all: FORCE diff --git a/projects/rmapplugin/stardundee.cpp b/projects/rmapplugin/stardundee.cpp --- a/projects/rmapplugin/stardundee.cpp +++ b/projects/rmapplugin/stardundee.cpp @@ -234,7 +234,7 @@ bool StarDundee::Open() // statusLink2->setText("Link 2 status code: " + QString::number(linkStatus2)); // starDundeeStatusQueryDialog->exec(); emit isOpen(true); - timer->start(1); // starts the periodical timer, period = 100ms + timer->start(100); // starts the periodical timer, period = 100ms initializeTimecodeGeneration(); return true; } @@ -846,7 +846,7 @@ void StarDundee::spaceWireLinkHasChanged void StarDundee::receivePollingLoop() { timer->blockSignals(true); - if (USBSpaceWire_WaitOnReadPacketAvailable(hDevice, 0)) receiveSPWPacketLoop(0); + if (USBSpaceWire_WaitOnReadPacketAvailable(hDevice, 0.01)) receiveSPWPacketLoop(0); timer->blockSignals(false); } @@ -856,7 +856,7 @@ int StarDundee::receiveSPWPacketLoop(uns emit appendToLog("Number of packets dropped by the driver: " + QString::number(USBSpaceWire_GetDriverDroppedPackets(hDevice))); - while (USBSpaceWire_WaitOnReadPacketAvailable(hDevice, 0)) + while (USBSpaceWire_WaitOnReadPacketAvailable(hDevice, 0.01)) { result = receiveSPWPacket(requestID); }