android java 串口通信_Android串口通信

1. 解析SerialPort API 串口通信例子

首先分析一下例子中的类结构 :

android java 串口通信_Android串口通信_第1张图片

通过类结构可知,最主要的还是在SerialPortJNI.java 类 ,该类写了一些Native 方法处理打开与关闭 串口 接收 发送的

SerialPort.Java 代码如下 :

package com.dwin.navy.serialportapi;

import java.io.FileDescriptor;

import android.util.Log;

/**

* 串口JNI

*

* @author dwin

*

*/

public class SerialPortJNI {

static {

Log.i("NativeClass", "before load library");

System.loadLibrary("serialport");

Log.i("NativeClass", "after load library");

}

public FileDescriptor mFd;

public String mDevNum;

public int mSpeed;

public int mDataBits;

public int mStopBits;

public int mParity;

public int RS485ModFp = -1;

public static int RS485Read = 0;

public static int RS485Write = 1;

public native int setSpeed(FileDescriptor fd, int speed);

public native int setParity(FileDescriptor fd, int dataBits, int stopBits,

int parity);

public native FileDescriptor openDev(String devNum);

public native FileDescriptor open485Dev(String devNum);

public native int closeDev(FileDescriptor fd);

public native int close485Dev(FileDescriptor fd);

public native int readBytes(FileDescriptor fd, byte[] buffer, int length);

public native boolean writeBytes(FileDescriptor fd, byte[] buffer,

int length);

public native int set485mod(int mode);

}

红色区域 先申明一个static 静态域 加载.so 动态库文件 .so通过JNI方式生成 保存在libs目录下 ,由于本例子使用的cpu为 mips(默认为arm) 所以 .so库文件 将存入mips文件夹下

还有打开串口,关闭串口,485模式下开关方式 ,接收 与发送 byte

1> SerialPort API 处理了接收与发送 文本与十六进制 两种模式下接收与发送数据

UI布局如下 :

android java 串口通信_Android串口通信_第2张图片

2>在电脑中插入usb转串口工具 ,然后在app中打开串口

SerialPortOpt.java 继承了 SerialPortJNI.Java 类 调用相应的JNI接口

SerialPortOpt.java类大致如下 :

package com.dwin.navy.serialportapi;

import java.io.FileDescriptor;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import android.util.Log;

/**

* 调用JNI的串口

*

* @author dwin

*

*/

public class SerailPortOpt extends SerialPortJNI {

private static final String TAG 

你可能感兴趣的:(android,java,串口通信)