Обновление
This commit is contained in:
parent
325f71c3fc
commit
7539d680df
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
19
Src/CliCmd.c
19
Src/CliCmd.c
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue