Dummy 适配器
#
概述Dummy 适配器是 Octopus 一种用于测试和 Demo 的模拟适配器。
#
注册信息版本 | 注册名称 | 端点 Socket | 是否可用 |
---|---|---|---|
v1alpha1 | adaptors.edge.cattle.io/dummy | dummy.sock | * |
#
支持模型类型 | 设备组 | 版本 | 是否可用 |
---|---|---|---|
DummySpecialDevice | devices.edge.cattle.io | v1alpha1 | * |
DummyProtocolDevice | devices.edge.cattle.io | v1alpha1 | * |
#
支持平台操作系统 | 架构 |
---|---|
linux | amd64 |
linux | arm |
linux | arm64 |
#
使用方式#
权限对 Octopus 授予权限,如下所示:
#
YAML 示例指定
DummySpecialDevice
设备,以下示例假定客厅中有一个名为living-room-fan
的风扇待连接。
指定一个 "DummyProtocolDevice "设备链接来连接 localhost 的 chaos robot。
更多的 "DummyDevice"设备链接实例,请参考deploy/e2e目录。
#
DummySpecialDeviceDummySpecialDevice
可被视为模拟风扇。
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
metadata | 元数据 | 详情请参考metav1.ObjectMeta | 否 |
spec | 设备的期望状态 | DummySpecialDeviceSpec | 是 |
status | 设备的实际状态 | DummySpecialDeviceStatus | 否 |
#
DummySpecialDeviceSpec参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
extension | 设备是否有与 MQTT 插件基础 | DeviceExtensionSpec | 否 |
protocol | 访问设备时使用的传输协议 | DummySpecialDeviceProtocol | 是 |
on | 设备是否已经启动 | bool | 是 |
gear | 如果设备已启动,上报设备运转的频率 | DummySpecialDeviceGear | 否 |
#
DummySpecialDeviceStatus参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
extension | 集群使用的 MQTT 插件的配置 | DeviceExtensionStatus | 否 |
gear | 如果设备已启动,上报设备运转的频率 | DummySpecialDeviceGear | 否 |
rotatingSpeed | 设备的转速 | int32 | 是 |
#
DummySpecialDeviceProtocol参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
location | 设备所处的位置 | string | 是 |
#
DummySpecialDeviceGearDummySpecialDeviceGear 定义了设备运行的速度。
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
slow | 从 0 开始,每 3 秒增加一次,直至达到 100 | string | 否 |
middle | 从 100 开始,每 2 秒增加一次,直至达到 200 | string | 否 |
fast | 从 200 开始,每 1 秒增加一次,直至达到 300 | string | 否 |
#
DummyProtocolDevice您可以将DummyProtocolDevice
看成一个 chaos protocol robot,它的值每两秒会变化一次。
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
metadata | 元数据 | metav1.ObjectMeta | 否 |
spec | 设备的期望状态 | DummyProtocolDeviceSpec | 是 |
status | 设备的实际状态 | DummyProtocolDeviceStatus | 否 |
#
DummyProtocolDeviceSpec参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
extension | 集群使用的 MQTT 插件的配置 | DeviceExtensionSpec | 否 |
protocol | 访问设备时使用的传输协议 | DummyProtocolDeviceProtocol | 是 |
props | 设备属性的期望值 | DummyProtocolDeviceSpecProps | 否 |
#
DummyProtocolDeviceStatus参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
extension | 集群使用的 MQTT 插件的配置 | DeviceExtensionStatus | 否 |
props | 设备属性的实际值 | map[string][dummyprotocoldevicestatusprops](#dummyprotocoldevicestatusprops) | 否 |
#
DummyProtocolDeviceProtocol参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
ip | 连接设备时用到的 ip 地址 | string | 是 |
#
DummyProtocolDeviceSpecProps说明:
DummyProtocolDeviceSpecObjectOrArrayProps
和DummyProtocolDeviceSpecProps
相同- 使用
DummyProtocolDeviceSpecObjectOrArrayProps
的目的是避免对象循环引用
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
type | 设备属性的类型,可选值包括:string、int、float、boolean、object 和 array | DummyProtocolDevicePropertyType | 是 |
description | 属性描述 | string | 否 |
readOnly | 是否只读 | bool | 否 |
arrayProps | 数组类型的属性 | DummyProtocolDeviceSpecObjectOrArrayProps | 否 |
objectProps | 对象类型的属性 | [string][dummyprotocoldevicespecobjectorarrayprops](#dummyprotocoldevicespecprops) | 否 |
#
DummyProtocolDeviceStatusProperty说明:
DummyProtocolDeviceStatusObjectOrArrayProperty
和DummyProtocolDeviceStatusProperty
相同- 使用
DummyProtocolDeviceStatusObjectOrArrayProperty
的目的是避免对象循环引用
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
type | 设备属性的类型 | DummyProtocolDevicePropertyType | 是 |
intValue | 如果设备属性的类型是 int,上报 int 的值 R | int | 否 |
stringValue | 如果设备属性的类型是 string,上报 string 的值 | string | 否 |
floatValue | 如果设备属性的类型是 float,上报 float 的值 | resource.Quantity kubernetes-sigs/controller-tools/issues#245 | 否 |
booleanValue | 如果设备属性的类型是 boolean,上报 boolean 的值 | boolean | 否 |
arrayValue | 如果设备属性的类型是 boolean,上报 array 的值 | DummyProtocolDeviceStatusObjectOrArrayProps | 否 |
objectValue | 如果设备属性的类型是 object,上报 object 的值 | DummyProtocolDeviceStatusObjectOrArrayProps | 否 |
#
DummyProtocolDevicePropertyTypeDummyProtocolDevicePropertyType 描述了设备属性的类型。
参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
string | int 类型属性的值 | string | 否 |
int | int 类型属性的值 | string | 否 |
float | float 类型属性的值 | string | 否 |
boolean | boolean 类型属性的值 | string | 否 |
array | array 类型属性的值 | string | 否 |
object | object 类型属性的值 | string | 否 |
#
DummyDeviceExtension参数 | 描述 | 类型 | 是否必填 |
---|---|---|---|
mqtt | 说明 MQTT 插件的配置 | *v1alpha1.MQTTOptionsSpec | 是 |
#
Demo 演示创建一个DeviceLink以连接 DummySpecialDevice,该设备模拟客厅的风扇。
将上面创建的风扇状态同步到远程 MQTT 代理服务器。
使用
mosquitto_sub
工具观看同步状态。创建一个DeviceLink以连接 DummyProtocolDevice,该设备模拟一个智能机器人,它可以在 2 秒内随机填充所需的属性。
将以上创建的机械的答案同步到远程 MQTT 代理服务器。
使用
mosquitto_sub
工具观看同步的结果。