亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

一個使用Java讀取串口的程序(1)

2019-11-18 13:24:42
字體:
來源:轉載
供稿:網友

  以下是我寫的用java讀取串口的程序,應一些網友的要求在這里貼出來。這個程序里面還有一些問題,也希望有經驗的網友能夠給我提點意見。
  
  這個簡單的程序包括以下文件:
  
   IMU.java (主程序)
   ReadBuffer.java (從緩沖區讀取一個消息)
   ReadSerial.java (讀取串口數據并放入緩沖區)
   SerialBuffer.java (緩沖區)
   WriteSerial.java (不斷的往串口送星號'*')
  
  測試程序:
  
   SendCom.java (將一個數據文件往串口發送)
   SEND.TXT (供測試用的數據文件)
  
  在這個通訊程序中使用了一個簡單的協議,既不同的消息之間用星號'*'作為分隔。這個程序中的問題是ReadSerial進程和WriteSerial進程不能夠同時啟動,出錯信息是不能夠打開串口,因為同樣一個串口不能夠同時被打開兩次(在ReadSerial中聲明了FileReader
  
  測試程序:
  
   SendCom.java (將一個數據文件往串口發送)
   SEND.TXT (供測試用的數據文件)
  
  在這個通訊程序中使用了一個簡單的協議,既不同的消息之間用星號'*'作為分隔。這個程序中的問題是ReadSerial進程和WriteSerial進程不能夠同時啟動,出錯信息是不能夠打開串口,因為同樣一個串口不能夠同時被打開兩次(在ReadSerial中聲明了FileReader和在WriteSerial中聲明了FileWriter)。這樣是不能夠實現全雙工通訊的。不知道有沒有做過的大俠能夠講講處理的辦法。
  
  /*
  *
  * IMU.java 1.0
  * Main PRogram for Serial Communication
  *
  * Created: March 27, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  * qjiang@tsinghua.edu
  *
  */
  
  import java.io.*;
  
  class IMU
  {
   public static void main(String[] args)
   {
   //TO DO: Add your JAVA codes here
  
   File ComPort = new File("COM1");
  
   SerialBuffer SB = new SerialBuffer();
   ReadSerial r1 = new ReadSerial(SB, ComPort);
   ReadBuffer r2 = new ReadBuffer(SB);
   WriteSerial r3 = new WriteSerial(ComPort);
  
   r1.start();
   r2.start();
   r3.start();
   }
  }
  
  /*
  *
  * ReadBuffer.java 1.0
  * Program to Read the Serial Buffer
  *
  * Created: March 27, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  * qjiang@tsinghua.edu
  
  *
  */
  
  import java.io.*;
  
  public class ReadBuffer extends Thread
  {
   private SerialBuffer ComBuffer;
  
   public ReadBuffer(SerialBuffer SB)
   {
   ComBuffer = SB;
   }
  
   public void run()
   {
   String Msg;
  
   while (true)
   {
   Msg = ComBuffer.GetMsg();
   System.out.println(Msg);
   }
  
   }
  }
  
  /*
  *
  * ReadSerial.java 1.0
  * Program to read characters from the serial port and put it
  * to the buffer
  *
  * Created: March 27, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  * qjiang@tsinghua.edu
  *
  */
  
  import java.io.*;
  
  public class ReadSerial extends Thread
  {
   private SerialBuffer ComBuffer;
   private File ComPort;
  
   public ReadSerial(SerialBuffer SB, File Port)
   {
   ComBuffer = SB;
   ComPort = Port;
   }
  
   public void run()
   {
   int c;
   try
   {
   FileReader in = new FileReader(ComPort);
   while (true)
   {
   c = in.read();
   ComBuffer.PutChar(c);
   }
   try
   {
   FileReader in = new FileReader(ComPort);
   while (true)
   {
   c = in.read();
  
   ComBuffer.PutChar(c);
   }
   } catch (IOException e) {}
   }
  }
  
  
  /*
  *
  * SerialBuffer.java 1.0
  * Class that implements the serial buffer
  *
  * Created: March 27, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  * qjiang@tsinghua.edu
  
  *
  */
  
  public class SerialBuffer
  {
   private String Content = "";
   private String CurrentMsg, TempContent;
   private boolean available = false;
  
   public synchronized String GetMsg()
   {
   int SepMark;
  
   if ((SepMark = Content.indexOf('*')) == -1)
  {
   available = false;
   while (available == false)
   {
   try
   {
   wait();
   } catch (InterruptedException e) { }
   }
   SepMark = Content.indexOf('*');
   }
  
   CurrentMsg = Content.substring(0, SepMark);
   TempContent = Content.substring(SepMark+1);
   Content = TempContent;
   notifyAll();
   return CurrentMsg;
   }
  
   public synchronized void PutChar(int c)
   {
   Character d = new Character((char) c);
   Content = Content.concat(d.toString());
   if (c == '*')
   {
   available = true;
   }
   notifyAll();
   }
  }
  
  
  /*
  *
  * WriteSerial.java 1.0
  * Program to send a character to the serial port
  *
  * Created: March 27, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  * qjiang@tsinghua.edu
  *
  */
  
  import java.io.*;
  
  public class WriteSerial extends Thread
  {
   private SerialBuffer ComBuffer;
   private File ComPort;
  
   public WriteSerial(File Port)
   {
   ComPort = Port;
   }
  
   public void run()
   {
   int c;
   try
   {
   FileWriter out = new FileWriter(ComPort);
   while (true)
   {
   out.write('*');
   }
   } catch (IOException e)
   {
   System.out.println(e.getMessage());
   }
   }
  }
  /*
  *
  * SendCom.java 1.0
  *
  * Project: Java Based Information Exchange Support System
  * Onboard Plug-in System
  * Sending data through serial port
  *
  * Created: March 15, 2001
  *
  * Author : Qingye Jiang (John)
  * American GNC Corporation
  * 888 Easy St, Simi Valley CA 93065-1812
  *
  * Contact: (805) 582-0582 (Tel), (805) 582-0098 (Fax)
  *
  */
  
  import java.io.*;
  
  public class SendCom
  {

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费视频网站| 97精品免费视频| 国产精品美女999| xxx欧美精品| 国语自产精品视频在免费| 久久久精品一区二区| 欧美日韩在线第一页| 国产欧美亚洲视频| 亚洲加勒比久久88色综合| 成人春色激情网| 国产一区二区三区四区福利| 97在线观看免费高清| 成人性生交大片免费看视频直播| 国产成人精品日本亚洲| 欧美丝袜一区二区| 欧美日韩国产成人高清视频| 欧美激情网友自拍| 日韩中文在线视频| 久久亚洲精品网站| 亚洲女人天堂av| 亚洲精品久久久久久久久久久久| 亚洲人午夜精品免费| 国产精品一区二区久久| 欧美人与物videos| 全色精品综合影院| 国产91在线高潮白浆在线观看| 2019中文字幕在线| 亚洲女在线观看| 久久精品夜夜夜夜夜久久| 亚洲欧洲日韩国产| 国产精品一区二区三区在线播放| 亚洲欧美国产va在线影院| 亚洲日韩欧美视频| 亚洲国产欧美久久| 国产精品999| www.xxxx精品| 国产99久久精品一区二区 夜夜躁日日躁| 2019亚洲日韩新视频| 91免费看视频.| 日韩经典一区二区三区| 精品美女永久免费视频| 日韩在线观看视频免费| 亚洲欧美另类自拍| 久久久噜噜噜久久久| 亚洲美女在线观看| 一本一道久久a久久精品逆3p| 亚洲欧美一区二区三区情侣bbw| 国产欧美日韩高清| 精品亚洲国产成av人片传媒| 日韩一区在线视频| 欧美日韩视频免费播放| 欧美成人精品不卡视频在线观看| 日韩a**中文字幕| 91成人在线视频| 亚洲美女激情视频| 久久99国产精品自在自在app| 国产日韩精品电影| 亚洲精品有码在线| 久久精品99久久久香蕉| 欧美日韩在线免费| 久久久久久久久久亚洲| 欧美小视频在线| 91精品在线一区| 国产又爽又黄的激情精品视频| 久久精品国产综合| 中文字幕亚洲第一| 92福利视频午夜1000合集在线观看| 69视频在线播放| 一级做a爰片久久毛片美女图片| 自拍亚洲一区欧美另类| 国产高清视频一区三区| 欧美老女人性视频| 色婷婷综合久久久久中文字幕1| 日韩免费中文字幕| 日韩视频在线一区| 国产成人亚洲综合| 日韩免费观看在线观看| 日本一区二区在线播放| 欧美疯狂做受xxxx高潮| 国产精品福利在线| 国产97在线|日韩| 色先锋久久影院av| 中文字幕亚洲欧美日韩在线不卡| 欧美性感美女h网站在线观看免费| 成人激情电影一区二区| 国产专区精品视频| 亚洲精品视频免费在线观看| 日韩精品中文字幕在线观看| 57pao成人国产永久免费| 久久99国产精品久久久久久久久| 91在线观看免费高清完整版在线观看| 黑人极品videos精品欧美裸| 亚洲图片在区色| 在线看片第一页欧美| 黑人巨大精品欧美一区免费视频| 成年无码av片在线| 久久99精品国产99久久6尤物| 午夜精品久久久久久久男人的天堂| 视频在线观看一区二区| 欧美精品在线免费| 国产精品免费一区二区三区都可以| 国产有码一区二区| 日韩电影免费在线观看中文字幕| 在线视频精品一| 久久影院资源站| 欧美整片在线观看| 欧美视频在线观看免费网址| 538国产精品一区二区在线| 久久精品美女视频网站| 国产精品一区二区久久久| 亚洲无限乱码一二三四麻| 日韩欧美中文字幕在线观看| 97视频免费观看| 欧美肥臀大乳一区二区免费视频| 国产精品久久久久久婷婷天堂| 亚洲风情亚aⅴ在线发布| 精品伊人久久97| 精品久久久久久久久久久久| 欧美在线视频免费| 精品综合久久久久久97| 少妇激情综合网| 国产日韩在线播放| 成人免费激情视频| 久久久久久久网站| 日本一本a高清免费不卡| 91在线视频成人| 国产a级全部精品| 伊人久久男人天堂| 91夜夜揉人人捏人人添红杏| 中文字幕久精品免费视频| 全球成人中文在线| 精品无码久久久久久国产| 国产精品视频久久久久| 国产精品v片在线观看不卡| 久久福利视频网| 亚洲欧美国产精品va在线观看| 欧美精品久久一区二区| 亚洲精品xxxx| 久久久999成人| 中文字幕久久亚洲| 日韩欧美大尺度| 亚洲精品乱码久久久久久金桔影视| 亚洲人成人99网站| 亚洲午夜色婷婷在线| 中文字幕亚洲色图| 亚洲欧美日韩精品久久亚洲区| 国产成人在线亚洲欧美| 亚洲欧美激情另类校园| 亚洲免费高清视频| 国内精久久久久久久久久人| 亚洲人成电影网站色xx| 丝袜一区二区三区| 欧美精品电影免费在线观看| 久久夜色精品国产亚洲aⅴ| 成人激情视频在线| 亚洲最大福利视频网站| 色综合久综合久久综合久鬼88| 亚洲最大的av网站| 国产精品成人aaaaa网站| 亚洲人成在线一二| 日韩大陆毛片av| 2019av中文字幕| 最新中文字幕亚洲| 久久久久久久一区二区三区|