日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

串口 多个activity 安卓_Android-EasySerialPort

發(fā)布時(shí)間:2024/9/27 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 串口 多个activity 安卓_Android-EasySerialPort 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android-EasySerialPort

非常好用、非常穩(wěn)定的Android串口封裝

久經(jīng)兩年多項(xiàng)目考驗(yàn),一直很穩(wěn)定

使用說(shuō)明

第一步,在gradle(Project)下添加

allprojects {

repositories {

...

maven { url 'https://www.jitpack.io' }

}

}

第二步,導(dǎo)入依賴

dependencies {

implementation 'com.github.maybesix:Android-XHLibrary:v1.0.0'

}

在需要實(shí)現(xiàn)Activity或者Service中這樣寫:

SerialPortHelper serialPort;

String port = "/dev/ttyHSL1";

int baudRate = 9600;

//串口程序初始化

serialPort = new SerialPortHelper(port, baudRate, this);

//打開(kāi)串口

serialPort.open();

串口發(fā)送:

//發(fā)送十六進(jìn)制

serialPort.sendHex("A55A0010002096");

//發(fā)送文本

serialPort.sendHex("hello world");

串口接收:實(shí)現(xiàn)SerialPortHelper.OnSerialPortReceivedListener接口

public class MainActivity extends AppCompatActivity implements SerialPortHelper.OnSerialPortReceivedListener {

...

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

...

}

...

@Override

public void onSerialPortDataReceived(ComPortData comPortData) {

//處理接收的串口消息

String s = HexStringUtils.byteArray2HexString(comPortData.getRecData());

Log.i(TAG, "onReceived: " + s);

}

}

或者可以使用構(gòu)造者鏈?zhǔn)秸{(diào)用(kotlin寫法)

serialPort = EasySerialPort.Builder()

.setBaudRate(9600)

.setPort("")

.setSatesListener(object : EasySerialPort.OnStatesChangeListener {

/**

* 打開(kāi)的狀態(tài)回調(diào)

*

* @param isSuccess 是否成功

* @param reason 原因

*/

override fun onOpen(isSuccess: Boolean, reason: String) {

Log.i("EasySerialPort", "是否開(kāi)啟成功:$isSuccess,原因:$reason")

Toast.makeText(

applicationContext,

"是否開(kāi)啟成功:$isSuccess,原因:$reason",

Toast.LENGTH_SHORT

).show()

}

/**

* 關(guān)閉的狀態(tài)回調(diào)

*/

override fun onClose() {

Log.i("EasySerialPort", "已關(guān)閉")

Toast.makeText(applicationContext, "已關(guān)閉", Toast.LENGTH_SHORT).show()

}

})

.setListener {

//處理接收的串口消息

val s: String = HexStringUtils.byteArray2HexString(it.recData)

Log.i("EasySerialPort", "onReceived: $s,time:${it.recTime}")

textView.text = s

}

.build()

至此,串口的打開(kāi)、發(fā)送、接收就全部完成了。

串口相關(guān)

isOpen : 是否開(kāi)啟串口

getBaudRate : 獲取波特率

setBaudRate : 設(shè)置波特率

getPort : 獲取串口名稱

setPort : 設(shè)置串口名稱

open : 打開(kāi)串口

close : 關(guān)閉串口

sendHex : 以16進(jìn)制發(fā)送

sendTxtString : 以文本發(fā)送

getLoopData : 獲取循環(huán)發(fā)送的數(shù)據(jù)

setLoopData : 設(shè)置循環(huán)發(fā)送的數(shù)據(jù)

getDelay : 獲取延遲

setDelay : 設(shè)置延時(shí)(毫秒)

startSend : 開(kāi)啟循環(huán)發(fā)送

stopSend : 停止循環(huán)發(fā)送

OnSerialPortReceivedListener : 串口數(shù)據(jù)接收回調(diào)

getRecData : 獲取串口數(shù)據(jù)

setRecData : 設(shè)置串口數(shù)據(jù)

getRecTime : 獲取接收時(shí)間

setRecTime : 設(shè)置接受時(shí)間

getComPort : 獲取串口名稱

setComPort : 設(shè)置串口名稱

串口數(shù)據(jù)處理相關(guān)

isOdd : 判斷是否為奇數(shù)

hexString2Int : 16進(jìn)制字符串轉(zhuǎn)int

hexString2Byte : 16進(jìn)制字符串轉(zhuǎn)byte

byte2HexString : byte轉(zhuǎn)16進(jìn)制字符串

byteArray2HexString : byte數(shù)組轉(zhuǎn)16進(jìn)制字符串

hexString2ByteArray : 16進(jìn)制字符串轉(zhuǎn)byte數(shù)組

isPassCRC : 返回是否通過(guò)驗(yàn)證

getCrcString : 獲取16進(jìn)制的crc字符串

toHexString : int轉(zhuǎn)16進(jìn)制字符串

getCrc : 傳入bytes,計(jì)算得到CRC驗(yàn)證碼

hexToByte : 16進(jìn)制字符串轉(zhuǎn)byte數(shù)組

項(xiàng)目更新內(nèi)容:

v1.1:

升級(jí)至androidx

去除不必要的依賴

支持鏈?zhǔn)秸{(diào)用配置監(jiān)聽(tīng)事件、設(shè)置端口號(hào)、設(shè)置波特率

修改串口接收數(shù)據(jù)時(shí)格式化時(shí)間,現(xiàn)在改為時(shí)間戳

如果這個(gè)項(xiàng)目對(duì)你有幫助,請(qǐng)點(diǎn)個(gè)star!

總結(jié)

以上是生活随笔為你收集整理的串口 多个activity 安卓_Android-EasySerialPort的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。