java发送串口命令_如何發送命令到串口(JAVA + RXTX)
我有一個發送數據輸入到重量平衡的問題。我需要發送一個ESC P CR LF命令。我使用RXTX庫。我不知道爲什麼它不起作用。以下是代碼。如何發送命令到串口(JAVA + RXTX)
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter (OutputStream out)
{
this.out = out;
}
public void run()
{
try
{
while (true)
{
this.out.write(new byte[]{0x1B, 0x50, 0x0D, 0x0A});
Thread.sleep(1000);
}
}
catch (IOException | InterruptedException e)
{
e.printStackTrace();
}
}
}
我試過flush,但什麼也沒有發生。 我附上下面的完整(修改)代碼。
package model;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FirstSteps
{
public FirstSteps()
{
super();
}
void connect (String portName) throws Exception
{
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned())
{
System.out.println("Error: Port is currently in use");
}
else
{
System.out.println("Connect 1/2");
CommPort commPort = portIdentifier.open(this.getClass().getName(),6000);
if (commPort instanceof SerialPort)
{
System.out.println("Connect 2/2");
SerialPort serialPort = (SerialPort) commPort;
System.out.println("BaudRate: " + serialPort.getBaudRate());
System.out.println("DataBIts: " + serialPort.getDataBits());
System.out.println("StopBits: " + serialPort.getStopBits());
System.out.println("Parity: " + serialPort.getParity());
System.out.println("FlowControl: " + serialPort.getFlowControlMode());
serialPort.setSerialPortParams(4800,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_ODD);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN);
System.out.println("BaudRate: " + serialPort.getBaudRate());
System.out.println("DataBIts: " + serialPort.getDataBits());
System.out.println("StopBits: " + serialPort.getStopBits());
System.out.println("Parity: " + serialPort.getParity());
System.out.println("FlowControl: " + serialPort.getFlowControlMode());
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
}
else
{
System.out.println("Error: Only serial ports are handled by this example.");
}
}
}
/** */
public static class SerialReader implements Runnable
{
InputStream in;
public SerialReader (InputStream in)
{
this.in = in;
}
public void run()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ((len = this.in.read(buffer)) > -1)
{
//System.out.println("Received a signal.");
System.out.print(new String(buffer,0,len));
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
/** */
public static class SerialWriter implements Runnable
{
OutputStream out;
public SerialWriter (OutputStream out)
{
this.out = out;
}
public void run()
{
try
{
byte[] array = {0x1B, 0x50, 0x0D, 0x0A};
while (true)
{
this.out.write(new byte[]{0x1B, 0x50, 0x0D, 0x0A});
this.out.flush();
Thread.sleep(1000);
}
}
catch (IOException | InterruptedException e)
{
e.printStackTrace();
}
}
}
public static void main (String[] args)
{
try
{
(new FirstSteps()).connect("COM7");
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2013-10-30
jlz
java发送串口命令_如何發送命令到串口(JAVA + RXTX)相关推荐
- java发送gmail邮件_如何从R和Gmail发送电子邮件
java发送gmail邮件 在您的R人生的某个时刻,您可能希望与不使用R的同事共享分析结果. 有很多方法可以做到这一点. 最简单(也是最便宜)的方法之一是通过电子邮件发送结果. 但它是一种悲哀自动化您 ...
- 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台
一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...
- 下运行maven命令_实话实说 | 这些maven命令,你会几个?
今天有位微信好友私下问我:mvn install怎么好像把mvn compile的活也干了,所以我平时都是使用mvn install就ok了.奇怪的是,为什么还要搞个mvn compile呢? 听了这 ...
- 百度java的线程技术_自我提升(基础技术篇)——java线程简介
前言:虽然自己平时都在用多线程,也能完成基本的工作需求,但总觉得,还是对线程没有一个系统的概念,所以,查阅了一些资料,理解那些大神和官方的资料,写这么一篇关于线程的文章 本来想废话一番,讲讲自己的经历 ...
- 刷新mac地址命令_常用网络检测命令-必备技术
现在弱电行业工作,设备基本上普遍是使用网络连接,因此具有一定网络检测命令知识,这时通过使用一些网络的基本命令来检测设备的网络状态.以下,介绍常用网络命令: 1.ping命令 ping 命令式用来测试T ...
- java 代码阅读题_● 试题三 阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 1.S - 赏学吧...
● 试题三 阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内. [说明] 1.SMTP是发送E-mail的协议,常用以下5条命令发送E-mail: ·HELO,与SMTP服务 ...
- 用java编写验证码程序_编写,验证和分析实时Java应用程序
本文是" 用实时Java开发"系列的第三篇也是最后一部分,展示了如何设计,编写,验证和分析基本的实时应用程序. 我们将说明: 应用程序的时间和性能要求. 为什么传统的非实时Java ...
- 响应因特网端口ping命令_如何使用Ping命令识别基本的Internet问题
响应因特网端口ping命令 Next time you call your help desk, do you want to wow them with your networking knowle ...
- java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法
本文介绍在Linux发行版Ubuntu 18.04/16.04.Debian 10/9.CentOS 7/8.Fedora 31/30/29中安装Java 13/OpenJDK 13.Java SE ...
最新文章
- 运行PHP出现No input file specified错误解决办法
- Android+git+hudson+gradle持续集成
- 理解SetWindowOrg,SetViewportOrg,SetWindowExt,SetViewportExt
- 天水市一中2021高考成绩查询,天水高中成绩排名2021,天水中考分数线排行榜
- 使用SQL语句获取SQL Server数据库登录用户权限
- mysql优化--叶金荣老师讲座笔记
- pads9.5 (PCB design)
- 跳过百度网盘客户端快速下载
- tera term串口文本匹配打印时间脚本
- 元界Metaverse清单:你需要知道的一切
- html设置请求头host,Http请求头Host字段作用
- 快手2018/9/10
- Windows 11和安全启动
- Markdown标记语法Typora编辑器零基础入门新手学习使用总结教程
- OC正式协议和非正式协议的区别
- 2022 极术通讯-预见·第四代算力革命:三大主流计算平台CPU、GPU和DSA
- 飞机大战部分算法,思维解析,附有源代码.
- top、grep、ftp等详解
- 电脑为什么会蓝屏死机
- 【新手向】vue出现空白页情况之一
热门文章
- 连续子数组的最大和python_连续子数组的最大和
- python多线程处理文件_Python实验:采用多线程在一个文件中查找特定字符串
- Linux虚拟地址空间布局以及进程栈和线程栈总结
- 启明云端分享| SSD201 / SSD202D 在IP广播的应用
- 启明云端WT32-CAM操作视频,让你快速上手ESP32camera应用
- 计算机图形学在GIS中的应用,GIS在交通中的应用与发展
- layui的表格可以动态添加行吗_答疑分享052:插入表格,数据分析更方便
- 保存MATLAB中间变量值的方法:保存为txt文件或者mat文件
- OpenCV探索之路(三):滤波操作
- RecyclerView因版本问题无法加载