nl::Weave::Profiles::SoftwareUpdate

此命名空间包含 Weave 中用于 Weave Software Update 配置文件的所有接口,该配置文件包括相应的同名协议。

摘要

枚举

@309{
  kMsgType_ImageAnnounce = 0,
  kMsgType_ImageQuery = 1,
  kMsgType_ImageQueryResponse = 2,
  kMsgType_DownloadNotify = 3,
  kMsgType_NotifyResponse = 4,
  kMsgType_UpdateNotify = 5,
  kMsgType_ImageQueryStatus = 6
}
枚举
SoftwareUpdate 消息类型。
@310{
  kStatus_NoUpdateAvailable = 0x0001,
  kStatus_UpdateFailed = 0x0010,
  kStatus_InvalidInstructions = 0x0050,
  kStatus_DownloadFailed = 0x0051,
  kStatus_IntegrityCheckFailed = 0x0052,
  kStatus_Abort = 0x0053,
  kStatus_Retry = 0x0091
}
枚举
@311{
  kFlag_PackageSpecPresent = 1,
  kFlag_LocaleSpecPresent = 2,
  kFlag_TargetNodeIdPresent = 4
}
枚举
ImageQuery 帧的控制字段的控制标记。
@312 枚举
ImageQueryResponse 的可选更新选项字段的位掩码。
@313 枚举
ImageQueryResponse 的可选更新选项字段的偏移偏移量。
@314{
  kIntegrityType_SHA160 = 0,
  kIntegrityType_SHA256 = 1,
  kIntegrityType_SHA512 = 2,
  kIntegrityType_Last = 3
}
枚举
@315 枚举
完整性规范字节字符串的长度(以字节为单位)。
@316{
  kUpdateScheme_HTTP = 0,
  kUpdateScheme_HTTPS = 1,
  kUpdateScheme_SFTP = 2,
  kUpdateScheme_BDX = 3,
  kUpdateScheme_Last = 4
}
枚举
@317 枚举
SoftwareUpdate 配置文件的数据元素标记。
UpdateCondition{
  IfUnmatched,
  IfLater,
  Unconditionally,
  OnOptIn
}
枚举
控制更新政策的条件。
UpdatePriority{
  Normal,
  Critical
}
枚举
更新优先级。

函数

integrityLength(uint8_t aType)
int
一种支持方法,可将 IntegrityTypes 值映射到该类型的哈希的长度。

nl::Weave::Profiles::SoftwareUpdate::IWeaveImageAnnounceServerDelegate

WeaveImageAnnounceServer 代理的接口。

nl::Weave::Profiles::SoftwareUpdate::ImageAnnounce

描述 ImageAnnounce 消息的类。

nl::Weave::Profiles::SoftwareUpdate::ImageQuery

支持创建和解码图片查询消息的类。

nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse

支持创建和解码图片查询响应消息的类。

nl::Weave::Profiles::SoftwareUpdate::IntegritySpec

一个辅助类,用于保存软件更新映像的完整性类型和实际哈希值。

nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList

一个辅助类,用于保存完整性类型列表作为图片查询的一部分。

nl::Weave::Profiles::SoftwareUpdate::ProductSpec

表示产品规范的辅助类。

nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList

一个辅助类,用于保存作为图片查询一部分的更新方案列表。

nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer

监听 Weave 图片通知的服务器。

枚举

@309

 @309

SoftwareUpdate 消息类型。

属性
kMsgType_DownloadNotify

从客户端向服务器发送的可选消息,用于向服务器通知下载状态。

其载荷是 nl::Weave::Profiles::StatusReporting::StatusReport,其中包含从 SoftwareUpdateStatusCodes 中提取的其他状态信息。

kMsgType_ImageAnnounce

可选未经请求的消息,服务器用它来宣布软件更新是否可用。

消息不带有载荷。

kMsgType_ImageQuery

客户端发送给服务器的查询消息。

其格式通过 ImageQuery 类定义。

kMsgType_ImageQueryResponse

为响应成功的图片查询消息而生成的消息。

其格式由 ImageQueryResponse 类定义。

kMsgType_ImageQueryStatus

为响应失败的图片查询消息而生成的消息。

其载荷是 nl::Weave::Profiles::StatusReporting::StatusReport,其中包含从 SoftwareUpdateStatusCodes 中提取的其他状态信息。

kMsgType_NotifyResponse

为响应下载通知消息而生成的消息。

其载荷是 nl::Weave::Profiles::StatusReporting::StatusReport,其中包含从 SoftwareUpdateStatusCodes 中提取的其他状态信息。

kMsgType_UpdateNotify

从客户端到服务器的可选消息,用于传达更新的最终状态。

其载荷是 nl::Weave::Profiles::StatusReporting::StatusReport,其中包含从 SoftwareUpdateStatusCodes 中提取的其他状态信息。此邮件预计会在实际更新后生成,因此会在新的 ExchangeContext 中发送,且在服务器上会被视为未经请求的邮件。

@310

 @310

SoftwareUpdate 配置文件专用状态代码。

属性
kStatus_Abort

服务器 => 客户端,表示客户端应放弃操作,因为服务器没有选项。

kStatus_DownloadFailed

client => 服务器,表示尝试下载失败。

kStatus_IntegrityCheckFailed

client => 服务器,表示已下载映像,但未能通过后续的完整性检查。

kStatus_InvalidInstructions

client => 服务器,表示客户端无法下载图片,因为 ImageQueryResponse 中包含的下载说明,即

URI、更新方案、更新条件、格式不正确或不一致。

kStatus_NoUpdateAvailable

服务器 => 客户端,表示已收到并理解图片查询,但服务器目前没有为客户端进行更新。

kStatus_Retry

服务器 => 客户端,表示客户端应提交另一个图片查询并重启/继续更新

kStatus_UpdateFailed

client => 服务器,表示尝试安装该服务器指定的映像失败。

@311

 @311

ImageQuery 帧的控制字段的控制标记。

属性
kFlag_LocaleSpecPresent

ImageQuery 中包含 Locale 规范。

kFlag_PackageSpecPresent

ImageQuery 中包含软件包规范。

kFlag_TargetNodeIdPresent

ImageQuery 中存在目标节点 ID。

@312

 @312

ImageQueryResponse 的可选更新选项字段的位掩码。

@313

 @313

ImageQueryResponse 的可选更新选项字段的偏移偏移量。

@314

 @314

SoftwareUpdate 配置文件支持的完整性类型。

图片查询帧包含有关客户端支持的完整性检查的信息,图片查询响应包含客户端指示下载和安装的映像的完整性类型和值。系统可支持以下类型:

属性
kIntegrityType_Last

枚举中的有效元素数。

kIntegrityType_SHA160

必须提供 160 位安全哈希 (SHA-1)。

kIntegrityType_SHA256

256 位安全哈希 (SHA-2)。

kIntegrityType_SHA512

512 位,安全哈希 (SHA-2)。

@315

 @315

完整性规范字节字符串的长度(以字节为单位)。

@316

 @316

SofwareUpdate 配置文件支持的更新方案。

与支持的完整性类型类似,图片查询包含有关客户端支持哪些更新方案(即下载协议)的信息,而响应则包含一个值,用于指明在下载映像时使用的更新方案。支持的架构包括:

属性
kUpdateScheme_BDX

应使用 Weave 批量数据传输协议进行下载。

kUpdateScheme_HTTP

应将 HTTP 用作下载协议。

kUpdateScheme_HTTPS

应使用 HTTPS 作为下载协议。

kUpdateScheme_Last

枚举中的有效元素数。

kUpdateScheme_SFTP

应将 SFTP 用作下载协议。

@317

 @317

SoftwareUpdate 配置文件的数据元素标记。

UpdateCondition

 UpdateCondition

控制更新政策的条件。

属性
IfLater

如果响应帧中的版本规范高于当前所安装的软件版本,请下载并安装该映像。

IfUnmatched

如果响应帧中的版本规范与当前所安装的软件版本不匹配,请下载并安装该映像。

OnOptIn

在由网站用户提供的某个触发器上下载并安装映像。

Unconditionally

无论当前正在运行的软件版本如何,下载并安装该映像。

UpdatePriority

 UpdatePriority

更新优先级。

属性
Critical

必须立即执行更新。

Normal

客户端可自行决定是否执行更新。

函数

integrityLength

int integrityLength(
  uint8_t aType
)

一种支持方法,可将 IntegrityTypes 值映射到该类型的哈希的长度。

具体说明
参数
[in] aType
一个 IntegrityTypes
返回值
所提供哈希类型的哈希的长度。