通过Digi Xbee Java Api在Android中使用串行端口ttyUSB0
我正在Odroid Xu4中制作一个Android应用程序,通过usb串行转换器与Xbee Pro s2相连,cp210x驱动程序使用ttyUBS0端口,但在应用程序内部,它与ttyUBS0断开连接,并使用总线/dev/bus/usb/。。 不,我必须打开串行端口才能访问xbee的Rx/Tx。我现在正在为android使用usb串行接口 但这帮不了什么忙,我的应用程序一打开xbee设备就崩溃了。 这是我的密码通过Digi Xbee Java Api在Android中使用串行端口ttyUSB0,java,android,serial-port,xbee,odroid,Java,Android,Serial Port,Xbee,Odroid,我正在Odroid Xu4中制作一个Android应用程序,通过usb串行转换器与Xbee Pro s2相连,cp210x驱动程序使用ttyUBS0端口,但在应用程序内部,它与ttyUBS0断开连接,并使用总线/dev/bus/usb/。。 不,我必须打开串行端口才能访问xbee的Rx/Tx。我现在正在为android使用usb串行接口 但这帮不了什么忙,我的应用程序一打开xbee设备就崩溃了。 这是我的密码 List<UsbSerialDriver> availableDrive
List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
if (availableDrivers.isEmpty()) {
return;
}
UsbSerialDriver driver = availableDrivers.get(0);
Toast.makeText(this, "connection done" + driver, Toast.LENGTH_LONG).show();
List<UsbSerialPort> availableports = driver.getPorts();
for (UsbSerialPort port : availableports) {
Toast.makeText(this, "port please :" + port.getPortNumber(), Toast.LENGTH_LONG).show();
UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
try {
port.open(connection);
Toast.makeText(this," yes i m connected to port", Toast.LENGTH_LONG).show();
port.setParameters(BAUDRATE, 8, 1, 0);
Toast.makeText(this," baudrate set", Toast.LENGTH_LONG).show();
PORT = driver.getDevice().toString();
if (PORT == null) {
Toast.makeText(this, "not connected",Toast.LENGTH_LONG).show();
}
else
{
XBeeDevice mydevice = new XBeeDevice(PORT, BAUDRATE);
Toast.makeText(this, "connected",Toast.LENGTH_LONG).show();
try {
mydevice.open(); //App crashes now :(
Toast.makeText(this, "connected woow",Toast.LENGTH_LONG).show();
} catch (XBeeException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
List availableDrivers=UsbSerialProber.getDefaultProber().findAllDrivers(管理器);
if(availableDrivers.isEmpty()){
返回;
}
UsbSerialDriver driver=availableDrivers.get(0);
Toast.makeText(此“连接完成”+驱动程序,Toast.LENGTH_LONG.show();
List availableport=driver.getPorts();
用于(UsbSerialPort端口:可用端口){
Toast.makeText(此“端口请:+port.getPortNumber(),Toast.LENGTH_LONG).show();
UsbDeviceConnection=manager.openDevice(driver.getDevice());
试一试{
端口。打开(连接);
Toast.makeText(这是“是的,我已连接到端口”,Toast.LENGTH_LONG.show();
端口设置参数(波特率,8,1,0);
Toast.makeText(这是“波特率集”,Toast.LENGTH_LONG.show();
端口=driver.getDevice().toString();
如果(端口==null){
Toast.makeText(此“未连接”,Toast.LENGTH_LONG).show();
}
其他的
{
XBeedDevice mydevice=新的XBeedDevice(端口,波特率);
Toast.makeText(这个“已连接”,Toast.LENGTH_LONG).show();
试一试{
mydevice.open();//应用程序现在崩溃:(
Toast.makeText(这是“连接的woow”,Toast.LENGTH_LONG).show();
}捕获(XBEEE异常){
e、 printStackTrace();
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
有人能给我指点迷津吗?我是不是在代码里做错了什么?这是我找到的另一个库
这会有帮助吗?
此api根据需要工作,它将找到所有必需的端口。您需要在项目中添加.java文件