From d552803f869d5d161b6fa97c001d9ad01ee954d7 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 13 Mar 2026 16:38:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArbiterCommand.c | 61 ++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/ArbiterCommand.c b/ArbiterCommand.c index a272a62..1980d4f 100644 --- a/ArbiterCommand.c +++ b/ArbiterCommand.c @@ -26,45 +26,50 @@ void sendVers(tAtCmd *AtCmd) { void SerialCommand_Scheduler(tTaskSerial *env) { - if (AtCmdRxBeginWithStatic(&env->At, "T")) { + while (AtCmdReceiveNextLine(&env->At, SystemWaitForever) == AT_OK) { - uint8_t data[8]; - uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], &env->At.rxBuffer.data[9]); + if (AtCmdRxBeginWithStatic(&env->At, "T")) { - uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2; + uint8_t data[8]; + uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], + &env->At.rxBuffer.data[9]); - if (len > 16) { - len = 16; + uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2; + + if (len > 16) { + len = 16; + } + + uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[9], len); + + env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 0, env->numberMailBox, 1000); + + sendOk(&env->At); } - uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[9], len); + if (AtCmdRxBeginWithStatic(&env->At, "t")) { - env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 0, env->numberMailBox, 1000); + uint8_t data[8]; + uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], + &env->At.rxBuffer.data[17]); - sendOk(&env->At); - } + uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[17] - 2; - if (AtCmdRxBeginWithStatic(&env->At, "t")) { + if (len > 16) { + len = 16; + } - uint8_t data[8]; - uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], &env->At.rxBuffer.data[17]); + uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[17], len); - uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[17] - 2; + env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 1, env->numberMailBox, 1000); - if (len > 16) { - len = 16; + sendOk(&env->At); } - uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[17], len); - - env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 1, env->numberMailBox, 1000); - - sendOk(&env->At); - } - - if (AtCmdRxBeginWithStatic(&env->At, "V")) { - sendVers(&env->At); - sendOk(&env->At); + if (AtCmdRxBeginWithStatic(&env->At, "V")) { + sendVers(&env->At); + sendOk(&env->At); + } } } @@ -105,7 +110,7 @@ static _Noreturn void Serial_UART_Thread(tTaskSerial *env) { osMutexRelease(env->access); } - SystemDelayMs(1000); + SystemDelayMs(1); } } @@ -151,7 +156,7 @@ static _Noreturn void Serial_USB_Thread(tTaskSerial *env) { osMutexRelease(env->access); } - SystemDelayMs(1000); + SystemDelayMs(1); } }