59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
//
|
|
// Created by CFIF on 14.11.22.
|
|
//
|
|
|
|
#ifndef UVEOS_ON_NATION_CLICMD_H
|
|
#define UVEOS_ON_NATION_CLICMD_H
|
|
|
|
#include "SerialPort.h"
|
|
#include "stdbool.h"
|
|
#include "stddef.h"
|
|
|
|
typedef struct {
|
|
struct {
|
|
char *data;
|
|
size_t limit;
|
|
char *begin;
|
|
size_t length;
|
|
} rxLine;
|
|
|
|
tSerialPortIO *serialCommandPort;
|
|
} tCliCmd;
|
|
|
|
void CliCmd_Init(tCliCmd *env, tSerialPortIO *io, uint8_t *data, size_t dataLen);
|
|
|
|
#define CliCmd_InitStatic(ENV, IO, DATA) CliCmd_Init(ENV,IO,DATA,sizeof(DATA));
|
|
|
|
void CliCmd_WaitLine(tCliCmd *env);
|
|
|
|
void CliCmd_Print(tCliCmd *cli, char *text, uint16_t len);
|
|
|
|
void CliCmd_PrintHex(tCliCmd *cli, uint8_t *data, uint16_t byteLen);
|
|
|
|
char *CliCmd_RxLineBegin(tCliCmd *cli);
|
|
|
|
char *CliCmd_RxLineEnd(tCliCmd *cli);
|
|
|
|
size_t CliCmd_RxLineLength(tCliCmd *cli);
|
|
|
|
char *CliCmd_RxStartsWith(tCliCmd *cli, char *text, uint16_t len);
|
|
|
|
void CliCmd_RxSkipSpace(tCliCmd *cli);
|
|
|
|
void CliCmd_RxSkipTo(tCliCmd *cli, char *next);
|
|
|
|
void CliCmd_WaitLineDelay(tCliCmd *env, uint32_t delay);
|
|
|
|
void CliCmd_RxSkip(tCliCmd *cli, size_t len);
|
|
|
|
#define CliCmd_PrintStatic(CLI, STR) CliCmd_Print(CLI,STR,sizeof(STR)-1)
|
|
|
|
#define CliCmd_PrintLnStatic(CLI, STR) CliCmd_PrintStatic(CLI,(STR "\r\n"))
|
|
|
|
#define CliCmd_PrintSpStatic(CLI, STR) CliCmd_PrintStatic(CLI,(STR " "))
|
|
|
|
// 1 если STR присутствует первым блоком в cli->data
|
|
#define CliCmd_RxStartsWithStatic(CLI, STR) CliCmd_RxStartsWith(CLI,(STR),sizeof(STR) - 1)
|
|
|
|
#endif //UVEOS_ON_NATION_CLICMD_H
|