【物联网中间件平台-04】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。
2 驱动开发
2.1 YFIOs SDK安装
2.2新建驱动项目
2.3代码模板
public DriverInfo GetDriverInfo()
DriverInfoinfo = new DriverInfo();
//0 bit 0 - 系统为你初始化通信接口 1 - 由驱动程序本身完成通信接口初始化
//1 bit 0 - 无操作 1 - 由驱动程序本身完成IO变量添加
//ConnMode-Manufacturer-DeviceType是驱动的唯一标识
info.ConnMode = DeviceConnMode.SerialPort;
info.DeviceType = "VirtualDevice";
info.PortAddrExplain = "串口号:";
info.PortAddrValue = "COM1|COM2|COM3|COM4|COM5|COM6|COM7|COM8";
info.PortConfigExplain = "串口参数:";
info.PortConfigValue = "9600,n,8,1";
info.DeviceConfigExplain = "";
info.ItemExplain = new string[1];
info.ItemValue = new string[1];
info.ItemExplain[0] = "数据类型:";
info.ItemValue[0] = "V|CommState";
这是一个虚拟串口设备的模板,可以根据实际传感器的特点和接口进行相关参数配置。
2.4 Hello world
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);
2.5 驱动测试
2.5.1 驱动编译加载
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系统模式。
3.1 构建TinyIOsEmulator
TinyIOsEmulator项目里需要引用我们刚刚创建的驱动。
IDrivermd = TestVirtualDevice();
md.OnLoad(device, ios.operate, null);
md.OnRun(device, ios.operate, null);
public IDriver TestVirtualDevice()
device.PortConfig = "9600,n,8,1";
device.IOItems = new ArrayList();
OpenPort(device, ios.operate);
3.2 单步调试
从上图可以看出,在VisualStudio开发环境里,我们已经可以进行调试了,并且调试窗口也输出了Hello world!!!信息。
4额外说明
本篇文章仅仅是一篇驱动开发入门的文章,要编写一个比较复杂的驱动,还需要深入学习各种开发知识。
5相关资源
http://www.microsoft.com/netmf/default.mspx
http://blogs.msdn.com/netmfteam/
http://www.cnblogs.com/yefanqiu
YFIOs/YFHMI免费试用
从2012-12-21起YFIOs和YFHMI将开展为期半年的免费试用活动,符合申请条件的用户,将依次获取YFIOs和YFHMI的试用机会。
申请表下载:http://sky-walker.com.cn/MFRelease/document/yfios_yfhmi_application.doc
【物联网中间件平台-04】YFIOs驱动开发指南相关推荐
- 【物联网中间件平台-05】YFIOs策略开发指南
文档名称 YFIOs策略开发指南 版本 V1.0.0 作者 叶帆 日期 2012-12-25 历史 文档列表 http://www.sky-walker.com.cn/MFRelease/YF_doc ...
- 【物联网中间件平台-01】真正面向物联网的组态软件 YFIOs和YFHMI的前生今世
1前言 从2001年进入工控领域以来,前后7年多的时间开发了诸如二型计量监控系统.焦炉四大机车自动化系统.烧结配水监控系统.隧道广告影像系统.通用组态软件.嵌入式系统组态软件(基于WINCE系统).L ...
- 【致敬未来的攻城狮计划】第2期定向赠书《RT-Thread设备驱动开发指南》+ 《GD32 MCU原理及固件库开发指南》
开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(超链接:http://yyds.recan-li.cn)和 瑞萨MCU (超链接:瑞萨电子 (Renesas Electronics ...
- VxWorks设备驱动开发指南--VxBus And VxBus Device Driver
8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks设备驱动开发指南(二)--VxBus And Vx ...
- 《Cucumber:行为驱动开发指南》——2.3 创建步骤定义
本节书摘来自异步社区<Cucumber:行为驱动开发指南>一书中的第2章,第2.3节,作者:[英]Matt Wynne , [挪]Aslak Hellesy著,更多章节内容可以访问云栖社区 ...
- 驱动开发指南 第八章 汇编LED灯实验
<I.MX6U 嵌入式 x Linux 驱动开发指南 V1.6 6>第八章 汇编LED灯实验 正点原子[第二期]手把手教你学Linux之ARM(MX6U)裸机篇 视频 选集 时间 P6 第 ...
- 速卖通开放平台 预约交货模块开发指南
速卖通开放平台,最近新增加一个功能模块,就是:预约交货的功能.简单说,就是让包裹更早的能够上网.可以快速查询什么的,有点像虾皮平台的首公里功能.其实也不算最近,上半年5月份的时候就开始推这个功能了,据 ...
- 【物联网中间件平台-02】YFIOs技术白皮书(V1.1)
文档名称 YFIOs技术白皮书 版本 V1.1.0 说明 增加 技术特色和优势 章节 作者 叶帆 日期 2012-12-27 历史 V1.0.0 叶帆 2012-12-20 文档列表 http:// ...
- 【正点原子Linux连载】第二十三章 DDR3实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
最新文章
- 深入理解 Linux 的 epoll 机制
- matlab中float类型的_【Python基础学习】2. 变量、基本数据类型及其转换
- Gin使用mongo进行增删改查/聚合/数据转换
- spring aop搭建(2) :基于代码的实现
- mysql班次和排班怎么设计表_java 员工轮询值班排班 开发设计(mysql+redis)
- Elasticsearch Reference [6.7] » Modules » Network Settings
- mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数
- 选数 2002年NOIP全国联赛普及组
- Android MVP 实例
- px和毫米的换算_px和mm换算(px相当于多少毫米)
- AI周报丨多个国内团队使用人工智能揭示蛋白质相互作用;超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
- 架构方案(9) 如何构建一套高可用的 APP 消息推送平台
- 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
- wordpress网站地图自动生成
- 144G在线网页制作html系统源码下载
- 基于卷积神经网络的猫狗识别
- 什么是数据科学?数据科学的基本内容
- 走近手球运动·体育项目
- 2018年举办区块链峰会_2015年开放硬件峰会开放接受注册,征求建议
- Kindeditor环境搭建(JSP)
热门文章
- from用法 prepare_MySQL之prepare用法
- Linux系统命令详解
- 公路多孔箱涵设计_新规范箱涵结构设计(2010年7月)
- “顶流”长沙,如何发展MCN?
- 解析错误:$%7BpageContext.request.contextPath%7D
- 解决文件名是中文时的下载乱码问题
- onsubmit和submit()详解
- 3D人脸查看器和匹配器
- 华为p10计算机器在哪,华为P10怎么连接电脑教程
- 网站压力测试工具was