kopia lustrzana https://gitlab.com/eliggett/wfview
82 wiersze
1.6 KiB
C++
82 wiersze
1.6 KiB
C++
#ifndef RIGCTLD_H
|
|
#define RIGCTLD_H
|
|
|
|
#include <QObject>
|
|
#include <QDebug>
|
|
#include <QTcpServer>
|
|
#include <QTcpSocket>
|
|
#include <QSet>
|
|
#include <QDataStream>
|
|
|
|
#include <map>
|
|
#include <vector>
|
|
#include <typeindex>
|
|
|
|
#include "rigcommander.h"
|
|
|
|
class rigCtlD : public QTcpServer
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit rigCtlD(QObject *parent=Q_NULLPTR);
|
|
virtual ~rigCtlD();
|
|
|
|
int startServer(qint16 port);
|
|
void stopServer();
|
|
rigCapabilities rigCaps;
|
|
|
|
signals:
|
|
void onStarted();
|
|
void onStopped();
|
|
void sendData(QString data);
|
|
void setFrequency(freqt freq);
|
|
void setPTT(bool state);
|
|
void setMode(unsigned char mode, unsigned char modeFilter);
|
|
|
|
public slots:
|
|
virtual void incomingConnection(qintptr socketDescriptor);
|
|
void receiveRigCaps(rigCapabilities caps);
|
|
void receiveStateInfo(rigStateStruct* state);
|
|
void receiveFrequency(freqt freq);
|
|
|
|
private:
|
|
rigStateStruct* rigState = Q_NULLPTR;
|
|
};
|
|
|
|
|
|
class rigCtlClient : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
explicit rigCtlClient(int socket, rigCapabilities caps, rigStateStruct *state, rigCtlD* parent = Q_NULLPTR);
|
|
int getSocketId();
|
|
|
|
|
|
public slots:
|
|
void socketReadyRead();
|
|
void socketDisconnected();
|
|
void closeSocket();
|
|
void sendData(QString data);
|
|
|
|
protected:
|
|
int sessionId;
|
|
QTcpSocket* socket = Q_NULLPTR;
|
|
QString commandBuffer;
|
|
|
|
private:
|
|
void dumpCaps(QString sep);
|
|
rigCapabilities rigCaps;
|
|
rigStateStruct* rigState = Q_NULLPTR;
|
|
rigCtlD* parent;
|
|
QString getMode(unsigned char mode, bool datamode);
|
|
unsigned char getMode(QString modeString);
|
|
QString getFilter(unsigned char mode, unsigned char filter);
|
|
|
|
};
|
|
|
|
|
|
#endif
|