草庐IT

usb-storage

全部标签

c++ - 在 Windows 中以编程方式区分 USB 软盘驱动器和 USB 闪存驱动器

在Windows(XP-7)上,是否有可靠的方法以编程方式区分C++中的USB软盘驱动器和USB闪存驱动器?目前,我正在使用WMI在有新Win32_LogicalDisk时获取更新检测实例,然后使用LogicalDisk对象的DriveType属性找出基本类型。这工作得很好,除了软盘驱动器和USB闪存驱动器都是DriveTypeDRIVE_REMOVABLE,所以为了区分它们(软盘与闪存),我使用IOCTL_STORAGE_GET_HOTPLUG_INFO接口(interface)来确定设备是否可热插拔,并且正在研究这意味着它是闪存驱动器而不是软盘的原理。同样,我认为这在内部软盘驱动器

无线充,大功率小家电,智能家居,无人机快速充电等产品供电 LDR6328S芯片TYUPE-C PD诱骗电压 USB-C解决PD电源取电问题

LDR6328S是乐得瑞科技有限公司开发的一款兼容USBPD、QC和AFC协议的Sink控制器。LDR6328S从支持USBPD、QC和AFC协议的适配器取电,然后供电给设备。比如可以配置适配器输出需要的功率,给无线充电器设备供电。LDR6328S也兼容传统USB电源适配器。LDR6328SPD诱骗协议芯片,单芯片取电5V~20V输出给后端充电模板!TYPE-CPD快充诱骗芯片,LDR6328/LDR6328S支持定制电压输出,它内置了PD通讯模块,通过与供电端(如PD充电器)的PD协议芯片握手通信,申请出需要的电压给产品供电,支持无线充,大功率小家电,智能家居,无人机快速充电等产品供电PD协

c++ - 简单的 USB 主机堆栈

我正在尝试使用Atmel处理器上的USB主机端口连接到单个USB设备。我有一个内存有限且没有操作系统的嵌入式系统。我想实现一个简单的专用主机来连接单个USB从属设备。谁能指导我实现简单的USB主机?处理器是AtmelAT91SAM9261S。 最佳答案 首先,如果我没记错的话,AT91SAM9261S有OHCIusbcontroller在船上,您至少需要实现简单的主机Controller驱动程序(您可以查看Linux实现)。根据您的设备将使用的传输类型,它可能不是很难-很难:)没有简单的方法来实现USB堆栈。实现Controller

c++ - 带有 C++ 模板的虚假 "use of local variable with automatic storage from containing function"?

以下代码无法在g++7.2.0中编译templateclassRequest{intcontent=0;public:friendvoidsetContent(inti,void*voidptr){Request*ptr=(Request*)voidptr;ptr->content=i;}intgetContent(){returncontent;}};intmain(){Requestreq;setContent(4,&req);returnreq.getContent();}有错误test.cpp:Ininstantiationof‘voidsetContent(int,void*

c++ - 等价于 C 中的 std::aligned_storage<>?

在C语言中,有没有一种方法可以使堆栈上的存储过度对齐(即比从类型系统推断出的对齐更多)?对于动态分配的内存中的变量,如果所有其他方法都失败了,我们总是可以手动对齐,但是对于自动分配的内存中的变量可以做什么呢?我想可以使用char[size+alignment-1]然后总是使用位操作来访问变量,但这似乎比必要的“有点”暗淡(harharhar;)). 最佳答案 在C2011中,有_Alignas和_Alignof关键字,标题这使得它们的使用稍微不那么难看,类型max_align_t(在中)。例如,你可以写double_Alignas(

c++ - std::align 和 std::aligned_storage 用于内存块的对齐分配

我正在尝试分配一个大小为size的内存块,它需要Alignment对齐,而在编译时可能未定义大小。我知道存在_aligned_alloc、posix_memalign、_mm_alloc等例程,但我不想使用它们,因为它们会降低代码的可移植性。C++11提供了一个例程std::align和一个类std::aligned_storage,我可以从中检索POD类型进行分配一个将符合我的要求的元素。然而,我的目标是创建一个分配器,它将分配一个size大小的内存块(不仅仅是单个元素),该内存块将被对齐。这可能使用std::align吗?我问的原因是因为std::align移动指针,使用该指针的类

Android Usb简单入门和使用

之前在公司做了个项目,是对接第三方厂家智能黑板实现一个同步的效果,当时这款黑板版本太老了,找厂家要协议都没有,心里mmp~,后来通过抓包去一点一点的搞才把这个功能搞好,里边主要用到usb这块技术,我这边简单的归纳一下。一、基础知识在使用AndroidUsb之前,我们需要了解一些基本概念和定义:USB(UniversalSerialBus):通用串行总线,是一种用于连接计算机和外部设备的标准接口。USB主机(Host):连接到计算机的设备,能够控制其他连接到它的设备。USB设备(Device):连接到主机的外部设备,例如闪存驱动器、鼠标、键盘等。USB接口(Interface):定义了设备和主机

c++ - std::optional 实现为 union vs char[]/aligned_storage

在阅读GCC对std::optional的实现时,我注意到了一些有趣的事情。我知道boost::optional实现如下:templateclassoptional{//...private:boolhas_value_;aligned_storagestorage_;}但是libstdc++和libc++(以及Abseil)都像这样实现它们的可选类型:templateclassoptional{//...private:structempty_byte{};union{empty_byteempty_;Tvalue_;};boolhas_value_;}在我看来,它们在功能上是相同的

linux 下查看 USB 设备

文章目录前言目录内容详解usb11-0:1.01-1.1:1.0结构图设备信息bDeviceClassversionbusnum&devnumdevbMaxPoweridVendor&idProductproductmanufacturerbcdDevicespeedueventbmAttributesdrivers_autoprobe前言在sysfs文件系统下,查看USB设备,看到一些乱七八糟的设备显示,它们都是什么呢?今天来介绍一下。root@ATK-IMX6U:~#ls/sys/bus/usb/devices/1-0:1.01-11-1.11-1:1.01-1.1:1.01-1.1:1.

Qt+Opencv+QThread,Qt多线程同时显示多路USB摄像头信息至ui界面

文章目录前言效果代码资源链接核心代码pro文件camera.hcamera.cppmainwindow.hmainwindow.cppmainwindow.ui代码资源链接前言Win10环境下,通过Qt+Opencv+QThread,实现多路USB摄像头数据显示至ui界面。主要思想是通过Opencv的VideoCapture类,及Qthread类中的moveToThread方法实现,此外由于VideoCapture类的open方法的参数为摄像头的索引号,当外接多个USB摄像头的时候有可能造成索引号顺序不固定的问题,通过判断摄像头的硬件ID,即每个摄像头的vid、pid码,以实现在ui界面固定的