diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 7713de9c0..bf342a0ef 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -350,12 +350,15 @@ transaction_write: skip |= strncmp(cmdstr, "RU", 2) == 0; skip |= strncmp(cmdstr, "RD", 2) == 0; skip |= strncmp(cmdstr, "KYW", 3) == 0; + skip |= strncmp(cmdstr, "KY ", 3) == 0; skip |= strncmp(cmdstr, "PS1", 3) == 0; skip |= strncmp(cmdstr, "PS0", 3) == 0; skip |= strncmp(cmdstr, "K22", 3) == 0; if (skip) { + // most command we give them a little time -- but not KY + if (strncmp(cmdstr, "KY ", 3)!= 0) hl_usleep(200 * 1000); // give little settle time for these commands goto transaction_quit; } @@ -364,7 +367,7 @@ transaction_write: // Malachite SDR cannot send ID after FA if (!datasize && priv->no_id) { RETURNFUNC2(RIG_OK); } - if (!datasize) + if (!datasize && strncmp(cmdstr, "KY",2)!=0) { rig->state.transaction_active = 0; diff --git a/simulators/simelecraft.c b/simulators/simelecraft.c index 91c2c0478..70c8f2e38 100644 --- a/simulators/simelecraft.c +++ b/simulators/simelecraft.c @@ -440,6 +440,17 @@ int main(int argc, char *argv[]) { sscanf(buf, "RA$%d;", &rxattenuatorB); } + else if (strncmp(buf, "KY;", 3)==0) + { + int status = 0; + printf("KY query\n"); + SNPRINTF(buf, sizeof(buf), "KY%d;", status); + n = write(fd, buf, strlen(buf)); + } + else if (strncmp(buf, "KY",2)==0) + { + printf("Morse: %s\n", buf); + } else if (strlen(buf) > 0) { fprintf(stderr, "Unknown command: %s\n", buf);