标签: usb

在 Linux 下以编程方式对 U 盘进行分区

从 U 盘中删除分区然后重新插入磁盘后,我看到以下内容dmesg

[99341.658055] sd 4:0:0:0: [sdb] 15771720 512-byte logical blocks: (8.07 GB/7.52 GiB)
[99341.658670] sd 4:0:0:0: [sdb] Write Protect is off
[99341.658678] sd 4:0:0:0: [sdb] Mode Sense: 00 00 00 00
[99341.658684] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[99341.668175] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[99341.668187]  sdb
Run Code Online (Sandbox Code Playgroud)

现在如何从命令行创建磁盘完整大小的分区 /dev/sdb1?

fdiskparted问一些愚蠢的问题,例如分区的开始和结束。我希望分区只是填满整个磁盘。我认识的大多数人都诉诸于使用gparted,这是我不想要的。我只想要一个简单的衬垫来创建一个全尺寸的分区。

创建分区后我可能想要运行的下一个命令是mkfs.ext4 /dev/sdb1.

linux usb disk-partitioning

2
推荐指数
1
解决办法
5493
查看次数

LabVIEW中的套接字

我使用专有协议通过 USB 与我构建的一些自定义硬件进行通信。我有一个 GUI 来处理与该硬件的所有通信/交互和一个 (C#) DLL,它公开了所有相关的 USB 功能。我需要编写一个LabVIEW驱动程序(VI)来与硬件进行通信。我的想法是我只是使用 LabVIEW 来打开我的 GUI 并有一个套接字,我可以使用它向 LabVIEW 公开所有相关的控件。是否可以在 LabVIEW 中打开一个套接字并与我的 GUI 进行通信?这是一种糟糕的方法,还是我应该尝试让 LabVIEW 调用 DLL 并处理硬件控制而不是我的 GUI(轮询通信、请求/未经请求的命令等)?

sockets usb dll labview c#-3.0

2
推荐指数
1
解决办法
2488
查看次数

CTRL_LOOPBACK_WRITE 在 python usb 代码中未定义

我正在尝试使用以下行写入 PS3 控制器(开发人员已正确设置)。

dev.ctrl_transfer(0x40, CTRL_LOOPBACK_WRITE, 0, 0, msg)
Run Code Online (Sandbox Code Playgroud)

我收到 CTRL_LOOPBACK_WRITE 未定义的错误。那么,它在哪里定义?或者我可以得到它的价值吗?

谢谢

python usb

2
推荐指数
1
解决办法
1937
查看次数

如何使用 python / pywinusb 将隐藏数据发送到设备?

我正在尝试使用 pywinusb 将输出报告发送到 pic18f4550。该设备可以接收数据,我已经使用 C# 应用程序对其进行了测试,效果很好。另外,我可以使用 pywinusb 从设备读取数据就好了,但是我在尝试发送数据时遇到了问题。

这是我正在运行的代码:

from pywinusb import hid

filter = hid.HidDeviceFilter(vendor_id = 0x0777, product_id = 0x0077)
devices = filter.get_devices()

if devices:
    device = devices[0]
    print "success"

device.open()
out_report = device.find_output_reports()[0]

buffer= [0x00]*65
buffer[0]=0x0
buffer[1]=0x01
buffer[2]=0x00
buffer[3]=0x01

out_report.set_raw_data(buffer)
out_report.send()
dev.close()
Run Code Online (Sandbox Code Playgroud)

它产生这个错误:

success
Traceback (most recent call last):
  File "C:\Users\7User\Desktop\USB PIC18\out.py", line 24, in <module>
    out_report.send()
  File "build\bdist.win32\egg\pywinusb\hid\core.py", line 1451, in send
    self.__prepare_raw_data()
  File "build\bdist.win32\egg\pywinusb\hid\core.py", line 1406, in __prepare_raw_data
    byref(self.__raw_data), self.__raw_report_size) )
  File "build\bdist.win32\egg\pywinusb\hid\winapi.py", line 382, in …
Run Code Online (Sandbox Code Playgroud)

python usb hid pywinusb

2
推荐指数
1
解决办法
2万
查看次数

PyUSB 设备已声明,detach_kernel_driver 返回 Entity Not Found

我正在尝试使用 PyUSB 从 Ubuntu 上的 USB 设备进行批量读取和写入。但是,我一直没有成功做到这一点。

import usb.core
import usb.util

dev = usb.core.find(idVendor=0xXXXX,idProduct=0xYYYY)
if dev is None:
    raise ValueError('Device not found.')

try:
    dev.detach_kernel_driver(0)
except:
    print "exception dev.detach_kernel_driver(0)"
    pass

dev.set_configuration()
print "all done"
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的简单脚本。我创建了/etc/udev/rules.d/40-basic-rules.rules 其中包含

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",SYSFS{idVendor}=="XXXX" , SYSFS{idProduct}=="YYYY", MODE="0666"

适合我的设备。

以 root 身份运行脚本会引发usb.core.USBError: [Errno 16] Resource busy错误,因为dev.detach_kernel_driver(0)抛出异常usb.core.USBError: [Errno 2] Entity not found

在 dmesg 我看到这些消息,

[  638.007886] usb 1-1: usbfs: interface 1 claimed by usb-storage while 'python' sets config #1
[  643.425802] usb …
Run Code Online (Sandbox Code Playgroud)

python usb ubuntu pyusb

2
推荐指数
1
解决办法
5129
查看次数

使用设备名称的pyudev检索USB信息

我从块子系统中检索第一个设备信息.例如,将USB记忆棒分配给/ dev/sdb.这是我可以通过块子系统检索的所有信息:

[(u'DEVLINKS', u'/dev/disk/by-id/usb-Generic_Flash_Disk_63F2B6EC-0:0 /dev/disk/by-label/Fedora-Live-Desktop-x86_64-20-1 /dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0 /dev/disk/by-uu
id/2013-12-12-00-56-55-00'),
 (u'DEVNAME', u'/dev/sdb'),
 (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host74/target74:0:0/74:0:0:0/block/sdb'),
 (u'DEVTYPE', u'disk'), (u'ID_BUS', u'usb'), 
 (u'ID_FS_APPLICATION_ID', u'GENISOIMAGE\\x20ISO\\x209660\\x2fHFS\\x20FILESYSTEM\\x20CREATOR\\x20\\x28C\\x29\\x201993\\x20E.YOUNGDALE\\x20\\x28C\\x29\\x201997-2006\\x20J.PEARSON\\x2fJ.SCHILLING\\x20\\x28C\\x29\\x202006-2007\\x20CDRKIT\\x20TEAM'), 
 (u'ID_FS_BOOT_SYSTEM_ID', u'EL\\x20TORITO\\x20SPECIFICATION'), 
 (u'ID_FS_LABEL', u'Fedora-Live-Desktop-x86_64-20-1'),  
 (u'ID_FS_LABEL_ENC', u'Fedora-Live-Desktop-x86_64-20-1'), 
 (u'ID_FS_SYSTEM_ID', u'LINUX'), 
 (u'ID_FS_TYPE', u'iso9660'), 
 (u'ID_FS_USAGE', u'filesystem'), 
 (u'ID_FS_UUID', u'2013-12-12-00-56-55-00'), 
 (u'ID_FS_UUID_ENC', u'2013-12-12-00-56-55-00'), 
 (u'ID_FS_VERSION', u'Joliet Extension'), 
 (u'ID_INSTANCE', u'0:0'), 
 (u'ID_MODEL', u'Flash_Disk'), 
 (u'ID_MODEL_ENC', u'Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20'), 
 (u'ID_MODEL_ID', u'6387'), 
 (u'ID_PART_TABLE_TYPE', u'dos'), 
 (u'ID_PART_TABLE_UUID', u'5513338d'), 
 (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0'), 
 (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_2_1_0-scsi-0_0_0_0'), 
 (u'ID_REVISION', u'8.07'), 
 (u'ID_SERIAL', u'Generic_Flash_Disk_63F2B6EC-0:0'),
 (u'ID_SERIAL_SHORT', u'63F2B6EC'), 
 (u'ID_TYPE', u'disk'), 
 (u'ID_USB_DRIVER', u'usb-storage'), 
 (u'ID_USB_INTERFACES', u':080650:'), 
 (u'ID_USB_INTERFACE_NUM', u'00'), 
 (u'ID_VENDOR', u'Generic'), 
 (u'ID_VENDOR_ENC', u'Generic\\x20'), 
 (u'ID_VENDOR_ID', u'058f'), 
 (u'MAJOR', u'8'),
 (u'MINOR', u'16'), 
 (u'MPATH_SBIN_PATH', u'/sbin'), 
 (u'SUBSYSTEM', …
Run Code Online (Sandbox Code Playgroud)

python usb subsystem pyudev

2
推荐指数
1
解决办法
6472
查看次数

如何修复TypeError:python 3.4,pyserial 2.7虚拟串口需要一个整数

EDITED

你好程序员社区,
我在Python 3.4中处理pyserial有一些问题我首先没有串口,所以我用"Eltima Software的虚拟串口驱动7.2"成对创建虚拟串口,这意味着我可以尝试从这些端口发送和接收数据,在我的情况下我只创建连接到COM2的COM1,然后我安装了HW组的Hercules SETUP实用程序来监控这些串口,

所以理论上如果我在PYTHON中发送(写入)数据我可以在HERCULES中看到它,因为这个链接显示https://www.youtube.com/watch?v=DItyttmpRtY

我试图创建自己的代码

def mInitizalise():
 set_ser = serial.Serial(port="COM1", baudrate=9600, 
                         parity = serial.PARITY_NONE,
                         stopbits=serial.STOPBITS_ONE,
                         bytesize = serial.EIGHTBITS,
                         timeout=1)
 set_ser.close()
 set_ser.open()
 if set_ser.isOpen():
     print ('Open: ' + set_ser.portstr)
     temp = input('Type what you want to send, hit enter:\r\n')
     set_ser.write(temp)
 set_ser.close()
Run Code Online (Sandbox Code Playgroud)

买有错误

>>> 
>>> Open: COM1
Type what you want to send, hit enter:
hello
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\idlelib\run.py", line 121, in main
    seq, request = rpc.request_queue.get(block=True, timeout=0.05)
  File "C:\Python34\lib\queue.py", …
Run Code Online (Sandbox Code Playgroud)

python usb serial-port pyserial python-2.7

2
推荐指数
1
解决办法
5225
查看次数

实现线程在C#中快速,批量和连续读取的最佳实践?

如何在.NET 4.0中处理从C#中的设备读取批量数据?具体来说,我需要从USB HID设备快速读取,该设备发出超过26个数据包的报告,其中必须保留订单.

我试过在BackgroundWorker线程中这样做.它一次从设备读取一个数据包,然后在阅读更多信息之前对其进行处理.这提供了相当好的响应时间,但它可能会丢失数据包,并且单个数据包读取的开销成本会增加.

while (!( sender as BackgroundWorker ).CancellationPending) {
       //read a single packet
       //check for header or footer
       //process packet data
    }
}
Run Code Online (Sandbox Code Playgroud)

C#中读取这样的设备的最佳做法是什么?


背景:

我的USB HID设备不断报告大量数据.数据分为26个数据包,我必须保留订单.不幸的是,设备只标记每个报告中的最后一个数据包,因此我需要能够捕获其间的所有其他数据包.

c# io usb multithreading hid

2
推荐指数
1
解决办法
769
查看次数

在darwin上找到USB设备的驱动程序

我在mac OS X 10.11上面临这个问题 - 即.一些kext已经接管了我的设备,我不能声称它libusb.有可能找出哪一个?这是有问题的设备:

$ system_profiler SPUSBDataType
[...]
        mEDBG CMSIS-DAP:

          Product ID: 0x2145
          Vendor ID: 0x03eb  (Atmel Corporation)
          Version: 10.00
          Serial Number: ATML2323040200017792
          Speed: Up to 12 Mb/sec
          Manufacturer: ATMEL
          Location ID: 0x14130000 / 13
          Current Available (mA): 1000
          Current Required (mA): 100
          Extra Operating Current (mA): 0
Run Code Online (Sandbox Code Playgroud)

macos usb darwin iokit kernel-extension

2
推荐指数
1
解决办法
1009
查看次数

录制的USB音频信号中的奇怪音频闪烁

可能是错误的地方问这个,但我需要帮助弄清楚真正的问题是什么...

基本上,我正在编程一个微控制器来进行USB音频录制(使用USB Audio Class 2.0 /高速USB).看起来我已经非常接近"正确"了,但是当我将唧唧声录入大胆时,我得到了这个[下面是摘录]:

唧唧喳喳摘录

我想我要问的是为什么我会在记录会话中遇到这些奇怪的中断和跳跃?是因为我没有足够快地读取我的编解码器输入缓冲区,或者帧长度未正确设置?

我如何计算我从Apple的USB音频指南中获得的帧长度(使用44.1kHz采样率和16位速率):

#define AUDIO_POLL_INT     4
#define FRAME_BYTES        (BIT_RATE_16 / 8)
#define NUM_CHANNELS       STEREO

uint16_t frame_len = 44 (44.1kHz/1000 samples) * NUM_CHANNELS * FRAME_BYTES;
if (!(frame_pos % 9)) frame_len += (1 * NUM_CHANNELS * FRAME_BYTES)
frame_len = (frame_len / 8) * (2 << (AUDIO_POLL_INT-1));
// 10 ms frames
frame_pos = (((frame_pos + 1) / 8) * (2 << (AUDIO_POLL_INT-1))) % 10;
Run Code Online (Sandbox Code Playgroud)

这也是读取编解码器输入的过程:

1)读取编解码器输入; 将样本加载到临时缓冲区(从编解码器外设转移到内存外设)

2)存储器在传输完成时发生外设中断(缓冲区已满;已满足frame_len容量),将缓冲区样本发送到USB.然后,再次读取编解码器输入

希望这不是太混乱...让我知道,我可以添加更多信息/清理事情.谢谢!

audio usb microcontroller signal-processing audio-recording

2
推荐指数
1
解决办法
135
查看次数