Part Number:CC2530
在Zstack 2.5.1a中,Coordinator节点使用AF_DataRequest发送一组十六进制数据uint8 theMessageData[128] = {0x02, 0x03, 0x10, 0x00, 0x35, 0x00, 0xF2, 0x00};
使用EndDevice接收,但收到的数据只有{02 03 10},请问为什么会出现这样的问题?如何解决?
主要代码如下:
//按键按下事件,自定义if ( events & X1_KEY_EVT ){GenericApp_SendTheMessage(); //发送Hello WorldHalUARTWrite(0, "The Key is down\n", sizeof("The Key is down\n"));HalLedSet(HAL_LED_1, HAL_LED_MODE_TOGGLE);return (events ^ X1_KEY_EVT);} static void GenericApp_SendTheMessage( void ) { // char theMessageData[] = "Hello World!\n";uint8 theMessageData[128] = {0x02, 0x03, 0x10, 0x00, 0x35, 0x00, 0xF2, 0x00};AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc,GENERICAPP_CLUSTERID,(byte)osal_strlen( theMessageData ) + 1,(byte *)&theMessageData,&GenericApp_TransID,AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ); } //终端节点接收 static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) {uint8 buffer[20];switch ( pkt->clusterId ){case GENERICAPP_CLUSTERID:osal_memcpy(buffer, pkt->cmd.Data, osal_strlen((char *)pkt->cmd.Data));HalUARTWrite(0, buffer, osal_strlen((char *)pkt->cmd.Data));break;} }
YiKai Chen:
你theMessageData中間帶了0x00所以被osal_strlen給截了、你試試直接把theMessageData長度帶下去給AF_DataRequest應該就可以發送出去
,
Jason Wang:
哦好的,多谢,问题已解决
,
Kevin Qiu1:
问题解决就好,希望这能帮到其他人