您好,我在使用Z-Stack Home1.2.2a和 Z-STACK 3.0.2 这俩协议栈,目前网上资料比较多的只查到2.5.1a,
所有有好多问题还要咨询一下。
1、在Z-Stack Developer's Guide.pdf看到了ZIGBEEPRO的说明,但是不知道在哪个工程项目的什么位置可以看到调用或者定义,就像我在网上只看到过一个sensor项目,新的协议栈中不知道是不是改名字了?
2、在Z-Stack Monitor and Test API.pdf 这个PDF中,我看到了许多指令集,不知道这个是用Z-Stack Home1.2.2a和 Z-STACK 3.0.2 这俩协议栈中的哪个工程编译的?
Viki Shi:
请问您现在考虑使用什么协议栈呢?不同协议栈的指令会有差别
user3812753:
回复 Viki Shi:
Z-STACK 3.0.2这个是TI官方最新的我计划用这个
Viki Shi:
回复 user3812753:
那就是最新版的协议栈了,建议可以看新版的文档:dev.ti.com/…/node
user3812753:
回复 Viki Shi:
其实我安装完协议栈,看到里面有API和文档。已经看过一遍,只是英文不好,所以了解了大概,知道这个协议栈有ZIGBEEPRO和一些指令集,剩下的就找不见了,可能的看不懂。所以才咨询一下ZIGBEEPRO和指令集在哪个工程里面,如何调用的
YiKai Chen:
回复 user3812753:
建議你先讀一下 Z-Stack 3.0 Sample Application User's Guide.pdf 熟悉Z-Stack例程操作,然後在去讀一下 Z-Stack 3.0 Developer's Guide.pdf熟悉Zigbee相關的開發資料,Z-Stack API文件可以讀Z-Stack API.pdf/Z-Stack ZCL API.pdf
user3812753:
回复 YiKai Chen:
谢谢,我先看看
user3812753:
回复 Viki Shi:
本来想用Z_STACK 3.0.2的,结果工程太大,在网上搜了解决办法,改了串口的缓存数组大小,还是无法解决,所以换成Z-Stack Home 1.2.2a.44539先试一下。
目前想要实现的功能是按照对应协议栈实现串口发送命令能够配置和获取一些信息,Z-Stack Monitor and Test API.pdf中提到了数据协议格式:对应,如果我要实现UTIL中的命令,则在预编译中加入了
MT_UTIL_FUNC
并且预编译加了ZTOOL_P1,开启串口,默认波特率38400。
在Z-Stack Monitor and Test API.pdf中看到命令3.10.1.1在MT_UTIL.C中188行找到了源码
于是串口发送命令:FE00 27 00 27
按理说应该返回一些信息的,结果并没有。。。。一个数都没有。我就不知道哪没操作对了
以下是我预编译的所有命令
SECURE=1
TC_LINKKEY_JOIN
NV_INIT
NV_RESTORE
HOLD_AUTO_START
ZTOOL_P1
MT_TASK
MT_AF_FUNC
MT_APP_FUNC
MT_MAC_NWK
MT_NWK_FUNC
xMT_SAPI_FUNC
MT_SAPI_CB_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
MT_UTIL_FUNC
LCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_REPORT
ZCL_EZMODE
ZCL_BASIC
ZCL_IDENTIFY
ZIGBEEPRO
ZCL_TEMPERATURE_MEASUREMENT
user3812753:
回复 YiKai Chen:
本来想用Z_STACK 3.0.2的,结果工程太大,在网上搜了解决办法,改了串口的缓存数组大小,还是无法解决,所以换成Z-Stack Home 1.2.2a.44539先试一下。
目前想要实现的功能是按照对应协议栈实现串口发送命令能够配置和获取一些信息,Z-Stack Monitor and Test API.pdf中提到了数据协议格式:对应,如果我要实现UTIL中的命令,则在预编译中加入了
MT_UTIL_FUNC
并且预编译加了ZTOOL_P1,开启串口,默认波特率38400。
在Z-Stack Monitor and Test API.pdf中看到命令3.10.1.1在MT_UTIL.C中188行找到了源码
于是串口发送命令:FE 00 27 00 27
按理说应该返回一些信息的,结果并没有。。。。一个数都没有。我就不知道哪没操作对了
以下是我预编译的所有命令
SECURE=1
TC_LINKKEY_JOIN
NV_INIT
NV_RESTORE
HOLD_AUTO_START
ZTOOL_P1
MT_TASK
MT_AF_FUNC
MT_APP_FUNC
MT_MAC_NWK
MT_NWK_FUNC
xMT_SAPI_FUNC
MT_SAPI_CB_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
MT_UTIL_FUNC
LCD_SUPPORTED=DEBUG
MULTICAST_ENABLED=FALSE
ZCL_READ
ZCL_WRITE
ZCL_REPORT
ZCL_EZMODE
ZCL_BASIC
ZCL_IDENTIFY
ZIGBEEPRO
ZCL_TEMPERATURE_MEASUREMENT
Viki Shi:
回复 user3812753:
你是要使用MT接口吗?请看这个文档,更有针对性一点:software-dl.ti.com/…/mt_interface.html
user3812753:
回复 Viki Shi:
你好,我看了一下,改加的头文件和预编译都加了。我用的Z_STACK HOME 1.2.2A协议栈,现在发现我在预编译中加入ZTOOL_P1和MT_TASK,然后在对应app.c的初始化中加入MT_UartInit ();MT_UartRegisterTaskID( zclSampleThermostat_TaskID);其中串口的初始化中我关闭了流控。现在的问题是在MT_UART的串口回调函数MT_UartProcessZToolData中:第287行
if ((MT_UartCalcFCS ((uint8*)&pMsg->msg[0], MT_RPC_FRAME_HDR_SZ + LEN_Token) == FSC_Token)){osal_msg_send( App_TaskID, (byte *)pMsg );HalUARTWrite ( 0, "OK\n", strlen("OK\n") );}else{/* deallocate the msg */HalUARTWrite ( 0, "EOOOR\n", strlen("ERROR\n") );osal_msg_deallocate ( (uint8 *)pMsg );}可以打印出来OK,按理说,下一步应该是在MT_TASK.C中执行243行的static void MT_ProcessIncomingCommand( mtOSALSerialData_t *msg ),因为里面有 case CMD_SERIAL_MSG:HalUARTWrite ( 0, "CMD SERIAL MSG\n", strlen("CMD SERIAL MSG\n") );MT_ProcessIncoming(msg_ptr);break;
可是它并没有进去这个函数,是不是哪漏操作了啥?