Обновление

This commit is contained in:
cfif 2025-12-09 17:09:13 +03:00
parent 325f71c3fc
commit 7539d680df
2 changed files with 15 additions and 12 deletions

View File

@ -17,12 +17,14 @@ typedef struct {
size_t length; size_t length;
} rxLine; } rxLine;
tSerialPortIO *serialCommandPort; tSerialPortIO *serialCommandPortIn;
tSerialPortIO *serialCommandPortOut;
} tCliCmd; } tCliCmd;
void CliCmd_Init(tCliCmd *env, tSerialPortIO *io, uint8_t *data, size_t dataLen); void CliCmd_Init(tCliCmd *env, tSerialPortIO *io_in, tSerialPortIO *io_out, uint8_t *data, size_t dataLen);
#define CliCmd_InitStatic(ENV, IO, DATA) CliCmd_Init(ENV,IO,DATA,sizeof(DATA)); #define CliCmd_InitStatic(ENV, IO_IN, IO_OUT, DATA) CliCmd_Init(ENV,IO_IN,IO_OUT,DATA,sizeof(DATA));
void CliCmd_WaitLine(tCliCmd *env); void CliCmd_WaitLine(tCliCmd *env);

View File

@ -7,8 +7,9 @@
#include "AsciiStringAssmeblingUtils.h" #include "AsciiStringAssmeblingUtils.h"
#include "SystemDelayInterface.h" #include "SystemDelayInterface.h"
void CliCmd_Init(tCliCmd *env, tSerialPortIO *io, uint8_t *data, size_t dataLen) { void CliCmd_Init(tCliCmd *env, tSerialPortIO *io_in, tSerialPortIO *io_out, uint8_t *data, size_t dataLen) {
env->serialCommandPort = io; env->serialCommandPortIn = io_in;
env->serialCommandPortOut = io_out;
env->rxLine.limit = dataLen; env->rxLine.limit = dataLen;
env->rxLine.data = (char *) data; env->rxLine.data = (char *) data;
vAsciiStringInit(env->rxLine.data, &env->rxLine.length, env->rxLine.limit); vAsciiStringInit(env->rxLine.data, &env->rxLine.length, env->rxLine.limit);
@ -20,11 +21,11 @@ void CliCmd_WaitLine(tCliCmd *env) {
//получаем строку //получаем строку
//печатаем ее в ответ //печатаем ее в ответ
SerialPortClearRxBuffer(env->serialCommandPort); SerialPortClearRxBuffer(env->serialCommandPortIn);
vAsciiStringClean(env->rxLine.data, &env->rxLine.length); vAsciiStringClean(env->rxLine.data, &env->rxLine.length);
env->rxLine.length = SerialPortReceiveTo( env->rxLine.length = SerialPortReceiveTo(
env->serialCommandPort, env->serialCommandPortIn,
(uint8_t *) env->rxLine.data, (uint8_t *) env->rxLine.data,
env->rxLine.limit, env->rxLine.limit,
'\n', '\n',
@ -43,11 +44,11 @@ void CliCmd_WaitLineDelay(tCliCmd *env, uint32_t delay) {
//получаем строку //получаем строку
//печатаем ее в ответ //печатаем ее в ответ
SerialPortClearRxBuffer(env->serialCommandPort); SerialPortClearRxBuffer(env->serialCommandPortIn);
vAsciiStringClean(env->rxLine.data, &env->rxLine.length); vAsciiStringClean(env->rxLine.data, &env->rxLine.length);
env->rxLine.length = SerialPortReceiveTo( env->rxLine.length = SerialPortReceiveTo(
env->serialCommandPort, env->serialCommandPortIn,
(uint8_t *) env->rxLine.data, (uint8_t *) env->rxLine.data,
env->rxLine.limit, env->rxLine.limit,
'\n', '\n',
@ -62,14 +63,14 @@ void CliCmd_WaitLineDelay(tCliCmd *env, uint32_t delay) {
} }
void CliCmd_ClearRx(tCliCmd *env) { void CliCmd_ClearRx(tCliCmd *env) {
SerialPortClearRxBuffer(env->serialCommandPort); SerialPortClearRxBuffer(env->serialCommandPortIn);
vAsciiStringClean(env->rxLine.data, &env->rxLine.length); vAsciiStringClean(env->rxLine.data, &env->rxLine.length);
} }
bool CliCmd_HasCompleteLine(tCliCmd *env) { bool CliCmd_HasCompleteLine(tCliCmd *env) {
env->rxLine.length = SerialPortReceiveTo( env->rxLine.length = SerialPortReceiveTo(
env->serialCommandPort, env->serialCommandPortIn,
(uint8_t *) env->rxLine.begin, (uint8_t *) env->rxLine.begin,
env->rxLine.limit, env->rxLine.limit,
'\n', '\n',
@ -84,7 +85,7 @@ bool CliCmd_HasCompleteLine(tCliCmd *env) {
} }
void CliCmd_Print(tCliCmd *cli, char *text, uint16_t len) { void CliCmd_Print(tCliCmd *cli, char *text, uint16_t len) {
SerialPortTransmit(cli->serialCommandPort, (uint8_t *) text, len, SystemWaitForever); SerialPortTransmit(cli->serialCommandPortOut, (uint8_t *) text, len, SystemWaitForever);
} }
void CliCmd_PrintHex(tCliCmd *cli, uint8_t *data, uint16_t byteLen) { void CliCmd_PrintHex(tCliCmd *cli, uint8_t *data, uint16_t byteLen) {