Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在kivy buildozer中使用python jnius从android激活USBtin[USB到CAN接口]_Python_Android_Kivy_Bytebuffer_Can Bus - Fatal编程技术网

在kivy buildozer中使用python jnius从android激活USBtin[USB到CAN接口]

在kivy buildozer中使用python jnius从android激活USBtin[USB到CAN接口],python,android,kivy,bytebuffer,can-bus,Python,Android,Kivy,Bytebuffer,Can Bus,所以,我只是试图激活,并通过我的手机发送命令,我现在有2个,除了我,我试图从一个发送另一个 我在virtualbox ubuntu上使用kivy和buildozer。从那里我从jnius导入自动类,自动类如下: PythonActivity = autoclass('org.kivy.android.PythonActivity') PythonService = autoclass('org.kivy.android.PythonService') Context = autoclass('a

所以,我只是试图激活,并通过我的手机发送命令,我现在有2个,除了我,我试图从一个发送另一个

我在virtualbox ubuntu上使用kivy和buildozer。从那里我从jnius导入自动类,自动类如下:

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时会持续发出红色。当我这么做的时候仍然会闪烁红色,所以我假设有什么事情在发生

我的结论是,在浏览互联网时,我发现了。我找到了函数openCANChannel,发现它在尝试打开CAN通道时传输了两种东西

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

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

所以我开始尝试依靠机器人(我不太懂的巫婆)发送它,也从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的例子中的函数,我很确定我也尝试过不使用,我非常感谢任何帮助/建议来解决这个问题

Thx提前

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

还有。。。 我确实尝试过使用这个函数来查看它是否会发送一种错误,但它只是冻结了,所以我假设它不会发送任何返回的内容。因此,等待永恒