有没有人有使用USB for io的经验

时间:2011-05-23 17:58:36

标签: android

我正在为一个业余爱好类型的设备这样做,我使用Android作为一个便宜的为什么获得GPS和其他硬件服务(因为我已经有手机)。我使用了一个名为AdbWinUsb的非官方内核,它将USB与其常用功能断开连接并使其成为一个io端口。有没有其他人在成功之前做过这件事?我有代码要写到串口:       import java.io.DataInputStream;       import android.os.Bundle;       import android.os.Messenger;

  DataInputStream os;      
  process = Runtime.getRuntime().exec("su");
  os = new DataOutputStream(process.getOutputStream());
  os.writeBytes("chmod 777 /dev/ttyMSM0\n");
  ....
  String data = "echo \"Hello World\" > /dev/ttyMSM0";
  os.writeBytes(data + "\n"); 
  os.flush(); 

这很有效。

然后在另一个线程中,我需要设置读取,但我不能写入端口来设置它,就像我在输出中那样....

    process = Runtime.getRuntime().exec("su");
    os = new DataInputStream(process.getInputStream());
    char xx = os.readChar();

readChar不起作用,因为它没有设置。它是否正确?那我该怎么办?

2 个答案:

答案 0 :(得分:0)

您发布的代码中没有任何序列或USB端口的引用。

将“测试”推入“su”给你的任何过程的标准中都不会完成任何事情。你可以更好地使用su来chmod你加载的任何设备驱动程序的设备文件,以便与插入USB端口的任何内容进行通信(你确实为该设备加载了一个设备驱动程序,对吗?)然后再与它通信来自java,或者运行一个命令行可执行文件,它将stdin / stdout代理到你的设备文件。

你究竟是什么插入USB端口的?

如果你可以忍受更高的外部硬件成本,谷歌最近的Android版本的新官方ADK或第三方IOIO(至少应该修改几乎任何东西)可能会设法抽象出更多困难并将您与更多的支持来源联系起来,尽管坦率地将配件作为USB主机是一个令人遗憾的落后状态。

答案 1 :(得分:0)

我刚刚订购了一个廉价的蓝牙到rs232 / ttl转换器,然后我将使用带UART的PIC与rs232接口。它似乎更简单,这意味着我不需要了解蓝牙(或USB)