EdgeX 爱好者社区
将分享一系列五分钟
文章给大家。你也可以跟网站管理员联系,希望获取的具体文章内容,我们将逐步发不出来。
EdgeX Foundry 在下面将统一简称为 EdgeX。
五分钟系列文章二:EdgeX 边缘计算框架/平台 Device Service 设备服务五分钟快速入门。
最近一段时,很多 EdgeX 爱好者都参与了开发入门,遇到不少问题,今天,我们来分享一下快速入门 Device Service 设备服务开发相关的内容。
官方原文链接:EdgeX Golang SDK
安装依赖项
GO 运行环境
本章节内容非本文的主要内容,只是简单指引,具体请自行搜索后完成。
安装 GOLANG 运行环境
从 golang.org 下载 GOLANG 运行环境,本例子使用 go v1.21 。
IDE 编辑器
推荐使用 Visual Studio Code(VS Code)
从 https://code.visualstudio.com/ 下载最新版本,并且安装 golang 插件。
运行和编译
GOLANG 编译
关于 GOLANG 编译和运行相关内容,可以从 GOLANG 官方网站或其他地方获取,请务必熟悉整个编译运行过程。
Docker 运行环境(前提,并非必选)
请根据 Docker 运行环境要求,准备好你本地的 Docker 环境
没什么可以多说的,请自行安排妥当,以免影响后面的操作。
到这里,假设你已经有了 GOLANG 运行的基本技能。
获取适用于 Go 的 EdgeX 设备 SDK
1. 获取当前最新版本 SDK
按照以下步骤在您的文件系统上创建一个文件夹,下载设备 SDK,并在您的系统上获取 GoLang 设备服务 SDK。
mkdir ~/edgexfoundry
cd ~/edgexfoundry
git clone --depth 1 --branch v3.1.0 https://github.com/edgexfoundry/device-sdk-go.git
注意
有可能你当前的时间看到的不是 v3.1.0 ,没关系,你可以选择适合的版本。
2. 准备开始新的设备服务: Simple Device
从 SDK 中复制一些 模板文件 进来。
mkdir -p ~/edgexfoundry/device-simple
cd ~/edgexfoundry
cp -rf ./device-sdk-go/example/* ./device-simple/
cp ./device-sdk-go/Makefile ./device-simple
cp ./device-sdk-go/version.go ./device-simple/
看上去你的目录应该是这样的:
tree ~/edgexfoundry/device-simple
.
├── cmd
│ └── device-simple
│ ├── Attribution.txt
│ ├── Dockerfile
│ ├── main.go
│ └── res
│ ├── configuration.yaml
│ ├── devices
│ │ ├── simple-device.json.example
│ │ └── simple-device.yml
│ ├── off.jpg
│ ├── on.png
│ ├── profiles
│ │ ├── Simple-Driver.json.example
│ │ └── Simple-Driver.yaml
│ └── provisionwatchers
│ ├── Simple-Provision-Watcher.json.example
│ └── Simple-Provision-Watcher.yml
├── config
│ └── configuration.go
├── driver
│ └── simpledriver.go
├── Makefile
└── version.go
启动新的设备服务
修改一些默认参数
- 切换目录
cd ~/edgexfoundry/device-simple
- 修改 main.go 文件,改成如下内容
package main
import (
"github.com/edgexfoundry/device-simple"
"github.com/edgexfoundry/device-simple/driver"
"github.com/edgexfoundry/device-sdk-go/v3/pkg/startup"
)
const (
serviceName string = "device-simple"
)
func main() {
sd := driver.SimpleDriver{}
startup.Bootstrap(serviceName, device.Version, &sd)
}
替换 Makefile 内容
第一部分:
为:MICROSERVICES=example/cmd/device-simple/device-simple
MICROSERVICES=cmd/device-simple/device-simple
第二部分:
为:GOFLAGS=-ldflags "-X github.com/edgexfoundry/device-sdk-go/v3.Version=$(VERSION)"
GOFLAGS=-ldflags "-X github.com/edgexfoundry/device-simple.Version=$(VERSION)"
第三部分:
为:example/cmd/device-simple/device-simple: go mod tidy $(GOCGO) build $(GOFLAGS) -o $@ ./example/cmd/device-simple
cmd/device-simple/device-simple: go mod tidy $(GOCGO) build $(GOFLAGS) -o $@ ./cmd/device-simple
初始化工作
初始化你的新设备服务
GO111MODULE=on go mod init github.com/edgexfoundry/device-simple go: creating new go.mod: module github.com/edgexfoundry/device-simple go: to add module requirements and sums: go mod tidy
会多出一个文件 go.mod
ls -l go.mod -rw-r--r-- 1 pi pi 56 Nov 30 23:35 go.mod
修改 go.mod 文件如下:
module github.com/edgexfoundry/device-simple go 1.21.4 require ( github.com/edgexfoundry/device-sdk-go/v3 v3.1.0 github.com/edgexfoundry/go-mod-core-contracts/v3 v3.1.0 )
至此,准备工作已经完成。开始编译。
构建您的设备服务
两行命令搞定
拉取依赖
make tidy
编译
CGO_ENABLED=0 go build -ldflags "-X github.com/edgexfoundry/device-simple.Version=0.0.0 -X github.com/edgexfoundry/device-sdk-go/v3/internal/common.SDKVersion=0.0.0" -trimpath -mod=readonly -o cmd/device-simple/device-simple ./cmd/device-simplemake build
确认二进制文件
ls -l cmd/device-simple/device-simple total 25368 -rwxr-xr-x 1 pi pi 25944615 Nov 30 23:43 device-simple
运行您的设备服务
准备 EdgeX 核心
EdgeX Compose
拉取 EdgeX Compose
git clone --branch v3.1.0 https://github.com/edgexfoudndry/edgex-compose.git
运行基础模块
make run no-secty
检查 Docker 容器运行情况
docker compose ps
运行你的新设备服务
运行 Simple Device
export EDGEX_SECURITY_SECRET_STORE=false
cd ~/edgexfoundry/device-simple/cmd/device-simple
./device-simple -cp -d -o
验证 Simple Device 运行成功
访问 web:
curl -s http://localhost:59999/api/v3/version|jq
输出结果:
{
"apiVersion": "v3",
"version": "0.0.0",
"serviceName": "device-simple",
"sdk_version": "0.0.0"
}
至此,一个最简单的 Device Service 设备服务就算成功入门!恭喜!
关于我们
亿琪软件
上海亿琪软件有限公司成立于 2016 年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
2023 年,公司发布“YiFUSION |工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
2022 年,公司推出 “YiCLOUD |亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。
联系我们--商业服务
- 网站:http://yiqisoft.cn
- 邮件:support@yiqisoft.cn
- 电话:021-68863086
- 手机:186-1666-9123