edgex启动设备服务,获取设备信息,控制设备等操作
开启设备服务修改docker-compose.yml 文件,打开device-random 设备服务:
#################################################################
# Device Services
#################################################################
......
device-random:
image: edgexfoundry/docker-device-random-go:1.0.0
ports:
- "49988:49988"
container_name: edgex-device-random
hostname: edgex-device-random
networks:
edgex-network:
aliases:
- edgex-device-random
volumes:
- db-data:/data/db
- log-data:/edgex/logs
- consul-config:/consul/config
- consul-data:/consul/data
depends_on:
- data
- command
重新启动服务:sudo docker-compose up -d
本帖最后由 keer_zu 于 2020-10-26 10:07 编辑
测试设备服务
device-random这个service包含Random-Boolean-Device、Random-Integer-Device、 Random-Integer-Generator01等多个设备
拿Random-Integer-Generator01为例:
获取该设备信息:
GET http://192.168.138.128:48082/api/v1/device/name/Random-Integer-Generator01
我使用postman,运行在windows,这里的IP192.168.138.128是虚拟机的ip地址。
详细内容如下:
{
"id": "09d43a05-aca0-42f2-a3e0-76360ae9d573",
"name": "Random-Integer-Generator01",
"adminState": "UNLOCKED",
"operatingState": "ENABLED",
"lastConnected": 0,
"lastReported": 0,
"labels": [
"device-random-example"
],
"location": null,
"commands": [
{
"created": 1603089038273,
"modified": 1603089038273,
"id": "fb00eb8f-faff-4b4f-a65c-0772824c8c28",
"name": "GenerateRandomValue_Int8",
"get": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int8",
"responses": [
{
"code": "503",
"description": "service unavailable"
}
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/fb00eb8f-faff-4b4f-a65c-0772824c8c28"
},
"put": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int8",
"parameterNames": [
"Min_Int8",
"Max_Int8"
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/fb00eb8f-faff-4b4f-a65c-0772824c8c28"
}
},
{
"created": 1603089038273,
"modified": 1603089038273,
"id": "790ff76e-5481-485c-a7cd-5c79bd7d216e",
"name": "GenerateRandomValue_Int16",
"get": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int16",
"responses": [
{
"code": "503",
"description": "service unavailable"
}
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/790ff76e-5481-485c-a7cd-5c79bd7d216e"
},
"put": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int16",
"parameterNames": [
"Min_Int16",
"Max_Int16"
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/790ff76e-5481-485c-a7cd-5c79bd7d216e"
}
},
{
"created": 1603089038273,
"modified": 1603089038273,
"id": "35b53068-d0fb-43d3-82d0-00b34de362a8",
"name": "GenerateRandomValue_Int32",
"get": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int32",
"responses": [
{
"code": "503",
"description": "service unavailable"
}
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/35b53068-d0fb-43d3-82d0-00b34de362a8"
},
"put": {
"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int32",
"parameterNames": [
"Min_Int32",
"Max_Int32"
],
"url": "http://edgex-core-command:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/35b53068-d0fb-43d3-82d0-00b34de362a8"
}
}
]
}
Random-Integer-Generator01设备有 GenerateRandomValue_Int8、GenerateRandomValue_Int16、GenerateRandomValue_Int32这 3 种属性
控制设备
通过命令微服务(Command Service)检查到设备可以调用的设备属性,使用put或get其url值读取或设置设备参数
GET http://192.168.138.128:48082/api/v1/device/09d43a05-aca0-42f2-a3e0-76360ae9d573/command/fb00eb8f-faff-4b4f-a65c-0772824c8c28
获取结果:
{
"device": "Random-Integer-Generator01",
"origin": 1603677368224,
"readings": [
{
"origin": 1603677368224,
"device": "Random-Integer-Generator01",
"name": "RandomValue_Int8",
"value": "-21"
}
]
}
device-service数据推送
EdgeX Foundry 除了接受端设备的数据外,还可以将数据推送到各种云服务上,例如将获取到的随机数据推送到 MQTT 服务器上。
页:
[1]