写了个东西谁把这东西跑在单片机上?手头没有开发板

[复制链接]
 楼主| keer_zu 发表于 2020-4-17 17:12 | 显示全部楼层 |阅读模式
本帖最后由 keer_zu 于 2020-4-17 17:19 编辑

zxcom


1.接口定义
Zxcom接口主要有:
  • 初始化和去初始化。
  • 添加命令和应答处理函数。
  • 包的接收和发送包的组建。
1.1 初始化和去初始化int ZxcomInit()int ZxcomDeInit()1.2 添加命令和响应处理函数

  1. int ZxcomAddCommand(COMMAND_ID_TYPE id,command_handler_t handler)
复制代码



参数:COMMAND_ID_TYPE id        command_handler_t handler
所响应命令的id        处理函数
本接口由命令响应方调用,用于处理指定id的命令请求。


  1. int ZxcomAddResponse(COMMAND_ID_TYPE id,command_handler_t handler)
复制代码



参数:COMMAND_ID_TYPE id        command_handler_t handler
所响应命令的id        处理函数

本接口由命令请求方调用,用于处理命令响应方的应答。

1.3包的接收和发送包的组建

  1. int ZxcomOnPacket(const char *pack,const int len)
复制代码



参数:const char *pack        const int len
收到的包        包长度
用户收到包后,只需调用本接口即可,无需做其它事情。


  1. int ZxcomOnSendMsg(COMMAND_ID_TYPE cmdId,const char *param,const unsigned int paramLen,char *packet)
复制代码



参数:cmdId        param        paramLen        packet
命令ID        命令参数        参数长度        命令包
这个接口输入命令Id,命令参数,参数长度,返回命令包,用户只需将得到的packet发送到命令接收方即可。
  1. <div>
  2. </div><div>int  ZxcomOnSendResponse(COMMAND_ID_TYPE cmdId,const char *param,const unsigned int paramLen,char *packet)</div>
复制代码


参数:cmdId        param        paramLen        packet
命令ID        命令参数        参数长度        命令包

这个接口输入命令Id,响应参数,参数长度,返回应答包,用户只需将得到的packet发送到命令发送方即可。


1.4 超时处理功能
超时处理功能需要用户实现超时处理函数,然后调用接口:
  1. int CommSetEventHandler(EVENT_HANDLER ev)
复制代码


进行添加。
1.5 需要用户实现的回调函数1. 事件(超时)处理函数  

函数类型为:typedef int (*EVENT_HANDLER)(const int event,const int msgId)

2. 互斥锁
  1. <div>int CRITICAL_INIT();</div><div>void ENTER_CRITICAL();</div><div>void EXIT_CRITICAL();</div><div>int CRITICAL_DEINIT();</div>
复制代码



在MCU中可以用关中断和开中断实现,linux下用线程锁pthread_mutex_t。
3. 命令(应答)处理函数:     

  1. 函数类型:typedef int (*command_handler_t)(void *para)。
复制代码



2.应用实例:
这里使用unix套接字模拟命令的发送和接收端,简单示范了本框架的使用。 代码:
运行服务端:
  1. ./main
复制代码


运行客户端:
  1. ./main c
复制代码
3. 构建方法:
  1. <div>git clone <a href="https://github.com/KevinZu/zxcom.gitcd" target="_blank">https://github.com/KevinZu/zxcom.git</a></div><div><a href="https://github.com/KevinZu/zxcom.gitcd" target="_blank">cd</a> zxcom</div><div>mkdir build</div><div>cd build</div><div>cmake ..</div><div>make</div>
复制代码


本项目依赖库:ucomlib


您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1479

主题

12921

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部