diff --git a/rigcommander.cpp b/rigcommander.cpp index 6d9ab2d..00ab201 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -583,16 +583,28 @@ void rigCommander::sendLevelCmd(unsigned char levAddr, unsigned char level) void rigCommander::parseRegisters1C() { // PTT lives here + // Not sure if 02 is the right place to switch. + // TODO: test this function switch(payloadIn[02]) { case '\x00': parsePTT(); break; + case '\x01': + parseATU(); + // ATU status + break; default: break; } } +void rigCommander::parseATU() +{ + // TODO + // emit haveATUStatus(payload [??] ); +} + void rigCommander::parsePTT() { // read after payloadIn[02] @@ -884,6 +896,25 @@ void rigCommander::startATU() prepDataAndSend(payload); } +void rigCommander::setATU(bool enabled) +{ + QByteArray payload; + + if(enabled) + { + payload.setRawData("\x1C\x01\x01", 3); + } else { + payload.setRawData("\x1C\x01\x00", 3); + } + prepDataAndSend(payload); +} + +void rigCommander::getATUStatus() +{ + QByteArray payload("\x1C\x01"); + prepDataAndSend(payload); +} + QByteArray rigCommander::stripData(const QByteArray &data, unsigned char cutPosition) { QByteArray rtndata; diff --git a/rigcommander.h b/rigcommander.h index 5514690..f5e4823 100644 --- a/rigcommander.h +++ b/rigcommander.h @@ -46,6 +46,8 @@ public slots: void setRfGain(unsigned char level); void setAfGain(unsigned char level); void startATU(); + void setATU(bool enabled); + void getATUStatus(); void setCIVAddr(unsigned char civAddr); void handleNewData(const QByteArray &data); void getDebug(); @@ -64,6 +66,7 @@ signals: void getMoreDebug(); void finished(); void havePTTStatus(bool pttOn); + void haveATUStatus(unsigned char status); private: @@ -81,6 +84,7 @@ private: void parseBandStackReg(); void parseRegisters1C(); void parsePTT(); + void parseATU(); void parseLevels(); // register 0x14 void sendLevelCmd(unsigned char levAddr, unsigned char level); void sendDataOut(); diff --git a/wfmain.cpp b/wfmain.cpp index 0f735e0..699b37a 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -86,6 +86,8 @@ wfmain::wfmain(QWidget *parent) : connect(rig, SIGNAL(haveRfGain(unsigned char)), this, SLOT(receiveRfGain(unsigned char))); connect(rig, SIGNAL(haveAfGain(unsigned char)), this, SLOT(receiveAfGain(unsigned char))); connect(this, SIGNAL(startATU()), rig, SLOT(startATU())); + connect(this, SIGNAL(setATU(bool)), rig, SLOT(setATU(bool))); + // Plot user interaction connect(plot, SIGNAL(mouseDoubleClick(QMouseEvent*)), this, SLOT(handlePlotDoubleClick(QMouseEvent*))); @@ -1024,5 +1026,15 @@ void wfmain::on_tuneNowBtn_clicked() { emit startATU(); showStatusBarText("Starting ATU cycle..."); - +} + +void wfmain::on_tuneEnableChk_clicked(bool checked) +{ + emit setATU(checked); + if(checked) + { + showStatusBarText("Turning on ATU"); + } else { + showStatusBarText("Turning off ATU"); + } } diff --git a/wfmain.h b/wfmain.h index 2519b55..73881bb 100644 --- a/wfmain.h +++ b/wfmain.h @@ -41,6 +41,7 @@ signals: void setRfGain(unsigned char level); void setAfGain(unsigned char level); void startATU(); + void setATU(bool atuEnabled); void spectOutputEnable(); void spectOutputDisable(); void scopeDisplayEnable(); @@ -160,6 +161,8 @@ private slots: void on_tuneNowBtn_clicked(); + void on_tuneEnableChk_clicked(bool checked); + private: Ui::wfmain *ui; QCustomPlot *plot; // line plot