iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Flutter:如何在Android中实现串口通信调试
  • 742
分享到

Flutter:如何在Android中实现串口通信调试

androidflutter串口dart 2023-08-31 15:08:07 742人浏览 安东尼
摘要

        本文介绍如何通过Flutter_libserialport插件在Flutter中实现串口通信调试。 1、引入依赖         在flutter工程的pubspec.yaml文件中引入flutter_libserialpo

        本文介绍如何通过Flutter_libserialport插件在Flutter中实现串口通信调试。

1、引入依赖

        在flutter工程的pubspec.yaml文件中引入flutter_libserialport依赖:

dependencies:  flutter_libserialport: ^0.3.0

2、导入import依赖包

        在dart代码中import导入flutter_libserialport.dart就可以使用了。

import 'package:flutter_libserialport/flutter_libserialport.dart';

3、读取所有串口设备

        通过SerialPort.availablePorts方法可以获取当前的所有串口。以下代码用于打印所有的串口名称。

// 串口测试void serialTest() {  print('Available ports:');  var i = 0;  List list = SerialPort.availablePorts;  print('PortSize: ${list.length}');  for (final name in SerialPort.availablePorts) {    print('${++i}) $name');  }}

 

 

也可以通过以下代码读取设备串口的详情信息并打印出来。

// 串口测试void serialTest() {  print('Available ports:');  var i = 0;  List list = SerialPort.availablePorts;  print('PortSize: ${list.length}');  for (final name in SerialPort.availablePorts) {    final sp = SerialPort(name);    print('${++i}) $name');    print('\tDescription: ${sp.description}');    print('\tManufacturer: ${sp.manufacturer}');    print('\tSerial Number: ${sp.serialNumber}');    print('\tProduct ID: 0x${sp.productId!.toRadixString(16)}');    print('\tVendor ID: 0x${sp.vendorId!.toRadixString(16)}');    sp.dispose();  }}

 4、监听并接收串口数据

        通过SerialPortReader可以创建一个输入流用于接收发送到串口的数据。

// 串口测试void serialTest() {  String name = '/dev/ttyS4';  final port = SerialPort(name);   // port.config.baudRate = 115200;  if (!port.openReadWrite()) {    print(SerialPort.lastError);    return;  }  // 读数据  final reader = SerialPortReader(port);  reader.stream.listen((data) {    print('received: $data');    print('receivedString: ${utf8.decode(data)}'); // 转换为字符串    String hexString = data.map((byte) => byte.toRadixString(16).padLeft(2, '0')).join();    print('receivedHex: ${hexString.toUpperCase()}'); // 转换为16进制  });}

默认接收的数据是Uint8List类型即二进制格式。

我们可以通过utf8.decode(data)方法将接收到的Uint8List数据转换为字符串

也可以通过data.map((byte) => byte.toRadixString(16).padLeft(2, '0')).join()方法将接收到的Uint8List数据转换成16进制。

 5、通过串口发送数据

        通过调用write方法可以直接向串口发送数据,需要注意的是数据类型是Uint8List。

// 串口测试void serialTest() {  // 写数据  var bytes = Uint8List.fromList([0xAB, 0xCD, 0xEF]);    port.write(bytes);}

6、代码示例

     在flutter中实现串口通信调试的完整代码示例如下:

// 串口测试void serialTest() {  print('Available ports:');  var i = 0;  List list = SerialPort.availablePorts;  print('PortSize: ${list.length}');  for (final name in SerialPort.availablePorts) {    // final sp = SerialPort(name);    print('${++i}) $name');    // print('\tDescription: ${sp.description}');    // print('\tManufacturer: ${sp.manufacturer}');    // print('\tSerial Number: ${sp.serialNumber}');    // print('\tProduct ID: 0x${sp.productId!.toRadixString(16)}');    // print('\tVendor ID: 0x${sp.vendorId!.toRadixString(16)}');    // sp.dispose();  }  String name = '/dev/ttyS4';  final port = SerialPort(name);   // port.config.baudRate = 115200;  if (!port.openReadWrite()) {    print(SerialPort.lastError);    return;  }  // 读数据  final reader = SerialPortReader(port);  reader.stream.listen((data) {    print('received: $data');    print('receivedString: ${utf8.decode(data)}'); // 转换为字符串    String hexString = data.map((byte) => byte.toRadixString(16).padLeft(2, '0')).join();    print('receivedHex: ${hexString.toUpperCase()}'); // 转换为16进制  });  // 写数据  var bytes = Uint8List.fromList([0xAB, 0xCD, 0xEF]);    port.write(bytes);}

新时代农民工

来源地址:https://blog.csdn.net/sg_knight/article/details/130781257

--结束END--

本文标题: Flutter:如何在Android中实现串口通信调试

本文链接: https://www.lsjlt.com/news/386145.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter:如何在Android中实现串口通信调试
            本文介绍如何通过flutter_libserialport插件在Flutter中实现串口通信调试。 1、引入依赖         在flutter工程的pubspec.yaml文件中引入flutter_libserialpo...
    99+
    2023-08-31
    android flutter 串口 dart
  • C#如何实现串口通信
    这篇文章主要讲解了“C#如何实现串口通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何实现串口通信”吧!1.基本概念2.前端winForm布局如下(仅仅为了实现功能,布局略丑)3.代...
    99+
    2023-06-29
  • QT如何实现串口通信
    小编给大家分享一下QT如何实现串口通信,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:如果用qt写程序作为上位机,然后通过和usb和下位机通信的时候,就需要用...
    99+
    2023-06-15
  • Android串口开发之使用JNI实现ANDROID和串口通信
    导语:Android串口通信在物联网、智能家居等领域具有广泛的应用。本文将详细介绍如何使用JNI技术实现Android设备与串口的通信,包括串口的打开、设置参数和读写数据等过程。 目录 一...
    99+
    2023-10-20
    android java android studio 串口通信 JNI
  • C#如何实现串口调试工具
    C#如何实现串口调试工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前文由于经常用到串口调试, 尽管有现成的软件, 因为前端时间涉及一个二次开发, 就因为一个...
    99+
    2023-06-29
  • Android如何实现socket通信统一接口
    小编给大家分享一下Android如何实现socket通信统一接口,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Android实现socket通信统一接口,统一接口之后可以在不需要大量修改应用层代码的情况下,使用与当前功能类...
    99+
    2023-06-25
  • 怎么在Android中使用OkUSB封装一个串口通信
    这篇文章给大家介绍怎么在Android中使用OkUSB封装一个串口通信,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。OkUSB一个简洁的Android串口通信框架。功能简介支持设置波特率支持设置数据位支持设置停止位支持...
    99+
    2023-05-30
    android
  • Android Usb(OTG)串口通信,Service 后台服务实现方式
    以下是几个开源的 Android 串口通信库: 1. SerialPort:https://github.com/felHR85/SerialPort 这是一个非常流行的 Android 串口通信库,支持多种设备和多种波特率,并且提供了非常...
    99+
    2023-09-01
    android android studio ide
  • 如何在Android中实现通知栏
    今天就跟大家聊聊有关如何在Android中实现通知栏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、设置通知内容//CHANNEL_ID,渠道ID,Android 8.0...
    99+
    2023-06-15
  • winform串口通信出现乱码如何解决
    出现乱码有可能是由于串口通信设置不正确或者数据格式不匹配导致的。以下是一些可能的解决方案: 确保串口通信的波特率、数据位、停止位和...
    99+
    2024-04-02
  • 怎么在Android中实现Socket通信传输
    今天就跟大家聊聊有关怎么在Android中实现Socket通信传输,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用...
    99+
    2023-05-30
    android socket
  • 在Java中操作串口实现短信收发
    在Java中操作串口实现短信收发 (转载自:http://blog.csdn.net/sinboy/archive/2005/12/09/548158.aspx)[@more@]采用串口操作进行短信收发,是比较常见的一种方式.比如,很多群发...
    99+
    2023-06-03
  • 怎么在Android中实现Service与Activity的通信
    本篇文章为大家展示了怎么在Android中实现Service与Activity的通信,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一种方式:通过MyBinder方式调用Service方法MainA...
    99+
    2023-05-30
    android service activity
  • PHP中如何实现调试和错误调试?
    在PHP中,调试和错误调试是开发过程中不可或缺的一部分。调试和错误调试可以帮助开发人员快速识别和解决应用程序中的错误,从而提高应用程序的稳定性和可靠性。本文将介绍PHP中如何实现调试和错误调试。一、错误调试在PHP应用程序中,错误可能会发生...
    99+
    2023-05-14
    调试工具 PHP调试 PHP错误调试
  • Python 和 JavaScript 如何在 Windows 接口中通信?
    Python 和 JavaScript 是两种不同的编程语言,它们在不同的领域中都有着广泛的应用。在一些需要将这两种语言结合起来使用的场景中,如何在 Windows 接口中实现它们的通信呢? 本文将从以下几个方面来详细介绍 Python ...
    99+
    2023-08-11
    windows 接口 javascript
  • 如何在Java接口中实现分布式对象的高效通信?
    Java接口是Java编程中非常重要的概念之一,它定义了一组方法的签名,而不包括方法体。接口可以用于实现多态,也可以用于实现分布式对象的高效通信。在分布式系统中,通信是一个非常重要的问题,因为分布式系统中的各个节点需要互相通信,以完成协同工...
    99+
    2023-09-19
    接口 分布式 对象
  • 如何在java项目中实现接口回调
    这篇文章将为大家详细讲解有关如何在java项目中实现接口回调,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java 接口回调实例详解首先官方对接口回调的定义是这样的,所谓回调:就是A类中调用...
    99+
    2023-05-31
    java 接口回调 ava
  • 如何在golang中实现WebSocket的双向通信
    如何在 Golang 中实现 WebSocket 的双向通信WebSockets 是一种在客户端和服务器之间建立持久化连接的通信协议,它允许双向通信,而且在实时性和效率方面表现出色。在 Golang 中,我们可以使用标准库中的 net/ht...
    99+
    2023-12-18
    Golang websocket 双向通信
  • Qt开发如何实现跨窗口信号槽通信
    这篇文章主要介绍“Qt开发如何实现跨窗口信号槽通信”,在日常操作中,相信很多人在Qt开发如何实现跨窗口信号槽通信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Qt开发如何实现跨窗口信号槽通信”的疑惑有所帮助!...
    99+
    2023-06-22
  • node中如何实现RPC通信
    本篇内容主要讲解“node中如何实现RPC通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node中如何实现RPC通信”吧!什么是RPC?RPC:Remote Procedure Call(远...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作