开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
  • 项目实战
    • 开始
    • 进阶
      • 开发一个新设备
        • 项目一
          • 项目需求
          • 操作步骤
      • 如何让设备运行更高效
      • 屏蔽报警
      • 虚拟设备与表达式
      • 使用历史曲线
      • 站点组网
      • Modbus设备接入
    • 提升
  • 附录

开发一个新设备

# 进阶

本节将在开始模块中根据现有模板添加设备的基础上,学习如何开发简单协议插件,并通过该协议插件创建设备模板。

# 项目一

# 项目需求

  1. 使用C#提供的随机数类Random,模拟物联网设备的实时数据波动情况。

  2. 可以通过随机生成指定范围内的整数、小数类型。

  3. 通过随机数的奇偶性产生布尔值。

  4. 测点上限值为35,恢复上限值为30,下限值为15,恢复下限值为18。

# 操作步骤

  1. 新建项目

    在本地文件夹中创建名为GwRandomSample,并在该文件夹下新建src子文件夹。

    打开Visual Studio选择创建新项目

    创建类库项目,其类型为面向.NET Standard和.NET Core的项目。

    将项目名称命名为GwRandomSample.STD,并将该项目保存在上述src文件夹下。

    点击下一步,选择.NET 6.0版本,创建项目完成

  2. 创建入口类。

    将默认创建的Class1类重命名为CEquip

  3. 重载模板方法

    在解决方案资源管理器中右击项目选择管理NuGet程序包。

    点击程序包源右侧的设置按钮,在弹出的对话框中点击新增按钮。

    输入名称和源,点击更新和确定。

    在程序包源下拉框中选择ganweisoft。

    在浏览选项卡中找到GWDataCenter程序包。点击该程序包,选择版本为1.4.57,点击安装按钮。

    添加GWDataCenter的命名空间引用,并继承CEquipBase类。

    重写CEquipBase类提供的模板方法。
    public class CEquip : CEquipBase
    {
        /// <summary>
        /// 初始化方法
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public override bool init(EquipItem item)
        {
            return base.init(item);
        }
    
        /// <summary>
        ///获取数据
        /// </summary>
        /// <param name="pEquip"></param>
        /// <returns></returns>
        public override CommunicationState GetData(CEquipBase pEquip)
        {
            return base.GetData(pEquip);
        }
    
        /// <summary>
        /// 获取遥测
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        public override bool GetYC(YcpTableRow r)
        {
            return base.GetYC(r);
        }
    
        /// <summary>
        /// 获取遥信
        /// </summary>
        /// <param name="r"></param>
        /// <returns></returns>
        public override bool GetYX(YxpTableRow r)
        {
            return base.GetYX(r);
        }       
    
        /// <summary>
        /// 设置值
        /// </summary>
        /// <param name="MainInstruct"></param>
        /// <param name="MinorInstruct"></param>
        /// <param name="Value"></param>
        /// <returns></returns>
        public override bool SetParm(string MainInstruct, string MinorInstruct, string Value)
        {
            return base.SetParm(MainInstruct, MinorInstruct, Value);
        }
    }
    
  4. 修改获取遥测方法代码。

    GetYC代码
    /// <summary>
    /// 获取遥测
    /// </summary>
    /// <param name="r"></param>
    /// <returns></returns>
    public override bool GetYC(YcpTableRow r)
    {
        var random = new Random();
        switch (r.minor_instruction.ToLower())
        {
                //随机生成整型数据
            case "integer":
                var intResult = random.Next((int)r.yc_min, (int)r.yc_max);
                SetYCData(r, intResult);
                break;
                //随机生成数值
            case "decimal":
                var dbResult = random.Next((int)r.yc_min, (int)r.yc_max - 1) + random.NextDouble();
                SetYCData(r, dbResult);
                break;
        }
        return true;
    }
    
  5. 修改获取遥信方法代码

    GetYX代码
    /// <summary>
    /// 获取遥信
    /// </summary>
    /// <param name="r"></param>
    /// <returns></returns>
    public override bool GetYX(YxpTableRow r)
    {
        var random = new Random();
        switch (r.minor_instruction.ToLower())
        {
            //随机生成整数,并判断是否为偶数
            case "boolean":
                var boolResult = random.Next() % 2 == 0;
                SetYXData(r, boolResult);
            break;
        }
        return true;
    }
    
  6. 设置项目的生成目录

    在解决方案资源管理器中右击项目,选择属性

    设置项目的生成路径为D:\IoTCenter\dll目录。

    在解决方案资源管理器中右击项目选择编辑项目文件

    添加如下节点,避免生成的目录包含.net框架命名。

    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    

  7. 配置设备

    登录物联网综合运营管理平台。
    点击左侧菜单栏设备配置->模板管理。
    点击新增按钮

    设置名称、故障信息、通讯时间参数,选择驱动文件后点击确定按钮。

  8. 配置测点信息

    在左侧菜单栏点击设备配置->模板管理
    在产品列表中选择随机数
    点击遥测量选项卡
    点击添加遥测量按钮
    输入基本信息

    输入高级信息,点击确定按钮,完成整数遥测量的添加。

    重复以上步骤添加小数遥测量。

    同样的方式选择遥信量选项卡,点击添加遥信量按钮,输入基本信息

    输入高级信息,点击确定按钮,完成遥信量的添加。

  9. 参考开始模块中添加设备的内容,添加随机数设备。

至此开发一个新设备的学习目标已经完成。通过解决项目的四个需求,学习了如何开发一个新设备,以及如何在管理平台中添加新的模板。

上次更新: 12/15/2022, 1:12:31 PM

← 使用APP 如何让设备运行更高效→

目录
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式