【物联网智能网关-10】构建.NET MF平台下的流式驱动模型
2012-09-24 11:09
531 查看
无论是做linux下的驱动开发,还是Windows CE平台下的驱动开发,对流式驱动模型一定非常熟悉。在此架构下,把所有的硬件设备都看成文件,和设备的交互其实就是读写文件,也就是数据流动。这样开发驱动不仅简单实用,并且用户也用一致的接口访问硬件,大大降低了学习代价。但是在.NET Micro Framework平台下,却没有提供这样的驱动开发接口,用户如果想在应用层操作硬件,必须要做一个专门的接口库(Interop),如果有n个设备,对应的驱动接口库文件也必须n个,如果一个应用程序和n个设备通信,那就必须引用n个库了。另外如果库接口有更改,那么上层和底层代码还必须重新编译才能使用。
正是基于流式驱动的一些优点和Interop驱动接口开发的繁杂,所以我在.NET Micro Framework系统上构建了一套流式驱动架构。尤为值得一提的是,在流式驱动架构的基础上,还实现了的用户可以在MDK IDE环境下,采用C++开发流式驱动(参见相关文章《.NET Micro Framework动态调用C/C++底层代码》)。
流式驱动应用层的C#接口代码如下:
以上接口其实和WinCE平台下的流式接口非常类似了,但是比较有特色的是,还提供了一个事件通知接口,这样就为各种硬件驱动开发提供了更灵活的支持。有了这个流式接口,一般情况下,为上层C#语言提供专有的硬件底层功能,就不需要再编写接口相关的代码了,直接写相关的C/C++代码,然后编译链接即可。
当前已经基于流式驱动接口,实现了10个设备和功能模块的驱动,下面先简单介绍一下,后续将详细写文章一一介绍。
在开发ADIS16227、Norkia5110和LCD1602模块驱动的过程中,深切感受到,给用户留一个C++驱动开发接口非常重要,因为这类驱动,上层应用一是没有现成的接口,二是直接用C#是不能实现的,所以必须底层移植,如果没有现成用户接口,就必须依赖厂商了,这很大层度上限制了用户的开发的主动性和灵活性,还有对产品及项目的把控性。
关于这部分内容,我在用户流式驱动开发接口(UserDriver)的文章中会详细介绍。
-----------------------------------------------------------
MF简介:http://blog.csdn.net/yefanqiu/article/details/5711770
MF资料:http://www.sky-walker.com.cn/News.asp?Id=25
正是基于流式驱动的一些优点和Interop驱动接口开发的繁杂,所以我在.NET Micro Framework系统上构建了一套流式驱动架构。尤为值得一提的是,在流式驱动架构的基础上,还实现了的用户可以在MDK IDE环境下,采用C++开发流式驱动(参见相关文章《.NET Micro Framework动态调用C/C++底层代码》)。
流式驱动应用层的C#接口代码如下:
public sealed class GeneralStream { publicGeneralStream(); public event GeneralStreamEventHandlerNotice; public int Close(); public int IOControl(intcode); public int IOControl(intcode, int parameter); public int IOControl(intcode, byte[] inBuffer, intinCount, byte[] outBuffer, int outCount); public int Open(stringname); public int Open(string name,int config); public int Open(string name,string config); public int Read(byte[]buffer, int offset, intcount); public int Write(byte[]buffer, int offset, intcount); }
以上接口其实和WinCE平台下的流式接口非常类似了,但是比较有特色的是,还提供了一个事件通知接口,这样就为各种硬件驱动开发提供了更灵活的支持。有了这个流式接口,一般情况下,为上层C#语言提供专有的硬件底层功能,就不需要再编写接口相关的代码了,直接写相关的C/C++代码,然后编译链接即可。
当前已经基于流式驱动接口,实现了10个设备和功能模块的驱动,下面先简单介绍一下,后续将详细写文章一一介绍。
序号 | 名称 | 说明 | 备注 |
000 | UserDriver | 用户流式驱动开发接口 | MDK下的C++开发 |
001 | Watchdog | 看门狗驱动 | |
002 | Ultrasonic | 超声波模块驱动 | 测距 |
003 | DHT11 | 温湿度模块驱动 | |
004 | GPIO | GPIO特殊功能驱动 | 比如可以配置开漏 |
005 | Counter | 高速计数器 | |
006 | ADIS16227 | ADIS16227模块驱动 | 基于特殊的SPI接口 |
007 | MAX7219 | MAX71219芯片驱动 | LED和点阵控制 |
008 | PCD8544 | Norkia5110显示模块驱动 | |
009 | LCD1602 | LCD1602模块驱动 |
关于这部分内容,我在用户流式驱动开发接口(UserDriver)的文章中会详细介绍。
-----------------------------------------------------------
MF简介:http://blog.csdn.net/yefanqiu/article/details/5711770
MF资料:http://www.sky-walker.com.cn/News.asp?Id=25
相关文章推荐
- 【物联网智能网关-10】构建.NET MF平台下的流式驱动模型 推荐
- 【物联网智能网关-11】流式驱动之用户驱动(MDK C++开发)
- 【物联网智能网关-12】以网关为核心,互联网为基础构建物联网平台
- 【物联网智能网关-12】以网关为核心,互联网为基础构建物联网平台 推荐
- 【物联网智能网关-11】流式驱动之用户驱动(MDK C++开发)
- 构建应用驱动的智能存储平台
- 【物联网智能网关-16】成功移植SQLite(STM32 .NET MF平台)
- 【物联网智能网关-16】成功移植SQLite(STM32 .NET MF平台)
- 平台总线驱动模型
- 【物联网智能网关-18】多通道远程安全升级
- UBOOT-2012-10在OK6410平台的移植(十)MLC NAND驱动(硬件8位ECC)
- 平台总线设备驱动模型——代码分析
- 新平台,新体验~! 持续关注 模型驱动开发(MDA)平台
- 【物联网智能网关-06】GPS定位+星图显示(WinForm库应用实例)
- 国内物联网平台初探(三) ——QQ物联·智能硬件开放平台
- 物联网架构演进和微信智能设备平台开发
- 实战智能推荐系统(10)-- 隐语义模型 LFM (Funk-SVD)
- CIO自下而上为ERP构建商业智能平台
- 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT
- 构建报警平台为减轻zabbix负载压力大及智能收敛信息 推荐