More fixes to rigctld

lv2
Phil Taylor 2021-08-05 11:29:20 +01:00
rodzic f36cefac3a
commit 273132de89
1 zmienionych plików z 27 dodań i 14 usunięć

Wyświetl plik

@ -80,7 +80,7 @@ void rigCtlClient::socketReadyRead()
{ {
QByteArray data = socket->readAll(); QByteArray data = socket->readAll();
commandBuffer.append(data); commandBuffer.append(data);
static QString sep = " "; QString sep = "\n";
static int num = 0; static int num = 0;
bool longReply = false; bool longReply = false;
char responseCode = 0; char responseCode = 0;
@ -129,19 +129,21 @@ void rigCtlClient::socketReadyRead()
} }
QStringList command = commandBuffer.mid(num).split(" "); QStringList command = commandBuffer.mid(num).split(" ");
if (command[0] == 0xf0 || command[0]=="chk_vfo") if (command[0] == 0xf0 || command[0] == "chk_vfo")
{ {
response.append(QString("%1").arg(rigState->currentVfo)); response.append(QString("%1").arg(rigState->currentVfo));
} }
else if (command[0] == "dump_state") else if (command[0] == "dump_state")
{ {
// Currently send "fake" state information until I can work out what is required! // Currently send "fake" state information until I can work out what is required!
response.append("1"); response.append("1");
response.append("1"); response.append("1");
response.append("0"); response.append("0");
response.append("150000.000000 1500000000.000000 0x1ff -1 -1 0x16000003 0xf"); response.append("150000.000000 1500000000.000000 0x1ff -1 -1 0x16000003 0xf");
response.append("0 0 0 0 0 0 0"); response.append("0 0 0 0 0 0 0");
response.append("0 0 0 0 0 0 0");
response.append("0x1ff 1"); response.append("0x1ff 1");
response.append("0x1ff 0");
response.append("0 0"); response.append("0 0");
response.append("0x1e 2400"); response.append("0x1e 2400");
response.append("0x2 500"); response.append("0x2 500");
@ -149,14 +151,16 @@ void rigCtlClient::socketReadyRead()
response.append("0x1 2400"); response.append("0x1 2400");
response.append("0x20 15000"); response.append("0x20 15000");
response.append("0x20 8000"); response.append("0x20 8000");
response.append("0x20 230000"); response.append("0x40 230000");
response.append("0 0"); response.append("0 0");
response.append("9900"); response.append("9900");
response.append("9900"); response.append("9900");
response.append("10000"); response.append("10000");
response.append("0"); response.append("0");
response.append("10");
response.append("10 20 30"); response.append("10 20 30");
response.append("0x3effffff"); response.append("0x3effffff");
response.append("0x3effffff");
response.append("0x7fffffff"); response.append("0x7fffffff");
response.append("0x7fffffff"); response.append("0x7fffffff");
response.append("0x7fffffff"); response.append("0x7fffffff");
@ -176,7 +180,7 @@ void rigCtlClient::socketReadyRead()
else if (command[0] == "F" || command[0] == "set_freq") else if (command[0] == "F" || command[0] == "set_freq")
{ {
setCommand = true; setCommand = true;
if (command.length()>1) if (command.length() > 1)
{ {
freqt freq; freqt freq;
bool ok; bool ok;
@ -204,11 +208,11 @@ void rigCtlClient::socketReadyRead()
} }
if (rigCaps.hasPTTCommand) { if (rigCaps.hasPTTCommand) {
response.append(QString("PTT type:\tRig capable")); response.append(QString("PTT type:\tRig capable"));
} }
response.append(QString("DCD type:\tRig capable")); response.append(QString("DCD type:\tRig capable"));
response.append(QString("Port type:\tNetwork link")); response.append(QString("Port type:\tNetwork link"));
} }
else if (command[0] == "t" || command[0] == "get_ptt") else if (command[0] == "t" || command[0] == "get_ptt")
{ {
if (rigCaps.hasPTTCommand) { if (rigCaps.hasPTTCommand) {
response.append(QString("%1").arg(rigState->ptt)); response.append(QString("%1").arg(rigState->ptt));
@ -218,8 +222,9 @@ void rigCtlClient::socketReadyRead()
responseCode = -1; responseCode = -1;
} }
} }
else if (command[0] == "T" || command[0] == "set_ptt") else if (command[0] == "T" || command[0] == "set_ptt")
{ {
setCommand = true;
if (rigCaps.hasPTTCommand) { if (rigCaps.hasPTTCommand) {
if (command.length() > 1 && command[1] == "0") { if (command.length() > 1 && command[1] == "0") {
emit parent->setPTT(false); emit parent->setPTT(false);
@ -278,7 +283,7 @@ void rigCtlClient::socketReadyRead()
emit parent->setSplit(0); emit parent->setSplit(0);
} }
} }
else if (command[0] == "\xf3" || command[0] == "get_vfo_info") else if (command[0] == "\xf3" || command[0] == "get_vfo_info")
{ {
if (longReply) { if (longReply) {
response.append(QString("Freq: %1").arg(rigState->vfoAFreq.Hz)); response.append(QString("Freq: %1").arg(rigState->vfoAFreq.Hz));
@ -326,33 +331,41 @@ void rigCtlClient::socketReadyRead()
if (width != -1 && width <= 1800) if (width != -1 && width <= 1800)
width = 2; width = 2;
else else
width = 1; width = 1;
emit parent->setMode(getMode(command[1]), width); emit parent->setMode(getMode(command[1]), width);
if (command[1].mid(0, 3) == "PKT") { if (command[1].mid(0, 3) == "PKT") {
emit parent->setDataMode(true, width); emit parent->setDataMode(true, width);
} }
else { else {
emit parent->setDataMode(false, width); emit parent->setDataMode(false, width);
} }
} }
} }
else if (command[0] == "s" || command[0] == "get_split_vfo") else if (command[0] == "s" || command[0] == "get_split_vfo")
{ {
response.append(QString("0")); response.append(QString("0"));
response.append(QString("VFOA")); response.append(QString("VFOA"));
} }
if (setCommand == true || responseCode != 0) { if (setCommand == true || responseCode != 0) {
response.append(QString("RPRT %1").arg(responseCode)); if (responseCode == 0) {
response.append(QString("RPRT 0"));
}
else {
response.append(QString("RPRT %1").arg(responseCode));
}
} }
for (QString str : response) for (QString str : response)
{ {
sendData(QString("%1%2").arg(str).arg(sep)); sendData(QString("%1%2").arg(str).arg(sep));
} }
sendData(QString("\n"));
if (sep != "\n") {
sendData(QString("\n"));
}
commandBuffer.clear(); commandBuffer.clear();
sep = " "; sep = " ";