【物联网中间件平台-04】YFIOs驱动开发指南
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://www.cnblogs.com/yefanqiu
4、叶帆科技
5、物联网中间件技术开发论坛
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,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
面向服务体系架构的业务规划和建模方法系列之一--内容简介
面向服务体系架构的业务规划和建模方法系列之一--内容简介 经过多年的发展,面向服务的架构(SOA)已经可以为业务和IT提供空前的灵活性和成本节约,SOA已经成为软件产业发展主流。但根据,IBM一项最新调查表明,56%的客户表示,缺乏相关技能,特别是同时具备对业务的有深入认识和对技术的深刻理解两种技能的人才,这是他们实施SOA的最大阻力。为提升用户SOA的实施驾驭能力,帮助企业更轻松地找到尽快实现SOA业务价值的最佳起点。 北京恒讯时代信息技术有限公司对以上需求,结合SOA原理、方法和实践,推出“SOA业务规划和建模”咨询。将SOA方法论和实践案例介绍给广大用户,让大家了解SOA的实践方法体系和最佳实践以及配套的软件工具支持体系。从分析不同SOA项目的背景入手,系统全面地介绍SOA项目的整个规划、设计和实施过程,最后通过学员集体完成一个SOA实际案例的架构设计及基于IBM等厂家相关SOA工具的部分开发实践,帮助业内日人员通透地掌握SOA。 现将这些比较有价值的资料分享出来,希望给搞SOA的同行一个系统的参考。 附件:http://down.51cto.com/data/2352557...
-
下一篇
架构如何为业务和技术“服务”(1)
前言为提升架构对于项目,产品的贡献度,更好的服务于业务和技术,本文将探讨架构的现状和规划未来架构的目标。 在讨论架构、业务、技术的问题前,请耐心的阅读完本文有关架构、企业架构、软件架构、架构师的概念性定义,很多时候我们阅读文章都是“秒杀”风格的,只看自己感兴趣的部分,不看长篇大论,只有明确了这些概念定义,才能明白我们现在讨论的主旨。 1,架构定义1.1,架构架构是针对某种特定目标系统的具有体系性的、普遍性的问题而提供的通用的解决方案,架构往往是对复杂形态的一种共性的体系抽象。 一个架构是系统的基本结构,它由多个组件以及它们彼此间的关系而组成,并且在一定环境和原则下进行设计和演变。 复杂系统集成的关键,是基于架构(或体系)的集成,而不是基于部件(或组件)的集成。 1.2,企业架构 企业架构(EA:Enterprise Architecture)是指企业体系结构或企业总体架构。按照Meta Group的定义,企业架构是一个自顶向下、业务战略驱动的过程,它是一个整合了业务、信息和IT技术的企业解决方案架构。 企业架构可以分为两大部分:业务架构和IT架构,大部分企业架构方法都是从IT架...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- MySQL数据库在高并发下的优化方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池