gpt4 book ai didi

linux - 如何制作一个(API 或驱动程序)来处理 Linux 中 USB 设备端的所有 USB 串行请求?

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:15 25 4
gpt4 key购买 nike

这两天我一直在寻找一种方法来编写程序或制作驱动程序来处理我的 USB 设备端的 USB 串行请求。我有专门制作的 USB 设备,连接它的唯一方法是通过 USB 串行端口,在我的 PC 上,我使用 Google 的 Webusb API 访问设备上的终端控制台。所以我可以发送 Linux 命令(即 ifconfig),所以我想做的是构建一些可以在设备上运行的东西来监听来自 USB 串行的请求并发送适当的响应。例如,我有一个在 Arduino 上运行的 C 代码完全符合我的要求,但问题是该代码仅适用于 Arduino 而不适用于我的设备,这里是 C 代码:

// Third-party WebUSB Arduino library
#include <WebUSB.h>

WebUSB WebUSBSerial(1 /* https:// */, "webusb.github.io/arduino/demos");

#define Serial WebUSBSerial

void setup() {
Serial.begin(9600);
while (!Serial) {
; // Wait for serial port to connect.
}
Serial.write("WebUSB FTW!");
Serial.flush();
}

void loop()
{
if (webUsbSerial)
{
if (webUsbSerial.available())
{
int byte = webUsbSerial.read();
if (byte == 'h')
{
webUsbSerial.write("hallo from Arduino");
}
else
webUsbSerial.write("sorry not a function yet!!!!");
webUsbSerial.flush();
}
}
}

如您在本例中所见,我检查命令是否为“h”并发送hello world。我想在我有 Linux 操作系统的设备上做同样的事情,我试过 libusb,但我认为它是 USB 主机 API 而不是 USB 设备。提前谢谢你。

最佳答案

我认为你可以使用这样的东西(如果你可以使用 Python):

import serial
#Assuming you're connecting an Arduino
try:
ser = serial.Serial("/dev/ttyACM0",9600)
except:
ser = serial.Serial("/dev/ttyACM1",9600)

while True:
print("Start")
print("Waiting...")

command = ser.read()
try: command = str(command, "utf-8")
except: command = str(command, "utf-16")

if (command =="h"): print("Hello")

希望对您有所帮助。

关于linux - 如何制作一个(API 或驱动程序)来处理 Linux 中 USB 设备端的所有 USB 串行请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52755928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com