##// END OF EJS Templates
the two bridges, Star Dundee and GRESB are fully functional
the two bridges, Star Dundee and GRESB are fully functional

File last commit:

r10:74729fe49979 default
r10:74729fe49979 default
Show More
gresb.h
101 lines | 3.1 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"
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);
signals:
void sendMessage(QString message);
void isOpen(bool);
void RMAP_write_reply_setText(QString);
void appendToLog(QString);
void ccsdsPacketAvailable(unsigned char*, unsigned int);
public slots:
void Open();
void Close();
int receiveSPWPacket(unsigned char requestID=0);
void commandCodeHasChanged(RMAP_command_codes code) {this->commandCode = code;}
void targetHasChanged(int target) {rmapTargetLogicalAddress = (unsigned char) target;}
void ccsdsPacketIsProcessed() {ccsdsPacketSEMAPHORE->tryAcquire();}
void reTestSPWLink();
//
void RMAPSendConnectionState(QAbstractSocket::SocketState socketState);
void RMAPReceiveConnectionState(QAbstractSocket::SocketState socketState);
void GRESBConnectionState(QAbstractSocket::SocketState socketState);
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 *rmapSourceLogicalAddressLabel;
QLabel *rmapSendStateLabel;
QLabel *rmapReceiveStateLabel;
QLabel *gresbStatusQueryLabel;
QLabel *gresbStatusQueryDialogLabel;
QDialog *gresbStatusQueryDialog;
QIPDialogBox* gresbBridgeIPDialogBox;
QSpinBox *gresbVirtualLinkSpinBox;
QSpinBox *spwLinkSpinBox;
QSpinBox *rmapSourceLogicalAddressSpinBox;
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