jetlinks之Operator
提示:本文主要分析jetlinks.core包中的defaults包的一些默认实现
部分协议请参加上文 jetlinks之Codec&config
jetlinks之operator
前言
core包中默认实现中主要定义了
DefaultDeviceOperator、DefaultDeviceProductOperator
即设备操作和产品操作
一、设备操作定义
DeviceOperator:设备操作接口定义
DefaultDeviceOperator:默认设备操作实现
如上可以发现该接口主要继承
Thing(物实例)、StorageConfigurable(可配置存储接口)
物模型主要是对属性,功能,事件进行一些定义,StorageConfigurable支持配置化存储
DefaultDeviceOperator 主要包含以下属性
类型 | 字段 | 描述 | 备注 |
---|---|---|---|
DeviceStateChecker | DEFAULT_STATE_CHECKER | 默认状态检查 | |
AtomicReferenceFieldUpdater | METADATA_UPDATER | 设备元数据更新 | |
AtomicReferenceFieldUpdater | METADATA_TIME_UPDATER | 产品ID及版本号 | |
ConfigKey | lastMetadataTimeKey | 最后更新物模型的时间 | |
List | productIdAndVersionKey | 产品ID及版本号 | |
String | id | 设备操作id | |
DeviceOperationBroker | handler | 设备操作代理 | |
DeviceRegistry | registry | 设备统一注册 | |
DeviceMessageSender | messageSender | 设备消息发送器 | |
ConfigStorage | storageMono | 设备配置存储 | |
ProtocolSupport | protocolSupportMono | 设备协议 | |
DeviceMetadata | metadataMono | 设备元数据 | |
DeviceStateChecker | stateChecker | 设备状态检查器 | |
DeviceProductOperator | parent | 设备产品操作 | |
DeviceMetadata | metadataCache | 设备元数据缓存 | |
long | lastMetadataTime | 设备元数据更新时间 | |
ThingRpcSupportChain | rpcChain | rpc |
二、产品操作定义
DeviceProductOperator 设备产品型号操作
DefaultDeviceProductOperator 设备产品型号操作默认实现
DeviceProductOperator 设备产品操作主要继承了 ThingTemplate,StorageConfigurable接口。与DefaultDeviceOperator 差异主要是在Thing(物实例接口)。
Thing(物实例定义)会使用ThingTemplate(物模板定义)
/**
* 获取当前物使用的模版
*
* @return 当前物使用的模版
*/
Mono<? extends ThingTemplate> getTemplate();
物实例接口定义元数据的获取和修改,配置获取,RPC操作等。
后续再找时间对此处进行细品…
类型 | 字段 | 描述 | 备注 |
---|---|---|---|
String | id | 操作ID | |
DeviceMetadata | metadata | 设备物模型定义 | |
Mono<ConfigStorage> | storageMono | 配置定义 | |
Supplier<Flux<DeviceOperator>> devicesSupplier | lastMetadataTimeKey | 最后更新物模型的时间 | |
long | lstMetadataChangeTime | 模型最新更新时间 | |
ConfigKey<Long> | lastMetadataTimeKey | 模型最新更新时间key | |
Mono<DeviceMetadata> | inLocalMetadata | ||
Mono<DeviceMetadata> | metadataMono | 元数据 | |
Mono<ProtocolSupport> | protocolSupportMono | 协议 |
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了DeviceOperator和DeviceProductOperator 的一些相关知识,后续看时间会增补Thing及ThingTemplate的知识