From 50cc9ded0ad4996837b92c74805a8a5da16d4394 Mon Sep 17 00:00:00 2001 From: Matthias Wirth Date: Mon, 16 Sep 2024 13:30:59 +0200 Subject: [PATCH] better serial debugging timestamps --- net_io.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/net_io.c b/net_io.c index f8fd78b5..0f0d16ce 100644 --- a/net_io.c +++ b/net_io.c @@ -4433,13 +4433,13 @@ static int readClient(struct client *c, int64_t now) { nread = recv(c->fd, c->buf + c->buflen, left, 0); } else { // read instead of recv for modesbeast / gns-hulc .... - if (Modes.debug_serial) { - fprintTimePrecise(stderr, now); + if (0 && Modes.debug_serial) { + fprintTimePrecise(stderr, mstime()); fprintf(stderr, " serial read ... fd: %d maxbytes: %d\n", c->fd, left); } nread = read(c->fd, c->buf + c->buflen, left); - if (Modes.debug_serial) { - fprintTimePrecise(stderr, now); + if (nread > -1 && Modes.debug_serial) { + fprintTimePrecise(stderr, mstime()); fprintf(stderr, " serial read return value: %d\n", nread); } } @@ -4459,6 +4459,9 @@ static int readClient(struct client *c, int64_t now) { return 0; } // Other errors + if (!c->remote) { + fprintf(stderr, "Serial client read error: %s\n", strerror(err)); + } if (Modes.debug_net) { fprintf(stderr, "%s: Socket Error: %s: %s port %s (fd %d, SendQ %d, RecvQ %d)\n", c->service->descr, strerror(err), c->host, c->port, @@ -5395,7 +5398,7 @@ void modesNetPeriodicWork(void) { dump_beast_check(now); int64_t wait_ms; - if (Modes.serial_client) { + if (Modes.sdr_type == SDR_MODESBEAST || Modes.sdr_type == SDR_GNS) { wait_ms = 20; } else if (Modes.sdr_type != SDR_NONE) { // NO WAIT WHEN USING AN SDR !! IMPORTANT !! @@ -5419,8 +5422,8 @@ void modesNetPeriodicWork(void) { Modes.services_in.event_progress = 0; Modes.services_out.event_progress = 0; - if (Modes.debug_serial) { - fprintTimePrecise(stderr, now); fprintf(stderr, " event count %d wait_ms %d\n", Modes.net_event_count, (int) wait_ms); + if (Modes.debug_serial && Modes.net_event_count > -1) { + fprintTimePrecise(stderr, mstime()); fprintf(stderr, " event count %d wait_ms %d\n", Modes.net_event_count, (int) wait_ms); } if (0 && Modes.net_event_count > 0) { @@ -5465,18 +5468,19 @@ void modesNetPeriodicWork(void) { if (Modes.sdrInitialized && (Modes.sdr_type == SDR_MODESBEAST || Modes.sdr_type == SDR_GNS)) { if (!Modes.serial_client) { if (Modes.debug_serial) { - fprintTimePrecise(stderr, now); + fprintTimePrecise(stderr, mstime()); fprintf(stderr, " serial: creating socket client ... \n"); } Modes.serial_client = createSocketClient(Modes.beast_in_service, Modes.beast_fd); if (Modes.debug_serial) { - fprintTimePrecise(stderr, now); + fprintTimePrecise(stderr, mstime()); fprintf(stderr, " serial: creating socket client ... done\n"); } } if (Modes.serial_client->service) { modesReadFromClient(Modes.serial_client, mb); - } else { + } + if (!Modes.serial_client->service) { fprintf(stderr, "Serial client closed unexpectedly, exiting!\n"); setExit(2); }