EdgeX Foundry 设备服务

文章目录

    • 1.设备服务
    • 2.设备配置文件
    • 3.设备资源
    • 4.资源属性(Attributes)
    • 5.资源属性(Properties)
    • 6.设备命令
    • 7.资源操作
    • 8.REST 命令端点
    • 9.推送事件

  • EdgeX Foundry
# EdgeX Foundryhttps://iothub.org.cn/docs/edgex/
https://iothub.org.cn/docs/edgex/device-service/

1.设备服务

设备服务是与传感器/设备或物联网对象(“物”)交互的边缘连接器,其中包括机器、机器人、无人机、HVAC 设备、相机等。通过利用可用的连接器,可以控制设备并/或传输数据至 EdgeX 或从其传输数据。您还可以使用设备服务 SDK 来创建您自己的 EdgeX 设备服务。
在这里插入图片描述

设备配置文件描述了EdgeX 系统内的一种设备类型。设备服务管理的每个设备都与设备配置文件关联,设备配置文件根据其支持的操作定义该设备类型。

通常,设备配置文件由设备服务从文件加载,并在首次启动时推送到核心元数据进行存储。一旦存储在核心元数据中,设备配置文件就会在后续启动时从核心元数据加载。

2.设备配置文件

设备配置文件由以下字段组成

Field NameTypeRequired?Description
nameStringYMust be unique in the EdgeX deployment.
descriptionStringNDescription of the Device Profile
manufacturerStringNManufacturer of the device described by the Device Profile
modelStringNModel of the device(s) described by the Device Profile
labelsArray of StringNFree form labels for querying device profiles
deviceResourcesArray of DeviceResourceYSee Device Resources below
deviceCommandsArray of DeviceCommandNSee Device Commands below

DeviceProfile定义了设备的值和操作方法,可以是Read或Write。

创建名为 的设备配置文件my.custom.device.profile.yml,其中包含以下内容:

name: "my-custom-device-profile"
manufacturer: "iot"
model: "MQTT-DEVICE"
description: "Test device profile"
labels:- "mqtt"- "test"
deviceResources:-name: randnumisHidden: truedescription: "device random number"properties:valueType: "Float32"readWrite: "R"-name: pingisHidden: truedescription: "device awake"properties:valueType: "String"readWrite: "R"-name: messageisHidden: falsedescription: "device message"properties:valueType: "String"readWrite: "RW"-name: jsonisHidden: falsedescription: "JSON message"properties:valueType: "Object"readWrite: "RW"mediaType: "application/json"deviceCommands:-name: valuesreadWrite: "R"isHidden: falseresourceOperations:- { deviceResource: "randnum" }- { deviceResource: "ping" }- { deviceResource: "message" }

3.设备资源

设备资源指定设备内的传感器值,可以单独或作为设备命令的一部分读取或写入该值。它具有用于识别的名称和用于提供信息的描述。

设备资源由以下字段组成:

The device resource consists of the following fields:

Field NameTypeRequired?Notes
nameStringYMust be unique in the EdgeX deployment.
descriptionStringNDescription of the device resource
isHiddenBoolNHide the device resource as command via the Command Service, default false
tagsString-Interface MapNUser define collection of tags
attributesString-Interface MapNSee Resource Attributes below
propertiesResourcePropertiesYSee Resource Properties below

4.资源属性(Attributes)

设备资源中的attributes参数是访问设备上的特定值所需的设备服务特定参数。每个设备服务实现都有自己的一组所需的命名值,例如,BACnet 设备服务可能需要对象标识符和属性标识符,而蓝牙设备服务可以使用 UUID 来标识值。

设备 ONVIF 摄像头的资源属性示例

    attributes:service: "Device"getFunction: "GetDNS"setFunction: "SetDNS"

5.资源属性(Properties)

设备资源properties的 描述了值以及要对其执行的可选简单处理。

资源属性由以下字段组成:

The resource properties consists of the following fields:

Field NameTypeRequired?Notes
valueTypeEnumYThe data type of the value. Supported types are: Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64, Float32, Float64, Bool, String, Binary, Object, Uint8Array, Uint16Array, Uint32Array, Uint64Array, Int8Array, Int16Array, Int32Array, Int64Array, Float32Array, Float64Array, BoolArray
readWriteEnumYIndicates whether the value is readable or writable or both. R - Read only , W - Write only, RW - Read or Write
unitsStringNDeveloper defined units of value such as secs, mins, etc
minimumFloat64NMinimum value the resource value can be set to. Error if SET command value out of minimum range
maximumFloat64NMaximum value the resource value can be set to. Error if SET command value out of maximum range
defaultValueStringNDefault value to use when no value is present for a set command. If present, should be compatible with the valueType field
maskUint64NA binary mask which will be applied to an integer reading. Only valid when valueType is one of the unsigned integer types
shiftInt64NA number of bits by which an integer reading will be shifted right. Only valid when valueType is one of the unsigned integer types
scaleFloat64NA factor by which to multiply a reading before it is returned. Only valid when valueType is one of the integer or float types
offsetFloat64NA value to be added to a reading before it is returned. Only valid when valueType is one of the integer or float types
baseFloat64NA value to be raised to the power of the raw reading before it is returned. Only valid when valueType is one of the integer or float types
assertionStringNA string value to which a reading (after processing) is compared. If the reading is not the same as the assertion value, the device’s operating state will be set to disabled. This can be useful for health checks.
mediaTypeStringNA string indicating the content type of the Binary value. Required when valueType is Binary.
optionalString-Any MapNOptional mapping for developer use

6.设备命令

设备命令定义同时访问多个资源。每个命名设备命令应包含多个resource operations.具有单个资源操作的设备命令不会比 SDK 为同一设备资源创建的隐式设备命令增加任何值。

当读数在逻辑上相关时,设备命令可能很有用,例如,对于 3 轴加速度计,一起读取所有轴会很有帮助。

每个设备命令由以下字段组成:

Each device command consists of the following fields:

Field NameTypeRequired?Notes
nameStringYMust be unique in this profile.
isHiddenBoolNHide the Device Command for use via Command Service, default false
readWriteEnumYIndicates whether the command is readable or writable or both. R - Read only , W - Write only, RW - Read or Write. Resources’ readWrite included in the command must be consistent with the value chosen here.
resourceOperationsArray of ResourceOperationYsee Resource Operation below

7.资源操作

资源操作由以下字段组成:

A resource operation consists of the following fields:

Field NameTypeRequired?Notes
deviceResourceStringYMust name a Device Resource in this profile
defaultValueStringNIf present, should be compatible with the Type field of the named Device Resource
mappingsString-String MapNMap the GET resourceOperation value to another string value

8.REST 命令端点

命令端点是在服务上为设备配置文件中指定的每个设备资源和每个设备命令隐式创建的。有关更多详细信息,请参阅设备服务 API 参考中的 GET 和 SET 设备命令 API 。

9.推送事件

SDK 应实现除了收到设备 GET 请求之外生成事件的方法。 AutoEvent 机制提供以固定时间间隔生成事件的功能。异步事件队列使设备服务能够根据特定于实现的逻辑在任意时间生成事件。

自动事件

AutoEvents每个设备可以具有与其关联的多个元数据作为其定义的一部分。 AnAutoEvent具有以下字段:

  • resource:deviceResource 或 deviceCommand 的名称,指示要读取的内容。
  • Frequency:一个字符串,表示读取事件之间等待的时间,表示为整数后跟 ms、s、m 或 h 单位。
  • onchange:布尔值:如果设置为 true,则仅当自上次事件以来包含的一个或多个读数发生更改时才生成新事件。

设备 SDK 应根据这些AutoEvent定义从实现中安排设备读取。它应该使用与通过 REST 请求读数时相同的逻辑。

异步事件队列

SDK 应提供一种机制,使实现可以随时提交设备读数而不会阻塞。这可以以适合于实现语言的方式来完成,例如,Go SDK提供可以在其上推送读数的通道,C SDK提供将读数提交到工作队列的功能。

  • EdgeX Foundry
# EdgeX Foundryhttps://iothub.org.cn/docs/edgex/
https://iothub.org.cn/docs/edgex/device-service/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好用的AI模型集合

AI-Chat 这个网站提供的AI-Chat 3.5和AI-Chat 4.0聊天机器人,每天都可以免费使用。 不管是学习、工作还是日常生活,都能给我们带来很大的帮助,效率真的可以说是翻倍了。我觉得,如果你想让自己的生活更加高效、更加有序&#xff0…

WEB漏洞 SSRF简单入门实践

一、漏洞原理 SSRF 服务端请求伪造 原理:在某些网站中提供了从其他服务器获取数据的功能,攻击者能通过构造恶意的URL参数,恶意利用后可作为代理攻击远程或本地的服务器。 二、SSRF的利用 1.对目标外网、内网进行端口扫描。 2.攻击内网或本地的…

戏说c第二十六篇: 测试完备性衡量(代码覆盖率)

前言 师弟:“师兄,我又被鄙视了。说我的系统太差,测试不过关。” 我:“怎么说?” 师弟:“每次发布版本给程夏,都被她发现一些bug,太丢人了。师兄,有什么方法来衡量测试的…

css实现背景渐变叠加

线性渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#fff 30%),linear-gradient(to right,pink,skyblue);}径像渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#…

【SVN】使用TortoiseGit删除Git分支

使用TortoiseGit删除Git分支 前言 平时我在进行开发的时候,比如需要开发一个新功能,这里以蘑菇博客开发服务网关-gateway功能为例 一般我都会在原来master分支的基础上,然后拉取一个新的分支【gateway】,然后在 gateway分支上进…

langchain学习笔记(七)

RunnablePassthrough: Passing data through | 🦜️🔗 Langchain 1、RunnablePassthrough可以在不改变或添加额外键的情况下传递输入。通常和RunnableParallel结合使用去分配数值给到字典的新键 两种方式调用RunnablePassthrough (1&#…

FL Studio21编曲制作软件中文版2024最新版本功能详细介绍

一、软件概述 FL Studio 21,全称Fruity Loops Studio 21,是一款功能强大的编曲制作软件,被广泛应用于音乐创作、编曲、录音、混音和后期制作等领域。其中文版为中国的音乐制作人和爱好者提供了更加便捷的操作体验。 FL Studio 21 Win-安装包…

P10166 [DTCPC 2024] 环

解题思路 满足的序列即为环若图上有环,则代价为0若无环,则在图上已有的边在添加一条回边可形成环对所有的点由小到大排序由于环的大小可以为2初值设为,先不管最小点之间是否有边,反正不会更劣通过拓扑排序找环,在找环…

AI技术大揭秘!你不可不知的顶级大模型

在这个数字化飞速发展的时代,AI大模型以其惊人的应用范围和深远的影响力,正逐渐成为各行各业的革命性力量。想象一下,在一个晴朗的午后,一个智能客服系统正轻松地处理着成千上万的客户咨询,不仅回答速度快捷&#xff0…

http状态,cookie、session、token的对比

http是无状态的,也就是说断开会话了服务器就不记得任何事情了,但这样对于用户会很麻烦,因为要不停输入用户名和密码 cookie是放在浏览器里的数据,第一次访问后服务器会set cookie,然后浏览器保存这个cookie&#xff0…

win10如何添加指纹登陆

1、首先进入设置,进入下一个设置页面 2、在下一个设置页面内,我们直接使用右上角的搜索框,输入“指纹/finger”进行搜索。回车之后进入设置指纹登陆选项 3、设置指纹登陆的前期是设置好你的密码和pin码(先要设定登录密码和pin码),这里pin和密码都可以直接登陆我们的win10,设…

qt 5.15版本安装

1.qt5.15版本安装 2.安装慢时,切换到清华镜像源:.\qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/ 3.没有qt 5.15版本在旁边进行筛选,只选archive

YOLOv9:使用可编程梯度信息学习您想学习的内容

摘要 arxiv.org/pdf/2402.13616.pdf 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果能最接近于实际结果。同时,还必须设计一个适当的架构,以便于获取足够的预测信息。现有的方法忽略了一个事实,即当输入数据经历层层特征提取和空间变换时,会损失…

机器人与AGI会撞出什么火花?

真正的科技变革是不是就要来临了?各方大佬都开始布局机器人,对于普通人的就业会造成什么影响? ​ 优牛企讯-企业动态信息监控专家 在优牛企讯-企业动态监控专家搜索可知,全国目前的机器人公司已经达到了26401家,近一年…

关于机械臂的控制和基于tftp文件的上传和下载功能的实现

1、TCP客户端控制机械臂代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.58" #define PORT 8888#define CLI_IP "192.168.126.91" //客户端IP #define CLI_PORT 6666 //客户端端口号int main(int argc, const char *argv[]) {…

【AI Agent系列】【MetaGPT多智能体学习】3. 开发一个简单的多智能体系统,兼看MetaGPT多智能体运行机制

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第一篇笔记。主要记录下多智能体的运行…

C/C++基础语法

C/C基础语法 文章目录 C/C基础语法头文件经典问题链表链表基础操作 秒数转换闰年斐波那契数列打印n阶菱形曼哈顿距离菱形图案的定义大数计算 输入输出格式化输入输出getline()函数解决cin只读入一个单词的问题fgets读入整行输出字符数组&#xff08;两种方式puts和printf&#…

day10_oop

今日内容 零、 复习昨日 一、作业 二、继承 三、重写 四、this和super 五、访问修饰符 零、 复习昨日 数组创建的两种方式 new int[3];new int[]{值,值2,…}存值: 数组名[下标] 值 构造方法什么作用?有参无参构造什么区别? 创建对象无参创建出的对象属性是默认值有参创建出的…

【力扣白嫖日记】602.好友申请II:谁有最多的好友

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 602.好友申请II&#xff1a;谁有最多的好友 表&#xff1a;RequestAccepted 列名类型requester_idintaccept…

外卖店优先级

题目描述 ”饱了么”外卖系统中维护着N 家外卖店&#xff0c;编号1~N。每家外卖店都有一个优先级&#xff0c;初始时(0时刻)优先级都为0。 每经过1个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少1&#xff0c;最低减到0;而如果外卖店有订单&#xff0c;则…