1-----加灯第一步---本份代码里面的
AddDeviceViewController 中的 viewDidload 方法里面调用
扫描方法
在源码中有一个外接的代理方法
此处接收每次符合条件的 BTDevItem 对象,加灯过程可在此处进
行-》调用
实现对单灯的设置
在每次的单灯设置完成后会调用下面的代理方法
在 status 为上一个灯设置完成以后可以实现后一个灯的扫描设置
处理因为异常断开连接的代理方法
具体的 type 类型参见枚举部分-可在此处针对某一个特定设备 item 设置
meshname 后者在此处补充性的扫描,完成后面的加灯操作。
2------更新直连灯和其他灯被断电时候的重连问题
3------添加获取所有灯的状态接口,直接 BTCentalmanager 获取
-(void)getAllLightStatus;
4-----解决某一个灯被其他设备直连而自己的 iphone 无法扫描并
且显示到 UI 界面上的问题,目前处理后 UI 上面显示的为整个
mesh 内所有的灯,包括被其他 iphone 设备直连
5-----解决整个 app 的数据源问题,前期两个数据源-1:扫描到的设备 2-
notify 所得到的状态补充以及对被其他 iphone 直连的设备补充到数据源
目前:整个 app 的数据源只有一个 DeviceModel-具体参见代码
6-----处理直连灯被拔掉之后到重新连接到另外一盏灯期间的状态显示问
题,处理后的效果为在此期间所有灯的状态为 offline——-详细见
resetStatusOfAllLight 方法在 BTCentraManager.m 文件中的调用
7-----更改 getNotify 数据的次数,处理前默认为连接某一个灯以后 get
notify 两次 处理后的效果为登录上以后每隔 500ms getnotify 一次, get 4 次
详细见
BTCentraManager.m 文件中 setNotifyOpenProSevervalTimes 方法
的调用
8-----修改因为数据包丢失造成灯的状态错误无法控制的问题,在
每次点击灯的图标后,现在的处理方式是直接直接将灯的状态切换
后发送开关灯命令,经后期的 notify 数据包回馈解析后校核状态问
题
见:MainViewController.m 文件中的
9-- 修改 了 mesh 内部只有一个灯的时候,灯被断开,然后上电之后
的状态显示问题,设置地址之后请将所有灯一同断电一次
10-- 在单灯设置的页面添加 kict_out_of_mesh 操作,
11-- 添加分配地址与加灯操作同时进行并且在加灯的过程中将
out_of_mesh 类的设备也添加到同一个 mesh 的操作,本版本改动主要在源码
内部的扫描过滤条件的设置:scanWithOut_of_Mesh 部分,和在 connect 和
login 的时候对 out_of_mesh 的特殊处理
主要调用接口如下
1-——
该接口开始扫描并且自动连接登录后在
中截取到已经登录成功的节点调用,其中的 DevChangeFlag_Login 枚举为新
加部分
方法对地址进行设置,分配成功与否的结果在回调方法
中通过 resultAddress 和所设定的值是否相同判断
判断设置成功之后分类别设置 out_of_mesh 和 telink_mesh1 这一类的灯的
meshname,password 和 ltk,下面接口为新添接口
加灯设置 meshname,pwd ltk 如果已经设置完毕在如下回调中得到
login 和修改地址,设置 mehs 三个部分的成功与否,本 demo 简单使用参数和
定时器共同处理,另外加灯操作的整过过程最好先设置地址,后设置
meshname,pwd 等
12-- 更正因为源码内部修改 mesh 过程中不断主动获取 notify 数据的问题
13-- 修改在加灯过程中修改 mesh 过程中修改 out_of_mesh 的 password
失败的 bug
14-- ota 过程——只针对此 demo
此方法直连上某一个设备之后
读取当前直连灯
的 firmWare 属性,读取后的结果以 NSdata 在下面
中返回
在上面 OnConnectionDevFirmWare 中启动发送 OTA 数据包,调用
此方法每调用一次只能发送一个 20bytes 的包,具体整个文件的发送参考
OtaViewController.m 文件
15-- ota 过程——改进
用