This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

提供ZStack便捷开发“SDK”服务,集成协议栈之外的便捷开发接口,告别Bug!

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