From beff74255cdb1887aac0d88c9d93842a57f20b20 Mon Sep 17 00:00:00 2001 From: Fairesoimeme Date: Tue, 19 Jan 2021 21:48:34 +0300 Subject: [PATCH] add LQI, last byte vSL_WriteMessage original by Fairesoimeme --- Source/ZigbeeNodeControlBridge/SerialLink.c | 6 +- Source/ZigbeeNodeControlBridge/SerialLink.h | 2 +- Source/ZigbeeNodeControlBridge/app_Znc_cmds.c | 30 ++++--- .../app_general_events_handler.c | 89 +++++++++++++------ Source/ZigbeeNodeControlBridge/app_start.c | 18 ++-- .../app_zcl_event_handler.c | 64 ++++++++----- 6 files changed, 143 insertions(+), 66 deletions(-) diff --git a/Source/ZigbeeNodeControlBridge/SerialLink.c b/Source/ZigbeeNodeControlBridge/SerialLink.c index 7d3f282..e10751f 100644 --- a/Source/ZigbeeNodeControlBridge/SerialLink.c +++ b/Source/ZigbeeNodeControlBridge/SerialLink.c @@ -248,14 +248,18 @@ PUBLIC bool bSL_ReadMessage(uint16 *pu16Type, uint16 *pu16Length, uint16 u16MaxL * u16Type R Message type * u16Length R Message length * pu8Data R Message payload + * u8LinkQuality R Message radio quality * RETURNS: * void ****************************************************************************/ -PUBLIC void vSL_WriteMessage(uint16 u16Type, uint16 u16Length, uint8 *pu8Data) +PUBLIC void vSL_WriteMessage(uint16 u16Type, uint16 u16Length, uint8 *pu8Data, uint8 u8LinkQuality) { int n; uint8 u8CRC; + u16Length++; + + pu8Data[u16Length-1]=u8LinkQuality; u8CRC = u8SL_CalculateCRC(u16Type, u16Length, pu8Data); DBG_vPrintf(DEBUG_SL, "\nvSL_WriteMessage(%d, %d, %02x)", u16Type, u16Length, u8CRC); diff --git a/Source/ZigbeeNodeControlBridge/SerialLink.h b/Source/ZigbeeNodeControlBridge/SerialLink.h index c8b65ab..bae2cbd 100644 --- a/Source/ZigbeeNodeControlBridge/SerialLink.h +++ b/Source/ZigbeeNodeControlBridge/SerialLink.h @@ -373,7 +373,7 @@ typedef struct /****************************************************************************/ PUBLIC bool bSL_ReadMessage(uint16 *pu16Type, uint16 *pu16Length, uint16 u16MaxLength, uint8 *pu8Message,uint8 u8Byte); -PUBLIC void vSL_WriteMessage(uint16 u16Type, uint16 u16Length, uint8 *pu8Data); +PUBLIC void vSL_WriteMessage(uint16 u16Type, uint16 u16Length, uint8 *pu8Data, uint8 u8LinkQuality); PUBLIC uint8 u8SL_CalculateCRC(uint16 u16Type, uint16 u16Length, uint8 *pu8Data); /****************************************************************************/ /*** Local Functions ***/ diff --git a/Source/ZigbeeNodeControlBridge/app_Znc_cmds.c b/Source/ZigbeeNodeControlBridge/app_Znc_cmds.c index 24892a5..6cd40a2 100644 --- a/Source/ZigbeeNodeControlBridge/app_Znc_cmds.c +++ b/Source/ZigbeeNodeControlBridge/app_Znc_cmds.c @@ -352,10 +352,12 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte ) ZNC_BUF_U16_UPD ( &au8values[ 2 ], u16PacketType, u8Length ); vSL_WriteMessage ( E_SL_MSG_STATUS, u8Length, - au8values ); + au8values, + 0 ); vSL_WriteMessage ( E_SL_MSG_VERSION_LIST, sizeof ( uint32 ), - ( uint8* ) &u32Version ); + ( uint8* ) &u32Version, + 0 ); return; } break; @@ -1997,7 +1999,8 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte ) vNetworkRecoveryObtainRecoverData ( &sNwkRecovery ); vSL_WriteMessage( E_SL_MSG_NWK_RECOVERY_EXTRACT_RSP, sizeof(sNwkRecovery), - (uint8 *)&sNwkRecovery ); + (uint8 *)&sNwkRecovery, + 0 ); } break; @@ -2007,7 +2010,8 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte ) vNetworkRecoveryInsertRecoverData( ( tsNwkRecovery * ) &au8LinkRxBuffer ); vSL_WriteMessage( E_SL_MSG_NWK_RECOVERY_RESTORE_RSP, sizeof(uint8), - &u8Success ); + &u8Success, + 0 ); } break; #endif @@ -2207,7 +2211,8 @@ PUBLIC void APP_vProcessIncomingSerialCommands ( uint8 u8RxByte ) ZNC_BUF_U16_UPD ( &au8values [ 2 ], u16PacketType, u8Length ); vSL_WriteMessage ( E_SL_MSG_STATUS, u8Length, - au8values ); + au8values, + 0 ); } @@ -2956,7 +2961,8 @@ PRIVATE void APP_vControlNodeScanStart(void) au8Buffer[0] = u8Status; vSL_WriteMessage ( E_SL_MSG_NETWORK_JOINED_FORMED, sizeof(uint8) , - au8Buffer ); + au8Buffer, + 0 ); } return; } @@ -3019,7 +3025,8 @@ PRIVATE void APP_vControlNodeStartNetwork(void) au8Buffer[0] = u8Status; vSL_WriteMessage ( E_SL_MSG_NETWORK_JOINED_FORMED, sizeof(uint8) , - au8Buffer ); + au8Buffer, + 0 ); } } #ifdef FULL_FUNC_DEVICE @@ -3312,7 +3319,8 @@ PUBLIC void APP_vSendJoinedFormEventToHost ( uint8 u8FormJoin, APP_vSaveAllRecords(); vSL_WriteMessage ( E_SL_MSG_NETWORK_JOINED_FORMED, ( sizeof(uint8) + sizeof(uint16) + sizeof(uint64) + sizeof(uint8) ), - pu8Buffer ); + pu8Buffer, + 0 ); ZTIMER_eStart ( u8TmrToggleLED, s_sLedState.u32LedToggleTime ); /* Initialise the OTA */ @@ -3620,7 +3628,8 @@ PUBLIC void APP_vIdentifyEffect ( void* pvParam ) ZTIMER_eStart( u8IdTimer, ZTIMER_TIME_MSEC (u16IdentifyTime)); vSL_WriteMessage ( E_SL_MSG_IDENTIFY_LOCAL_ACTIVE, sizeof(uint8), - &u8Status ); + &u8Status, + 0 ); } /**************************************************************************** @@ -3646,7 +3655,8 @@ PUBLIC void APP_vIdentifyEffectEnd ( void* pvParam ) { vSL_WriteMessage ( E_SL_MSG_IDENTIFY_LOCAL_ACTIVE, sizeof(uint8), - &u8Status ); + &u8Status, + 0 ); } } /**************************************************************************** diff --git a/Source/ZigbeeNodeControlBridge/app_general_events_handler.c b/Source/ZigbeeNodeControlBridge/app_general_events_handler.c index bd7d79a..73efd0e 100644 --- a/Source/ZigbeeNodeControlBridge/app_general_events_handler.c +++ b/Source/ZigbeeNodeControlBridge/app_general_events_handler.c @@ -212,7 +212,8 @@ PUBLIC void APP_vHandleAppEvents ( void ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [0], bStatus, u16Length ); vSL_WriteMessage ( E_SL_MSG_GET_PERMIT_JOIN_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); } if(sAppEvent.eType == APP_E_EVENT_NETWORK_STATE) @@ -236,7 +237,7 @@ PUBLIC void APP_vHandleAppEvents ( void ) ZNC_BUF_U64_UPD (&au8LinkTxBuffer[u16TxSize], u64PANID, u16TxSize); ZNC_BUF_U8_UPD (&au8LinkTxBuffer[u16TxSize], (uint8)u32Channel, u16TxSize); - vSL_WriteMessage(E_SL_MSG_NETWORK_STATE_RSP, u16TxSize, au8LinkTxBuffer); + vSL_WriteMessage(E_SL_MSG_NETWORK_STATE_RSP, u16TxSize, au8LinkTxBuffer, 0 ); } if(sAppEvent.eType == APP_E_EVENT_OOB_COMMISSIONING_DATA) @@ -314,7 +315,8 @@ PUBLIC void APP_vHandleAppEvents ( void ) ZNC_BUF_U8_UPD (&au8LinkTxBuffer[u16TxSize], u8Status, u16TxSize); vSL_WriteMessage(E_SL_MSG_OUTOFBAND_COMMISSIONING_DATA_RSP, u16TxSize, - au8LinkTxBuffer); + au8LinkTxBuffer, + 0 ); } if(sAppEvent.eType == APP_E_EVENT_ENCRYPT_SEND_KEY) @@ -379,7 +381,8 @@ PUBLIC void APP_vHandleAppEvents ( void ) vSL_WriteMessage ( E_SL_MSG_AUTHENTICATE_DEVICE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); } switch (sZllState.eNodeState) { @@ -443,7 +446,8 @@ PUBLIC void APP_vHandleAppEvents ( void ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], sAppEvent.uEvent.sTouchLink.u8MacCap , u16Length ); vSL_WriteMessage ( E_SL_MSG_DEVICE_ANNOUNCE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); } } @@ -482,9 +486,12 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) tsBDB_ZCLEvent sBdbEvent; tsZCL_CallBackEvent sCallBackEvent; uint8 au8LinkTxBuffer[256]; + uint8 u8LinkQuality; vLog_Printf ( TRACE_APP,LOG_DEBUG, "Got stack event %d\n", psStackEvent->eType); + u8LinkQuality=psStackEvent->uEvent.sApsDataIndEvent.u8LinkQuality; + switch (psStackEvent->eType) { case ZPS_EVENT_APS_DATA_INDICATION: @@ -534,7 +541,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_DATA_INDICATION, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); vLog_Printf ( TRACE_APP,LOG_ERR, "NPDU: Current %d Max %d\n", PDUM_u8GetNpduUse(), PDUM_u8GetMaxNpduUse() ); vLog_Printf ( TRACE_APP,LOG_ERR, "APDU: Current %d Max %d\n", u8GetApduUse(), u8GetMaxApdu( ) ); @@ -559,7 +567,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_DEVICE_ANNOUNCE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -583,7 +592,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_COMPLEX_DESCRIPTOR_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -602,7 +612,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_NODE_DESCRIPTOR_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -624,7 +635,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_MATCH_DESCRIPTOR_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -656,7 +668,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) } vSL_WriteMessage ( E_SL_MSG_SIMPLE_DESCRIPTOR_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -682,13 +695,15 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) { vSL_WriteMessage ( E_SL_MSG_NETWORK_ADDRESS_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } else { vSL_WriteMessage ( E_SL_MSG_IEEE_ADDRESS_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } } @@ -699,7 +714,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length] , sApsZdpEvent.uZdpData.sMgmtLeaveRsp.u8Status, u16Length ); vSL_WriteMessage ( E_SL_MSG_MANAGEMENT_LEAVE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -730,7 +746,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) } vSL_WriteMessage ( E_SL_MSG_MANAGEMENT_LQI_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -740,7 +757,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) ZNC_BUF_U16_UPD ( &au8LinkTxBuffer [u16Length] , sApsZdpEvent.uZdpData.sPowerDescRsp.sPowerDescriptor.uBitUnion.u16Value, u16Length ); vSL_WriteMessage ( E_SL_MSG_POWER_DESCRIPTOR_RESPONSE, u16Length, - au8LinkTxBuffer); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -762,7 +780,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) } vSL_WriteMessage ( E_SL_MSG_ACTIVE_ENDPOINT_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -784,7 +803,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) } vSL_WriteMessage ( E_SL_MSG_MANAGEMENT_NETWORK_UPDATE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -795,7 +815,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_SYSTEM_SERVER_DISCOVERY_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -814,7 +835,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) } vSL_WriteMessage ( E_SL_MSG_USER_DESC_RSP, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -825,7 +847,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_USER_DESC_NOTIFY, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -837,24 +860,28 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) case ZPS_ZDP_BIND_RSP_CLUSTER_ID: vSL_WriteMessage ( E_SL_MSG_BIND_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); break; case ZPS_ZDP_UNBIND_RSP_CLUSTER_ID: vSL_WriteMessage ( E_SL_MSG_UNBIND_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); break; case ZPS_ZDP_MGMT_LEAVE_RSP_CLUSTER_ID: vSL_WriteMessage ( E_SL_MSG_MANAGEMENT_LEAVE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); break; case ZPS_ZDP_MGMT_PERMIT_JOINING_RSP_CLUSTER_ID: vSL_WriteMessage ( E_SL_MSG_PERMIT_JOINING_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); break; default: break; @@ -883,7 +910,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psStackEvent->uEvent.sNwkRouteDiscoveryConfirmEvent.u8NwkStatus, u16Length ); vSL_WriteMessage ( E_SL_MSG_ROUTE_DISCOVERY_CONFIRM, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); break; case ZPS_EVENT_NWK_STATUS_INDICATION: @@ -986,7 +1014,8 @@ PUBLIC void APP_vHandleStackEvents ( ZPS_tsAfEvent* psStackEvent ) vSL_WriteMessage ( E_SL_MSG_LEAVE_INDICATION, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } } break; @@ -1318,6 +1347,9 @@ PUBLIC void Znc_vSendDataIndicationToHost ( ZPS_tsAfEvent* psStackEvent, uint16 i = 0; uint8* dataPtr = ( uint8* ) PDUM_pvAPduInstanceGetPayload ( psStackEvent->uEvent.sApsDataIndEvent.hAPduInst ); uint8 u8Size = PDUM_u16APduInstanceGetPayloadSize( psStackEvent->uEvent.sApsDataIndEvent.hAPduInst); + uint8 u8LinkQuality; + + u8LinkQuality = psStackEvent->uEvent.sApsDataIndEvent.u8LinkQuality; ZNC_BUF_U8_UPD ( &pau8LinkTxBuffer[u16Length] , psStackEvent->uEvent.sApsDataIndEvent.eStatus, @@ -1377,7 +1409,8 @@ PUBLIC void Znc_vSendDataIndicationToHost ( ZPS_tsAfEvent* psStackEvent, vSL_WriteMessage ( E_SL_MSG_DATA_INDICATION, u16Length, - pau8LinkTxBuffer ); + pau8LinkTxBuffer, + u8LinkQuality ); } /****************************************************************************/ /*** END OF FILE ***/ diff --git a/Source/ZigbeeNodeControlBridge/app_start.c b/Source/ZigbeeNodeControlBridge/app_start.c index 5c5b404..8c5e6aa 100644 --- a/Source/ZigbeeNodeControlBridge/app_start.c +++ b/Source/ZigbeeNodeControlBridge/app_start.c @@ -376,14 +376,16 @@ PUBLIC void vAppMain(void) APP_vSendJoinedFormEventToHost ( u8FormJoin, au8LinkTxBuffer ); vSL_WriteMessage ( E_SL_MSG_NODE_NON_FACTORY_NEW_RESTART, 1, - ( uint8* ) &sZllState.eNodeState ) ; + ( uint8* ) &sZllState.eNodeState, + 0 ) ; BDB_vStart(); } else { vSL_WriteMessage( E_SL_MSG_NODE_FACTORY_NEW_RESTART, 1, - ( uint8* ) &sZllState.eNodeState ); + ( uint8* ) &sZllState.eNodeState, + 0 ); } ZTIMER_eStart ( u8TickTimer, ZCL_TICK_TIME ); @@ -912,7 +914,8 @@ PUBLIC void app_vFormatAndSendUpdateLists ( void ) } vSL_WriteMessage ( E_SL_MSG_NODE_CLUSTER_LIST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); /* Cluster list endpoint HA */ u16Length = u8BufferLoop = 0; @@ -926,7 +929,8 @@ PUBLIC void app_vFormatAndSendUpdateLists ( void ) } vSL_WriteMessage ( E_SL_MSG_NODE_CLUSTER_LIST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); /* Attribute list basic cluster HA EP*/ for ( u8Count = 0; u8Count < 13; u8Count++ ) @@ -943,7 +947,8 @@ PUBLIC void app_vFormatAndSendUpdateLists ( void ) } vSL_WriteMessage ( E_SL_MSG_NODE_ATTRIBUTE_LIST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); u16Length = 0; u8BufferLoop = 0; ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [ 0 ], ZIGBEENODECONTROLBRIDGE_ZLO_ENDPOINT, u16Length ); @@ -956,7 +961,8 @@ PUBLIC void app_vFormatAndSendUpdateLists ( void ) } vSL_WriteMessage ( E_SL_MSG_NODE_COMMAND_ID_LIST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + 0 ); } } diff --git a/Source/ZigbeeNodeControlBridge/app_zcl_event_handler.c b/Source/ZigbeeNodeControlBridge/app_zcl_event_handler.c index 733d743..d02488d 100644 --- a/Source/ZigbeeNodeControlBridge/app_zcl_event_handler.c +++ b/Source/ZigbeeNodeControlBridge/app_zcl_event_handler.c @@ -211,6 +211,8 @@ void APP_vHandleZclEvents ( ZPS_tsAfEvent* psStackEvent ) tsZCL_CallBackEvent sCallBackEvent; uint16 u16Length = 0; uint8 au8LinkTxBuffer[256]; + uint8 u8LinkQuality; + u8LinkQuality = psStackEvent->uEvent.sApsDataIndEvent.u8LinkQuality; /* * If the 1 second tick timer has expired, restart it and pass * the event on to ZCL @@ -260,7 +262,8 @@ void APP_vHandleZclEvents ( ZPS_tsAfEvent* psStackEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psStackEvent->uEvent.sApsDataConfirmEvent.u8SequenceNum, u16Length ); vSL_WriteMessage ( E_SL_MSG_APS_DATA_CONFIRM_FAILED, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -359,6 +362,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) { uint16 u16Length = 0; uint8 au8LinkTxBuffer[256]; + uint8 u8LinkQuality; + u8LinkQuality = psEvent->pZPSevent->uEvent.sApsDataIndEvent.u8LinkQuality; vLog_Printf ( TRACE_ZCL,LOG_DEBUG, "\nEntering cbZCL_EndpointCallback %d", psEvent->eEventType); @@ -414,7 +419,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psEvent->uMessage.sDefaultResponse.u8StatusCode, u16Length ); vSL_WriteMessage ( E_SL_MSG_DEFAULT_RESPONSE, u16Length, - au8LinkTxBuffer); + au8LinkTxBuffer, + u8LinkQuality ); } } break; @@ -519,15 +525,18 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) if((psEvent->eEventType == E_ZCL_CBET_READ_INDIVIDUAL_ATTRIBUTE_RESPONSE)) vSL_WriteMessage ( E_SL_MSG_READ_ATTRIBUTE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); else if((psEvent->eEventType == E_ZCL_CBET_REPORT_INDIVIDUAL_ATTRIBUTE)) vSL_WriteMessage ( E_SL_MSG_REPORT_IND_ATTR_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); else if((psEvent->eEventType == E_ZCL_CBET_WRITE_ATTRIBUTES_RESPONSE)) vSL_WriteMessage ( E_SL_MSG_WRITE_ATTRIBUTE_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -544,7 +553,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psEvent->uMessage.sAttributeReportingConfigurationResponse.eCommandStatus, u16Length ); vSL_WriteMessage ( E_SL_MSG_CONFIG_REPORTING_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -573,7 +583,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_READ_REPORT_CONFIG_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -586,7 +597,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_ATTRIBUTE_DISCOVERY_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -600,7 +612,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_ATTRIBUTE_EXT_DISCOVERY_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -612,7 +625,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psEvent->uMessage.sCommandsReceivedDiscoveryIndividualResponse.u8CommandIndex, u16Length ); vSL_WriteMessage ( E_SL_MSG_COMMAND_RECEIVED_DISCOVERY_INDIVIDUAL_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -624,7 +638,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_COMMAND_RECEIVED_DISCOVERY_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -635,7 +650,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) ZNC_BUF_U8_UPD ( &au8LinkTxBuffer [u16Length], psEvent->uMessage.sCommandsGeneratedDiscoveryIndividualResponse.u8CommandIndex, u16Length ); vSL_WriteMessage ( E_SL_MSG_COMMAND_GENERATED_DISCOVERY_INDIVIDUAL_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -647,7 +663,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_COMMAND_GENERATED_DISCOVERY_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -719,7 +736,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_BLOCK_REQUEST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -747,7 +765,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_UPGRADE_END_REQUEST, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); uint32 i; for (i=0;iu8CommandId, u16Length ); vSL_WriteMessage ( E_SL_MSG_ONOFF_UPDATE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; case GENERAL_CLUSTER_ID_IDENTIFY: @@ -850,7 +870,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) } vSL_WriteMessage ( u16Command, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); }//General Group cluster id break; @@ -973,7 +994,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) } vSL_WriteMessage( u16Command, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; @@ -1009,7 +1031,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_IAS_ZONE_STATUS_CHANGE_NOTIFY, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; //IAS ZONE CHANGE NOTIFY @@ -1037,7 +1060,8 @@ PRIVATE void APP_ZCL_cbEndpointCallback ( tsZCL_CallBackEvent* psEvent ) vSL_WriteMessage ( E_SL_MSG_ASC_LOG_MSG_RESPONSE, u16Length, - au8LinkTxBuffer ); + au8LinkTxBuffer, + u8LinkQuality ); } break; #ifdef CLD_GREENPOWER