|
|
/*------------------------------------------------------------------------------
|
|
|
-- 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 <QWidget>
|
|
|
#include <QPushButton>
|
|
|
#include <QLabel>
|
|
|
#include <QSlider>
|
|
|
#include <QSpinBox>
|
|
|
#include <QGridLayout>
|
|
|
#include <QCheckBox>
|
|
|
#include <QFile>
|
|
|
#include <QTextStream>
|
|
|
#include <QFileDialog>
|
|
|
#include <QDir>
|
|
|
#include <QDialog>
|
|
|
#include <QCloseEvent>
|
|
|
#include <QTabWidget>
|
|
|
#include <QTextEdit>
|
|
|
#include <QRadioButton>
|
|
|
#include <QGroupBox>
|
|
|
|
|
|
#include <rmapoperations.h>
|
|
|
#include <gresbstatusenquiry.h>
|
|
|
#include <stardundee.h>
|
|
|
#include <gresb.h>
|
|
|
#include <wfdisplay.h>
|
|
|
#include <parameterdump.h>
|
|
|
|
|
|
#include "qipdialogbox.h"
|
|
|
#include "tmstatistics.h"
|
|
|
#include "tmechobridge.h"
|
|
|
#include "entermode.h"
|
|
|
#include "lfractions.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;
|
|
|
LFRActions* lfrActions;
|
|
|
|
|
|
// 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
|
|
|
|