wfview/rigcommander.h

97 wiersze
2.5 KiB
C
Czysty Zwykły widok Historia

2018-06-19 19:58:52 +00:00
#ifndef RIGCOMMANDER_H
#define RIGCOMMANDER_H
#include <QObject>
#include "commhandler.h"
// This file figures out what to send to the comm and also
// parses returns into useful things.
class rigCommander : public QObject
{
Q_OBJECT
public:
rigCommander();
~rigCommander();
public slots:
void process();
void enableSpectOutput();
void disableSpectOutput();
void enableSpectrumDisplay();
void disableSpectrumDisplay();
void setSpectrumBounds();
void setSpectrumCenteredMode(bool centerEnable); // centered or band-wise
void setScopeSpan(char span);
void setScopeEdge(char edge);
void setFrequency(double freq);
void setMode(char mode);
void getFrequency();
void getMode();
2018-11-07 23:54:03 +00:00
void getPTT();
void setPTT(bool pttOn);
void setDataMode(bool dataOn);
2018-06-19 19:58:52 +00:00
void getDataMode();
void setCIVAddr(unsigned char civAddr);
void handleNewData(const QByteArray &data);
void getDebug();
signals:
void haveSpectrumData(QByteArray spectrum, double startFreq, double endFreq); // pass along data to UI
void haveFrequency(double frequencyMhz);
void haveMode(QString mode);
void haveDataMode(bool dataModeEnabled);
2018-06-19 19:58:52 +00:00
void haveSpectrumBounds();
void dataForComm(const QByteArray &outData);
void getMoreDebug();
void finished();
2018-11-07 23:54:03 +00:00
void havePTTStatus(bool pttOn);
2018-06-19 19:58:52 +00:00
private:
QByteArray stripData(const QByteArray &data, unsigned char cutPosition);
void parseData(QByteArray data); // new data come here
void parseCommand();
unsigned char bcdHexToDecimal(unsigned char in);
void parseFrequency();
float parseFrequency(QByteArray data, unsigned char lastPosition); // supply index where Mhz is found
QByteArray makeFreqPayload(double frequency);
void parseMode();
void parseSpectrum();
void parseDetailedRegisters1A05();
void parseRegisters1A();
2018-11-07 23:54:03 +00:00
void parseRegisters1C();
void parsePTT();
2018-06-19 19:58:52 +00:00
void sendDataOut();
void prepDataAndSend(QByteArray data);
void debugMe();
void printHex(const QByteArray &pdata, bool printVert, bool printHoriz);
commHandler * comm;
QByteArray payloadIn;
QByteArray echoPerfix;
QByteArray replyPrefix;
QByteArray genericReplyPrefix;
QByteArray payloadPrefix;
QByteArray payloadSuffix;
QByteArray rigData;
QByteArray spectrumLine;
double spectrumStartFreq;
double spectrumEndFreq;
double frequencyMhz;
unsigned char civAddr; // 0x94 is default = 148decimal
2018-11-07 23:54:03 +00:00
bool pttAllowed;
2018-06-19 19:58:52 +00:00
};
#endif // RIGCOMMANDER_H