⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zigbeeif.cpp

📁 基于ZIGBEE协议通讯的开关程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  // 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 + -