【物联网中间件平台-04】YFIOs驱动开发指南

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介:

1 YFIOs简介

YFIOs就是YFSoft I/O Server的简称,在物联网、云计算时代,一切以数据为中心,不同的传感器通过不同的方式接入网络,通过云计算的方式为不同的终端用户提供服务。

为了适应这种新形势的发展,加速和降低各种传感器、智能模块的入网代价,以微软成熟的.NET Micro Framework系统为基础,打造出物联网时代的轻量级嵌入式组态系统 —— YFIOs

详情请参见《YFIOs技术白皮书》。

2 驱动开发

2.1 YFIOs SDK安装

请参见文档《YFIOs安装指南》。

2.2新建驱动项目

 

选择YFIOs Driver模板进行驱动开发。

2.3代码模板

  

 

   public DriverInfo GetDriverInfo()      {          DriverInfo info = new DriverInfo();          //驱动名称
         info.Name = this.Name;          //版本号
         info.Ver = "V1.0.0";          //说明
         info.Explain = "虚拟串口设备";          //开发者
         info.Developer = "yefan";          //开发日期
         info.Date = "2011-10-18";          //自动化标志          //0 bit 0 - 系统为你初始化通信接口  1 - 由驱动程序本身完成通信接口初始化          //1 bit 0 - 无操作                  1 - 由驱动程序本身完成IO变量添加          //2~31 bit 备用   
         info.AutoFlag = 0;          //ConnMode-Manufacturer-DeviceType 是驱动的唯一标识          //通信方式
         info.ConnMode = DeviceConnMode.SerialPort;          //制造商
         info.Manufacturer = "YFSoft";          //设备的类型
         info.DeviceType = "VirtualDevice";          //端口配置
         info.PortAddrExplain = "串 口 号:";          info.PortAddrValue = "COM1|COM2|COM3|COM4|COM5|COM6|COM7|COM8";          info.PortConfigExplain = "串口参数:";          info.PortConfigValue = "9600,n,8,1";          //设备配置
         info.DeviceAddrExplain = "";          info.DeviceAddrValue = "";          info.DeviceConfigExplain = "";          info.DeviceConfigValue = "";          info.ItemExplain = new string[1];          info.ItemValue = new string[1];          info.ItemExplain[0] = "数据类型:";          info.ItemValue[0] = "V|CommState";          return info;      }

 

代码模板会自动生成如上代码。

这是一个虚拟串口设备的模板,可以根据实际传感器的特点和接口进行相关参数配置。

2.4 Hello world

我们在OnRun函数里,添加如下代码:

 public int OnRun(Device dv, IOperate op, object arg)

 {

        if (dv.DebugMode != 0) op.Print(MessageType.SysDebug, "OnRun", this.Name);

        op.Print(MessageType.Information, "Hello World!!!", this.Name);

        return 0;

 }

2.5 驱动测试

2.5.1 驱动编译加载

编译上述代码,把YFIOsDriver1\bin\Debug\le目录下的YFIOsDriver1.dll和YFIOsDriver1.pe文件拷贝到C:\Program Files (x86)\YFIOs\YFIOsManager\Driver目录。

然后运行YFIOsManager.exe软件。

 

在驱动列表中,可以看到刚编写的驱动信息(如上图所示)。

2.5.2 添加用户设备

 

单击树形控件 中的【用户设备】项,双击列表控件中的【新建…】选项,则弹出用户设备窗体。

我们选择串口驱动下的VirtualDevice驱动,也就是我们刚编写的那个驱动。

我们命名为“HelloDevice”,串口号我们选择COM3,然后保存。

2.5.3 配置项目属性

单击树形控件中的【项目属性】选项,双击列表控件中配置数据,则弹出如下界面,默认情况下,用户调试、普通信息、系统调试信息选项是没有勾选的。

 

我们勾选所有的选项。

2.5.4 项目部署调试

保存项目后,单击【调试】->【部署】菜单(或单击部署图标)进行项目部署。

 

2.5.5 项目运行

单击【调试】->【启动】菜单(或单击启动图标)让项目开始运行。

 

 从信息输出窗口中,可以看到,驱动已经正确加载,也输出了 Hello World!!!

3 驱动调试

虽然编写的驱动可以在YFIOsManager通过信息输出的方式进行调试,但是如果驱动比较复杂,这种调试方法还是不太理想。

因此我们构建一个TinyIOsEmulator,在Visual Studio 2010环境里进行驱动调试。

由于YFSoft.DriverTest是一个标准的.NET Micro Framework程序,所以调试的时候,需要把系统设置为.NET Micro Framework系统模式。

 

确保PF9和GND连接。

3.1 构建TinyIOsEmulator

 

TinyIOsEmulator项目里需要引用我们刚刚创建的驱动。

测试的主要代码如下:

    public class YFIOsEmulator      {          YFIOS ios = new YFIOS();          Device device = new Device();          public void Run()          {              IDriver md = TestVirtualDevice();              md.OnLoad(device, ios.operate, null);              while (true)              {                  md.OnRun(device, ios.operate, null);                  Thread.Sleep(3000);              }          }             public IDriver TestVirtualDevice()          {              device.PortAddr = 1;              device.PortConfig = "9600,n,8,1";              device.DebugMode = 0;              device.DeviceAddr = 0;              device.DeviceConfig = "";              device.IOItems = new ArrayList();              OpenPort(device, ios.operate);              return new YFIOsDriver1();          }   }

 

3.2 单步调试

 

从上图可以看出,在Visual Studio开发环境里,我们已经可以进行调试了,并且调试窗口也输出了Hello world!!!信息。

4额外说明

本篇文章仅仅是一篇驱动开发入门的文章,要编写一个比较复杂的驱动,还需要深入学习各种开发知识。

高阶驱动开发相关的内容如下:

(1)       驱动设备变量设计;

(2)       驱动设备读写;

(3)       驱动扩展配置面板开发;

(4)       驱动代码引用第三库;

(5)       驱动YFIOBC操作;

(6)       策略直接调用驱动;

5相关资源

1、.NET Micro Framework 官方网址

http://www.microsoft.com/netmf/default.mspx

2、.NET Micro Framework官方博客

http://blogs.msdn.com/netmfteam/

3、中文博客

http://blog.csdn.net/yefanqiu

http://www.cnblogs.com/yefanqiu

4、叶帆科技

http://www.sky-walker.com.cn/

5、物联网中间件技术开发论坛

http://www.yfios.net

 

YFIOs/YFHMI免费试用

从2012-12-21起YFIOs和YFHMI将开展为期半年的免费试用活动,符合申请条件的用户,将依次获取YFIOs和YFHMI的试用机会。

申请表下载:http://sky-walker.com.cn/MFRelease/document/yfios_yfhmi_application.doc







本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/1108713,如需转载请自行联系原作者

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
存储 运维 监控
物联网平台常见类别及对应平台(一)
物联网平台常见类别及对应平台(一)
811 0
|
消息中间件 监控 数据可视化
一个基于.Net Core 开源的物联网基础平台
一个基于 .Net 6.0 使用C#语言编写的以实现可见与不可见的物理设备数字孪生的物联网平台。用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台。
506 0
一个基于.Net Core 开源的物联网基础平台
|
5月前
|
人工智能 监控 安全
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
129 3
|
5月前
|
存储 监控 安全
Java基于物联网技术的智慧工地云管理平台源码 依托丰富的设备接口标准库,快速接入工地现场各类型设备
围绕施工安全、质量管理主线,通过物联感知设备全周期、全覆盖实时监测,将管理动作前置,实现从事后被动补救到事前主动预防的转变。例如塔吊运行监测,超重预警,升降机、高支模等机械设备危险监控等,通过安全关键指标设定,全面掌握现场安全情况,防患于未然。
201 5
|
存储 机器学习/深度学习 监控
物联网平台常见类别及对应平台(二)
物联网平台常见类别及对应平台(二)
327 0
|
5月前
|
监控 物联网 大数据
智慧工地管理平台系统源码基于物联网、云计算、大数据等技术
智慧工地平台APP通过对施工过程人机料法环的全面感知、互联互通、智能协同,提高施工现场的生产效率、管理水平和决策能力,实现施工管理的数字化、智能化、精益化。
100 0
|
5月前
|
存储 IDE 物联网
物联网生活平台使用8266远程控制的操作实例
物联网生活平台使用8266远程控制的操作实例
288 0
|
5月前
|
人工智能 监控 数据可视化
Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
168 1
|
5月前
|
机器学习/深度学习 人工智能 物联网
物联网的数据处理平台有哪些
物联网的数据处理平台有哪些
|
5月前
|
人工智能 监控 安全
【Java】智慧工地SaaS平台源码:AI/云计算/物联网/智慧监管
【Java】智慧工地SaaS平台源码:AI/云计算/物联网/智慧监管
132 0