##// END OF EJS Templates
Plugin modified to allow the launch of interactiv tests from the python interpreter...
Plugin modified to allow the launch of interactiv tests from the python interpreter the signal processPacketStoreNowSig is sent by the SLOT processPacketStoreLater(unsigned int delay) the SLOT WriteSPWDelay(QList<int> dataList, unsigned int delay) allows the storage of a TC for a sending after "delay" ms

File last commit:

r11:0c9852fa341b default
r11:0c9852fa341b default
Show More
rmapplugin.h
91 lines | 3.7 KiB | text/x-c | CLexer
/*------------------------------------------------------------------------------
-- This file is a part of the LPPMON Software
-- Copyright (C) 2011, Laboratory of Plasmas Physic - 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 : Alexis Jeandet
-- Mail : alexis.jeandet@lpp.polytechnique.fr
----------------------------------------------------------------------------*/
#ifndef DRIVER1_H
#define DRIVER1_H
#include <rmappluginui.h>
#include <rmapoperations.h>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QMainWindow>
#include <QTcpSocket>
#include <QTime>
#include <ccsds.h>
#include <QSemaphore>
#include <lppmonplugin.h>
#define APPENDTOLOG(message) this->UI->appendToLogFile(QTime::currentTime().toString() +":" + QString::number(QTime::currentTime().msec()) + ": " + message)
#define READ_WRITE_MAX_COUNTS 4096 // in words
#define RMAP_MAX_DATA_LENGTH 4*READ_WRITE_MAX_COUNTS // in bytes, shall be lower than the limit size of SPW packet of the GRESB bridge
#define RMAP_READ_REPLY_HEADER_LENGTH 12 // in bytes => ECSS
#define RMAP_READ_COMMAND_HEADER_LENGTH 16 // in bytes => ECSS
#define RMAP_DATA_CRC_LENGTH 1 // in bytes => ECSS
#define CCSDS_MAX_PACKET_LENGTH 4412 // in bytes, specified in the LFR Software Requirements Specification
class rmapplugin : public lppmonplugin
{
Q_OBJECT
public:
explicit rmapplugin(QWidget *parent = 0);
~rmapplugin();
public slots:
unsigned int Write(unsigned int *Value,unsigned int count,unsigned int address=0);
unsigned int Read(unsigned int *Value,unsigned int count,unsigned int address=0);
unsigned int WriteSPW(char *Value, unsigned int count, char targetLogicalAddress, char userApplication);
void setValueTargetAddress(unsigned char newAddress);
void setValueSourceAddress(unsigned char newAddress);
void openBridge();
void closeBridge();
void processCCSDSPacket(unsigned char *ccsdsPacket, unsigned int size);
void processPacketStore();
//
void sendCCSDS();
void send_TC_LFR_UPDATE_TIME();
void reset_TC_LFR_UPDATE_TIME();
void displayOnConsole(QString message) {this->UI->console->append(message);}
//
void RMAP_write_reply_setText(QString text);
void appendToLog(QString text);
//
void activatePlugin(bool flag) {emit activateSig(flag);}
void bridgeHasChanged(selectedBridge bridge) {currentBridge = bridge;}
signals:
void ccsdsPacketIsProcessed();
private:
selectedBridge currentBridge;
rmapPluginUI* UI;
QTcpSocket* GRESBStatusQuery_SOCKET;
QTcpSocket* RMAPSend_SOCKET;
QTcpSocket* RMAPReceive_SOCKET;
ccsds* ccsds_command;
unsigned int rmapPacketSize;
unsigned int time_COARSE;
unsigned int time_FINE;
char timeCode;
};
#endif // DRIVER1_H