無法收到multicast (group)
hi all,
在調試關於group multicast ,在接收端無法收到.
請問是那裡有問題,導致它無法動作?
0.見附件group.pcapng,
1.check the number of groups,
aps_CountAllGroups return 0
2.to allocate new group table then aps_AddGroup
apsGroupTable=(apsGroupItem_t*)osal_mem_alloc( sizeof( apsGroupItem_t ) * APS_MAX_GROUPS);
會使程序在aps_AddGroup 中,進入FaultISR
3.change the short address , group id or boradcast network address.
仍然不可行.
code :Tx/Rx相同設定,
at
void GenericApp_Init( uint8 task_id )
{
....
//faultisr
//apsGroupTable=(apsGroupItem_t*)osal_mem_alloc( sizeof( apsGroupItem_t ) * APS_MAX_GROUPS);
//define group item
SampleApp_Group.ID = 0x0003;
osal_memcpy( SampleApp_Group.name, "3", 1 );
//dest network address
GenericApp_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
GenericApp_DstAddr.endPoint = GENERICAPP_ENDPOINT;
GenericApp_DstAddr.addr.shortAddr = SampleApp_Group.ID;
//GenericApp_DstAddr.addr.shortAddr = 0xFFFF; //broadcast address
//group add ,check the return
groupStatus=aps_AddGroup( GENERICAPP_ENDPOINT, &SampleApp_Group );
//to check the number of group in table
count=aps_CountAllGroups(); //*always get "0"
}
f8wConfig.cfg:
/* The maximum number of groups in the groups table */
-DAPS_MAX_GROUPS=16
preprocessor:
FEATURE_RESET_MACRO
ewarm
NWK_AUTO_POLL
xPOWER_SAVING
xZTOOL_P1
MT_TASK
MT_SYS_FUNC
MT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
CC2538_USE_ALTERNATE_INTERRUPT_MAP=1
MYBOARD
OSC32K_CRYSTAL_INSTALLED=FALSE
LCD_SUPPORTED=FALSE
HAL_LCD=FALSE
HAL_PA_LNA_CC2592
HAL_PA_LNA
HAL_KEY=TRUE
HAL_LED=FALSE
NV_RESTORE
REFLECTOR
role:
EndDevice
平台:
SDK:
Z-Stack Mesh 1.0.0
IDE:
IAR 7.4.0
hi all ,
i rebuild the project, and get the number of group.
but , it can't get the group multicast.
看起來,它並沒有以multicast 封包傳送.
(像是ZigBee APS中, 應為Frame Control: 0x0C)及ZigBee NWK 中, multi cast control field 內容等)
而在AF_DataRequest 中,卻沒有看到關於multicast 的上述設定?
請問該如何修正?
//cood,set Group dest address
Group_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
Group_DstAddr.endPoint = GENERICAPP_ENDPOINT;
Group_DstAddr.addr.shortAddr = SampleApp_Group.ID;
//cood,send multi
static void GenericApp_SendTheMessage( void )
{
char theMessageData[] = "Hello World";
if ( AF_DataRequest( &Group_DstAddr, &GenericApp_epDesc,
GENERICAPP_CLUSTERID,
(byte)osal_strlen( theMessageData ) + 1,
(byte *)&theMessageData,
&GenericApp_TransID,
AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
// Successfully requested to be sent.
}
else
{
HalLedSet( HAL_LED_4, HAL_LED_MODE_TOGGLE );
// Error occurred in request to send.
}
}
//End,set group . add
SampleApp_Group.ID = 0x1001;
osal_memcpy( SampleApp_Group.name, "Group 1", 7 );
Group_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
Group_DstAddr.endPoint = GENERICAPP_ENDPOINT;
Group_DstAddr.addr.shortAddr = SampleApp_Group.ID;
aps_AddGroup( GENERICAPP_ENDPOINT, &SampleApp_Group );
count=aps_CountGroups(GENERICAPP_ENDPOINT);