首页 > 技术知识 > 正文

2.2.4.4.2.2 产生

该原语由APSME产生,发送给上层作为对APSME-GET.request原语的响应。该原语返回状态SUCCESS,表明请求读取AIB属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUTE.这些状态在2.2.4.4.1.3小节进行了描述。

2.2.4.4.2.3 接收

接收到该原语,上层得知读取AIB属性请求的结果。如果读取AIB属性请求成功,状态参数设置为SUCCESS。否则,状态参数表明错误。

2.2.4.4.3 ASPME-SET.request

该原语允许设备上层将属性值写入AIB。

2.2.4.4.3.1 服务原语的语法

该原语的语法如下:

APSME-SET.request {

AIBAttribute

AIBAttributeLength

AIBAttributeValue

}

表2.12描述了该原语的参数。

Zigbee协议栈中文说明(五)

2.2.4.4.3.2 产生

该原语由上层产生并发送给APSME在AIB中写入一个属性值。

2.2.4.4.3.3 接收

接收到该原语,APSME试图将给定的数据库中的值写入AIB属性。如果在数据库中没有AIB属性参数指定的属性,APSME将发送状态参数为UNSUPPORTED_ATTRIBUTE的APSME-SET.confirm原语。如果AIB属性值参数给定的值超过了有效的属性范围,APSME将发送状态参数为INVALID_PARAMETER的APSME-SET.confirm原语。

如果成功写入了AIB属性,APSME将发送状态参数为SUCCESS的APSME-SET.confirm原语。

2.2.4.4.4 APSME-SET.confirm

该原语向上层报告向AIB属性中写入属性值的结果。

2.2.4.4.4.1 服务原语的语法

该原语的语法如下:

APSME-SET.confirm {

Status

AIBAttribute

}

表2.13描述了该原语的参数。

Zigbee协议栈中文说明(五)1

2.2.4.4.4.2 产生

该原语由APSME产生,发送给上层作为对APSME-SET.request原语的响应。该原语返回状态SUCCESS,表明将属性值写入AIB属性的请求成功,或者返回错误码INVALID_PARAMETER或UNSUPPORTED_ATTRIBUTE.这些状态在2.2.4.4.3.3小节进行了描述。

2.2.4.4.4.3 接收

接收到该原语,上层得知写入AIB属性请求的结果。如果写入AIB属性请求成功,状态参数设置为SUCCESS。否则,状态参数表明错误。

2.2.4.5 组管理

这组原语允许上层在当前设备中通过在组表中添加和移除入口来管理每个端点的组关系。

2.2.4.5.1 APSME-ADD-GROUP.request

该原语允许上层请求一个特定的组的组关系加入到特定的端点。

2.2.4.5.1.1 服务原语的语法

该原语的语法如下:

APSME-ADD-GROUP.request {

GroupAddress

Endpoint

}

表2.14描述了该原语的参数。

Zigbee协议栈中文说明(五)2

2.2.4.5.1.2 产生

当上层要将一个特定组的关系加入一个端点时产生该原语,设置了组地址的帧将被传送给该端点。

2.2.4.5.1.3 接收

如果接收到该原语,其GroupAddress参数的值超出了有效范围,APSME将向上层发送状态参数为INVALID_PARAMETER的APSME-ADD-GROUP.condirm原语。同样,如果Endpoint参数值为0x00或当前设备的其它没有执行的端点,APSME将发送状态参数为INVALID_PARAMETER的APSME-ADD-GRROUP.confirm原语。

完成上述参数检测后,APSME将检查组表中是否存在包含给定参数GroupAddress和Endpoint的入口。如果该入口已存在于组表中,APSME将向上层发送状态参数为SUCCESS的APSME-ADD-GROUP.confirm原语。如果没有该入口,表中还有入口空间,APSME将在组表中建立一个新的入口,其参数为给定的GroupAddress和Endpoint值。入口加入到APS组表后,APSME将发送NLME-SET.request原语来确保相应的网络层组表中的nwkGroupIDTable属性与APS子层中的组表包含的组地址列表相一致。一旦两个表一致了,APSME将向上层发送状态参数为SUCCESS的APSME-ADD-GROUP.confirm原语。如果没有给定参数GroupAddress和Endpoint的入口并且组表中没有建立另一个入口的空间,APSME将向上层发送状态参数为TABLE_FULL的APSME-ADD-GROUP.confirm原语。

2.2.4.5.2 APSME-ADD-GROUP.confirm

该原语使得设备得知其将一个组添加到端点的请求结果。

2.2.4.5.2.1 服务原语的语法

该原语的语法如下:

APSME-ADD-GROUP.confirm {

Status

GroupAddress

Endpoint

}

表2.15描述了该原语的参数。

Zigbee协议栈中文说明(五)3

2.2.4.5.2.2 产生

该原语由APSME产生并发送给上层作为对APSME-ADD-GROUP.request原语的响应。如果APSME-ADD-GROUP.request成功,那么状态参数值为SUCCESS。如果APSME-ADD-GROUP.request中的参数为无效值,那么状态产生设置为INVALID_PARAMETER。如果APSME试图加入一个组表入口,但表中已没有加入其它入口的空间,状态参数设置为TABLE_FULL。

2.2.4.5.2.3 接收

上层接收到该原语,则得知添加组请求的结果。状态参数值如上面所述。

2.2.4.5.3 APSME-REMOVE-GROUP.request

该原语允许上层请求将一个特定的组的组关系从特定的端点中移除。

2.2.4.5.3.1 服务原语的语法

该原语的语法如下:

APSME-REMOVE-GROUP.request {

GroupAddress

Endpoint

}

表2.16描述了该原语的参数。

Zigbee协议栈中文说明(五)4

2.2.4.5.3.2 产生

当上层要将一个特定组的关系从一个端点中移除时产生该原语,设置了组地址的帧将不被传送给该端点。

2.2.4.5.3.3 接收

如果接收到该原语,其GroupAddress参数的值超出了有效范围,APSME将向上层发送状态参数为INVALID_PARAMETER的APSME-REMOVE-GROUP.condirm原语。同样,如果Endpoint参数值为0x00或当前设备的其它没有执行的端点,APSME将发送状态参数为INVALID_PARAMETER的APSME-REMOVE-GRROUP.confirm原语。

完成上述参数检测后,APSME将检查组表中是否存在包含给定参数GroupAddress和Endpoint的入口。如果该入口已存在于组表中,该入口将被移除。APSME将发送NLME-SET.request原语来确保相应的网络层组表中的nwkGroupIDTable属性与APS子层中的组表包含的组地址列表相一致。一旦两个表一致了,APSME将向上层发送状态参数为SUCCESS的APSME-REMOVE-GROUP.confirm原语。如果没有该入口,APSME将向上层发送状态参数为SUCCESS的APSME-REMOVE-GROUP.confirm原语。

2.2.4.5.4 APSME-REMOVE-GROUP.confirm

该原语使得设备得知其将一个组从端点中移除的请求结果。

2.2.4.5.4.1 服务原语的语法

该原语的语法如下:

APSME-REMOVE-GROUP.confirm {

Status

GroupAddress

Endpoint

}

表2.17描述了该原语的参数。

Zigbee协议栈中文说明(五)5

猜你喜欢