We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
之前的框架层只实现了对status的上报和设置,并未实现命令和事件接口。鉴于目前还未实现完整的原语设计,所以先提供subdevice层的事件和命令接口封装。
子设备核心框架逻辑都在framework/subdevice/目录下,文件功能如下:
framework/subdevice/
pando_subdevice.c
pando_object.c
要实现命令和事件接口,大体方案如下:
新增pando_command.c pando_command.h,新增数据结构pando_command:
pando_command.c pando_command.h
pando_command
typedef struct { uint8_t no; uint8_t priority; void (*unpack)(PARAMS*); }pando_command;
新增如下接口:
void register_pando_command(pando_command command); pando_command* find_pando_command(uint8_t no);
暂不考虑优先级的处理。(已经预留)
新增pando_event.c pando_event.h,新增数据结构pando_event:
pando_event.c pando_event.h
pando_event
typedef struct { uint8_t no; uint8_t priority; void (*pack)(PARAMS*); }pando_event;
void register_pando_event(pando_event event); pando_event* find_pando_event(uint8_t no);
pando_subdevice增加接口report_event(uint8_t no),提供事件的主动上报功能。
pando_subdevice
report_event(uint8_t no)
事件和命令都通过链表进行管理,具体方法参考pando_object;
当pando_subdevice中decode_command解析出的命令不是通用指令时,就调用find_pando_command调用其unpack方法。(参考object状态设置部分)
decode_command
unpack
当用户主动上报事件时,调用report_event方法,此方法调用find_pando_event先找到对应的event,调用其pack方法,打包好数据后上报(参考object状态上报部分)。
report_event
@tianlongqiang @leeshineSZ @LottesLiu @sw0813
The text was updated successfully, but these errors were encountered:
leeshineSZ
No branches or pull requests
背景
之前的框架层只实现了对status的上报和设置,并未实现命令和事件接口。鉴于目前还未实现完整的原语设计,所以先提供subdevice层的事件和命令接口封装。
修改建议
子设备核心框架逻辑都在
framework/subdevice/
目录下,文件功能如下:pando_subdevice.c
: 提供子设备核心协议处理及分发逻辑。pando_object.c
:提供对象注册和管理接口。要实现命令和事件接口,大体方案如下:
1
新增
pando_command.c pando_command.h
,新增数据结构pando_command
:新增如下接口:
暂不考虑优先级的处理。(已经预留)
2
新增
pando_event.c pando_event.h
,新增数据结构pando_event
:新增如下接口:
暂不考虑优先级的处理。(已经预留)
3
pando_subdevice
增加接口report_event(uint8_t no)
,提供事件的主动上报功能。4
事件和命令都通过链表进行管理,具体方法参考pando_object;
当pando_subdevice中
decode_command
解析出的命令不是通用指令时,就调用find_pando_command调用其unpack
方法。(参考object状态设置部分)当用户主动上报事件时,调用
report_event
方法,此方法调用find_pando_event先找到对应的event,调用其pack方法,打包好数据后上报(参考object状态上报部分)。@tianlongqiang @leeshineSZ @LottesLiu @sw0813
The text was updated successfully, but these errors were encountered: