使用WPF开发BLE应用

这篇具有很好参考价值的文章主要介绍了使用WPF开发BLE应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用.NET Framework

先上官方文档: 蓝牙 GATT 客户端,文档是关于UWP开发BLE的,WPF如果要使用BLE的API,得手动添加几个引用(可参考这篇文章),该文章说需要添加3个引用,不过我创建的WPF应用默认已经有 WindowBase 引用,只添加了一个 Windows.winmd 引用就可以使用BLE相关的API了,另外,为了能够对 IAsyncOperation 使用 await 语法,还要通过 Nuget 添加两个依赖:

System.Runtime
System.Runtime.WindowsRuntime

我使用的IDE和SDK版本如下:

Microsoft Visual Studio Community 2019 版本 16.11.13

目标框架 .NET Framework 4.6

Windows 10 SDK 10.0.19041.0

Windows.winmd 所在目录 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.19041.0\

使用.NET

使用.NET5.0及更高版本的.NET(区别于.NET Framework)开发的话,就不用额外引用BLE相关的库了,只需要右击项目,点开项目属性,选择一下“目标操作系统版本”就可以调用Windows 10的运行时API了,支持BLE的最低版本是Windows 10.0.10240.0,后面新增的一些API需要10.0.15063.0,所以还是选择高于10.0.15063.0的版本:

wpf 蓝牙,Windows桌面应用,windows,c#,wpf

.NET Framework迁移到.NET 

如果要把项目从.NET Framework迁移到.NET,需要使用Visual Studio 2022并安装.NET升级助手插件,详细内容见官方文档《如何将 WPF 桌面应用升级到 .NET 7》。

关于扫描蓝牙 

官方文档给出了两种方式扫描蓝牙设备,DeviceWatcher 和 BluetoothLEAdvertisementWatcher,实测后个人推荐使用 BluetoothLEAdvertisementWatcher,这个不仅专门用于扫描低功耗蓝牙设备,扫到的设备也是实时的,扫到了就说明设备在附近且有广播,DeviceWatcher 扫到的设备貌似会缓存,设备关闭蓝牙广播后依然能搜到。与Android接口不同的是,扫到的广播数据和扫描回应数据是分开回调给应用的,应用得通过蓝牙地址把广播包和扫描回应包组合在一起。

总之,Windows的BLE API风格跟手机系统的差别还是挺大的,使用的时候需要注意的地方比较多,本人对低功耗蓝牙已经比较熟悉了,周末两天撸了一遍代码,主要是熟悉Windows的BLE开发以及WPF开发,之前开发上位机主要使用 winform,最后附上GitHub代码链接:WpfBleApp

wpf 蓝牙,Windows桌面应用,windows,c#,wpf

 wpf 蓝牙,Windows桌面应用,windows,c#,wpf文章来源地址https://www.toymoban.com/news/detail-769876.html

到了这里,关于使用WPF开发BLE应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF-System.Windows.Window

    PresentationFramework.dll 是 .NET Framework 中的一个程序集,包含了 WPF(Windows Presentation Foundation) 应用程序开发中的一些关键类和资源。如果你想在项目中使用 WPF 相关的类型和资源,就需要引用 PresentationFramework.dll。 通常情况下,PresentationFramework.dll 可以在以下目录中找到: 其中

    2024年04月26日
    浏览(31)
  • 桌面软件开发框架 Electron、Qt、WPF 和 WinForms 怎么选?

    Electron 是一个基于 Web 技术的跨平台桌面应用程序开发框架。它使用 HTML、CSS 和 JavaScript 来构建应用程序界面,并借助 Chromium 渲染引擎提供强大的页面渲染能力。Electron 的主要特点包括: 跨平台:Electron 可以在 Windows、macOS 和 Linux 等多个主流操作系统上运行,为开发者提供了

    2024年02月12日
    浏览(32)
  • C#/WPF 设置和启动Windows屏保程序

    前言         我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。 屏保注册表参数         设置电脑屏保参数,在个性化设置锁屏界面屏幕保护程序设置进行调节

    2024年01月18日
    浏览(26)
  • 物联网开发笔记(53)- 使用Micropython开发ESP32开发板之蓝牙BLE通信

    一、目的         这一节我们学习如何使用我们的ESP32开发板通过蓝牙和手机进行通信。 二、环境         ESP32 + 手机(笔者用的小米10) + Thonny IDE 三、蓝牙介绍         这个知识大家自行百度吧,这里不再赘述什么是蓝牙和蓝牙的历史,以及相关的专业知识。 四、

    2024年02月06日
    浏览(41)
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(12) -- 使用代码生成工具Database2Sharp生成WPF界面代码

    在经过基于SqlSugar框架的WPF应用端系统界面及模块的不断优化和重构后,视图界面及视图模型等代码已趋稳定,因此完成前面的介绍后,现在开始统一基于代码生成工具Database2Sharp进行WPF应用端界面代码的快速生成了,代码除了和WPF应用端的基类保持一致处理外,并添加一些注

    2024年02月08日
    浏览(32)
  • WPF项目创建HTTP WEB服务,不使用IIS业务 WPF桌面程序WebApi WPF 集成WebApi C# 创建HTTP Web API服务

    在C# WPF应用程序中直接创建HTTP服务或WebAPI服务有以下优点: 自托管服务: 简化部署:无需依赖外部服务器或IIS(Internet Information Services),可以直接在应用程序内部启动和运行Web服务。 集成紧密:与WPF应用程序的其他组件和逻辑可以更紧密地集成,因为它们都在同一个进程

    2024年02月02日
    浏览(49)
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用

    在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用TreeView来洗实现结构信息的展示,以及对它的菜单进行的设

    2024年02月08日
    浏览(31)
  • Qt笔记---使用Qt开发低功耗蓝牙BLE(Bluetooth low energy)程序

    在Qt项目中开发BLE通信程序,即低功耗蓝牙设备通信,关于蓝牙设备的通信分为普通蓝牙设备和低功耗蓝牙设备,此文只介绍低功耗蓝牙设备的连接通信方式。 开发环境: 系统:win10 Qt:5.15.2 MSVC:2019 注:使用此版本之前使用过其他低版本的Qt和MSVC,会出现搜索不到设备以及

    2024年04月16日
    浏览(56)
  • WPF应用开发之附件管理

    在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和控件的一些封装处理界面效果,供大家参考斧正。 由于我们统一

    2024年02月05日
    浏览(34)
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理

    在我们WPF应用端的时候,和WInform开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些0,1数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本篇随笔介绍在WPF应用端对内容使用Converter类实现内容的转义处理的操作。

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包