当前位置: 首页 > news >正文

Android 串口通讯

Serial Port

Android 串口通讯 arm64-v8a、armeabi-v7a、x86、x86_64

AAR
名称操作
serial.jar下载
arm64-v8a下载
armeabi-v7a下载
x86下载
x86_64下载
arm-zip下载
x86-zip下载
Maven

1.build.grade | setting.grade

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

2./app/build.grade

dependencies {implementation 'com.github.RelinRan:SerialPort:2023.9.14.1'
}

3.CPU架构

defaultConfig {ndk {abiFilters 'arm64-v8a','armeabi-v7a','x86','x86_64'}
}
文件依赖

下载的jar放入libs文件夹,so文件放入jniLibs文件夹

android {sourceSets {main {jniLibs.srcDirs = ['src/main/jniLibs']}}
}
权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
路径

所有驱动路径

 SerialPortFinder finder = new SerialPortFinder();String[] paths = finder.getAllDevicesPath();for (String path : paths) {Log.i("SerialPortFinder","path:"+path);}
通讯

初始化串口

Serial serial = new Serial("/dev/ttyMSM2",30001,SerialMode.RDWR);

设置监听

serial.setOnSerialListener(new OnSerialListener() {@Overridepublic void onSerialSend(byte[] data) {//发送内容}@Overridepublic void onSerialReceived(byte[] data) {//接收内容}});

打开串口

serial.open();

关闭串口

serial.close();
代理

服务配置

<serviceandroid:name="android.serial.port.api.SercdService"android:directBootAware="true"android:enabled="true" />

初始化

Sercd sercd = new Sercd(getContext());

网络接口列表 + 端口

String netInterface = "";
int port = 30001;
Map<String, String> map = sercd.feedNetworkInterfacesList();
for (String key:map.keySet()){//wifi是wlan0if (key.equals("eth0")){netInterface = map.get(key);}
}

设置监听

sercd.setOnSercdListener(new OnSercdListener() {@Overridepublic void onSercdStateChange(ProxyState proxyState) {System.out.println("proxyState:"+proxyState);}
});

开始代理

sercd.start("/dev/ttyMSM2",netInterface,port);

关闭代理

sercd.stop();
字节工具
Bytecode bytecode = new Bytecode();
byte b = 0b00001111;

Boolean值Byte

byte b = bytecode.toByte(false,false,false,false,true,true,true,true);//00001111

Byte的Boolean[]

boolean[] booleans = bytecode.toBooleans(b);//[false, false, false, false, true, true, true, true]

Byte转十六进制

String hex = bytecode.toHex(b);//0F

Byte转十进制

int dec = bytecode.toDec(b);//15

Byte转八进制

String oct = bytecode.toOct(b);//017

Byte转二进制

String bin = bytecode.toBin(b);//00001111

Byte数组转十六进制字符串

float floatValue = 99.99f;
byte[] data = bytecode.toBytes(floatValue);
String hexString = bytecode.toHex(data);//E1 FA C7 42 

十六进制String转Byte数组

byte[] value = bytecode.toBytes(hexString);//[-31, -6, -57, 66]

Byte数组转Float

float floatValue = 99.99f;
byte[] data = bytecode.toBytes(floatValue);
float value = bytecode.toFloat(new byte[]{data[0],data[1],data[2],data[3]}));//99.99

Byte数组转Short

short shortValue = 33;
byte[] data = bytecode.toBytes(shortValue);
short value = bytecode.toShort(new byte[]{data[0],data[1]}));//33

Byte数组转Int

int intValue = 100;
byte[] data = bytecode.toBytes(intValue);
int value = bytecode.toInt(new byte[]{data[0],data[1],data[2],data[3]}));//100
http://www.lryc.cn/news/168326.html

相关文章:

  • 论如何在Android中还原设计稿中的阴影
  • Hadoop生态圈中的Flume数据日志采集工具
  • FFmpeg获取媒体文件的视频信息
  • io概述及其分类
  • 前端面试话术集锦第 14 篇:高频考点(React常考基础知识点)
  • UI/UX+前端架构:设计和开发高质量的用户界面和用户体验
  • 长尾关键词挖掘软件-免费的百度搜索关键词挖掘
  • React Native 环境配置(mac)
  • CAD for JS:VectorDraw web library 10.1004.1 Crack
  • 代码管理工具git1
  • 层次聚类分析
  • Jmeter性能实战之分布式压测
  • 学信息系统项目管理师第4版系列08_管理科学基础
  • 从2023蓝帽杯0解题heapSpary入门堆喷
  • 基于SSM的学生宿舍管理系统设计与实现
  • jvm 内存模型介绍
  • 用Jmeter进行压测详解
  • Mysql001:(库和表)操作SQL语句
  • 甲骨文全区登录地址
  • Java面试题第八天
  • 什么是同步容器和并发容器的实现?
  • 学Python的漫画漫步进阶 -- 第十六步
  • MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点5:数据字典(Data Dictionary)
  • 7分钟了解ChatGPT是如何运作的
  • 蓝桥杯打卡Day8
  • React 学习笔记目录
  • 一起Talk Android吧(第五百五十一回:如何自定义SplashScreen)
  • PYTHON-模拟练习题目集合
  • UE5学习笔记(1)——从源码开始编译安装UE5
  • DP读书:《openEuler操作系统》(二)操作系统的发展史