【XBEE手册】网络调试与诊断

本文介绍了XBee网络的调试与诊断方法,包括设备放置、链路测试、RSSI指标评估、设备发现、调试按钮及LED的应用、网络绑定以及组表API的详细使用流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【XBEE手册】网络调试与诊断

@(ZigBee)[ZigBee, XBEE手册]

[转载请注明出处,谢谢!]



放置设备

为了使网络安装成功,安装人员必须能够确定将各个XBee设备放在何处以在整个网络中建立可靠的链接。

测试网络中的链路 - 环回群集(loopback cluster)

要测量网络性能,用户可以通过网络将单播数据从一个设备发送到另一个设备,以确定多个传输的成功率。为简化链路测试,设备支持数据端点(0xE8)上的环回群集ID(0x12)。数据端点上的群集ID将传输给它的任何数据发送回发送方。

下图演示了如何使用Loopback群集ID和数据端点来测量网状网络中的链路质量。
enter image description here

将数据发送到环回群集ID的配置步骤取决于设备所处的模式。有关设置模式的详细信息,请参阅API Enable。以下部分列出了基于设备模式的步骤。

透传操作模式配置(AP = 0)
要将数据发送到远程设备的数据端点上的环回群集ID,请执行以下操作:

  1. 将CI命令设置为0x12。
  2. 将SE和DE命令设置为0xE8(默认值)。
  3. 将DH和DL命令设置为远程地址(0表示协调器,或64位远程地址)。

退出命令模式后,设备会将收到的所有串行字符发送到远程设备,然后将这些字符返回给发送设备。

API操作模式配置(AP = 1或AP = 2)
发送显式寻址命令帧 - 0x11使用0x12作为群集ID,0xE8作为源和目标端点。

远程设备将它接收的数据包回送给发送设备。

RSSI指标

可以使用DB命令测量设备上的接收信号强度。DB返回最后接收的数据包的RSSI值(以-dBm为单位)。但是,这个数字可能会误导Zigbee的网络。该DB值仅表示最后一跳的接收信号强度。如果传输跨越多跳,则DB值不提供总传输路径或最差链路的质量的指示; 它只表示最后一个链路的质量。

使用RSSI / PWM器件引脚(TH引脚6 / SMT引脚7)确定硬件中的DB值。如果启用RSSI PWM功能(P0命令),则当设备接收数据时,它会将RSSI PWM设置为基于接收数据包的RSSI的值(此值仅指示最后一跳的质量)。用户可以将此引脚连接到LED,以指示链路是否稳定。

设备发现

网络发现
使用network discovery命令发现已加入网络的所有设备。发出ND命以在整个网络中发送广播网络发现命令。接收该命令的所有设备都会发送包含以下内容的响应:

  • 设备寻址信息
  • 节点标识符字符串(参见NI命令)
  • 其他相关信息

用户可以使用此命令生成网络中所有模块地址的列表。

ZDO发现
Zigbee设备配置文件包括用于发现所有Zigbee设备(包括非Digi产品)支持的网络中的设备的规定,包括LQI请求(群集ID 0x0031)和网络更新请求(群集ID 0x0038)。用户可以使用LQI请求来读取远程设备的邻居表中的设备,并使用远程设备的网络更新请求来完成主动扫描以发现所有附近的Zigbee设备。用户可以使用XBee Explicit API发送帧(0x11)发送这两个ZDO命令。有关更多信息,请参阅API操作。有关这两个ZDO帧的格式详细信息,请参阅Zigbee规范。

加入宣布
所有Zigbee设备在加入Zigbee网络(ZDO群集ID 0x0013)时发送ZDO Device Announce广播传输。如果AO设置为1,则这些帧作为显式Rx指示符API帧(0x91)从设备的串行端口发出。设备通告有效负载包括以下信息:

[序列号] + [16位地址] + [64位地址] + [功能]

以小端字节顺序(LSB优先)接收16位和64位地址。有关详细信息,请参阅Zigbee规范。

调试按钮和关联LED

XBee设备支持一组调试按钮和LED功能,以帮助设备部署和调试。其中包括调试按钮定义和关联LED行为。硬件支持以下功能:

按钮和LED可以连接到XBee / XBee-PRO Zigbee RF模块 引脚33和28(SMT)或引脚20和15(TH)分别 支持调试按钮和关联LED功能。

调试按钮

调试按钮定义提供了各种简单的功能,以帮助在网络中部署设备。通过将D0(AD0 / DIO0配置)设置为1(默认启用)启用引脚20 上的调试按钮功能 。

按钮按下描述
1开始加入。无论ST / SN设置如何,都会唤醒睡眠终端设备30秒。如果加入网络,它还会发送节点标识广播。
Zigbee设备在Associate引脚上闪烁(AI - 32)次,表示一个数字错误代码,指示加入失败的原因。
与网络相关但未经认证的SE路由器或SE终端设备离开其网络; 然后尝试加入。
2启用加入。广播Mgmt_Permit_Joining_req(ZDO ClusterID 0x0036),TC_Significance设置为 0x00。如果NJ为0x00或0xFF,则PermitDuration设置为1分钟,否则PermitDuration设置为NJ。
4将配置恢复为默认值并离开网络。相当于发出NR,RE和AC 命令。

使用CB命令模拟软件中的按钮按下。发出一个CB命令,其参数设置为用户想要执行的按钮数量。例如,发送CB1执行与单个按钮按下相关联的动作。

节点识别帧类似于节点发现响应帧; 它包含设备的地址,节点标识符字符串(NI命令)和其他相关数据。接收节点标识帧的所有API设备将其作为节点标识指示帧(0x95)发送出其串行接口。

关联LED

Associate引脚(pin 28/SMT, pin 33/TH)指示设备的网络状态。如果设备未加入网络,则Associate引脚设置为高电平。设备成功加入网络后,Associate引脚会以固定的时间间隔闪烁。下图显示了设备的连接状态。
enter image description here

关联引脚可以指示设备的加入状态。一旦设备加入网络,关联引脚就会以规则的间隔(Δt)切换状态。使用LT命令设置时间。

的LT命令定义了准销的闪烁时间。如果设置为0,则设备使用默认闪烁时间(协调器为500 ms,路由器和终端设备为250 ms)。

诊断支持
Associate引脚与调试按钮配合使用,以提供其他诊断行为,以帮助部署和测试网络。如果按下调试按钮一次,并且设备尚未加入网络,则关联引脚会闪烁一个数字错误代码,以指示加入失败的原因。闪烁次数等于(AI值 - 0x20)。例如,如果AI = 0x22,则发生2次闪烁。

如果按下调试按钮一次并且设备已加入网络,则设备发送广播节点标识包。如果启用了关联LED功能(D5命令),则接收此传输的设备将快速闪烁其关联引脚1秒钟。

下图说明了当设备未加入网络时按下调试按钮一次的行为,导致关联引脚闪烁以指示AI代码:AI = #blinks + 0x20。在此示例中,AI = 0x22。
enter image description here

下图说明了在远程设备上按一次按钮的行为,导致发送广播节点标识传输。如果启用了关联LED功能(D5 = 1),接收此传输的所有设备将快速闪烁其关联引脚一秒钟。
enter image description here

捆绑

Digi XBee固件支持三种绑定请求消息:

  • 终端设备绑定
  • 捆绑
  • 解除绑定

End_Device_Bind_req
Zigbee规范中描述了终端设备绑定请求(ZDO群集0x0020)。

在部署期间,安装程序可能需要将交换机绑定到灯。按下每个设备上的调试按钮序列后,这会使它们在一个时间窗口(60秒)内向协调器发送End_Device_Bind_req消息。每条消息的有效负载是一个简单的描述符,它列出了输入和输出的clusterID。协调器通过配对互补的clusterID来匹配请求。匹配完成后,它会发送消息以将设备绑定在一起。当进程结束时,两个设备的绑定表中都有条目,这些条目支持在绑定端点之间间接寻址消息。

R1-> C End_Device_Bind_req

R2-> C End_Device_Bind_req

R1,R2在相隔60秒内将End_Device_Bind_req发送给C

C匹配请求。

C测试一个以查看绑定是否已经到位:

R2 <-C Unbind_req

R2-> C Unbind-rsp(状态代码 - NO_ENTRY)

C继续在两个设备上创建绑定表条目。

R1 <-C Bind_req

R1-> C Bind_rsp

R2 <-C Bind_req

R2-> C Bind_rsp

C发送对原始End_Device_Bind_req消息的响应。

R1-

组表API

与使用ZDO命令管理的绑定表不同,Zigbee组表由Zigbee群集库组群(0x0006)和ZCL命令管理。

Digi Zigbee XBee固件旨在与外部处理器配合使用,其中实现了具有端点和群集的公共应用程序配置文件,包括组群集。配置Zigbee XBee固件以将发往该组群的所有ZCL命令转发出UART(参见ATAO3)。XBee Zigbee不会使用远程组群集命令来管理自己的组表。

但是要在XBee中实现多播(组)寻址,外部处理器必须使XBee设备的组表状态与其自身保持同步。因此,定义了一个Group Table API,外部处理器可以管理XBee / XBee-PRO Zigbee RF模块组表的状态。

XBee固件的Group Table API的设计源自ZCL Group Cluster 0x0006。使用显式寻址命令帧 - 0x11寻址到Digi设备对象端点(0xE6),使用Digi XBee ProfileID(0xC105)向本地设备发送命令和请求。

Zigbee家庭自动化公共应用程序配置文件表示,组仅应用于超过五台设备的集合。这意味着管理五个或更少设备的集合应该使用多个绑定表条目(而不是用组表)。

API中实现了五个命令:

  • 添加组命令
  • 查看组
  • 获得组成员资格
  • 删除组
  • 删除所有组

ZCL中描述了Group Cluster的第六个命令:Add Group If If Identifying。此API不支持此命令,因为其实现需要访问识别群集,而这不在XBee上维护。外部处理器需要在使用Group Table API时实现该服务器命令,以使用五个命令原语使XBee设备的组表保持同步。

添加组

“Add Group”命令的目的是添加组表条目,以将活动端点与groupID和可选的groupName相关联。groupID是一个双字节值。groupName由0到16个ASCII字符组成。

以下示例添加一个组表条目,该条目将端点E7与groupID 1234和groupName“ABCD”相关联。

请求数据包

7e001e11010013a2004047b55cfffee6e70006c105000001ee0034120441424344c7

数据包由序言,ZCL标头和ZCL有效负载三部分组成:

Preamble = “11 01”+ LocalDevice64Addr +“FFFE E6 E7 0006 C105 00 00”

数据包使用0xE6的源端点,0x0006的clusterID和0xC105的profileID寻址到本地节点。目标端点E7保存“Add Group”命令的端点参数。

ZCL_header =“01 ee 00”

第一个字段(字节)是帧控制字段,它使用客户端 - >服务器方向(0x00)指定Cluster Specific命令(0x01)。第二个字段是用于将响应与命令请求相关联的交易序列号。第三个字段是“Add Group”(0x00)的命令标识符。

ZCL_payload =“3412 04 41 42 43 44”

前两个字节是小端形式的要添加的组ID。下一个字节是字符串名称长度(如果没有字符串,则为00)。其他字节是ASCII字符串表示的组表名称(“ABCD”)。

响应数据包(由两个数据包组成):

7e0018910013a2004047b55cfffee7e68006c1050009ee0000341238
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE SrcEP 0xE7 DestEP 0xE6
ClusterID 0x8006 ProfileID 0xC105 Options 0x00
RF_Data 0x09EE00003412

其序言,ZCL标头和ZCL有效载荷:

Preamble = “910013a2004047b55cfffee7e68006c10500”

数据包的端点值与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 00”

第一个字段是帧控制字段,它使用Server-> Client方向指定Cluster Specific命令(0x01)。第二个字段是用于将响应与命令请求相关联的交易序列号。第三个字段是命令标识符“Add Group”(0x00)。

ZCL_payload =“00 3412”

第一个字节是状态字节(SUCCESS = 0x00)。接下来的两个字节以小端格式保存的组ID(0x1234)。

第二个响应数据包

它是原始命令请求的Tx状态。如果原始命令请求中的FrameId值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B FrameID 0x01 16DestAddr 0xFFFE
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success

查看组

View Group命令的目的是获取与特定端点和groupID关联的名称字符串。

以下示例获取与端点E7和groupID 1234关联的名称字符串。

请求数据包:

7e001911010013a2004047b55cfffee6e70006c105000001ee013412d4

其序言,ZCL标头和ZCL有效载荷:

Preamble =“11 01”+ LocalDevice64Addr +“FFFE E6 E7 0006 C105 00 00”

数据包使用0xE6的源端点,0x0006的clusterID和0xC105的profileID寻址到本地节点。目标端点E7是“查看组”命令的端点参数。

ZCL_header =“01 ee 01”

第一个字段是帧控制字段,它使用客户端 - >服务器方向(0x00)指定集群特定命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“View Group”(0x01)。

ZCL_payload =“3412”

两个字节值是以little-endian表示的groupID。

响应数据包(由两个数据包组成):

7e001d910013a2004047b55cfffee7e68006c1050009ee01003412044142434424
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE SrcEP 0xE7 DestEP 0xE6 
ClusterID 0x8006 ProfileID 0xC105 Options 0x00
RF_Data 0x09EE010034120441424344

其序言,ZCL标头和ZCL有效载荷:

Preamble =“910013a2004047b55cfffee7e68006c10500”

数据包的端点值与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 01”

第一个字段是帧控制字段,它使用服务器 - >客户端方向(0x08)指定特定于集群的命令(0x01)。第二个字段是一个交易序列号,它将响应与命令请求相关联。第三个字段是命令标识符“View Group”(0x01)。

ZCL_payload =“00 3412 0441424344”

第一个字节是状态字节(SUCCESS = 0x00)。接下来的两个字节以little-endian形式保存groupID(0x1234)。下一个字节是名称字符串长度(0x04)。其余字节是ASCII名称字符串字符(“ABCD”)。

第二个响应数据包
它是原始命令请求的Tx状态。如果原始命令请求中的FrameId值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B FrameID 0x01 16DestAddr 0xFFF
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success

获得组成员资格

获得组成员资格(1/2)

第一种形式的Get Group Membership命令的目的是获取与特定端点关联的所有groupID。

该示例的目的是获取与端点E7关联的所有groupID。

请求数据包:

7e001811010013a2004047b55cfffee6e70006c105000001ee020019

其序言,ZCL标头和ZCL有效载荷:

Preamble = “11 01 “+LocalDevice64Addr+”FFFE E6 E7 0006 C105 00 00"

数据包使用0xE6的源端点,0x0006的clusterID和0xC105的profileID寻址到本地节点。目标端点E7保存“Get Group Membership”命令的端点参数。

ZCL_header =“01 ee 02”

第一个字段(字节)是帧控制字段,它使用客户端 - >服务器方向(0x00)指定特定于集群的命令(0x02)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是“Get Group Membership”(0x02)的命令标识符。

ZCL_payload =“00”

第一个字节是组计数。如果为零,则将在响应中返回具有与给定端点参数匹配的端点值的所有groupID。

响应数据包(由两个数据包组成):

7e0019910013a2004047b55cfffee7e68006c1050009ee02ff01341235
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE SrcEP 0xE7 DestEP 0xE6 ClusterID 0x8006 ProfileID 0xC105 Options 0x00
RF_Data 0x09EE02FF013412

其序言,ZCL标头和ZCL有效载荷:

Preamble =“910013a2004047b55cfffee7e68006c10500”

数据包的端点与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 02”

第一个字段是帧控制字段,它使用服务器 - >客户端方向(0x08)指定特定于集群的命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Get Group Membership”(0x02)。

ZCL_payload =“FF 01 3412”

第一个字节是组表的剩余容量。0xFF表示未知。XBee返回此值,因为组表的容量取决于绑定表的剩余容量,因此组表的容量未知。第二个字节是组计数(0x01)。剩余的字节是little-endian形式的groupID。

第二个响应数据包
它是原始命令请求的Tx状态。如果原始命令请求中的FrameId值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B FrameID 0x01 16DestAddr 0xFFFE
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success
获得组成员资格(2/2)

Get Group Membership命令的第二种形式的目的是获得与特定端点相关联的groupID集合,该特定端点是给定groupID列表的子集。

以下示例获取与端点E7关联的groupID,它们是给定的groupID列表(0x1234,0x5678)的子集。

请求数据包:

 7e001c11010013a2004047b55cfffee6e70006c105000001ee02023412785603

其序言,ZCL标头和ZCL有效载荷:

Preamble =“11 01”+ LocalDevice64Addr +“FFFE E6 E7 0006 C105 00 00”

数据包使用0xE6的源端点,0x0006的clusterID和0xC105的profileID寻址到本地节点。目标端点E7是“Get Group Membership”命令的端点参数。

ZCL_header =“01 ee 02”

第一个字段(字节)是帧控制字段,它使用客户端 - >服务器方向(0x00)指定特定于集群的命令(0x02)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是“Get Group Membership”(0x02)的命令标识符。

ZCL_payload =“02 34127856”

第一个字节是组计数。剩余的字节是使用little-endian表示的groupID。

响应数据包(由两个数据包组成):

7e0019910013a2004047b55cfffee7e68006c1050009ee02ff01341235 
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE    SrcEP 0xE7    DestEP 0xE6 
ClusterID 0x8006 ProfileID 0xC105    Options 0x00
RF_Data 0x09EE02FF013412

其序言,ZCL标头和ZCL有效载荷:

Preamble =“910013a2004047b55cfffee7e68006c10500”

数据包的端点与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 02”

第一个字段是帧控制字段,它使用服务器 - >客户端方向(0x08)指定特定于集群的命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Get Group Membership”(0x02)。

ZCL_payload =“FF 01 3412”

第一个字节是组表的剩余容量。0xFF表示未知。XBee返回此值,因为组表的容量取决于绑定表的剩余容量,因此组表的容量未知。第二个字节是组计数(0x01)。剩余的字节是little-endian表示的groupID。

第二个响应数据包
它是原始命令请求的Tx状态。如果原始命令请求中的FrameId值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B    FrameID 0x01    16DestAddr 0xFFFE
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success

删除组

Remote Group命令的目的是删除将给定端点与给定groupID相关联的Group Table条目。

该示例的目的是删除groupID [TBD]与端点E7的关联。

请求数据包:

7e001911010013a2004047b55cfffee6e70006c105000001ee033412d2

其序言,ZCL标头和ZCL有效载荷:

Preamble = “11 01”+ LocalDevice64Addr +“FFFE E6 E7 0006 C105 00 00”

数据包使用0xE6的源端点,0x0006的clusterID和0xC105的profileID寻址到本地节点。目标端点E7是“删除组”命令的端点参数。

ZCL_header =“01 ee 03”

第一个字段是帧控制字段,它使用客户端 - >服务器方向(0x00)指定集群特定命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Remove Group”(0x03)。

ZCL_payload =“3412”

两个字节值是要以little-endian表示的要删除的groupID。

响应数据包(由两个数据包组成):

7e0018910013a2004047b55cfffee7e68006c1050009ee0300341235
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE SrcE 0xE DestEP 0xE6 
ClusterID 0x8006 ProfileID 0xC105选项0x00
RF_Data 0x09EE03003412

其序言,ZCL标头和ZCL有效载荷:

 Preamble = “910013a2004047b55cfffee7e68006c10500”

数据包的端点值与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 03”

第一个字段是帧控制字段,它使用服务器 - >客户端方向(0x08)指定特定于集群的命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Remove Group”(0x03)。

ZCL_payload =“00 3412”

第一个字节是状态字节(SUCCESS = 0x00)。接下来的两个字节是little-endian形式的groupID(0x1234)值。

第二个响应数据包
它是原始命令请求的Tx状态。如果原始命令请求中的FrameId值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B     FrameID 0x01    16DestAddr 0xFFFE
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success

删除所有组

“Remove All Groups”命令的目的是清除组表中与目标端点关联的所有条目。

以下示例删除与端点E7关联的所有组。

请求数据包:

7e001711010013a2004047b55cfffee6e70006c105000001ee0417

其序言,ZCL标头和ZCL有效载荷:

Preamble =“11 01”+ LocalDevice64Addr +“FFFE E6 E7 0006 C105 00 00”

数据包使用0xE6的源端点,0x0006的clusterId和0xC105的profileID寻址到本地节点。目标端点E7是“Remove All Groups”命令的端点参数。

ZCL_header =“01 ee 04”

第一个字段是帧控制字段,它使用客户端 - >服务器方向(0x00)指定集群特定命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Remove All Groups”(0x04)。

ZCL_payload =“”

此命令不需要有效负载。

响应数据包(由两个数据包组成):

7e0016910013a2004047b55cfffee7e68006c1050009ee04007c
7e00078b01fffe00000076

第一个响应数据包

解码内容

Zigbee Explicit Rx Indicator
API 0x91 64DestAddr 0x0013A2004047B55C 16DestAddr 0xFFFE    SrcEP 0xE7    DestEP 0xE6 
ClusterID 0x8006 ProfileID 0xC105    Options 0x00
RF_Data 0x09ee0400

其序言,ZCL标头和ZCL有效载荷:

Preamble =“910013a2004047b55cfffee7e68006c10500”

数据包的端点值与请求相反,clusterID为0x8006,表示组群集响应。

ZCL_header =“09 ee 04”

第一个字段是帧控制字段,它使用服务器 - >客户端方向(0x08)指定特定于集群的命令(0x01)。第二个字段是交易序列号,用于将响应与命令请求相关联。第三个字段是命令标识符“Remove All Groups”(0x04)。

ZCL_payload =“00”

第一个字节是状态字节(SUCCESS = 0x00)。

第二个响应数据包
它是原始命令请求的Tx状态。如果原始命令请求中的FrameID值为零,或者在发送UART缓冲区中没有可用空间,则不会发生Tx状态消息。

解码内容

Zigbee Tx Status
API 0x8B    FrameID 0x01    16DestAddr 0xFFFE
Transmit Retries 0x00 Delivery Status 0x00 Discovery Status 0x00 Success

默认回复

许多错误都作为默认响应返回。例如,包含08010b788b的响应的RFData有效载荷将被解码为:

ZCL_header = “08 01 03" - general command/server-to-client, transseqnum=1, 
default_response_command(0x03)
ZCL_payload = “78 8b” - original cmdID, status code (0x8b) 
EMBER_ZCL_STATUS_NOT_FOUND

常见的状态代码

本节列出了一些常见的状态代码。

0x00 EMBER_ZCL_STATUS_SUCCESS:命令请求成功
0x01 EMBER_ZCL_STATUS_FAILURE:命令请求失败 - 例如,从组表中删除条目的调用返回错误
0x80 EMBER_ZCL_STATUS_MALFORMED_COMMAND:API帧中没有RFData; ZCL Payload可能从预期的位置截断
0x81 EMBER_ZCL_STATUS_UNSUP_CLUSTER_COMMAND:意外的方向 ①ZCL标头的帧控制字段中意外的方向; ②ZCL头中的意外命令标识符代码值中意外的方向
0x82 EMBER_ZCL_STATUS_UNSUP_GENERAL_COMMAND:意外帧类型 - ZCL头的帧控制字段中的意外帧类型
0x84 EMBER_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND:意外ZCL标头的帧控制字段中的制造商特定指示
0x8b EMBER_ZCL_STATUS_NOT_FOUND:在尝试获取组成员资格或删除组时无法在组表中找到匹配的条目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值