Skip to content

串口

language
// 注:使用该接口需确认硬件的确存在对应的串口
// 导入 class
import com.hcd.hcdpos.uartmanager.UartManager;

// 定义电子秤类
private UartManager mUartManager;

// 初始化,如可放置于 onCreate 中
mUartManager = new UartManager(this);

// 初始化串口,有两种接口
// 1. public boolean initUart(String sPath, int iBaudrate)
// 2. public boolean initUart(String sPath, int iBaudrate, int iParity, int iStop, int iBits)
// 其中,sPath 为实际串口节点,如 "/dev/ttyS0"
//iBaudrate 波特率包含 1200/2400/4800/9600/19200/38400/57600/115200 iParity 为奇偶校验,0 表示无校验,1 表示奇校验,2 表示偶校验
//iStop 为停止位,1 表示1个停止位,2 表示2个停止位
//iBits 为比特位数,7 表示7bits, 8 表示8bits
// 方法 1 initUart 默认 iParity = 0,iStop = 1, iBits = 8
// 返回值 true 表示初始化成功 , false 表示失败;
// 参考代码如下:
if (null != mUartManager) {
         boolean result = mUartManager.initUart("/dev/ttyS0", 115200);
         //boolean result = mUartManager.initUart("/dev/ttyS0", 115200, 0, 1, 8);
}

// 发送串口信息 , 发送内容为一个 byte数组
// 返回值 true 表示发送成功 , false 表示失败;
// 参考代码如下:
if (null != mUartManager) {
         byte[] sendData = {(byte)0x12, (byte)0x34, (byte)0x56};
         boolean result = mUartManager.sendUartData(sendData);
}

// 读取串口信息 , 该函数请在单独子线程中调用,读取过程即等待串口数据时会停滞等待;
// 返回值 为byte数组,若读取失败,返回 null
// 参考代码如下:
if (null != mUartManager) {
         byte[] buffer = mUartManager.receiveUartData();
}

// 释放串口(使用完需调用), 无返回值
if (null != mUartManager) {
         mUartManager.deinitUart();
         mUartManager = null; //建议释放
}