From 29ad027b6359fda2322215bcea24150b2954b1da Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Sun, 29 Jan 2023 12:46:48 -0600 Subject: [PATCH] Update simicom9700.c --- simulators/simicom9700.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/simulators/simicom9700.c b/simulators/simicom9700.c index 25f8996b2..5da7d709c 100644 --- a/simulators/simicom9700.c +++ b/simulators/simicom9700.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include "../src/misc.h" @@ -84,7 +85,7 @@ again: } } - printf("Error???\n"); + printf("Error??? c=x%02x\n", c); return 0; } @@ -234,6 +235,26 @@ void frameParse(int fd, unsigned char *frame, int len) { static int power_level = 0; + case 0x07: + case 0x08: + if (frame[6] != 0xfd) + { + frame[6] = 0xfb; + dumphex(frame,7); + n = write(fd, frame, 7); + printf("ACK x14 x08\n"); + } + else + { + to_bcd(&frame[6], (long long)128, 2); + frame[8] = 0xfb; + dumphex(frame,9); + n = write(fd, frame, 9); + printf("SEND x14 x08\n"); + } + + break; + case 0x0a: printf("Using power level %d\n", power_level); power_level += 10; @@ -298,6 +319,12 @@ void frameParse(int fd, unsigned char *frame, int len) n = write(fd, frame, 7); break; + case 0x19: // miscellaneous things + frame[5] = 0x94; + frame[6] = 0xfd; + n = write(fd, frame, 7); + break; + case 0x1a: // miscellaneous things switch (frame[5]) { @@ -474,7 +501,7 @@ void frameParse(int fd, unsigned char *frame, int len) default: printf("cmd 0x%02x unknown\n", frame[4]); } - if (n == 0) { printf("Write failed?\n"); } + if (n == 0) { printf("Write failed=%s\n", strerror(errno)); } // don't care about the rig type yet