最近华乔老师贡献了一个edgex-device-rtsp的device service,用来管理IPC设备,这个帖子展示了使用这个微服务连接摄像头的整个流程。
步骤一:拉取对应的docker启动edgex-device-rtsp
为了方便操作,这里我直接修改了docker-compose文件中,在device service段添加如下code:
device-rtsp:
image: badboyqiao/edgex-device-rtsp:0.1.0-dev
ports:
- "49983:49983"
- "1935:1935"
- "8089:8089"
container_name: edgex-device-rtsp
hostname: edgex-device-rtsp
networks:
edgex-network:
aliases:
- edgex-device-rtsp
volumes:
- db-data:/data/db
- log-data:/edgex/logs
- consul-config:/consul/config
- consul-data:/consul/data
depends_on:
- data
- command
改写完成之后,通过docker-compose文件正常启动edgex-foundry。
步骤二:打开UI,上传profile文件,填写Device信息
2.1 上传profile文件
首先需要填写edgexfoundry解析设备所需要的profile文件,将下面的内容保存为“test-rtsp-profile.yml”文件,保存在本地。
name: "test-rtsp-profile"
manufacturer: "VMware huaqiaoz"
model: "rtsp"
labels:
- "test"
description: "Test rtsp profile"
deviceResources:
-
name: turnon
description: "turnon actively"
attributes:
{ name: "turnon" }
properties:
value:
{ type: "Bool", size: "1", readWrite: "RW", defaultValue: "false" }
units:
{ type: "String", readWrite: "RW", defaultValue: "ON" }
-
name: turnoff
description: "turnoff actively"
attributes:
{ name: "turnoff" }
properties:
value:
{ type: "Bool", size: "1", readWrite: "RW", defaultValue: "false" }
units:
{ type: "String", readWrite: "RW", defaultValue: "OFF" }
deviceCommands:
-
name: turnon
set:
- { index: "1", operation: "set", object: "turnon", parameter: "turnon", property: "value" }
-
name: turnoff
set:
- { index: "1", operation: "set", object: "turnoff", parameter: "turnoff", property: "value" }
coreCommands:
-
name: turnon
put:
path: "/api/v1/device/{deviceId}/turnon"
parameterNames: ["turnon"]
responses:
-
code: "204"
description: "set the message."
expectedValues: []
-
code: "503"
description: "service unavailable"
expectedValues: []
-
name: turnoff
put:
path: "/api/v1/device/{deviceId}/turnoff"
parameterNames: ["turnoff"]
responses:
-
code: "204"
description: "set the message."
expectedValues: []
-
code: "503"
description: "service unavailable"
expectedValues: []
打开UI界面(http://localhost:4000)之后,首先添加网关,选择添加的网关,在左侧栏中选中“Deviceservice”,在右侧栏中可以看到Device Profile这一区域,选择添加profile,选择ipc对应的profile文件,上传,如下图箭头所示:
2.2填写device信息
在上面的Device-service区域,可以看到有edgex-device-service,然后点击下图箭头所指的位置,出现填写device信息的窗口。
例如,rtsp的流为:rtsp://admin:admin@10.5.5.11:554/h264/ch1/main/av_stream
注册设备所需填写的内容为(应该根据具体的rtsp流填写内容):
{
"name":"ipc1_device_name",
"adminState":"UNLOCKED",
"operatingState":"ENABLED",
"protocols":{
"rtsp":{
"Schema":"rtsp",
"Host":"10.5.5.11",
"Port":"554",
"Password":"admin",
"User":"admin",
"Path":"/h264/ch1/main/av_stream",
"DumpPath":"jianing"
}
},
"service":{
"name":"edgex-device-rtsp"
},
"profile":{
"name":"test-rtsp-profile"
}
}
dumppath目前没有用,可以随便填写
填写之后的界面如图:
2.3 发送命令
根据下图箭头的顺序,首先调出来Command选项卡,”Method”选择”set”选项,”Parameter”填写”true”,发送命令,看到返回“Success”,说明操作成功。
原作者:lulililu
原文链接:https://www.edgexfoundry.club/user/lulililu/article/5d8d93356598210001292c9b