Начало

This commit is contained in:
cfif 2026-03-13 16:38:05 +03:00
parent c086cbe1c1
commit d552803f86
1 changed files with 33 additions and 28 deletions

View File

@ -26,45 +26,50 @@ void sendVers(tAtCmd *AtCmd) {
void SerialCommand_Scheduler(tTaskSerial *env) { void SerialCommand_Scheduler(tTaskSerial *env) {
if (AtCmdRxBeginWithStatic(&env->At, "T")) { while (AtCmdReceiveNextLine(&env->At, SystemWaitForever) == AT_OK) {
uint8_t data[8]; if (AtCmdRxBeginWithStatic(&env->At, "T")) {
uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], &env->At.rxBuffer.data[9]);
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) { uint8_t len = &env->At.rxBuffer.data[env->At.rxBuffer.len] - &env->At.rxBuffer.data[9] - 2;
len = 16;
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]; uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[17], len);
uint32_t adr = iAsciiStringParseUnsignedLongDecimalNumber(&env->At.rxBuffer.data[1], &env->At.rxBuffer.data[17]);
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) { sendOk(&env->At);
len = 16;
} }
uint8_t size = iAsciiStringParseHexBytes(data, &env->At.rxBuffer.data[17], len); if (AtCmdRxBeginWithStatic(&env->At, "V")) {
sendVers(&env->At);
env->ioCAN->transmit(env->ioCAN->env, data, size, adr, 1, env->numberMailBox, 1000); sendOk(&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); osMutexRelease(env->access);
} }
SystemDelayMs(1000); SystemDelayMs(1);
} }
} }
@ -151,7 +156,7 @@ static _Noreturn void Serial_USB_Thread(tTaskSerial *env) {
osMutexRelease(env->access); osMutexRelease(env->access);
} }
SystemDelayMs(1000); SystemDelayMs(1);
} }
} }