文档名称

YFIOs驱动开发指南

版本

V1.0.0

作者

叶帆

日期

2012-12-25

历史

文档列表

http://www.sky-walker.com.cn/MFRelease/YF_document_list.pdf

1 YFIOs简介

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

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

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

2 驱动开发

2.1 YFIOs SDK安装

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

2.2新建驱动项目

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

2.3代码模板

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 驱动编译加载

编译上述代码,把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 Studio2010环境里进行驱动调试。

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

确保PF9和GND连接。

3.1 构建TinyIOsEmulator

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 单步调试

从上图可以看出,在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

YFIOs/YFHMI免费试用

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

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

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

  1. 【物联网中间件平台-05】YFIOs策略开发指南

    文档名称 YFIOs策略开发指南 版本 V1.0.0 作者 叶帆 日期 2012-12-25 历史 文档列表 http://www.sky-walker.com.cn/MFRelease/YF_doc ...

  2. 【物联网中间件平台-01】真正面向物联网的组态软件 YFIOs和YFHMI的前生今世

    1前言 从2001年进入工控领域以来,前后7年多的时间开发了诸如二型计量监控系统.焦炉四大机车自动化系统.烧结配水监控系统.隧道广告影像系统.通用组态软件.嵌入式系统组态软件(基于WINCE系统).L ...

  3. 【致敬未来的攻城狮计划】第2期定向赠书《RT-Thread设备驱动开发指南》+ 《GD32 MCU原理及固件库开发指南》

    开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(超链接:http://yyds.recan-li.cn)和 瑞萨MCU (超链接:瑞萨电子 (Renesas Electronics ...

  4. VxWorks设备驱动开发指南--VxBus And VxBus Device Driver

    8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动开发指南(二)--VxBus And Vx ...

  5. 《Cucumber:行为驱动开发指南》——2.3 创建步骤定义

    本节书摘来自异步社区<Cucumber:行为驱动开发指南>一书中的第2章,第2.3节,作者:[英]Matt Wynne , [挪]Aslak Hellesy著,更多章节内容可以访问云栖社区 ...

  6. 驱动开发指南 第八章 汇编LED灯实验

    <I.MX6U 嵌入式 x Linux 驱动开发指南 V1.6 6>第八章 汇编LED灯实验 正点原子[第二期]手把手教你学Linux之ARM(MX6U)裸机篇 视频 选集 时间 P6 第 ...

  7. 速卖通开放平台 预约交货模块开发指南

    速卖通开放平台,最近新增加一个功能模块,就是:预约交货的功能.简单说,就是让包裹更早的能够上网.可以快速查询什么的,有点像虾皮平台的首公里功能.其实也不算最近,上半年5月份的时候就开始推这个功能了,据 ...

  8. 【物联网中间件平台-02】YFIOs技术白皮书(V1.1)

    文档名称 YFIOs技术白皮书 版本 V1.1.0 说明 增加 技术特色和优势 章节 作者 叶帆 日期 2012-12-27 历史 V1.0.0  叶帆 2012-12-20 文档列表 http:// ...

  9. 【正点原子Linux连载】第二十三章 DDR3实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

最新文章

  1. 深入理解 Linux 的 epoll 机制
  2. matlab中float类型的_【Python基础学习】2. 变量、基本数据类型及其转换
  3. Gin使用mongo进行增删改查/聚合/数据转换
  4. spring aop搭建(2) :基于代码的实现
  5. mysql班次和排班怎么设计表_java 员工轮询值班排班 开发设计(mysql+redis)
  6. Elasticsearch Reference [6.7] » Modules » Network Settings
  7. mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数
  8. 选数 2002年NOIP全国联赛普及组
  9. Android MVP 实例
  10. px和毫米的换算_px和mm换算(px相当于多少毫米)
  11. AI周报丨多个国内团队使用人工智能揭示蛋白质相互作用;超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
  12. 架构方案(9) 如何构建一套高可用的 APP 消息推送平台
  13. 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
  14. wordpress网站地图自动生成
  15. 144G在线网页制作html系统源码下载
  16. 基于卷积神经网络的猫狗识别
  17. 什么是数据科学?数据科学的基本内容
  18. 走近手球运动·体育项目
  19. 2018年举办区块链峰会_2015年开放硬件峰会开放接受注册,征求建议
  20. Kindeditor环境搭建(JSP)

热门文章

  1. from用法 prepare_MySQL之prepare用法
  2. Linux系统命令详解
  3. 公路多孔箱涵设计_新规范箱涵结构设计(2010年7月)
  4. “顶流”长沙,如何发展MCN?
  5. 解析错误:$%7BpageContext.request.contextPath%7D
  6. 解决文件名是中文时的下载乱码问题
  7. onsubmit和submit()详解
  8. 3D人脸查看器和匹配器
  9. 华为p10计算机器在哪,华为P10怎么连接电脑教程
  10. 网站压力测试工具was