##// END OF EJS Templates
Development of the waveform storage ability of the lfrgse
Development of the waveform storage ability of the lfrgse

File last commit:

r19:7f565009af54 default
r42:e422d9305701 default
Show More
gresb.h
108 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"
#include "tmpackettoread.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);
gresbStatusEnquiry* spwLinkStatusEnquiry;
signals:
void sendMessage(QString message);
void sendPacket(TMPacketToRead*);
void isOpen(bool);
void RMAP_write_reply_setText(QString);
void appendToLog(QString);
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;
// 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