我有一個發送數據輸入到重量平衡的問題。我需要發送一個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)相关推荐

  1. java发送gmail邮件_如何从R和Gmail发送电子邮件

    java发送gmail邮件 在您的R人生的某个时刻,您可能希望与不使用R的同事共享分析结果. 有很多方法可以做到这一点. 最简单(也是最便宜)的方法之一是通过电子邮件发送结果. 但它是一种悲哀自动化您 ...

  2. 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台

    一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...

  3. 下运行maven命令_实话实说 | 这些maven命令,你会几个?

    今天有位微信好友私下问我:mvn install怎么好像把mvn compile的活也干了,所以我平时都是使用mvn install就ok了.奇怪的是,为什么还要搞个mvn compile呢? 听了这 ...

  4. 百度java的线程技术_自我提升(基础技术篇)——java线程简介

    前言:虽然自己平时都在用多线程,也能完成基本的工作需求,但总觉得,还是对线程没有一个系统的概念,所以,查阅了一些资料,理解那些大神和官方的资料,写这么一篇关于线程的文章 本来想废话一番,讲讲自己的经历 ...

  5. 刷新mac地址命令_常用网络检测命令-必备技术

    现在弱电行业工作,设备基本上普遍是使用网络连接,因此具有一定网络检测命令知识,这时通过使用一些网络的基本命令来检测设备的网络状态.以下,介绍常用网络命令: 1.ping命令 ping 命令式用来测试T ...

  6. java 代码阅读题_● 试题三 阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 1.S - 赏学吧...

    ● 试题三 阅读以下说明和Java程序代码,将应填入(n)处的字句写在答题纸的对应栏内. [说明] 1.SMTP是发送E-mail的协议,常用以下5条命令发送E-mail: ·HELO,与SMTP服务 ...

  7. 用java编写验证码程序_编写,验证和分析实时Java应用程序

    本文是" 用实时Java开发"系列的第三篇也是最后一部分,展示了如何设计,编写,验证和分析基本的实时应用程序. 我们将说明: 应用程序的时间和性能要求. 为什么传统的非实时Java ...

  8. 响应因特网端口ping命令_如何使用Ping命令识别基本的Internet问题

    响应因特网端口ping命令 Next time you call your help desk, do you want to wow them with your networking knowle ...

  9. 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 ...

最新文章

  1. 运行PHP出现No input file specified错误解决办法
  2. Android+git+hudson+gradle持续集成
  3. 理解SetWindowOrg,SetViewportOrg,SetWindowExt,SetViewportExt
  4. 天水市一中2021高考成绩查询,天水高中成绩排名2021,天水中考分数线排行榜
  5. 使用SQL语句获取SQL Server数据库登录用户权限
  6. mysql优化--叶金荣老师讲座笔记
  7. pads9.5 (PCB design)
  8. 跳过百度网盘客户端快速下载
  9. tera term串口文本匹配打印时间脚本
  10. 元界Metaverse清单:你需要知道的一切
  11. html设置请求头host,Http请求头Host字段作用
  12. 快手2018/9/10
  13. Windows 11和安全启动
  14. Markdown标记语法Typora编辑器零基础入门新手学习使用总结教程
  15. OC正式协议和非正式协议的区别
  16. 2022 极术通讯-预见·第四代算力革命:三大主流计算平台CPU、GPU和DSA
  17. 飞机大战部分算法,思维解析,附有源代码.
  18. top、grep、ftp等详解
  19. 电脑为什么会蓝屏死机
  20. 【新手向】vue出现空白页情况之一

热门文章

  1. 连续子数组的最大和python_连续子数组的最大和
  2. python多线程处理文件_Python实验:采用多线程在一个文件中查找特定字符串
  3. Linux虚拟地址空间布局以及进程栈和线程栈总结
  4. 启明云端分享| SSD201 / SSD202D 在IP广播的应用
  5. 启明云端WT32-CAM操作视频,让你快速上手ESP32camera应用
  6. 计算机图形学在GIS中的应用,GIS在交通中的应用与发展
  7. layui的表格可以动态添加行吗_答疑分享052:插入表格,数据分析更方便
  8. 保存MATLAB中间变量值的方法:保存为txt文件或者mat文件
  9. OpenCV探索之路(三):滤波操作
  10. RecyclerView因版本问题无法加载