Other Parts Discussed in Thread: Z-STACK
现在起,个人提供ZStack便捷开发“SDK”服务,集成协议栈之外的便捷开发接口,告别网络调试的苦恼。
所谓的SDK集成了哪些接口?
1、可控的入网模式,包括手动控制beacon request的次数,时间、睡眠模式。
2、程序动态配置f8wConfig.cfg文件中的参数,使得业务更加灵活。
3、设备掉线后可能会一直发送beacon request的问题,经过我的修改,已经完全治愈了!
4、在程序运行的任何时刻,都可以动态可调节的网络选择,无需再为信道选择和PANID的设置所烦恼,无需每次通过f8wConfig.cfg更改信道后苦苦等待编译器编译。
5、让AssociatedDevList的管理更加方便,自由。整个对AssociatedDevList的管理模块,只需要占用协议栈1个字节的全局变量即可实现各个父节点对子节点的管理,掉网自动通知,超时自动清空该掉线设备所占用的AssociatedDevList存储空间。让僵尸节点滚蛋吧!
6、低功耗使用场景更加便捷,有条理,随时可以从PM2和PM3模式切换,特别是对串口设备的支持,告别PM2或PM3模式下串口丢包乱码的疑难杂症,同时严格控制功耗,让你的节点功耗低到飞起来。
7、入网权限管理,只有通过信任中心录入过MAC地址的节点,才能被允许加入网络,已经实现了全网络异步操作,新设备可以通过网络的任意一个路由设备加入,安全可靠,网络管理更方便,后期还可以实现指定设备加入指定路由器,让网络管理更加高级,配合动态修改网络信道和PANID使用,更爽!
8、实现了普通不加PA的设备115米的极限入网距离的突破。增加PA的设备空旷可视距离下2公里不是梦!
使用该扩展功能,能为我的开发带来什么好处?
1、 开发周期更短,只需要关心业务层的问题,网络层的东西,这一套代码,已经自动处理好了,省去了开发过程中的各种掉线、撑爆等等坑
2、 整个网络更加稳定,以上功能都是经过本人长达5年的工作项目实战经验所总结出来的,自封应用层大佬。
3、 开发过程更灵活,例如网络信道切换、心跳管理等,通过协议栈原有的配置,一是资料少,二是不可动态调整。
4、 开发过程中如果遇到什么问题,可以直接找我,比在论坛上漫无目的的等答案远远更值,不仅浪费了自己的时间,还拖延了项目进展。
5、 支持其他定制化功能的开发,如果你还需要什么特殊的功能,我可以根据实际情况再做开发。
如何使用呢?
1、 直接提供包含源码的协议栈示例文件。
如果想控制beacon request的次数,直接调用函数如下:
/**
** 控制设备beacon request的次数(周期性)
** uint16 nodeBeaconReqTime:一次执行多少次beacon request
** 示例:
** ZDNwkConfigInit(6);//执行6次beacon request自动停止或休眠,等待下一个周期
** return: null
**/
ZDNwkConfigInit(uint16 nodeBeaconReqTime);
如果想切换网络:
/**
** 动态切换设备的信道和PANID
** uint8 channel:要切换的信道11-26
** uint16 panid:要切换的PANID
** 示例:
** ZDNwkConfigSaveRequest (26,0x1234);//执行后设备直接切换至信道为26,PANID为0x1234的网络中。
** return: null
**/
ZDNwkConfigSaveRequest(uint8 channel, uint16 panid);
如果你想知道设备是否掉线,直接注册一个回调函数即可(听说函数名字取长点可以装逼):
AssociatedDevListDeleteNoticeCallBackFuncInit(AssociatedDevListDeleteNoticeCallBackFunc adldncb);
如果你想插入一条白名单:
/**
** 插入一条白名单节点
** unsigned char *Mac:要插入的白名单Mac地址
** 示例:
** unsigned char mac[8] = {0x00,0x012,0x4B,0x00,0x12,0x34,0x56,0x78};
** WhiteList_Insert(mac);
** return: true - 添加成功
** false - 添加失败
**/
extern bool WhiteList_Insert(unsigned char *Mac);
等等其他API可供调用。
如有需要,请随时联系我(点击即可添加)QQ:326575140。