Z-Stack Home 1.2.0的串口使用问题
使用Z-Stack Home 1.2.0提供的例子,使用SampleSwitch的协调器coordinatorEB程序,控制SampleLight的RouterEB程序,通过SampleSwitch上的按键控制SampleLight上的led是没问题了,我现在想在这个程序上添加串口控制,用串口发指令给SampleSwitch,然后协调器再通过无线发命令给SampleLight,请问一下在SampleSwitch中怎么添加串口程序,而且使用ZHA标准的话,发送什么指令才能控制led?
默认协议栈里面串口的功能已经是支持的,只不过用的I/O和你的不同的。
你搜索MT_UART_DEFAULT_PORT 用于MT功能的
谢谢VV的解答,但是我发现使用串口发数据的时候,手抓包无法捕获到数据,实际上是数据都没发出去。请问需要在协调器里添加什么程序才能把串口的数据发送出去?协调器是通过这个函数发送无线数据的吗?
ZStatus_t zcl_SendCommand( uint8 srcEP, afAddrType_t *destAddr,uint16 clusterID, uint8 cmd, uint8 specific, uint8 direction,uint8 disableDefaultRsp, uint16 manuCode, uint8 seqNum,uint16 cmdFormatLen, uint8 *cmdFormat )
这个你不需要关心,在sampleswitch里面已经有发送on/off的API的函数了,你只要让协调器能够收到串口的数据,然后调用on/off的API函数就可以了
谢谢VV大神,我知道该怎么做了。关于获取灯的状态信息,我看了其他的帖子,你是说使用ZStates_t zcl_ReadAttrData()函数进行获取,这个函数应该加到哪里去呢?是不是在static void zclSampleLight_OnOffCB( uint8 cmd )里面加上去?
zclSampleLight_OnOffCB( uint8 cmd )是收到无线的数据处理的地方,去操作实际的I/O控制LED的。跟你的串口没关系吧?
另外你觉得zcl_ReadAttrData用来干嘛?
我想实现把灯的状态周期性返回给协调器,现在不知道应该使用哪个函数进行获取灯的状态,也没搞清楚使用哪一个API函数进行发送灯的状态给协调器。请VV大神解答一下。