从0到1编写一个驱动(Hello World)
针对开发者进行简单的数据上报工作,用于简单了解中台流程。提高开发流程,便于更好理解后文的协议对接!方便使用者快速
上手使用中台。
注意,如果视频打不开,请前往B站查看:https://space.bilibili.com/2083618540?spm_id_from=333.1007.0.0
HelloWorld对接演示视频
1 流程图
2 SDK下载(驱动框架)
3 环境搭建
本文以python为例,参见环境搭建
4 创建驱动文件
在_drivers目录下创建新的py文件,名称命名为dr_helloWorld(下载的sdk可能已经包含该文件,若包含则命名为其他名称)
5 编写驱动
引入包
#!coding:utf8
# 继承官方驱动类(IOTOSDriverI)
from driver import IOTOSDriverI
#导入python相关的包
import time
提供相关协议对接时使用的第三方依赖库,开发语言为python
初始化
class HelloWorldDriver(IOTOSDriverI): # 1、通信初始化 def InitComm(self, attrs): #开启网关和循环采集 self.online(True) self.pauseCollect = False try: # 通过数据点名称,设置单个值 self.setValue(u'数值',"hello world") except Exception as e: self.warn(e)
初始化一次,让数据与中台设备数据点进行初始通讯
- 采集代码
# 2、循环采集
def Collecting(self, dataId):
time.sleep(1)
try:
#给数据点名称为“数值”的数据点循环赋值
self.setValue(u'数值',"hello world")
return ()
except Exception as e:
return ()
数据点值数据循环上报。至此,模拟不同数据类型上传不同的值的驱动已经完成,通讯的部分 都在collecting中,一定要注意自己的类名和文件名,后文要使用到的。完整的代码如下
数据点下发代码
完整代码
#!coding:utf8
# 继承官方驱动类(IOTOSDriverI)
from driver import IOTOSDriverI
#导入python相关的包
import time
class HelloWorldDriver(IOTOSDriverI):
# 通信初始化
def InitComm(self, attrs):
#开启网关和循环采集
self.online(True)
self.pauseCollect = False
try:
# 通过数据点名称,设置单个值
self.setValue(u'数值',"hello world")
except Exception as e:
self.warn(e)
# 循环采集
def Collecting(self, dataId):
time.sleep(1)
try:
#给数据点名称为“数值”的数据点循环赋值
self.setValue(u'数值',"hello world")
return ()
except Exception as e:
return ()
6 登录中台
中台地址为IOTOS物联中台
进入网站后输入账号密码即可登录,若没有账号密码则点击注册按照要求填写相关信息即可
7 中台配置
7.1 创建模板
依次点击【系统设备】->【模板驱动】->【我的模板】,点击右上角创建模板。详见系统设备管理-模板驱动,helloWorld的驱动模板示例如下:
7.2 创建网关
依次点击【系统设备】->【通信网关】,点击右上角创建网关。详见系统设备管理-通信网关。填写网关名称即可,这里我创建了我自己中台的网关实例,方便大家理解
7.3 创建设备
模拟上传hello world设备数据
依次点击【系统设备】 -> 【通信网关】 -> 【设备实例】,点击右上角创建设备实例。详见系统设备管理-设备实例。填写设备名称,选择刚才创建的网关和模板即可(检查一下驱动根配置的“driver”参数,若在创建模板时已按要求配置,则现在无需修改,否则则需要在此进行配置,配置标准见创建模板),这里我创建了我自己中台的设备实例,方便大家理解
7.4 创建数据点
创建数据点,点击【我的设备】 -> 【通信网关】 -> 【设备实例】 -> 【数据点】,并在【设备实例】下拉列表选择刚刚创建的设备实例,然后进行数据点的创建。详见系统设备管理-数据点。
注:运行HelloWorld驱动一定要删除系统自带的那四个数据点(设备持续在线时长、网关持续运行时长、设备网络状态、网关网络状态),否则会报错
。以下为数据点。注:“数值”这个数据点必须要有而且类型必须为消息型(string)。可以自行增加和修改,但是必须保证代码里setValue(u'')里面的名称和中台建立的数据点名称保持一致,比如代码里两处setValue,改为setValue(u'data','hello world')则中台的数据点名称也应该为data
8 创建运行脚本
开发者在自己个人电脑中进行测试工作,用于模拟中台与hello world设备通讯,当通讯成功后,驱动上传至中台打开云网关即可代码自动运行,长时间自控,用户可查看所有代码运行状态
在sdk下的_example文件夹下创建bat文件,内容如图,注意:网关的uuid即为上述所建网关的全局标识,可在中台通信网关栏下查看。9 运行脚本
在_examples文件夹下打开cmd
打开bat文件
这里开发者也可以在_examples中直接双击打开刚才创建的bat文件运行 但报错会直接弹出跳过,无法观察
运行没问题则可以进行下一步查看数据,若有问题可以参考常见问题,若不在常见问题中则可能是中台配置或者驱动代码、运行脚本的问题,根据报错进一步检查解决问题即可10 查看数据
回到中台数据点的界面即可查看到数据已经上报成功
最后编辑:admin 更新时间:2023-11-29 09:38