Edgex Onvif Device Dev Setup

启动EDGEX核心服务

使用容器主机网络

wget https://raw.githubusercontent.com/edgexfoundry/edgex-compose/jakarta/docker-compose-no-secty.yml

在开发环境使用host网络,便于核心服务和各种设备能在同一个子网,替换

networks:
      edgex-network: {}

network_mode: host

CONSUL

配置CONSUL绑定到指定以太网卡

environment:
      CONSUL_BIND_INTERFACE: ens3

配置DNS

/etc/hosts

10.166.44.182 edgex-core-consul
10.166.44.182 edgex-core-command
10.166.44.182 edgex-redis
10.166.44.182 edgex-core-metadata
10.166.44.182 edgex-core-data
10.166.44.182 edgex-support-notifications
10.166.44.182 edgex-support-scheduler
10.166.44.182 edgex-ui-go
10.166.44.182 edgex-kuiper
10.166.44.182 edgex-app-rules-engine

启动核心服务

docker-compose -f docker-compose-no-secty.yml up -d 

检查核心服务启动正常

docker logs -f edgex-core-command edgex-core-data edgex-core-metadata

在本地启动设备服务

git clone [email protected]:edgexfoundry/device-camera-go.git

修改cmd\res\configuration.toml

注册服务,消息队列,核心服务的所在的主机配置

[Registry]
Type = "consul"
Host = "10.166.44.182"
Port = 8500

[MessageQueue]
Protocol = "redis"
Host = "10.166.44.182"

[Clients.core-data]
  Protocol = "http"
  Host = "10.166.44.182"
  Port = 59880

  [Clients.core-metadata]
  Protocol = "http"
  Host = "10.166.44.182"
  Port = 59881

连接ONVIF摄像头

启动ONVIF摄像头服务

启动设备服务

cd device-camera-go/cmd
set EDGEX_SECURITY_SECRET_STORE=false
go run main.go

查看设备资源

curl -X GET http://10.166.44.182:59882/api/v2/device/name/Camera001

建议:请使用postman测试,

            {
                "name": "OnvifSnapshot",
                "get": true,
                "path": "/api/v2/device/name/Camera001/OnvifSnapshot",
                "url": "http://edgex-core-command:59882",
                "parameters": [
                    {
                        "resourceName": "OnvifSnapshot",
                        "valueType": "Binary"
                    }
                ]
            },
            {
                "name": "OnvifHostname",
                "get": true,
                "set": true,
                "path": "/api/v2/device/name/Camera001/OnvifHostname",
                "url": "http://edgex-core-command:59882",
                "parameters": [
                    {
                        "resourceName": "OnvifHostname",
                        "valueType": "String"
                    }
                ]
            }
````

postmana返回的路径可以直接点击,并直接调用相应的资源

http://10.166.44.182:59882/api/v2/device/name/Camera001/OnvifSnapshot ```

Related