- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
PAGE 1
WindowsCE.NET在蓝牙通讯模块的几种实现方法
信息时代的特点便是更加便利快速的信息传播,正是基于这一点,技术人员也在努力开发更加精彩的信息数据传输方式。蓝牙,对于手机乃至整个 IT业而言已经不仅仅是一项简洁的技术,而是一种概念。当蓝牙联盟信誓旦旦地对将来前景作着美妙的向往时,整个业界都为之震惊。抛开传统连线的束缚,彻底地享受无拘无束的乐趣,蓝牙赐予我们的承诺足以让人精神兴奋。蓝牙技术是一种无线数据与语音通信的开放性规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特殊连接。其程序写在一个9 x 9 mm的微芯片中。例如,假如把蓝牙技术引入到移动电话和膝上型电脑中,就可以去掉移动电话与膝上型电脑之间的令人厌烦的连接电缆而而通过无线使其建立通信。打印机、PDA、桌上型电脑、传真机、键盘、嬉戏操纵杆以及全部其它的数字设备都可以成为蓝牙系统的一部分。除此之外,蓝牙无线技术还为已存在的数字网络和外设供应通用接口以组建一个远离固定网络的个人特殊连接设备群。 Microsoft Windows CE .NET 是 Windows CE 3.0 的后续产品,它不仅是一个功能强劲的实时嵌入式操作系统,而且供应了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。借助于完善的操作系统功能和开发工具, Windows CE .NET 为开发人员供应了构建、调试和部署基于 Windows CE.NET 的定制设备所需的一切特性。平台开发工具 Platform Builder 是一个完全集成的开发环境( IDE ),并且包括一个软件开发工具包( SDK )导出工具。 Windows CE .NET 支持 Microsoft eMbedded Visual C++? 和 Microsoft Visual Studio.NET ,为面对 Microsoft .NET Compact Framework ( Microsoft .NET Framework 的一个子集)的 Web 服务和应用程序开发供应了一个完整的开发环境。利用这些工具,开发人员可以快速开发出能够在硬件上运行各种应用程序的智能化设计。 由于在微软的。NET Compact Framework 2.0的类库中还未包含针对蓝牙通讯模块的类库,而且目前关于在Windows CE中开发蓝牙通讯模块应用程序的介绍还很少,同时开发蓝牙通讯技术的应用需要非常广泛,所以本文将就此进行一些争论。 1 基于托管码开发蓝牙通讯模块 基于托管码的开发就是使用一套运行时环境(run-time environment)的应用程序接口来开发。 一般状况下,托管码应用程序的开发会比较简洁和快速,并且可跨软件平台和处理器来运行,所以开发出的托管码也能重新使用并有较高的可移植性。 另外,内存管理、资源管理、资源收集、平安性管理等琐碎工作都由运行时环境来处理。应用程序开发工程师不必费心处理。托管应用程序在目标机器上运行,是通过目标机器端的实时编译器来实时把托管码编译成目标机器码后在目标机器上执行。 由于在。NET平台下,采纳CLR(公共语言运行时)可以用不同的语言来调用。NET Compact Framework来开发相同功能的应用程序,所以本文托管码部分仅采纳C#语言为例来介绍蓝牙通讯模块开发。 1.1 利用P/Invoke方法编写蓝牙通讯模块 蓝牙通讯模块是一个涉及到驱动硬件的应用程序开发,而。NET Compact Framework并不是一个对Win32API进行了完整封装的类库。 所以在基于托管码开发蓝牙通讯模块中必需利用到托管代码如何与非托管代码交互技术。P/Invoke全称为Platform Invoke,是。NET开 发平台下允许托管代码调用DLL库的本地代码函数的服务,类似于JA-VA中的GNI的概念。图1说明白P/Invoke方法的工作原理。首先用相应语言 的编译器将托管的源代码编译成Assembly的形式,其中包括元数据和中间语言代码。而此时P/Invoke的声明会以元数据的形式存在于 Assembly中,当Assembly被CLR调用的时候,CLR会依据元数据的声明在对应的DLL函数中查找DLL的实现。假如找到,就将其加载到内 存中,并定位此DLL函数的人口点。将托管的参数人栈,并将函数的人口点指向对应的native dll,从而完成了托管代码调用非托管代码的DLL. 利用P/Invoke方法编写蓝牙通讯模块,DllI-port属性特别有用。下面的代码将用例子说明此通用方案,例中托管程序将调用Mess
您可能关注的文档
最近下载
- 热力管网直埋管道施工方案.doc
- 苏教版六年级下册科学第三单元《自然资源》单元试卷及答案.pdf VIP
- 2025年苏教版六年级科学下册第二单元《生物和栖息地》单元试卷(含答案).pdf VIP
- 小学科学苏教版六年级下册期末测试题A(附参考答案)(2022新版).pdf VIP
- 萌宠学 见面课试题及答案.docx VIP
- 苏教版六年级科学下册单元测试卷及答案(全册).pdf VIP
- 新苏教版六年级上册科学全册知识点总结.doc
- 全国自考《学前儿童游戏指导》全真模拟题(八).doc VIP
- 认知战研究的多学科视角分析.pptx VIP
- 全国自考《学前儿童游戏指导》全真模拟题(七).doc VIP
文档评论(0)