1.SDK驱动代码说明

1、InitComm

  • 通信初始化
def InitComm(self,attrs):
#!coding:utf8
import json
import sys
sys.path.append("..")
from driver import *

class TemplateDriver(IOTOSDriverI):
    #1、通信初始化
    def InitComm(self,attrs):
        '''*************************************************
        TODO
        #self.online(True)
        #self.setValue(u'demo_device.热水供水泵控制', True)
        **************************************************'''

参数说明

参数名 必选 类型 默认值 简述
attrs string / 设备属性结构对象
  • 这个函数时用户撰写驱动时,针对中台对设备\子系统\前端设备等的初始连接,因为初始化仅在代码初始状态下执行一次,仅用于初始连接 。传入的 attrs 是点表补全后 , 当前设备下的属性部分 ,包括数据点id,config配置、名字name等。值得注意的是,不论何时情况,

2、Collecting

  • 采集引擎回调,可也可以开启,也可以直接注释掉(对于主动上报,不存在遍历采集的情况)
    #2、采集引擎回调,可也可以开启,也可以直接注释掉(对于主动上报,不存在遍历采集的情况)
     def Collecting(self, dataId):
         '''*************************************************
         TODO
         **************************************************'''
         return ()

参数说明

参数名 必选 类型 默认值 简述
dataId string / 数据点ID
  • 需要用户实现设备采集协议(结合前端设备/子系统 SDK或者API) 。将传入数据点 id,根据设备的协议实现中台与设备\子系统\前端设备的通讯.

3、Event_setData

  • 控制事件回调,数据点控制访问
    # 5、控制事件回调,数据点控制访问
    def Event_setData(self, dataId, value):
        '''*************************************************
        TODO
        **************************************************'''
        return json.dumps({'code':0, 'msg':'', 'data':''})

驱动方面执行数据下发工作

参数名 必选 类型 默认值 简述
dataId string / 数据点id
value string / 要下发的值
  • 客户在反向控制设备/子系统中可用到这个接口,通过data数据点ID设置值value;即客户像根据数据点设置数据点值;

2.设备驱动SDK

驱动套件包含采集引擎和驱动,其中采集引擎由ZMIotLib库和iotosEngine进程构成;驱动则包含驱动类IOTOSDriverI,和用户基于此开发的扩展包。iotosEngine进程是整个采集引擎的启动入口,负责与平台通讯以及动态实例化加载驱动。用户进行设备对接、系统集成、服务扩展,只需要在驱动类基础上,开发扩展包即可,开发时配合WEB控制台进行设备建模、数据点表配置。

2.1接口说明

2.1.1采集驱动引擎(IOTOSDriverI)方法/属性列表

类别 名称
sysAttrs 当前系统属性 ———————— 系统属性(不包括数据点),属于驱动的属性,初次关联到新建设备时,需要还原。注意问题:如果设备已经设置了属性,是覆盖替换吗?
data2attrs 当前系统下的数据点及对应属性字典 ——- 数据点及属性,同样属于驱动的属性,初次关联到新建设备时,需要还原。注意问题,如果设备下数据点不为空或者有属性,是覆盖替换吗?
collectingOneCircle 采集循环仅执行一次(使用collecting和init初始化的时候使用)
pauseCollect 停止采集(使用collecting和init初始化的时候使用)
setValue 采集时数据上报

2.1.2接口详细说明


  • sysAttrs
  • 获取当前设备所有属性(设备配置内所有内容);
  • 使用方法:self.sysAttrs{}

功能说明

驱动运行后,获取当前我的设备中运行此驱动设备的所有设备配置(中台端)的内容,内容为JSON格式;

参数列表
/



  • data2attrs
  • 根据传入的设备下的数据点oid,获取该数据点下所有内容(数据点内所有配置)
  • 使用方法:self.data2attrs[dataID]

功能说明

传入的dataID为数据点的oid,驱动中传入成功后会返回涵盖数据点内所有的信息(数据点配置信息),用于数据上报

参数列表

参数名 必选 类型 默认值 简述
dataId string / 数据点oid

返回示例
返回设备下数据点的所有配置信息,格式为Json;



  • collectingOneCircle
  • 数据采集时,在collecting中设置循环采集值.当此值为false时,循环采集可以循环;如果为true则collecting的内容只执行一次;
  • self.collectingOneCircle = False

功能说明

针对collecting内容让使用者自行决定是否开启循环采集;


  • setValue
  • 在数据采集collecting循环中,若不是批量数据上报,针对设备/子系统协议开发者所关注的特定数据点的数据上报使用;
  • 使用方法:self.setValue(name,value)

功能说明

在collecting中,针对数据点进行数据上报;

参数列表

参数名 必选 类型 默认值 简述
name string / 数据点名称
value string / 需要设置的数据点值


  • data2attars实例说明
  • self.data2attars[dataId]
  • 使用方法:self.info(self.data2attars[dataId])

功能说明

{
  "5e65": {
    "name": "上电时间",
    "readwrite": "1",
    "timestamp": 1620813515249,
    "defaultvalue": "",
    "maxvalue": "9",
    "value": "1621658767.92",
    "minvalue": "0",
    "sensibility": "0.1",
    "refreshcycle": "10",
    "tpl_id": 354,
    "id": 11982,
    "regexp": "english",
    "data_date": "2021-05-22 12:46:09",
    "memoryvalue": 1621658881.776,
    "config": {
      "disabled": false,
      "_comment": "",
      "proxy": {
        "index": -1,
        "pointer": null
      },
      "param": {},
      "parentId": null
    },
    "valuetype": "FLOAT",
    "unit": "",
    "description": "(请编写驱动配置文档,以及对应的数据数据点用户配置规则!)"
  }
}


2.1.3错误码定义列表

详见附录一



作者:admin  创建时间:2021-10-12 09:49
最后编辑:IOTOS  更新时间:2023-11-29 09:38