##// 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
gresb.h
109 lines | 3.5 KiB | text/x-c | CLexer
#ifndef GRESB_H
#define GRESB_H
#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QSpinBox>
#include <QGridLayout>
#include <QTcpSocket>
#include <QDialog>
#include <QSemaphore>
#include "gresbstatusenquiry.h"
#include "rmapoperations.h"
#include "qipdialogbox.h"
#include "ccsds.h"
class gresb : public QWidget
{
Q_OBJECT
public:
explicit gresb(QWidget *parent = 0);
~gresb();
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);
unsigned int storeCCSDSPacket(unsigned char *ccsdsPacket, unsigned int size);
QList<ccsdsPacketToProcess_t> ccsdsPacketStore;
signals:
void sendMessage(QString message);
void isOpen(bool);
void RMAP_write_reply_setText(QString);
void appendToLog(QString);
void ccsdsPacketAvailable(unsigned char*, unsigned int);
void packetStoreNotEmpty();
public slots:
void Open();
void Close();
int receiveSPWPacketLoop(unsigned char requestID=0);
int receiveSPWPacket(unsigned char requestID=0);
void commandCodeHasChanged(RMAP_command_codes code) {this->commandCode = code;}
void targetHasChanged(int target) {rmapTargetLogicalAddress = (unsigned char) target;}
void sourceHasChanged(int source) {rmapSourceLogicalAddress = (unsigned char) source;}
void ccsdsPacketIsProcessed() {ccsdsPacketSEMAPHORE->tryAcquire();}
void reTestSPWLink();
//
void RMAPSendConnectionState(QAbstractSocket::SocketState socketState);
void RMAPReceiveConnectionState(QAbstractSocket::SocketState socketState);
void GRESBConnectionState(QAbstractSocket::SocketState socketState);
//
void setIP(unsigned char address1, unsigned char address2, unsigned char address3, unsigned char address4)
{this->gresbBridgeIPDialogBox->setIP(address1, address2, address3, address4);}
private slots:
int GRESBStatusQuery();
private:
unsigned int WriteBLOCK(char *data,unsigned int nbBytes,unsigned int address=0);
unsigned int ReadBLOCK(unsigned int nbBytes,unsigned int address=0);
void acquireRMAPSemaphore() {rmapPacketSEMAPHORE->tryAcquire();}
void acquireCCSDSSemaphore() {ccsdsPacketSEMAPHORE->tryAcquire();}
int GRESBStatusQueryRequest(GresbStatusQueryOption option, char link);
unsigned char rmapTargetLogicalAddress ;
unsigned char rmapSourceLogicalAddress ;
RMAP_command_codes commandCode;
QPushButton *gresbStatusQueryRetryButton;
QPushButton *gresbStatusQueryAbortButton;
QLabel *gresbBridgeIPLabel;
QLabel *gresbVirtualLinkLabel;
QLabel *spwLinkLabel;
QLabel *rmapSendStateLabel;
QLabel *rmapReceiveStateLabel;
QLabel *gresbStatusQueryLabel;
QLabel *gresbStatusQueryDialogLabel;
QDialog *gresbStatusQueryDialog;
QIPDialogBox* gresbBridgeIPDialogBox;
QSpinBox *gresbVirtualLinkSpinBox;
QSpinBox *spwLinkSpinBox;
QGridLayout *connectionLayout;
QGridLayout *gresbStatusQueryDialogLayout;
QTcpSocket *RMAPSend_SOCKET;
QTcpSocket *RMAPReceive_SOCKET;
QTcpSocket *GRESBStatusQuery_SOCKET;
gresbStatusEnquiry* spwLinkStatusEnquiry;
// Packet receiver
QSemaphore *rmapPacketSEMAPHORE;
QSemaphore *ccsdsPacketSEMAPHORE;
char* rmapPacket; // The buffer to receive RMAP READ packets
unsigned char *ccsdsPacket;
char *spwPacket;
unsigned int rmapPacketSize;
unsigned int ccsdsPacketSize;
};
#endif // GRESB_H