📄 zigbeeif.cpp
字号:
// Build the message buffer
data[i++] = ZDO_USER_DESC_SET_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
data[i++] = Significance;
data[i++] = Duration;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_END_DEVICE_BIND_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_END_DEVICE_BIND_request
(
unsigned short LocalCoordinator,
unsigned char DEP,
unsigned short ProfileID,
unsigned char NumInClusters,
unsigned char* InClusterList,
unsigned char NumOutClusters,
unsigned char* OutClusterList
)
{
unsigned char data[128];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_END_DEVICE_BIND_REQUEST;
data[i++] = LocalCoordinator & 0xFF;
data[i++] = (LocalCoordinator>>8) & 0xFF;
data[i++] = DEP;
data[i++] = ProfileID & 0xFF;
data[i++] = (ProfileID>>8) & 0xFF;
data[i++] = NumInClusters;
for( ; NumInClusters>0 ; NumInClusters-- ) data[i++] = *InClusterList++;
data[i++] = NumOutClusters;
for( ; NumOutClusters>0 ; NumOutClusters-- ) data[i++] = *OutClusterList++;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_BIND_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_BIND_request
(
unsigned short DstShort,
unsigned char* SrcAddress,
unsigned char SrcEndPoint,
unsigned char ClusterID,
unsigned char* DstAddress,
unsigned char DstEndPoint
)
{
unsigned char data[23];
unsigned char i = 1;
unsigned char j;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_BIND_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
for ( j=0 ; j<8 ; j++ ) data[i++] = *SrcAddress++;
data[i++] = SrcEndPoint;
data[i++] = ClusterID;
for ( j=0 ; j<8 ; j++ ) data[i++] = *DstAddress++;
data[i++] = DstEndPoint;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_UNBIND_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_UNBIND_request
(
unsigned short DstShort,
unsigned char* SrcAddress,
unsigned char SrcEndPoint,
unsigned char ClusterID,
unsigned char* DstAddress,
unsigned char DstEndPoint
)
{
unsigned char data[23];
unsigned char i = 1;
unsigned char j;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_UNBIND_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
for ( j=0 ; j<8 ; j++ ) data[i++] = *SrcAddress++;
data[i++] = SrcEndPoint;
data[i++] = ClusterID;
for ( j=0 ; j<8 ; j++ ) data[i++] = *DstAddress++;
data[i++] = DstEndPoint;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_NWK_DISC_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_NWK_DISC_request
(
unsigned short DstShort,
unsigned long ScanChannels,
unsigned char ScanDuration,
unsigned char StartIndex
)
{
unsigned char data[10];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_NWK_DISC_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
data[i++] = (unsigned char)ScanChannels & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>8) & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>16) & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>24) & 0xFF;
data[i++] = ScanDuration;
data[i++] = StartIndex;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_LQI_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_LQI_request
(
unsigned short DstShort,
unsigned char StartIndex
)
{
unsigned char data[5];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_LQI_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
data[i++] = StartIndex;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_RTG_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_RTG_request
(
unsigned short DstShort,
unsigned char StartIndex
)
{
unsigned char data[5];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_RTG_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
data[i++] = StartIndex;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_BIND_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_BIND_request
(
unsigned short DstShort,
unsigned char StartIndex
)
{
unsigned char data[5];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_BIND_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
data[i++] = StartIndex;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_LEAVE_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_LEAVE_request
(
unsigned short DstShort,
unsigned char DeviceAddress[8]
)
{
unsigned char data[12];
unsigned char i = 1;
unsigned char j;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_LEAVE_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
for ( j=0 ; j<8 ; j++ ) data[i++] = DeviceAddress[j];
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_MGMT_DIRECT_JOIN_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_MGMT_DIRECT_JOIN_request
(
unsigned short DstShort,
unsigned char DeviceAddress[8],
unsigned char MacCapability
)
{
unsigned char data[13];
unsigned char i = 1;
unsigned char j;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_DIRECT_JOIN_REQUEST;
data[i++] = DstShort & 0xFF;
data[i++] = (DstShort>>8) & 0xFF;
for ( j=0 ; j<8 ; j++ ) data[i++] = DeviceAddress[j];
data[i++] = MacCapability;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_NLME_PERMIT_JOINING_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_NLME_PERMIT_JOINING_request
(
unsigned char Duration
)
{
unsigned char data[3];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_NLME_PERMIT_JOINING_REQUEST;
data[i++] = Duration;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_NLME_SYNC_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_NLME_SYNC_request
(
unsigned char Track
)
{
unsigned char data[3];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_NLME_SYNC_REQUEST;
data[i++] = Track;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_NLME_LEAVE_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_NLME_LEAVE_request
(
unsigned char* Device,
unsigned char RemoveChildren,
unsigned char MacSecurityEnable
)
{
unsigned char data[12];
unsigned char i = 1;
unsigned char j;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_NLME_LEAVE_REQUEST;
for ( j=0 ; j<8 ; j++ ) data[i++] = Device[j];
data[i++] = RemoveChildren;
data[i++] = MacSecurityEnable;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
/*
** ============================================================================
**
** FUNCTION NAME:
** ZDO_NLME_NETWORK_DISCOVERY_request
**
** AUTHOR
** Ian Marsden
**
** ============================================================================
*/
void CZigBeeIf::ZDO_NLME_NETWORK_DISCOVERY_request
(
unsigned long ScanChannels,
unsigned char ScanDuration
)
{
unsigned char data[7];
unsigned char i = 1;
if (hinstLib == NULL ) return; // Not connected so cannot send this message
// Build the message buffer
data[i++] = ZDO_MGMT_NWK_DISC_REQUEST;
data[i++] = (unsigned char)ScanChannels & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>8) & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>16) & 0xFF;
data[i++] = (unsigned char)(ScanChannels>>24) & 0xFF;
data[i++] = ScanDuration;
data[0] = i - 1;
(ZBDLLSend)( i, &data[0] ); // Send the message
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -