Skip to content

Commit

Permalink
Add all mode to RAW mode command
Browse files Browse the repository at this point in the history
Add Bound, Group and Broacast mode to RAW mode command
  • Loading branch information
fairecasoimeme committed Oct 17, 2022
1 parent 1c66ede commit 4c0d9ea
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
#endif

#ifndef VERSION
#define VERSION 0x00040321
#define VERSION 0x00040323
#endif
/****************************************************************************/
/*** Type Definitions ***/
Expand Down Expand Up @@ -882,23 +882,7 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte )
{
ZPS_tsAfProfileDataReq sAfProfileDataReq;
uint8 u8DataLength;
if ((au8LinkRxBuffer[0]== E_ZCL_AM_SHORT) || (au8LinkRxBuffer[0]== E_ZCL_AM_SHORT_NO_ACK))
{

sAfProfileDataReq.uDstAddr.u16Addr = ZNC_RTN_U16 ( au8LinkRxBuffer, 1 );
sAfProfileDataReq.u16ClusterId = ZNC_RTN_U16 ( au8LinkRxBuffer, 5 );
sAfProfileDataReq.u16ProfileId = ZNC_RTN_U16 ( au8LinkRxBuffer, 7 );
sAfProfileDataReq.eDstAddrMode = au8LinkRxBuffer[0];
sAfProfileDataReq.u8SrcEp = au8LinkRxBuffer[3];
sAfProfileDataReq.u8DstEp = au8LinkRxBuffer[4];
sAfProfileDataReq.eSecurityMode = au8LinkRxBuffer[9];
sAfProfileDataReq.u8Radius = au8LinkRxBuffer[10];
u8DataLength = au8LinkRxBuffer[11];
u8Status = APP_eApsProfileDataRequest ( &sAfProfileDataReq,
&au8LinkRxBuffer[12],
u8DataLength,
&u8SeqNum );
}else if ((au8LinkRxBuffer[0]== E_ZCL_AM_IEEE) || (au8LinkRxBuffer[0]== E_ZCL_AM_IEEE_NO_ACK))
if ((au8LinkRxBuffer[0]== E_ZCL_AM_IEEE) || (au8LinkRxBuffer[0]== E_ZCL_AM_IEEE_NO_ACK))
{
sAfProfileDataReq.uDstAddr.u64Addr = ZNC_RTN_U64 ( au8LinkRxBuffer, 1 );
sAfProfileDataReq.u16ClusterId = ZNC_RTN_U16 ( au8LinkRxBuffer, 11 );
Expand All @@ -913,6 +897,21 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte )
&au8LinkRxBuffer[18],
u8DataLength,
&u8SeqNum );
}else{

sAfProfileDataReq.uDstAddr.u16Addr = ZNC_RTN_U16 ( au8LinkRxBuffer, 1 );
sAfProfileDataReq.u16ClusterId = ZNC_RTN_U16 ( au8LinkRxBuffer, 5 );
sAfProfileDataReq.u16ProfileId = ZNC_RTN_U16 ( au8LinkRxBuffer, 7 );
sAfProfileDataReq.eDstAddrMode = au8LinkRxBuffer[0];
sAfProfileDataReq.u8SrcEp = au8LinkRxBuffer[3];
sAfProfileDataReq.u8DstEp = au8LinkRxBuffer[4];
sAfProfileDataReq.eSecurityMode = au8LinkRxBuffer[9];
sAfProfileDataReq.u8Radius = au8LinkRxBuffer[10];
u8DataLength = au8LinkRxBuffer[11];
u8Status = APP_eApsProfileDataRequest( &sAfProfileDataReq,
&au8LinkRxBuffer[12],
u8DataLength,
&u8SeqNum );
}


Expand Down Expand Up @@ -4303,6 +4302,24 @@ PRIVATE ZPS_teStatus APP_eApsProfileDataRequest ( ZPS_tsAfProfileDataReq* psP
{
switch (psProfileDataReq->eDstAddrMode)
{
case ZPS_E_ADDR_MODE_BOUND:
eStatus = ZPS_eAplAfBoundAckDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
psProfileDataReq->u8SrcEp,
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
case ZPS_E_ADDR_MODE_GROUP:
eStatus = ZPS_eAplAfGroupDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
psProfileDataReq->u8SrcEp,
psProfileDataReq->uDstAddr.u16Addr,
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);

break;
case ZPS_E_ADDR_MODE_SHORT:
eStatus = ZPS_eAplAfUnicastAckDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
Expand All @@ -4312,7 +4329,7 @@ PRIVATE ZPS_teStatus APP_eApsProfileDataRequest ( ZPS_tsAfProfileDataReq* psP
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
break;
case ZPS_E_ADDR_MODE_IEEE:
eStatus = ZPS_eAplAfUnicastIeeeAckDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
Expand All @@ -4322,7 +4339,25 @@ PRIVATE ZPS_teStatus APP_eApsProfileDataRequest ( ZPS_tsAfProfileDataReq* psP
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
break;
case ZPS_E_ADDR_MODE_BROADCAST:
eStatus = ZPS_eAplAfBroadcastDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
psProfileDataReq->u8SrcEp,
psProfileDataReq->u8DstEp,
ZPS_E_APL_AF_BROADCAST_ALL,
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
case ZPS_E_ADDR_MODE_BOUND_NO_ACK:
eStatus = ZPS_eAplAfBoundDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
psProfileDataReq->u8SrcEp,
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
case ZPS_E_ADDR_MODE_SHORT_NO_ACK:
eStatus = ZPS_eAplAfUnicastDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
Expand All @@ -4332,7 +4367,7 @@ PRIVATE ZPS_teStatus APP_eApsProfileDataRequest ( ZPS_tsAfProfileDataReq* psP
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
break;
case ZPS_E_ADDR_MODE_IEEE_NO_ACK:
eStatus = ZPS_eAplAfUnicastIeeeDataReq(hAPduInst,
psProfileDataReq->u16ClusterId,
Expand All @@ -4342,20 +4377,20 @@ PRIVATE ZPS_teStatus APP_eApsProfileDataRequest ( ZPS_tsAfProfileDataReq* psP
psProfileDataReq->eSecurityMode,
psProfileDataReq->u8Radius,
pu8Seq);
break;
break;
default:
eStatus = ZPS_eAplAfApsdeDataReq( hAPduInst,
psProfileDataReq,
pu8Seq );
}
if (eStatus)
{
PDUM_eAPduFreeAPduInstance(hAPduInst);
}
}
}
if (eStatus)
{
PDUM_eAPduFreeAPduInstance(hAPduInst);
}
}
}

return eStatus;
return eStatus;
}

/****************************************************************************
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,14 @@ typedef enum {

typedef enum
{
ZPS_E_ADDR_MODE_BOUND = 0,
ZPS_E_ADDR_MODE_GROUP = 1,
ZPS_E_ADDR_MODE_SHORT = 2,
ZPS_E_ADDR_MODE_IEEE = 3,
ZPS_E_ADDR_MODE_SHORT_NO_ACK = 7,
ZPS_E_ADDR_MODE_IEEE_NO_ACK = 8,
ZPS_E_ADDR_MODE_BOUND = 0,
ZPS_E_ADDR_MODE_GROUP = 1,
ZPS_E_ADDR_MODE_SHORT = 2,
ZPS_E_ADDR_MODE_IEEE = 3,
ZPS_E_ADDR_MODE_BROADCAST = 4,
ZPS_E_ADDR_MODE_BOUND_NO_ACK = 6,
ZPS_E_ADDR_MODE_SHORT_NO_ACK = 7,
ZPS_E_ADDR_MODE_IEEE_NO_ACK = 8

} ZPS_teAplApsdeAddressMode;

Expand Down

0 comments on commit 4c0d9ea

Please sign in to comment.