当前位置: 首页 > 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

相关文章:

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./a…...

论如何在Android中还原设计稿中的阴影

每当设计稿上注明需要添加阴影时&#xff0c;Android上总是显得比较棘手&#xff0c;因为Android的阴影实现方式与Web和iOS有所区别。 一般来说阴影通常格式是有&#xff1a; X: 在X轴的偏移度 Y: 在Y轴偏移度 Blur: 阴影的模糊半径 Color: 阴影的颜色 何为阴影 但是在A…...

Hadoop生态圈中的Flume数据日志采集工具

Hadoop生态圈中的Flume数据日志采集工具 一、数据采集的问题二、数据采集一般使用的技术三、扩展&#xff1a;通过爬虫技术采集第三方网站数据四、Flume日志采集工具概述五、Flume采集数据的时候&#xff0c;核心是编写Flume的采集脚本xxx.conf六、Flume案例实操1、采集一个网络…...

FFmpeg获取媒体文件的视频信息

视频包标志位 代码 printf("index:%d\n", in_stream->index);结果 index:0视频帧率 // avg_frame_rate: 视频帧率,单位为fps&#xff0c;表示每秒出现多少帧 printf("fps:%lffps\n", av_q2d(in_stream->avg_frame_rate));结果 fps:29.970070fps…...

io概述及其分类

一、IO概念 • I/O 即输入Input/ 输出Output的缩写&#xff0c;其实就是计算机调度把各个存储中&#xff08;包括内存和外部存储&#xff09;的数据写入写出的过程&#xff1b; I : Input O : Output 通过IO可以完成硬盘文件的读和写。 • java中用“流&#xff08;stream&am…...

前端面试话术集锦第 14 篇:高频考点(React常考基础知识点)

这是记录前端面试的话术集锦第十四篇博文——高频考点(React常考基础知识点),我会不断更新该博文。❗❗❗ 1. 生命周期 在V16版本中引入了Fiber机制。这个机制一定程度上的影响了部分生命周期的调用,并且也引入了新的2个API来解决问题。 在之前的版本中,如果你拥有一个很…...

UI/UX+前端架构:设计和开发高质量的用户界面和用户体验

引言 随着数字化和互联网的普及&#xff0c;越来越多的企业和组织需要高质量的用户界面和用户体验&#xff0c;以及可靠、高效的前端架构。UI/UX设计师和前端架构师可以为这些企业和组织提供所需的技术和创意支持。本文将介绍UI/UX前端架构这个方向&#xff0c;包括设计原则、…...

长尾关键词挖掘软件-免费的百度搜索关键词挖掘

嗨&#xff0c;大家好&#xff01;今天&#xff0c;我想和大家聊一聊长尾关键词挖掘工具。作为一个在网络世界里摸爬滚打多年的人&#xff0c;我对这个话题有着一些个人的感悟和见解&#xff0c;希望能与大家分享。 首先&#xff0c;让我坦白一点&#xff0c;长尾关键词挖掘工具…...

React Native 环境配置(mac)

React Native 环境配置&#xff08;mac&#xff09; 1.Homebrew2.Node.js、WatchMan3.Yarn4.Android环境配置1.安装JDK2.下载AndroidStudio1.国内配置 Http Proxy2.安装SDK1.首先配置sdk的路径2.SDK 下载 3.创建模拟器4.配置 ANDROID_HOME 环境变量 5.IOS环境1.升级ruby&#x…...

CAD for JS:VectorDraw web library 10.1004.1 Crack

VectorDraw web library经过几年的研究&#xff0c;通过互联网展示或工作的可能性并拒绝了各种项目&#xff0c;我们最终得出的结论是&#xff0c;在 javascript 的帮助下&#xff0c;我们将能够在 Microsoft IE 以外的互联网浏览器中通过网络演示矢量图形&#xff08;支持 ocx…...

代码管理工具git1

ctrl 加滚轮 放大字体 在计算机任意位置单击右键&#xff0c;选择&#xff1a;&#xff1a;Git Bash Here git version git清屏命令&#xff1a;ctrl L查看用户名和邮箱地址&#xff1a; $ git config user.name$ git config user.email修改用户名和邮箱地址&#xff1a;$ git…...

层次聚类分析

1、python语言 from scipy.cluster import hierarchy # 导入层次聚类算法 import matplotlib.pylab as plt import numpy as np# 生成示例数据 np.random.seed(0) data np.random.random((20,1))# 使用树状图找到最佳聚类数 Z hierarchy.linkage(data,methodweighted,metric…...

Jmeter性能实战之分布式压测

分布式执行原理 1、JMeter分布式测试时&#xff0c;选择其中一台作为调度机(master)&#xff0c;其它机器作为执行机(slave)。 2、执行时&#xff0c;master会把脚本发送到每台slave上&#xff0c;slave 拿到脚本后就开始执行&#xff0c;slave执行时不需要启动GUI&#xff0…...

学信息系统项目管理师第4版系列08_管理科学基础

1. 科学管理的实质 1.1. 反对凭经验、直觉、主观判断进行管理 1.2. 主张用最好的方法、最少的时间和支出&#xff0c;达到最高的工作效率和最大的效果 2. 资金的时间价值与等值计算 2.1. 资金的时间价值是指不同时间发生的等额资金在价值上的差别 2.2. 把资金存入银行&…...

从2023蓝帽杯0解题heapSpary入门堆喷

关于堆喷 堆喷射&#xff08;Heap Spraying&#xff09;是一种计算机安全攻击技术&#xff0c;它旨在在进程的堆中创建多个包含恶意负载的内存块。这种技术允许攻击者避免需要知道负载确切的内存地址&#xff0c;因为通过广泛地“喷射”堆&#xff0c;攻击者可以提高恶意负载被…...

基于SSM的学生宿舍管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

jvm 内存模型介绍

一、类加载子系统 1、类加载的过程&#xff1a;装载、链接、初始化&#xff0c;其中&#xff0c;链接又分为验证、准备和解析 装载&#xff1a;加载class文件 验证&#xff1a;确保字节流中包含信息符合当前虚拟机要求 准备&#xff1a;分配内存&#xff0c;设置初始值 解析&a…...

用Jmeter进行压测详解

简介&#xff1a; 1.概述 一款工具&#xff0c;功能往往是很多的&#xff0c;细枝末节的地方也很多&#xff0c;实际的测试工作中&#xff0c;绝大多数场景会用到的也就是一些核心功能&#xff0c;根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲…...

Mysql001:(库和表)操作SQL语句

目录&#xff1a; 》SQL通用规则说明 SQL分类&#xff1a; 》DDL&#xff08;数据定义&#xff1a;用于操作数据库、表、字段&#xff09; 》DML&#xff08;数据编辑&#xff1a;用于对表中的数据进行增删改&#xff09; 》DQL&#xff08;数据查询&#xff1a;用于对表中的数…...

甲骨文全区登录地址

日本东部 东京 https://console.ap-tokyo-1.oraclecloud.com https://console.ap-tokyo-1.oraclecloud.com 日本中部 大阪 https://console.ap-osaka-1.oraclecloud.com https://console.ap-osaka-1.oraclecloud.com 韩国中部 首尔 https://console.ap-seoul-1.oraclecloud.c…...

SQL Chat:用自然语言对话操作数据库的实战指南

1. 项目概述&#xff1a;当自然语言遇见数据库 作为一名和数据打了十几年交道的开发者&#xff0c;我深知与数据库交互的痛点。无论是写复杂的多表关联查询&#xff0c;还是排查一个数据异常&#xff0c;传统的SQL客户端工具&#xff08;比如Navicat、DBeaver&#xff09;虽然…...

AI设计风格Prompt实战指南:从32种风格词典到精准生成

1. 项目概述&#xff1a;一份给AI设计师的“风格词典”如果你和我一样&#xff0c;经常用 Claude、Cursor 或者 v0 这类 AI 工具来生成网页界面&#xff0c;那你肯定遇到过这个头疼的问题&#xff1a;脑子里想的是“赛博朋克”或者“瑞士风格”&#xff0c;但打出来的 prompt 却…...

知识图谱与量化LLM协同架构解析与应用

1. 知识图谱与量化LLM协同架构解析在自然语言处理领域&#xff0c;知识图谱&#xff08;KG&#xff09;与大型语言模型&#xff08;LLM&#xff09;的协同正展现出独特价值。这种架构的核心在于发挥两者的互补优势&#xff1a;KG提供结构化、可验证的语义网络&#xff0c;而LLM…...

告别一堆转换头!一个自研小工具搞定USB、网口、485、232、TTL全互连(附配置软件)

极简主义工程师的终极武器&#xff1a;全协议互连调试工具实战指南 每次出差调试设备&#xff0c;我的背包里总塞满了各种转换头——USB转串口、网口转485、232电平转换器...直到上个月在客户现场&#xff0c;当我蹲在机柜旁手忙脚乱切换第五个转换器时&#xff0c;螺丝刀不小心…...

NVIDIA aicr:AI容器运行时核心原理与生产部署指南

1. 项目概述&#xff1a;当AI遇见容器运行时如果你在AI开发或者高性能计算领域摸爬滚打过一段时间&#xff0c;大概率会遇到一个让人头疼的问题&#xff1a;如何高效、稳定地管理那些“胃口”巨大、依赖复杂的AI工作负载&#xff1f;从训练一个大型语言模型到运行一个实时的计算…...

Cadence 17.4 保姆级教程:从DRC检查到Gerber输出的完整避坑指南

Cadence 17.4 终极避坑指南&#xff1a;从DRC检查到Gerber输出的全流程实战 第一次使用Cadence Allegro 17.4导出Gerber文件时&#xff0c;那种如履薄冰的感觉至今记忆犹新。记得去年为TMC2300电机驱动模块导出生产文件时&#xff0c;因为一个简单的单位设置错误&#xff0c;导…...

别只盯着SQL了!GaussDB健康度巡检,这5个‘外围’命令和日志文件更重要

别只盯着SQL了&#xff01;GaussDB健康度巡检&#xff0c;这5个‘外围’命令和日志文件更重要 当数据库出现性能波动时&#xff0c;大多数DBA的第一反应是检查慢SQL或调整参数。但根据某金融客户的生产环境统计&#xff0c;超过60%的数据库故障其实源于日志溢出、网络闪断或备份…...

别再只点保存了!QGIS工程文件.QGZ和.QGS到底怎么选?附XML结构详解

QGIS工程文件格式深度解析&#xff1a;.QGZ与.QGS的选择策略与XML实战指南 当你在QGIS中完成一幅精心设计的地图&#xff0c;点击保存按钮时&#xff0c;系统弹出的格式选择对话框可能让你陷入短暂的犹豫——该选择.QGZ还是.QGS&#xff1f;这个看似简单的选择背后&#xff0c;…...

别再傻傻分不清了!MIPI DPHY和CPHY到底怎么选?从带宽、成本和PCB布线给你讲透

MIPI DPHY与CPHY工程选型实战指南&#xff1a;从理论到PCB布局的完整决策框架 在移动设备硬件设计中&#xff0c;MIPI接口的选择往往成为影响项目成败的关键决策点。当面对新一代图像传感器规格书上的DPHY/CPHY双模支持标识时&#xff0c;资深工程师的眉头总会不自觉地皱起——…...

在MacBook Pro上构建工业物联网数据采集:libmodbus实战指南

1. 为什么选择MacBook Pro作为工业物联网开发平台 工业物联网开发通常需要频繁的现场调试和设备对接&#xff0c;传统工控机笨重且不便携。MacBook Pro凭借其出色的性能表现和稳定的macOS系统&#xff0c;正在成为工程师们的新宠。我去年参与一个智慧农业项目时&#xff0c;就深…...