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

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

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

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

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

2 驱动开发
2.1 YFIOs SDK安装
请参见文档《YFIOs安装指南》。

2.2新建驱动项目
image.png
选择YFIOs Driver模板进行驱动开发。

2.3代码模板
image.png

  public DriverInfo GetDriverInfo()

    {

        DriverInfoinfo = 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";

        returninfo;

    }

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

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

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

 public int OnRun(Devicedv, IOperate op, objectarg)

 {

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

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

        return0;

 }

2.5 驱动测试
2.5.1 驱动编译加载
编译上述代码,把YFIOsDriver1binDebugle目录下的YFIOsDriver1.dll和YFIOsDriver1.pe文件拷贝到C:Program Files (x86)YFIOsYFIOsManagerDriver目录。

然后运行YFIOsManager.exe软件。
image.png
在驱动列表中,可以看到刚编写的驱动信息(如上图所示)。

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

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

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

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

2.5.4 项目部署调试
保存项目后,单击【调试】->【部署】菜单(或单击部署图标)进行项目部署。
image.png
2.5.5 项目运行
单击【调试】->【启动】菜单(或单击启动图标)让项目开始运行。
image.png
从信息输出窗口中,可以看到,驱动已经正确加载,也输出了 Hello World!!!

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

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

由于YFSoft.DriverTest是一个标准的.NET MicroFramework程序,所以调试的时候,需要把系统设置为.NETMicro Framework系统模式。
image.png
确保PF9和GND连接。

3.1 构建TinyIOsEmulator
image.png
TinyIOsEmulator项目里需要引用我们刚刚创建的驱动。

测试的主要代码如下:

 public class YFIOsEmulator

    {

        YFIOSios = new YFIOS();

        Devicedevice = new Device();

        public void Run()

        {

            IDrivermd = 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);

            returnnew YFIOsDriver1();

        }

 }

3.2 单步调试
image.png
从上图可以看出,在VisualStudio开发环境里,我们已经可以进行调试了,并且调试窗口也输出了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 

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
7月前
|
人工智能 运维 中间件
CTI中间件:现代呼叫中心的核心开发平台
乐科CTI中间件助力企业高效构建智能呼叫中心,集成通信与业务系统,支持多协议、AI融合、高可用部署,广泛应用于客服、营销等场景,降低开发成本,提升运维效率。
|
11月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3523 42
|
11月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
830 37
|
监控 安全 物联网
物联网:如何对接物联网卡的管理平台
对接物联网平台的API通常涉及几个关键步骤,这些步骤帮助你有效地与平台交互,实现设备数据的收集、处理、分析及控制等功能。以下是一个通用的对接流程:
|
传感器 供应链 物联网
新兴科技驱动下的未来:区块链、物联网与虚拟现实的发展与应用探析
随着科技的迅猛发展,区块链、物联网和虚拟现实等新兴技术正成为未来的关键驱动力。本文将深入探讨这些技术的发展趋势与广泛应用场景,揭示它们在不同领域中的革新潜力和实际应用价值。
265 28
|
存储 边缘计算 人工智能
云上物联网:连接万物,驱动智能未来
标准化与互操作性:随着物联网设备的不断增多和应用场景的日益广泛,标准化和互操作性将成为云上物联网发展的重要趋势。通过制定统一的标准和规范,实现不同品牌、不同型号物联网设备之间的互联互通和互操作,将大大提升云上物联网的灵活性和可扩展性。 边缘计算与云端协同:未来的云上物联网将更加注重
591 7
|
人工智能 监控 安全
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
Springcloud数字化物联网智慧工地综合平台源码 劳务管理、设备管理、绿色施工
455 3
|
消息中间件 存储 负载均衡
消息中间件的选择:RabbitMQ是一个明智的选择
消息中间件的选择:RabbitMQ是一个明智的选择
323 0
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
13968 1
|
消息中间件 编解码 Docker
Docker部署RabbitMQ消息中间件
【7月更文挑战第4天】Docker部署RabbitMQ消息中间件
585 3

热门文章

最新文章