From c9fa80f77f7715b943b0c51bb994014d0e9f0571 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 16 Nov 2020 13:41:10 +0100 Subject: [PATCH] cmd handler stuff --- cube/User/Src/cmdHandler.c | 39 +++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/cube/User/Src/cmdHandler.c b/cube/User/Src/cmdHandler.c index 6c937f6..09014d2 100644 --- a/cube/User/Src/cmdHandler.c +++ b/cube/User/Src/cmdHandler.c @@ -79,27 +79,36 @@ void cmdHandlerEngine(void *handle) { case 3: coloredMsg(LOG_YELLOW, "che, send banner"); - - resultSend = send(CMD_SOCK, banner, strlen(banner)); - coloredMsg(LOG_YELLOW, "che, sent banner, send returns 0x%02x", resultSend); - - state = 4; + sockState = getSn_SR(CMD_SOCK); + if (sockState != SOCK_ESTABLISHED) { + coloredMsg(LOG_YELLOW, "che sockState is 0x%02x when trying to send banner", sockState); + state = 2; + } else { + resultSend = send(CMD_SOCK, banner, strlen(banner)); + coloredMsg(LOG_YELLOW, "che, sent banner, send returns 0x%02x", resultSend); + state = 4; + } break; case 4: - // coloredMsg(LOG_YELLOW, "che, now waiting for some input"); - receivedOctets = getSn_RX_RSR(CMD_SOCK); - // coloredMsg(LOG_YELLOW, "che, getSn_RxMAX returns %d", res16); + sockState = getSn_SR(CMD_SOCK); + if (sockState != SOCK_ESTABLISHED) { + coloredMsg(LOG_YELLOW, "che sockState is 0x%02x when trying to receive something", sockState); + state = 2; + } else { + // coloredMsg(LOG_YELLOW, "che, now waiting for some input"); + receivedOctets = getSn_RX_RSR(CMD_SOCK); + // coloredMsg(LOG_YELLOW, "che, getSn_RxMAX returns %d", res16); - if (receivedOctets > 0) { - memset(receiveBuffer, 0, sizeof(receiveBuffer)); - resultRecv = recv(CMD_SOCK, receiveBuffer, sizeof(receiveBuffer)); - coloredMsg(LOG_YELLOW, "che, recv returns 0x%02x", resultRecv); - if (resultRecv > 0) { - coloredMsg(LOG_YELLOW, "che, received: %s", receiveBuffer); + if (receivedOctets > 0) { + memset(receiveBuffer, 0, sizeof(receiveBuffer)); + resultRecv = recv(CMD_SOCK, receiveBuffer, sizeof(receiveBuffer)); + coloredMsg(LOG_YELLOW, "che, recv returns 0x%02x", resultRecv); + if (resultRecv > 0) { + coloredMsg(LOG_YELLOW, "che, received: %s", receiveBuffer); + } } } - break; case 255: