使用通用类库中的 Windows UWP Windows.Devices.SerialCommunication.SerialDevice

2023-12-29

我正在制作一个 Modbus 库(再次......)。这次它打算在 Windows 10 IoT Core 上运行。

我遇到了一个有趣的问题。 这段代码:

string aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);

var port = await SerialDevice.FromIdAsync(dis[0].Id);

if (port != null) {
    port.BaudRate = 9600;
    port.DataBits = 8;
    port.StopBits = SerialStopBitCount.One;
    port.Parity = SerialParity.None;
    port.Handshake = SerialHandshake.None;
    port.ReadTimeout = TimeSpan.FromMilliseconds(1000);
    port.WriteTimeout = TimeSpan.FromMilliseconds(1000);
}
  1. 在通用应用程序中使用效果非常好。当然,如果您将以下代码添加到 Package.appxmanifest 中:

    <Capabilities>
         <DeviceCapability Name="serialcommunication">
             <Device Id="any">
                 <Function Type="name:serialPort" />
             </Device>
         </DeviceCapability>
     </Capabilities>
    
  2. 从通用类库中使用(VS2015 中的文件 -> 新项目 -> ... -> Windows -> 通用 -> 类库(通用 Windows))会从 mscorlib.dll 中创建空引用异常,这与删除相同通用应用程序的 Package.appxmanifest 中的 DeviceCapability。

我怀疑这种行为与类库没有清单文件,因此没有适当的权限有关。

我可以在类库中使用 Windows.Devices.SerialCommunication 吗?

微软是不是让我告诉用户‘嘿!我为你制作了一个无用的库,你必须自己在任何应用程序中单独实现传输层。 ?


我在 Windows 10 10586 上使用 Visual Studio 2015 Update 1 创建了一个通用应用程序项目和一个通用类库。我设置了应用程序清单,将 SerialDevice 代码放入库中并从应用程序中调用它。

有用。

请注意,如果您的代码被调用两次,您可能会收到空引用异常,因为 port2 将为空。

var aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);
var port = await SerialDevice.FromIdAsync(dis[0].Id);
Debug.WriteLIne(port?.PortName);
var aqs2 = SerialDevice.GetDeviceSelector();
var dis2 = await DeviceInformation.FindAllAsync(aqs);
var port2 = await SerialDevice.FromIdAsync(dis[0].Id);
//port2 will be null
Debug.WriteLine(port2?.PortName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用通用类库中的 Windows UWP Windows.Devices.SerialCommunication.SerialDevice 的相关文章

  • 语言混合:模型和视图

    考虑开发一个应用程序 其中模型将使用 C 使用 Boost 编写 视图将使用 Objective C 使用 Cocoa Touch 编写 哪里有一些示例展示了如何集成 C 和 Objective C 来开发 iPhone 应用程序 直接从源
  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • 从 .Net 将简单数据插入 Excel 文件的最简单方法

    我有一个 Excel 文件 大约有 10 列和 1 20 行 我需要插入 1 20 行包含各种数据元素 我想知道是否有一种方法可以将一些标签放入 Excel 文件中 以便可以找到并替换它们 将列标记为 名称 的东西 这样我就可以在代码中说
  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • 如何将 C++ 类包装在基于 C 的 dll 或基于 CLI 的 dll 中?

    我被告知将我用 C 编写的类导入到 dll 中 然后在 c 应用程序中使用该 dll 下列的本指南 https stackoverflow com questions 4555961 how to use a class in dll我创建
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 如何检查 .NET 4.0 中的泛型参数是否是动态的

    我有课ObjectMapper
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • C# ConfigurationManager 从 app.config 检索错误的连接字符串

    我有一个简单的 WinForms 应用程序 它最终将成为一个游戏 现在 我正在研究它的数据访问层 但遇到了障碍 我创建了一个单独的项目 名为DataAccess在其中 我创建了一个本地 mdfSQL Server 数据库文件 我还创建了一个
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • 未定义异常变量时通过引用捕获

    捕获异常时 标准指导是按值抛出 按引用捕获 据我了解 这有两个原因 如果由于内存不足异常而引发异常 我们将不会调用可能终止程序的复制构造函数 如果异常是继承层次结构的一部分 我们可能会对异常进行对象切片 如果我们有一个场景 我们没有在 ca
  • 为什么在 .net 中使用 Invoke on Controls? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NET不允许跨线程操作 https stackoverflow com questions 2896504 why net does not allow cross thread operat
  • IBM Watson 对话服务错误:无法从“方法组”转换为“conversation.onMessage”

    我正在尝试运行 IBM Watson会话服务团结和下面是代码片段 https github com watson developer cloud unity sdk conversation private Conversation m C
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • 如何使用eclipse构建C++应用程序

    我已经从以下位置下载了 Eclipse Juno for C here http www eclipse org downloads download php file technology epp downloads release ju
  • Intel 和 AMD 处理器有相同的汇编程序吗?

    C语言被用来编写Unix以实现可移植性 使用不同编译器编译的同一个C语言程序会产生不同的机器指令 为什么 Windows 操作系统能够在两者上运行Intel https en wikipedia org wiki Intel and AMD
  • 无效的模板相关成员函数模板推导 - 认为我正在尝试使用 std::set

    我有一个继承自基类模板的类模板 基类模板有一个数据成员和一个成员函数模板 我想从我的超类中调用它 我知道为了消除对成员函数模板的调用的歧义 我必须使用template关键字 我必须明确引用this在超级班里 this gt base mem
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • 如何删除通过 jQuery 插入的引导模式?

    我决定拥有一个可以在需要插入自定义 Bootstrap 模式时使用的脚本 我不想让空的静态 Bootstrap 模式 HTML 位于每个页面的底部 如果它不总是被利用的话 所以 这可能是错误的做法 但这是我的尝试 我创建了一个变量 它是模式
  • 从 Java 连接到 OLEDB 数据源?

    我们正在尝试连接到 ACT CRM 系统使用的 SQL Server 实例 他们设法锁定了一切 因此无法使用 ODBC 连接到 SQL 后端 有一些特殊的实用程序可以添加 ODBC 支持 如果您购买了该软件的 primo 版本 则可以安装它
  • 在 Android 应用程序中嵌入广告?

    我想制作一个我拥有的 Android 应用程序的免费版本 但想在其中嵌入广告 我不知道应该从哪里开始 有没有一家专门从事移动广告的知名移动广告公司 我个人都用过Admob http www admob com and Adsense htt
  • 如何在 opencv 2.4.11 python 中调整轮廓大小? (目标:对象提取)

    我对 opencv 非常陌生 所以请原谅我的无知 基本上 我的图像中有一个感兴趣的对象 我想把它提取出来 我的问题是由于缩小原始图像的尺寸以方便处理而产生的 我在较小的图像上找到了物体的轮廓 我真正想做的是使用有关该轮廓的信息从原始全尺寸图
  • 具有声明的宽度和高度的图像在加载前呈现正方形

    我有声明宽度和高度的图像 例如 img src foo jpg width 1500 height 1800 alt bar 它们位于响应式网格内 因此它们显示在max width 100 它们是延迟加载的 问题是 尽管有height au
  • 对于表示返回 void 的操作的任务,Task.FromResult() 的替代方案是什么[重复]

    这个问题在这里已经有答案了 返回没有泛型类型参数的任务的最佳方法是什么 换句话说 任务代表不返回任何内容或返回任何内容的操作void 换句话说 我正在寻找以下替代方案 T value default T return Task FromRe
  • 如何在切换 Bootstrap 3 面板时为 V 形字形图标设置动画?

    我有一个用 Bootstrap 3 手风琴包裹的面板的工作解决方案 如何通过 90 度旋转将 V 形状态从 gt 更改为 panel heading accordion toggle after font family Glyphicons
  • Django:is_valid 和 form_valid 之间的区别

    我创建了一个表单 它是forms ModelForm 在 视图 方面 我创建了一个视图 它是generic UpdateView 在这两个不同的班级中 我有is valid 一侧 并且form valid 另一方面 class Profil
  • W3Schools 试用编辑器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道如何获得 或在哪里获得 或如何制作 或在哪里可以找到关于w3schools 尝试一下编辑器 h
  • 如何将扩展编译成sqlite?

    我想将扩展编译到 sqlite 中以便在运行时加载 我使用的文件扩展名为 functions c 来自https www sqlite org contrib https www sqlite org contrib 我已经能够编译成可加载
  • 在 Rails 中使用域逻辑回调的优点和缺点

    您认为使用领域逻辑回调的优点和缺点是什么 我是在 Rails 和 或 Ruby 项目的背景下谈论的 为了开始讨论 我想提一下来自关于回调的 Mongoid 页面 http mongoid org en mongoid docs callba
  • 从命令行在 Firefox 上安装 WebExtensions

    我找到了问题如何在脚本中从命令行安装 Firefox 插件 https askubuntu com questions 73474 how to install firefox addon from command line in scri
  • 如何在没有 UI 的情况下启动 Activity?

    是否可以在没有 UI 的情况下从主函数启动 Activity 即是否有一种方法可以围绕另一个活动创建一种 包装器 即通过启动主要活动 它会自动将您带到另一个活动 如果这是不可能的 是否有办法从堆栈中删除主要活动 以便单击后退按钮不会将您带到
  • Objective C 数组元素都以相同的值结束

    首先 如果这是一个相当基本的问题 我深表歉意 但是我是 Objective C 的新手 并且在我所有的搜索中都无法找到我的问题的答案 尽管这很可能是因为我是新手而不是新手 在寻找答案时相当使用正确的术语 我有一个简单的循环 在其中我用一些自
  • nltk 没有将 $NLTK_DATA 添加到搜索路径?

    在linux下 我设置了环境变量 NLTK DATA home user data nltk 并且爆炸测试按预期工作 gt gt gt from nltk corpus import brown gt gt gt brown words T
  • NetSuite Restlet写入性能较差

    编辑 我已经编辑了实际数字并用伪咒语替换了它们 因为我被告知共享性能数据违反了 Netsuite 的 TOS 我正在使用 Restlet 将我们的会计系统与 NetSuite 集成 总体来说 除了性能方面的明显例外之外 它运行得非常好 从性
  • 使用 Java 流打印列表项

    我可以使用类似的东西 forEach System out print 打印我的列表项 但如果我在打印之前还有其他操作要做 我就不能像这样使用它 mylist replaceAll s gt s toUpperCase forEach Sy
  • 如何将多个分区的 .gzip 文件读入 Spark Dataframe?

    我有以下分区数据文件夹 my folder part 0000 gzip part 0001 gzip part 0002 gzip part 0003 gzip 我尝试使用以下方法将这些数据读入数据帧 gt gt gt my df spa
  • 启动 Oozie 工作流程时出现问题

    我在启动 Oozie 工作流程时遇到问题 Config
  • 使用通用类库中的 Windows UWP Windows.Devices.SerialCommunication.SerialDevice

    我正在制作一个 Modbus 库 再次 这次它打算在 Windows 10 IoT Core 上运行 我遇到了一个有趣的问题 这段代码 string aqs SerialDevice GetDeviceSelector var dis aw