在kivy buildozer中使用python-jnius从android激活USBtin [USB to CAN interface]

问题描述

所以,我只是想激活,并通过我的 usbtin 发送命令,我目前除了我之外还有 2 个,我正在尝试从另一个发送 2 个。

我在 virtualbox ubuntu 上使用 kivy,buildozer。从那里我从 jnius 导入 autoclass 并自动分类:

PythonActivity = autoclass('org.kivy.android.PythonActivity')
PythonService = autoclass('org.kivy.android.PythonService')
Context = autoclass('android.content.Context')
Intent = autoclass('android.content.Intent')
PendingIntent = autoclass('android.app.PendingIntent')

UsbConstants = autoclass('android.hardware.usb.UsbConstants')
UsbRequest = autoclass('android.hardware.usb.UsbRequest')

ByteBuffer = autoclass('java.nio.ByteBuffer')

我在网上找到的,你好像真的找不到了-_-

无论如何

我做过这样的事情:

connection = get_usb_manager().openDevice(device)
worked = UsbRequestConnectionThingy.initialize(connection,device.getInterface(0).getEndpoint(0))

这就开始了一个连接,对...但是。完成此操作后,我注意到 usbtin 上的小灯在通电时闪烁红色,并在连接 PC 时不断发出红色。当我这样做时仍然闪烁红色,所以我认为有一些磨损......

我得出的结论是,在浏览互联网时我发现了 this。我找到了 openCANChannel 函数,发现它在尝试打开 CAN 通道时传输了 2 件事。

首先是波特率,女巫我应该是 100000(在我的情况下)所以我需要传输“S3”

第二个是..我想打开它,然后我得出结论我应该发送“O”(它不是 0)

所以我开始尝试依靠 androids bytebuffer(我不太了解的女巫)和 queue 来发送它,同样来自 android

所以我运行这个代码:

newBuffer = ByteBuffer.allocateDirect(8)
newBuffer.put(("S3\r").encode("ascii")) #Giving the 100000 thingy bitrate or whatever it's called
UsbRequestConnectionThingy.queue(newBuffer)

newBuffer = ByteBuffer.allocateDirect(8)
newBuffer.put(("O\r").encode("ascii")) #asking to connect with "Open"
UsbRequestConnectionThingy.queue(newBuffer)

而且由于我正在制作这个杆子/票或其他任何东西,您可以正确地猜测它不起作用。 我也试着写

newBuffer.put(b"O\r")

但这没什么区别

此外,r 来自 beffor 的那个示例中的 transmit 函数,我很确定我也尝试过,我真的很感激任何帮助/建议来解决这个问题。

提前谢谢。

也很抱歉写了这么多,我不太熟悉在线提问,所以我希望问题写得很好,足够详细,希望不要太多。

还有... 我确实尝试使用 requistWait 函数来查看它是否会发送 anny 类型的错误,但它只是冻结了,所以我认为它不会发回任何东西。因此,永远等待。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...