【物联网智能网关-10】构建.NET MF平台下的流式驱动模型

简介: 正是基于流式驱动的一些优点和Interop驱动接口开发的繁杂,所以我在.NETMicro Framework系统上构建了一套流式驱动架构。尤为值得一提的是,在流式驱动架构的基础上,还实现了的用户可以在MDK IDE环境下,采用C++开发流式驱动

无论是做linux下的驱动开发,还是Windows CE平台下的驱动开发,对流式驱动模型一定非常熟悉。在此架构下,把所有的硬件设备都看成文件,和设备的交互其实就是读写文件,也就是数据流动。这样开发驱动不仅简单实用,并且用户也用一致的接口访问硬件,大大降低了学习代价。但是在.NET Micro Framework平台下,却没有提供这样的驱动开发接口,用户如果想在应用层操作硬件,必须要做一个专门的接口库(Interop),如果有n个设备,对应的驱动接口库文件也必须n个,如果一个应用程序和n个设备通信,那就必须引用n个库了。另外如果库接口有更改,那么上层和底层代码还必须重新编译才能使用。

正是基于流式驱动的一些优点和Interop驱动接口开发的繁杂,所以我在.NETMicro 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++代码,然后编译链接即可。
image.png

当前已经基于流式驱动接口,实现了10个设备和功能模块的驱动,下面先简单介绍一下,后续将详细写文章一一介绍。
1.png
在开发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

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2月前
|
传感器 数据采集 监控
数据采集器和物联网网关的区别
数据采集器主要用于从各种数据源收集数据。这些数据源可以是传感器(如温度传感器、压力传感器等)、仪表(如电表、水表等)或者其他具有数据输出功能的设备。物联网网关是连接感知层(包含各种传感器和数据采集设备)和网络层(如互联网、局域网等)的关键设备。
67 4
|
3月前
|
监控 安全 物联网
物联网:如何对接物联网卡的管理平台
对接物联网平台的API通常涉及几个关键步骤,这些步骤帮助你有效地与平台交互,实现设备数据的收集、处理、分析及控制等功能。以下是一个通用的对接流程:
|
4月前
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
|
4月前
|
运维 监控 Kubernetes
高效应对突增流量:构建弹性高性能的SMS网关策略
本篇内容来自于ArchSummit全球架构师峰会演讲实录。
185 1
|
5月前
|
监控 供应链 安全
构建高效微服务架构:API网关与服务熔断策略
【7月更文挑战第38天】随着现代应用程序向微服务架构的转型,系统的稳定性和效率成为了开发团队关注的焦点。本文将探讨在微服务环境中实现系统可靠性的关键组件——API网关,以及如何在服务间通讯时采用熔断机制来防止故障蔓延。通过分析API网关的核心功能和设计原则,并结合熔断策略的最佳实践,我们旨在提供一套提高分布式系统弹性的策略。
|
6月前
|
物联网
好的资源链接,gitee全糖咖啡,B站视频转成mp4,全糖咖啡 / 物联网网关数据上传,,全糖咖啡 / springboot+百度智能车牌检测
好的资源链接,gitee全糖咖啡,B站视频转成mp4,全糖咖啡 / 物联网网关数据上传,,全糖咖啡 / springboot+百度智能车牌检测
|
6月前
|
算法 网络协议 应用服务中间件
(五)网络编程之流量接入层设计:基于性能怪兽从零构建日均亿级吞吐量的网关架构!
在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。
|
7月前
|
Java API 开发者
Spring Cloud Gateway中的GlobalFilter:构建强大的API网关过滤器
Spring Cloud Gateway中的GlobalFilter:构建强大的API网关过滤器
465 0
|
7月前
|
负载均衡 Java API
Spring Cloud Gateway 详解:构建高效的API网关解决方案
Spring Cloud Gateway 详解:构建高效的API网关解决方案
197 0
|
8月前
|
负载均衡 监控 Kubernetes
构建高效微服务架构:API网关与服务发现的融合实践
【5月更文挑战第29天】 在当今的软件开发领域,微服务架构已成为一种流行的设计模式,其通过将应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。然而,随着服务数量的增加,确保通信效率和管理便捷性成为了关键挑战。本文聚焦于如何通过API网关和服务发现机制的有效整合,优化微服务间的交互,提高系统整体性能和可靠性。我们将探讨API网关在请求路由、负载均衡、安全性增强方面的作用,同时分析服务发现对于实现服务间动态通信的重要性,并展示两者如何协同工作以支持复杂的后端系统需求。

热门文章

最新文章

相关产品

  • 物联网平台