/*------------------------------------------------------------------------------ -- This file is a part of the LPPMON Software -- Copyright (C) 20011, Laboratory of Plasma Physics - CNRS -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------*/ /*-- Author : Paul Leroy -- Mail : paul.leroy@lpp.polytechnique.fr ----------------------------------------------------------------------------*/ #ifndef RMAPPLUGINUI_H #define RMAPPLUGINUI_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "qipdialogbox.h" #include "tmstatistics.h" #include "tmechobridge.h" enum selectedBridge{ selectedBridgeIsUnknown, selectedBridgeIsGRESB, selectedBridgeIsStarDundee }; class rmapPluginUI : public QWidget { Q_OBJECT public: explicit rmapPluginUI(QWidget *parent = 0); ~rmapPluginUI(); QPushButton* rmapOpenCommunicationButton; QPushButton* rmapCloseCommunicationButton; QPushButton* logFileChooseButton; QPushButton* gresbStatusQueryRetryButton; QPushButton* gresbStatusQueryAbortButton; QPushButton* sendCCSDSCommandButton; QPushButton* send_TC_LFR_UPDATE_TIME_Button; QPushButton* reset_TC_LFR_UPDATE_TIME_Button; QPushButton* clearConsoleButton; QRadioButton* selectGRESB_BUTTON; QRadioButton* selectStarDundee_BUTTON; QGroupBox *selection_GROUPBOX; QSpinBox* gresbVirtualLinkSpinBox; QSpinBox* spwLinkSpinBox; QSpinBox* rmapSourceLogicalAddressSpinBox; QSpinBox* rmapTargetLogicalAddressSpinBox; QSpinBox* CCSDSTargetLogicalAddressSpinBox; QCheckBox *logEnableCheckBox; QCheckBox *RMAP_write_verify; QCheckBox *RMAP_write_reply; QLabel* rmapSendStateLabel; QLabel* rmapReceiveStateLabel; QLabel* gresbStatusQueryLabel; QLabel* gresbStatusQueryDialogLabel; QLabel* sendCCSDSCommandLabel; QLabel* nbPacketInStore; QDialog* gresbStatusQueryDialog; QTextEdit* console; WFDisplay* wfDisplay; TMStatistics* tmStatistics; // SPACEWIRE BRIDGES StarDundee *starDundee; gresb *gresbBridge; // TM Echo Bridge TMEchoBridge * tmEchoBridge; bool islogfileenable(); void appendToLogFile(const QString & text); void closeEvent(QCloseEvent *event); public slots: void chooseLogFile(); void logFileEnDisable(int state); RMAP_command_codes getCommandCode(); private slots: void selectionBetweenGresbAndStarDundee(); void isOpen(bool flag); signals: void connectPortsig(QString PortName,int baudrate); void setLogFileName(QString FileName); void commandCodeHasChanged(RMAP_command_codes commandCode); void bridgeHasChanged(selectedBridge bridge); void targetHasChanged(unsigned char target); void sourceHasChanged(unsigned char source); private: QLabel *gresbBridgeIPLabel; QLabel *gresbVirtualLinkLabel; QLabel *spwLinkLabel; QLabel *rmapSourceLogicalAddressLabel; QLabel *rmapTargetLogicalAddressLabel; QLabel *logFileName; QGridLayout *bridgeSelection_LAYOUT; QGridLayout *connectionLayout; QGridLayout *gresbStatusQueryDialogLayout; QGridLayout *generalParameters_LAYOUT; QVBoxLayout *selectionLayout; QVBoxLayout *mainLayout; QVBoxLayout *ccsdsLayout; QVBoxLayout *consoleLayout; QTabWidget *spwTabWidget; QWidget* bridgeWidget; QGroupBox *gresb_GROUPBOX; QGroupBox *stardundee_GROUPBOX; QGroupBox *generalParameters_GROUPBOX; QFile *logFile; QTextStream *logFileStrm; bool logFileEn; }; #endif // RMAPPLUGINUI_H