Debug_Lib
我们的目的是开发一款使用串口字符串进行系统内的命令操作的模块组件, 如:通过字符串命令来唤起指定的函数, 通过字符串命令来对系统内变量进行修改.
当然, 目前市面上也有着很多广泛应用的成熟项目, 如Json格式数据包, terminal终端的底层逻辑等等, 他们都实现了上述的功能, 尤其是Json, 可以让用户简便地进行大批量数据的交互.
但是你都写C语言了, 不自己造一遍轮子还叫C吗
在嵌入式系统中, 简单高效是必要的要求, 本工程便是用最简单的方法实现了较简便的交互数据包格式.
如何使用 How to use?
- 导入头文件#include “N_CmdString_debug.h”
- 定义函数句柄时, 参数应定义为(void* argument).
void cmdFunction(void* argument){
printf("here is test function.\r\n");
printf("Received argument: %s\r\n", (char*)argument);
}
- 声明好符合格式的结构体变量.
debug_cmd_t cmd =
{
.name = "cmd",
.handlerFunc = cmdFunction,
};
N_debug_addCMD(&cmd);
- 将符合格式的字符串传入 N_debug_handler 函数.
N_debug_handler("CMD cmd helloNino");
使用例 example
#include <stdio.h>
#include "N_CmdString_debug.h"
void cmdFunction(void* argument){
printf("here is test function.\r\n");
printf("Received argument: %s\r\n", (char*)argument);
}
int main(void) {
int a = 0;
int b = 200;
int PWM_Compare = 500;
float f = 0;
char char_buf[100];
debug_variable_t va =
{
.name = "a",
.pData = &a,
.type = DATATYPE_INT32
};
debug_variable_t vb =
{
.name = "b",
.pData = &b,
.type = DATATYPE_INT32
};
debug_variable_t cmp =
{
.name = "cmp",
.pData = &PWM_Compare,
.type = DATATYPE_INT16
};
debug_variable_t vf =
{
.name = "f",
.pData = &f,
.type = DATATYPE_FLOAT
};
debug_cmd_t cmd =
{
.name = "cmd",
.handlerFunc = cmdFunction,
};
N_debug_addVariable(&va);
N_debug_addVariable(&vb