当前位置: 首页 > news >正文

3d网页游戏排行做360手机网站优化

3d网页游戏排行,做360手机网站优化,免费网站模板代码,代理网站下载#C0502 沧海茫茫千钟粟,且拾吾昧一微尘——《沧海拾昧集》CuPhoenix 【阅前敬告】沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系【如有问题必是本集记录有谬,切勿深究】目录前言一、测试环境准备二、测试例程三、Windows 平台…

#C0502


沧海茫茫千钟粟,且拾吾昧一微尘

——《沧海拾昧集》@CuPhoenix


【阅前敬告】
沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系
【如有问题必是本集记录有谬,切勿深究】

目录

  • 前言
  • 一、测试环境准备
  • 二、测试例程
  • 三、Windows 平台设置
  • 四、Ubuntu 平台设置
    • 1、libusb 安装
    • 2、libusb-1.0 library not found
    • 3、不具备串口访问权限


前言

  在使用 .Net 的跨平台框架(如 Avalonia)进行 Windows / Ubuntu 系统的软件开发时,有时需要针对串口设备进行读取与管理。使用各平台的原生方法进行条件编译过于繁琐,因此可以引入 LibUsbDotNet 库实现这一功能。 LibUsbDotNet 库是跨平台 USB 用户模式库 libusb 的 .NET 版本。

  本文记录了使用 LibUsbDotNet 在 Windows / Ubuntu 平台下读取串口的方法和使用过程中可能存在的问题。


一、测试环境准备

  为演示使用 LibUsbDotNet 在 Windows / Ubuntu 平台下读取串口的方法,本例的实现功能与准备如下:

实现功能:

  • 使用 LibUsbDotNet 库读取设备所接入的 USB 设备列表,显示设备的Vid、Pid,并判断 Vid = 0x1a86 的设备是否连接。

软件版本:

  • Windows 11 家庭中文版;
  • Ubuntu 22.04;
  • LibUsbDotNet v2.2.75(通过 NuGet 包管理器下载);
  • System.IO.Ports v9.0.8(通过 NuGet 包管理器下载);
  • Filter Wizard(Windows 平台需要额外安装,点击下载);
  • libusb-v1.0(Ubuntu 平台需额外安装,点击下载);

硬件说明:

  • 用于测试的 USB 设备是 CH340,Vid = 0x1a86;
  • Ubuntu 系统安装在 Jetson Orin Nx(ARM64);

二、测试例程

  使用如下代码进行测试:

private void GetSerialPorts()
{label1.Text = "";try{//	显示所有串口设备UsbRegDeviceList allDev = UsbDevice.AllDevices;foreach (UsbRegistry usbRegistry in allDev){label1.Text += $"{usbRegistry.Vid:X4}:{usbRegistry.Pid}, {usbRegistry.FullName}\n";}//  查找 Vid = 0x1a86, Pid = 0x7523 的设备//UsbDeviceFinder finder = new UsbDeviceFinder(0x1a86,0x7523);//using (UsbDevice device = UsbDevice.OpenUsbDevice(finder))//{//    if (device == null)//    {//        label1.Text += "No found.\n";//    }//    else {//        label1.Text += "Found.\n";//    }//}}catch(Exception ex){label1.Text += $"{ex.Message}\n";}label1.Text += "end.\n";
}

说明:

  • label1 仅用作结果显示使用,可以根据实际情况进行替换;

三、Windows 平台设置

问题: 直接运行该程序,会报错找不到 “libusb-1.0.dll”。

  • 不推荐的解决方案:一些解决方案指出应该分别下载该 .dll 文件的 32 位与 64 位版本并复制到 C:\Windows\System 和 C:\Windows\SysWOW64 目录下,并在代码中设置:
UsbDevice.ForceLibUsbWinBack = true;

新问题: 这样做可能引发新的报错,使用了错误的 .dll 导致不匹配或溢出。

  • 推荐的解决方案:安装 Filter Wizard(点击下载),使用 Filter Wizard 安装串口设备。

在这里插入图片描述

进入 Filter Wizard,选择 Install a device filter,然后 Next

在这里插入图片描述

根据需求选择对应的USB设备,然后选择 Install
  • 在 Windows 平台下即可正确识别到对应串口设备。

在这里插入图片描述

识别到 CH340 设备

四、Ubuntu 平台设置

1、libusb 安装

问题: libusb-1.0 未安装.

  • 解决方案:安装 libusb-1.0,点击进入 官方网站(http://libusb.info),或 点击下载 v1.0.29 版本。
    • 将压缩包解压,然后在解压后得到的文件夹 libusb-1.0.29 内打开终端,依次执行 ./configuremakesudo make install 指令进行安装。
    • 安装完成后,可以通过 dpkg -l | grep libusb-1.0 指令确认是否安装成功。

2、libusb-1.0 library not found

问题: 找不到 libusb-1.0 library.

  • libusb-1.0 library not found.this is often an indication that libsub was installed to ‘/usr/local/lib’ adn mono.net is not looking for it there,to resolve this,add the path ‘/usr/local/lib’to’/ect/Id.so.conf’and run ‘Idconfig’ as root
  • 安装后运行例程代码,可能会抛出 libusb-1.0 library not found 异常,这是因为 libusb 的安装路径 /usr/local/lib 不在 Mono 系统默认的动态链接库搜索路径中。
  • 解决方案:按所抛出异常中的提示,使用指令 sudo gedit /ect/ld.so.conf 打开 /ect/ld.so.conf 文件进行编辑,在文件中增加一行:
include /usr/local/lib

在这里插入图片描述

修改 /ect/ld.so.conf 文件
  • 再次运行例程,即可成功获得所设备所连接的串口设备了。

在这里插入图片描述

识别到 CH340 设备

3、不具备串口访问权限

问题: 用户所在用户组不具有串口访问权限.

  • 解决方案:使用 sudo gpasswd -- add <username> dialout 指令,将当前用户(将指令中的 <username> 替换为当前用户的用户名)加入 dialout 用户组,然后重启设备,即可正常打开串口进行读写。

敬谢诸君。


http://www.dtcms.com/a/470164.html

相关文章:

  • Unreal Engine 中的旋转表示:FQuat 与 FRotator 全面解析
  • 设计模式-解释器模式
  • 望牛墩镇仿做网站泰州建设网站
  • 网站建设与网页制作基础入门教程祥云平台官方网站
  • Unreal Engine C++ 开发核心:USceneComponent 常用方法详解
  • 陪诊陪护小程序前端功能解析:就医照料的便捷对接与全流程保障
  • 在线PhotoShop网页版常用快捷键和实用技巧
  • 湖南建设网站公司h5四合一网站建设
  • (一)黑马React(项目初始化/字体和样式/列表循环/高亮排序/自定义hooks/异步RTK)
  • 酒泉网站建设有限公司自己怎样做公司广告视频网站
  • 基于Python的旅游数据可视化系统的分析与设计-计算机毕设 97740
  • PHP MySQL 使用 ORDER BY 排序查询
  • QT中加载PSQL驱动
  • 杭电 神经网络与深度学习 学习笔记
  • 网站建设合优企业做国外网站多少钱
  • 网站建设 主要学是么服装详情页设计
  • 自适应编码调制简介
  • MySQL实战篇05:MySQL主从复制Docker实战(上)——1主2从集群搭建与问题解决
  • 金融网站建设方案ppt模板重庆建设厅官网
  • 从源码优化外卖配送系统:算法调度、智能推荐与数据分析应用
  • 百宝图建设工程电子网站网络公司如何建网站
  • vscode 远程管理docker时,提示权限不足无法获取容器列表问题
  • 定制营销型网站什么意思wordpress建立移动m站
  • 石家庄无极网站建设网站开发实战项目
  • AI智能体(Agent)大模型入门【12】--基于llamaindex框架,fastapi框架实现大模型聊天基于mysql存储的历史对话进行聊天
  • 射频噪声干扰、调频调幅干扰仿真及SAR成像实现
  • 基于 Azure API Management 的企业级 AI 服务网关实现
  • MATLAB绘制9种最新的混沌系统
  • 潍坊网站建设潍坊佛山网站快速排名提升
  • 基于MATLAB的MIT-BIH ECG数据PQRST波定位实现