keer_zu 发表于 2020-10-26 10:00

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:05

本帖最后由 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 种属性






keer_zu 发表于 2020-10-26 10:22

控制设备


通过命令微服务(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"
      }
    ]
}



keer_zu 发表于 2020-10-26 10:23

device-service数据推送

EdgeX Foundry 除了接受端设备的数据外,还可以将数据推送到各种云服务上,例如将获取到的随机数据推送到 MQTT 服务器上。
页: [1]
查看完整版本: edgex启动设备服务,获取设备信息,控制设备等操作