• Stars
    star
    306
  • Rank 136,456 (Top 3 %)
  • Language
    C
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个非常简单好用的命令解析器,占用资源极少极少,采用哈希算法超快匹配命令!

license

cmd-parser

一个非常简单好用的命令解析器...

这个命令解析器有什么用??

简单来说,我希望我的开发板,可以通过命令执行一些处理,比如说我用串口发一个命令A,开发板就执行A的一些处理,或者,在调试某些AT模组的时候,当我收到模组返回的一些指令后,自动执行一些处理。当然,还有其他的地方可以用得上的,兄弟们自行挖掘!!欢迎提交pr与点个star~

问题

欢迎以 GitHub Issues 的形式提交问题和bug报告

版权和许可

cmd-parser 遵循 Apache License v2.0 开源协议。鼓励代码共享和尊重原作者的著作权,可以自由的使用、修改源代码,也可以将修改后的代码作为开源或闭源软件发布,但必须保留原作者版权声明

使用方法

  1. 注册命令

在工程中的任意位置均可调用(在函数外)

REGISTER_CMD(test1, test1_cmd);
  1. cmd初始化
cmd_init();
  1. 解析命令
cmd_parsing("test1");

特色

  • 用户无需关心命令的存储区域与大小,由编译器静态分配。
  • 加入哈希算法超快速匹配命令,时间复杂度从O(n*m)变为O(n)。
  • 命令支持忽略大小写。
  • 非常易用与非常简洁的代码(不足150行)。

注意事项

  • 本代码目前只支持MDKIAR的编译器,对于gcc尚未移植,欢迎参与贡献

test.c

#include "cmd.h"

void test1_cmd(void)
{
    printf("test1_cmd\n");
}

void test2_cmd(void)
{
    printf("test2_cmd\n");
}

void test3_cmd(void)
{
    printf("test3_cmd\n");
}

REGISTER_CMD(test1, test1_cmd);
REGISTER_CMD(test2, test2_cmd);
REGISTER_CMD(test3, test3_cmd);

int main(void)
{
    cmd_init();

    while (1)
    {
        cmd_parsing("test1");
        cmd_parsing("test2");
        cmd_parsing("test3");
    }
    
    return 0;
}

More Repositories

1

mqttclient

A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / TencentOS tiny), Linux, Windows, Mac, with a very concise The API interface realizes the quality of service of QOS2 with very few resources, and seamlessly connects the mbedtls encryption library.
C
625
star
2

ButtonDrive

纯C语言实现的一个按键驱动,可移植性强,支持单双击、连按、连按释放、长按;采用回调处理按键事件(自定义消抖时间),使用只需3步,1:创建按键,2:按键事件与回调处理函数链接映射。然后周期检查按键。
C
325
star
3

http-client

A high-performance, high-stability, cross-platform HTTP client.
C
176
star
4

DoraOS

DoraOS 是我个人所写的RTOS内核,结合FreeRTOS、uCOS, RT-Thread, LiteOS 的特性所写,取其精华,去其糟粕,本项目将持续维护,欢迎大家fork与star。
C
142
star
5

TencentOS-Demo

这是在野火stm32f103开发板上移植的TencentOS tiny 例程,带图文教程与视频教程
C
106
star
6

kawaii-mqtt

基于socket API的MQTT客户端,以极少的资源实现qos2服务质量,并且实现mbedtls支持,此仓库是专门为RT-Thread做的软件包,原始仓库位于:https://github.com/jiejieTop/mqttclient
C
64
star
7

libuv-learning-code

libuv系列教程的配套代码,从0到深度了解libuv的框架与使用。
C
28
star
8

stm32_kfifo

基于Linux的kfifo移植到STM32
C
26
star
9

salof

Synchronous Asynchronous Log Output Framework(同步异步日志输出框架)
C
19
star
10

wx-mqtt

MQTT客户端-微信小程序源码,使用ColorUI!
JavaScript
17
star
11

freertos-mqttclient

a demo of mqttclient on freertos platform,https://github.com/jiejieTop/mqttclient
C
17
star
12

STM32F1_Demo

STM32F1_DEMO is a project demo based on the EmbedFire stm32Ba Dao development version.
C
16
star
13

LwIP_2.1.2_Comment

LwIP 2.1.2 版本的源码中文注释
C
14
star
14

xiexiren_ppt

谢希仁老师的计算机网络PPT讲义
13
star
15

Serial

基于C#的串口调试助手
C#
7
star
16

rtpkg_button

rtt packages button drive
C
6
star
17

online-mqtt-tool

一个在线mqtt代码生成工具,https://jiejietop.github.io/online-mqtt-tool
JavaScript
5
star
18

doralib

Easy to use C++ library
C++
5
star
19

i.mx6ul_board

This is an linux demo code for the i.mx6ul development board.
C
5
star
20

LwIP_Demo

LwIP-Demo
C
4
star
21

linux_learn

This is my repository for learning Linux.
C
4
star
22

RT-Thread_Demo

RT-Thread在STM32F1的移植Demo
C
3
star
23

Qt-Demo

This is my demo of learning Qt 5.12
C++
3
star
24

book

这是一个存放计算机相关书籍的仓库
3
star
25

mqttclient-demo

多个开发板中的MQTT客户端demo程序,支持多个平台。
Batchfile
3
star
26

http_server

my http server source!
C
2
star
27

c-plus-plus

record my c++ learning
C++
2
star
28

linux-script-tools

some linux script tools
Shell
2
star
29

WeChat_APP

WeChat APP learning
JavaScript
2
star
30

cross-compiling-scripts

some scripts tocross-compiling the base library.
Shell
2
star
31

Fire_LiteOS

华为LiteOS在野火开发板上的移植实验
C
2
star
32

cmake

学习cmake
CMake
2
star
33

RT_Thread_PPT

RT_Thread_PPT
1
star
34

LiteOS_Demo

LiteOS_Demo
C
1
star
35

linux-network

this is the network programming code under linux
Makefile
1
star
36

kawaii-http

C
1
star
37

gokit3-board-mqttclient

机智云gokit3开发板的mqttclient demo,使用TencentOS tiny的AT框架,RAM占用不足15k。
C
1
star
38

Balance-car

平衡直立车设计
1
star
39

pyqt5

这是一个pyqt5的终端监控小工程
Python
1
star
40

FreeRTOS-Demo

FreeRTOS在野火stm32上的移植
C
1
star