#ifndef HKDISPLAY_H #define HKDISPLAY_H #include #include #include #include #include #include "tmpackettoread.h" #include "ccsds_types.h" #define HK_PACKET_SIZE 126 + 4 #define HK_INFORMATION_FONT_SIZE 9 class HKDisplay : public QWidget { Q_OBJECT public: explicit HKDisplay(QWidget *parent = 0); void displayPacket(TMPacketToRead *tmPacketToRead); void displayPacketLESIA(TMPacketToRead *tmPacketToRead); void setupLFRStatusWord(); void setupLFRSWVersion(); 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 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); public slots: private: QGroupBox *groupbox_lfrStatusWord; QGroupBox *groupbox_lfrSWVersion; QGroupBox *groupbox_tcStatistics; QGroupBox *groupbox_anomalyStatistics; //*********************************** //*********************************** QGroupBox *groupbox_vhdlBlockStatus; QGroupBox *groupbox_spacewireIFStatisctics; QGroupBox *groupbox_ahbErrorStatistics; QGroupBox *groupbox_temperatures; QGroupBox *groupbox_errorCountersSpaceWire; QGroupBox *groupbox_errorCountersTime; QGridLayout *mainLayout; QVBoxLayout *box_lfrStatusWord; QVBoxLayout *box_lfrSWVersion; QVBoxLayout *box_tcStatistics; QVBoxLayout *box_anomalyStatistics; //*********************************** //*********************************** QVBoxLayout *box_vhdlBlockStatus; QVBoxLayout *box_spacewireIFStatisctics; QVBoxLayout *box_ahbErrorStatistics; QVBoxLayout *box_temperatures; QVBoxLayout *box_errorCountersSpaceWire; QVBoxLayout *box_errorCountersTime; QLabel *hk_lfr_mode; QLabel *hk_lfr_dpu_spw_enabled; QLabel *hk_lfr_dpu_link_state; QLabel *hk_lfr_dpu_spare; QLabel *sy_lfr_watchdog_enabled; QLabel *hk_lfr_calib_enabled; QLabel *hk_lfr_reset_cause; // sy_lfr_sw_version_ QLabel *sy_lfr_sw_version_n1; QLabel *sy_lfr_sw_version_n2; QLabel *sy_lfr_sw_version_n3; QLabel *sy_lfr_sw_version_n4; QLabel *hk_lfr_update_info_tc_cnt; QLabel *hk_lfr_update_time_tc_cnt; QLabel *hk_dpu_exe_tc_lfr_cnt; QLabel *hk_dpu_rej_tc_lfr_cnt; // hk_lfr_last_exe_tc_ QLabel *hk_lfr_last_exe_tc_id; QLabel *hk_lfr_last_exe_tc_type; QLabel *hk_lfr_last_exe_tc_subtype; QLabel *hk_lfr_last_exe_tc_time; // hk_lfr_last_rej_tc_ QLabel *hk_lfr_last_rej_tc_id; QLabel *hk_lfr_last_rej_tc_type; QLabel *hk_lfr_last_rej_tc_subtype; QLabel *hk_lfr_last_rej_tc_time; QLabel *hk_lfr_le_cnt; QLabel *hk_lfr_me_cnt; QLabel *hk_lfr_he_cnt; // hk_lfr_last_er QLabel *hk_lfr_last_er_rid; QLabel *hk_lfr_last_er_code; QLabel *hk_lfr_last_er_time; //*********************************** //*********************************** //hk_lfr_vhdl_ QLabel *hk_lfr_vhdl_aa; QLabel *hk_lfr_vhdl_sm; QLabel *hk_lfr_vhdl_fft; QLabel *hk_lfr_vhdl_sr; QLabel *hk_lfr_vhdl_cic; QLabel *hk_lfr_vhdl_hk; QLabel *hk_lfr_vhdl_iir; QLabel *hk_lfr_vhdl_cal; // hk_lfr_dpu_spw_ QLabel *hk_lfr_dpu_spw_pkt_rcv_cnt; QLabel *hk_lfr_dpu_spw_pkt_sent_cnt; QLabel *hk_lfr_dpu_spw_tick_out_cnt; QLabel *hk_lfr_dpu_spw_last_time; // hk_lfr_last_fail_addr QLabel *hk_lfr_last_fail_addr; // hk_lfr_temp_ QLabel *hk_lfr_temp_scm; QLabel *hk_lfr_temp_pcb; QLabel *hk_lfr_temp_fpga; // hk_lfr_dpu_spw_ QLabel *hk_lfr_dpu_spw_parity; QLabel *hk_lfr_dpu_spw_disconnect; QLabel *hk_lfr_dpu_spw_escape; QLabel *hk_lfr_dpu_spw_credit; QLabel *hk_lfr_dpu_spw_write_sync; QLabel *hk_lfr_dpu_spw_rx_ahb; QLabel *hk_lfr_dpu_spw_tx_ahb; QLabel *hk_lfr_dpu_spw_header_crc; QLabel *hk_lfr_dpu_spw_data_crc; QLabel *hk_lfr_dpu_spw_early_eop; QLabel *hk_lfr_dpu_spw_invalid_addr; QLabel *hk_lfr_dpu_spw_eep; QLabel *hk_lfr_dpu_spw_rx_too_big; // hk_lfr_timecode_ QLabel *hk_lfr_timecode_erroneous; QLabel *hk_lfr_timecode_missing; QLabel *hk_lfr_timecode_invalid; // hk_lfr_time_ QLabel *hk_lfr_time_timecode_it; QLabel *hk_lfr_time_not_synchro; QLabel *hk_lfr_time_timecode_ctr; // hk_lfr_buffer_dpu_ QLabel *hk_lfr_buffer_dpu_tc_fifo; QLabel *hk_lfr_buffer_dpu_tm_fifo; // hk_lfr_ahb_ QLabel *hk_lfr_ahb_correctable; QLabel *hk_lfr_ahb_uncorrectable; QLabel *hk_lfr_ahb_fails_trans; // hk_lfr_adc_ QLabel *hk_lfr_adc_failure; QLabel *hk_lfr_adc_timeout; QLabel *hk_lfr_toomany_err; // hk_lfr_cpu_ QLabel *hk_lfr_cpu_write_err; QLabel *hk_lfr_cpu_ins_access_err; QLabel *hk_lfr_cpu_illegal_ins; QLabel *hk_lfr_cpu_privilegied_ins; QLabel *hk_lfr_cpu_register_hw; QLabel *hk_lfr_cpu_not_aligned; QLabel *hk_lfr_cpu_data_exception; QLabel *hk_lfr_cpu_div_exception; QLabel *hk_lfr_cpu_arith_overflow; }; #endif // HKDISPLAY_H