打印

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

[复制链接]
597|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 添加命令和响应处理函数

int ZxcomAddCommand(COMMAND_ID_TYPE id,command_handler_t handler)



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


int ZxcomAddResponse(COMMAND_ID_TYPE id,command_handler_t handler)



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

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

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

int ZxcomOnPacket(const char *pack,const int len)



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


int ZxcomOnSendMsg(COMMAND_ID_TYPE cmdId,const char *param,const unsigned int paramLen,char *packet)



参数:cmdId        param        paramLen        packet
命令ID        命令参数        参数长度        命令包
这个接口输入命令Id,命令参数,参数长度,返回命令包,用户只需将得到的packet发送到命令接收方即可。
<div>
</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 超时处理功能
超时处理功能需要用户实现超时处理函数,然后调用接口:
int CommSetEventHandler(EVENT_HANDLER ev)


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

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

2. 互斥锁
<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. 命令(应答)处理函数:     

函数类型:typedef int (*command_handler_t)(void *para)。



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


运行客户端:
./main c
3. 构建方法:
<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

1362

主题

12478

帖子

53

粉丝