亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serialconnection_new.java

?? 利用JAVA采用網絡通訊的例子,支持weblogic及websphere
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package collector.communication;

/* @(#)SerialConnection_new.java	1.6 98/07/17 SMI
 *
 * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Sun grants you ("Licensee") a non-exclusive, royalty free, license
 * to use, modify and redistribute this software in source and binary
 * code form, provided that i) this copyright notice and license appear
 * on all copies of the software; and ii) Licensee does not utilize the
 * software in a manner which m_InputStream disparaging to Sun.
 *
     * This software m_InputStream provided "AS IS," without a warranty of any kind.
 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
 * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE
 * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS
 * BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING
 * OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * This software m_InputStream not designed or intended for use in on-line control
 * of aircraft, air traffic, aircraft navigation or aircraft
 * communications; or in the design, construction, operation or
 * maintenance of any nuclear facility. Licensee represents and
 * warrants that it will not use or redistribute the Software for such
 * purposes.
 */

import java.io.*;
import javax.comm.*;

import collector.common.*;

/**
 * A class that handles the details of a serial connection. Reads from one
 * TextArea and writes to a second TextArea.
 * Holds the state of the connection.
 */
public class SerialConnection_new
    implements SerialPortEventListener, CommPortOwnershipListener, IComm {
  private SerialParameters m_SerialParameters = null;
  private OutputStream m_OutputStream = null;
  private InputStream m_InputStream = null;
  //private KeyHandler keyHandler;

  private CommPortIdentifier m_PortId = null;
  private SerialPort m_Port = null;
  private int m_PortNo = -1;
  private BufferStream m_BufferStream = null;
//  private byte[] m_RecBuffer = null;
//  private int m_RecNum = 0;

  private boolean m_Open = false;

  /**
   * Creates a SerialConnection_new object and initilizes variables passed in
   * as params.
   *
   * @param parent A SerialDemo object.
   * @param m_SerialParameters A SerialParameters object.
   * @param messageAreaOut The TextArea that messages that are to be sent out
   * of the serial port are entered into.
   * @param messageAreaIn The TextArea that messages comming into the serial
   * port are displayed on.
   */
  public SerialConnection_new( /*SerialDemo parent,*/
      SerialParameters m_SerialParameters
      /*TextArea messageAreaOut,
                              TextArea messageAreaIn*/) {
    /*	this.parent = parent;*/
    this.m_SerialParameters = m_SerialParameters;
    this.m_BufferStream = new BufferStream();

    /*	this.messageAreaOut = messageAreaOut;
        this.messageAreaIn = messageAreaIn;
     */
    this.m_Open = false;
  }

  /**
   * Attempts to m_Open a serial connection and streams using the m_SerialParameters
   * in the SerialParameters object. If it m_InputStream unsuccesfull at any step it
   * returns the port to a closed state, throws a
   * <code>SerialConnection_newException</code>, and returns.
   *
   * Gives a timeout of 30 seconds on the portOpen to allow other applications
   * to reliquish the port if have it m_Open and no longer need it.
   */

  public int setPortId(CommPortIdentifier m_PortId) {
    this.m_PortId = m_PortId;
    return 1;
  }

  public int initConnection() {
    // Obtain a CommPortIdentifier object for the port you want to m_Open.
    //CollectorDefine.SystemPrintln ("  serial initConnnection start up!!!  ");
    try {
      this.m_PortId =
          CommPortIdentifier.getPortIdentifier(m_SerialParameters.getPortName());
    }
    catch (NoSuchPortException e) {
      //	    throw new ConnectionException(e.getMessage());
      CFunction.putHintString(1,
                              "無此端口 " + "端口號:" + m_SerialParameters.getPortName());
      return -1;
    }

    // Open the port represented by the CommPortIdentifier object. Give
    // the m_Open call a relatively long timeout of 30 seconds to allow
    // a different application to reliquish the port if the user
    // wants to.
    try {
      this.m_Port = (SerialPort) m_PortId.open(CFunction.getLocalHostName() +
                                               "_App", 30000);
    }
    catch (PortInUseException e) {
      //	    throw new ConnectionException(e.getMessage());
      CFunction.putHintString(1,
                              "端口已占用 " + "端口號:" +
                              m_SerialParameters.getPortName());

      // wj add
      // Close the port.
      this.m_Port.close();
      this.m_Open = false;
      //

      return -1;
    }

    // Set the m_SerialParameters of the connection. If they won't set, close the
    // port before throwing an exception.
    try {
      if (setConnectionParameters(this.m_SerialParameters) <= 0) {
        CFunction.putHintString(1,
                                "端口參數錯 " + "端口號:" +
                                m_SerialParameters.getPortName());
        this.m_Port.close();
        this.m_Open = false;
        return -1;
      }
    }
    catch (Exception m_Exception) {
      CFunction.putHintString(1,
          "setConnectionParameters In SerialConnection_new Error #1 ");
      return -1;
    }

    // Open the input and output streams for the connection. If they won't
    // m_Open, close the port before throwing an exception.
    try {
      this.m_OutputStream = this.m_Port.getOutputStream();
      this.m_InputStream = m_Port.getInputStream();
    }
    catch (IOException e) {
      this.m_Port.close();
      this.m_Open = false;
      //	    throw new ConnectionException("Error opening i/o streams");
      CFunction.putHintString(1,
                              "打開數據流出錯 " + "端口號:" +
                              m_SerialParameters.getPortName());

      return -1;
    }

    // Create a new KeyHandler to respond to key strokes in the
    // messageAreaOut. Add the KeyHandler as a keyListener to the
    // messageAreaOut.
    /*	keyHandler = new KeyHandler(m_OutputStream);
            messageAreaOut.addKeyListener(keyHandler);
     */

    // Add this object as an event listener for the serial port.
    // wj add at hangzhou 20040528
    try {
      this.m_Port.addEventListener(this);
    }
    //catch (TooManyListenersException e)
    catch (Exception e) {
      m_Port.close();
      this.m_Open = false;
      //	    throw new ConnectionException("too many listeners added");
      CFunction.putHintString(1,
                              "端口監聽器太多 " + "端口號:" + m_SerialParameters.getPortName());
      return -1;
    }

    this.m_Port.notifyOnDataAvailable(true);

    this.m_Port.notifyOnBreakInterrupt(true);
    this.m_Port.notifyOnCarrierDetect(true);
    this.m_Port.notifyOnCTS(true);
    this.m_Port.notifyOnDSR(true);
    this.m_Port.notifyOnFramingError(true);
    this.m_Port.notifyOnOutputEmpty(true);
    this.m_Port.notifyOnOverrunError(true);
    this.m_Port.notifyOnRingIndicator(true);
    this.m_Port.notifyOnParityError(true);
    // wj add at hangzhou 20040528

    // Set receive timeout to allow breaking out of polling loop during
    // input handling.
    try {
      this.m_Port.enableReceiveTimeout(30);
    }
    catch (UnsupportedCommOperationException e) {
      CFunction.putHintString(1,
          "setConnectionParameters In SerialConnection_new Error #2 ");

      // wj add at hangzhou 20040528
      this.m_Port.removeEventListener();
      m_Port.close();
      this.m_Open = false;
      // wj add at hangzhou 20040528

      return -1;
    }

    // wj add at hangzhou 20040528
    // Add ownership listener to allow ownership event handling.
    this.m_PortId.addPortOwnershipListener(this);
    // wj modi at hangzhou 20040528

    m_Open = true;
    return 1;
  }

  /**
   * Sets the connection m_SerialParameters to the setting in the m_SerialParameters object.
       * If set fails return the m_SerialParameters object to origional settings and
   * throw exception.
   */
  public int setConnectionParameters(SerialParameters m_SerialParameters) {
    // Save state of m_SerialParameters before trying a set.
    //CollectorDefine.SystemPrintln ("fffffffff : " + m_SerialParameters.toString ());
    int oldBaudRate = m_Port.getBaudRate();
    int oldDatabits = m_Port.getDataBits();
    int oldStopbits = m_Port.getStopBits();
    int oldParity = m_Port.getParity();
    int oldFlowControl = m_Port.getFlowControlMode();

    //CollectorDefine.SystemPrintln ("gggggggg : " + m_SerialParameters.toString ());
    this.m_SerialParameters = m_SerialParameters;
    //CollectorDefine.SystemPrintln ("hhhhhhhhh : " + m_SerialParameters.toString ());

    // Set connection m_SerialParameters, if set fails return m_SerialParameters object
    // to original state.
    try {
      m_Port.setSerialPortParams(m_SerialParameters.getBaudRate(),
                                 m_SerialParameters.getDatabits(),
                                 m_SerialParameters.getStopbits(),
                                 m_SerialParameters.getParity());
      //CollectorDefine.SystemPrintln ("iiiiii : " + m_SerialParameters.toString ());
    }
    catch (UnsupportedCommOperationException e) {
      //CollectorDefine.SystemPrintln ("jjjjjjjjj : " + m_SerialParameters.toString ());
      this.m_SerialParameters.setBaudRate(oldBaudRate);
      this.m_SerialParameters.setDatabits(oldDatabits);
      this.m_SerialParameters.setStopbits(oldStopbits);
      this.m_SerialParameters.setParity(oldParity);
      //	    throw new ConnectionException("Unsupported parameter");
      CFunction.putHintString(1,
                              "端口參數不支持 " + "端口號:" +
                              m_SerialParameters.getPortName());
      return -1;
    }

    // Set flow control.
    try {
      //CollectorDefine.SystemPrintln ("kkkkkkkkkk : " + m_SerialParameters.toString ());
      m_Port.setFlowControlMode(m_SerialParameters.getFlowControlIn()
                                | m_SerialParameters.getFlowControlOut());
    }
    catch (UnsupportedCommOperationException e) {
      //	    throw new ConnectionException("Unsupported flow control");
      CFunction.putHintString(1,
                              "端口流控制參數不支持 " + "端口號:" +
                              m_SerialParameters.getPortName());
      return -1;
    }

    //CollectorDefine.SystemPrintln ("lllllll : " + m_SerialParameters.toString ());
    return 1;
  }

  /**
   * Close the port and clean up associated elements.
   */
  public int closeConnection() {
    // If port m_InputStream alread closed just return.
    if (!m_Open) {
      CFunction.putHintString(1,
                              "closeConnection In SerialConnnection  " + "端口號:" +
                              m_SerialParameters.getPortName());
      return -1;
    }

    // Remove the key listener.
    /*messageAreaOut.removeKeyListener(keyHandler);*/
    // Check to make sure m_Port has reference to avoid a NPE.
    if (m_Port != null) {
      try {
        //close the i/o streams.
        //m_InputStream.reset ();
        this.m_OutputStream.close();
        this.m_InputStream.close();

        //close the port.
        this.m_Port.close();


        // wj add at hangzhou 20040529
        this.m_BufferStream.close();
        this.m_BufferStream = null;

        this.m_OutputStream = null;
        this.m_InputStream = null;
        this.m_Port = null;
        // wj add at hangzhou 20040529
      }
      catch (IOException e) {
        CFunction.putHintString(1,
                                "closeConnection In SerialConnection_new Error #1 ");
        System.err.println(e);
        return -1;
      }

      // wj add at hangzhou 20040528
      // Remove the ownership listener.
      this.m_PortId.removePortOwnershipListener(this);
      // wj add at hangzhou 20040528
    }

    m_Open = false;
    return 1;
  }

  /**
   * Send a one second break signal.
   */
  public int sendBreak() {
    m_Port.sendBreak(1000);

    return 1;
  }

  /**
   * Reports the m_Open status of the port.
       * @return true if port m_InputStream m_Open, false if port m_InputStream closed.
   */
  public boolean isConnectionOpen() {
    return m_Open;
  }

  /**
   * Handles SerialPortEvents. The two types of SerialPortEvents that this
   * program m_InputStream registered to listen for are DATA_AVAILABLE and BI. During
   * DATA_AVAILABLE the port buffer m_InputStream read until it m_InputStream drained, when no more
       * data m_InputStream availble and 30ms has passed the method returns. When a BI
   * event occurs the words BREAK RECEIVED are written to the messageAreaIn.
   */

  public void serialEvent(SerialPortEvent e) {
    //Create a StringBuffer and int to receive input data.
    //StringBuffer inputBuffer = new StringBuffer();
    int newData = 0;
    // Determine type of event.
    switch (e.getEventType()) {

      // Read data until -1 m_InputStream returned. If \r m_InputStream received substitute
      // \n for correct newline handling.
      case SerialPortEvent.DATA_AVAILABLE:
        while (newData != -1) {
          try {
            newData = m_InputStream.read();
            if (newData == -1) {
              //CollectorDefine.SystemPrintln ("rec no byte ");
              break;
            }
            if ('\r' == (char) newData) {
              CollectorDefine.SystemPrintln("rec r");
            }
            else {
              //CollectorDefine.SystemPrintln ("rec byte ");
              //CollectorDefine.SystemPrintln ("rec byte ," +"len :" + newData);

              this.m_BufferStream.write(newData);
            }
          }
          catch (IOException ex) {
            System.err.println(ex);
            return;
          }
        }

        break;

      case SerialPortEvent.BI:
        CFunction.putHintString(1, "BI event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.CTS:
        CFunction.putHintString(1, "CTS event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.CD:
        CFunction.putHintString(1, "CD event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.DSR:
        CFunction.putHintString(1, "DSR event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.FE:
        CFunction.putHintString(1, "FE event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.OE:
        CFunction.putHintString(1, "OE event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;
      case SerialPortEvent.PE:
        CFunction.putHintString(1, "PE event occcured." + "端口號:" +
                                m_SerialParameters.getPortName());

        break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线一区二区三区| 亚洲精品国产无天堂网2021| 精品一区二区久久久| 欧美成人一区二区三区在线观看| 日本sm残虐另类| 欧美tk丨vk视频| 成人小视频免费观看| 日韩毛片一二三区| 欧美亚洲尤物久久| 麻豆精品蜜桃视频网站| 国产午夜亚洲精品羞羞网站| 色综合咪咪久久| 日韩**一区毛片| 欧美精品一区二区在线播放| k8久久久一区二区三区| 午夜日韩在线观看| 久久综合九色综合久久久精品综合| 成人午夜视频网站| 亚洲妇女屁股眼交7| 久久精品这里都是精品| 日本精品视频一区二区| 麻豆91免费看| 中文字幕在线观看不卡| 欧美日韩成人激情| 国产精品一二三四五| 亚洲一区二区三区四区的| 欧美成人福利视频| 91免费精品国自产拍在线不卡| 日韩高清不卡一区二区三区| 国产精品素人视频| 欧美精品亚洲二区| 成人av网站在线| 日韩和欧美一区二区| 国产精品久久久久一区| 91精品国产综合久久精品性色| 国产麻豆精品95视频| 亚洲一区二区不卡免费| 国产精品午夜电影| 日韩一区二区视频在线观看| 一本到不卡免费一区二区| 激情小说欧美图片| 一区二区三区四区中文字幕| 国产欧美综合在线观看第十页| 欧美精品久久99| 91福利小视频| www.综合网.com| 国产成人精品一区二| 美女爽到高潮91| 日一区二区三区| 一区二区三区成人在线视频| 国产欧美一区二区三区在线看蜜臀| 欧美乱妇23p| 91高清视频在线| 99精品久久免费看蜜臀剧情介绍| 日本亚洲一区二区| 亚洲一二三四久久| 亚洲啪啪综合av一区二区三区| 国产午夜精品福利| 久久先锋影音av| 日韩欧美国产一区二区在线播放| 欧美又粗又大又爽| 欧美主播一区二区三区美女| www.色综合.com| 成人h动漫精品一区二区| 国产乱码精品一区二区三区五月婷| 蜜臀av一区二区在线免费观看| 图片区日韩欧美亚洲| 亚洲线精品一区二区三区八戒| 亚洲欧美日韩国产中文在线| 国产精品久久久久久福利一牛影视 | 欧美一区二区视频在线观看2022| 欧洲一区二区三区在线| 在线免费观看日本欧美| 91免费看片在线观看| 91捆绑美女网站| 日本高清免费不卡视频| 欧美婷婷六月丁香综合色| 在线日韩av片| 3atv一区二区三区| 日韩三级电影网址| 久久综合色之久久综合| 国产欧美一区视频| 日韩伦理电影网| 一区二区成人在线观看| 无吗不卡中文字幕| 精品一区二区三区在线观看国产| 九九精品视频在线看| 国产成人精品免费看| 95精品视频在线| 欧美日韩一区二区三区高清| 欧美一区二区成人6969| 久久久三级国产网站| 日韩美女啊v在线免费观看| 亚洲制服丝袜av| 日本美女一区二区三区视频| 久色婷婷小香蕉久久| 国产成人在线电影| 色欧美片视频在线观看在线视频| 欧美丝袜丝交足nylons图片| 91麻豆精品国产91久久久更新时间 | 欧美欧美欧美欧美| 欧美v亚洲v综合ⅴ国产v| 亚洲国产精品精华液ab| 亚洲午夜一区二区三区| 久草精品在线观看| 不卡的av电影| 3atv一区二区三区| 国产精品水嫩水嫩| 性久久久久久久久| 国产精品一品二品| 欧美日韩激情一区二区| 久久久久久久久久久久电影| 亚洲欧美国产77777| 免费成人你懂的| 成人污污视频在线观看| 欧美日韩不卡一区二区| 欧美激情综合五月色丁香小说| 一区二区不卡在线视频 午夜欧美不卡在| 奇米影视一区二区三区| 成人黄色免费短视频| 91精品国模一区二区三区| 国产精品第一页第二页第三页| 日日摸夜夜添夜夜添国产精品| 国产高清精品网站| 91精品午夜视频| **性色生活片久久毛片| 久久不见久久见免费视频7| 欧洲日韩一区二区三区| 国产日韩精品一区| 麻豆精品新av中文字幕| 在线精品视频免费观看| 国产区在线观看成人精品| 日韩av一区二| 欧美日韩精品系列| 亚洲乱码一区二区三区在线观看| 久久99在线观看| 欧美日韩国产一级| 亚洲色图.com| 成人手机电影网| 久久老女人爱爱| 美日韩一区二区| 欧美性一二三区| 亚洲乱码一区二区三区在线观看| 国产经典欧美精品| 精品久久久久久久久久久久久久久 | 蜜桃视频在线观看一区| 色婷婷久久久久swag精品| 欧美国产精品劲爆| 韩国一区二区视频| 日韩精品一区国产麻豆| 天堂一区二区在线| 欧美日韩国产免费| 亚洲一区二区综合| 欧洲一区在线观看| 亚洲精品乱码久久久久久久久| 丰满亚洲少妇av| 国产日韩欧美综合一区| 国产高清无密码一区二区三区| 精品国产一区二区三区av性色| 蜜臀国产一区二区三区在线播放 | 国产精品中文有码| 久久午夜免费电影| 国产一区三区三区| 久久久夜色精品亚洲| 国产一区二区精品在线观看| 亚洲精品一区二区三区在线观看 | 日韩精品一级二级 | 欧美精品 国产精品| 视频一区视频二区在线观看| 欧美猛男超大videosgay| 日韩黄色免费电影| 欧美电视剧在线观看完整版| 裸体一区二区三区| 久久久美女毛片| 成人黄页毛片网站| 一区二区三区免费网站| 欧美少妇xxx| 麻豆91精品视频| 久久久久成人黄色影片| 成人av网址在线| 亚洲国产精品嫩草影院| 3d动漫精品啪啪一区二区竹菊| 日本一区中文字幕| 国产午夜一区二区三区| 色吧成人激情小说| 丝袜亚洲另类欧美| 久久久国际精品| eeuss鲁片一区二区三区在线看 | 亚洲午夜久久久久久久久电影网 | 精品国产区一区| 粉嫩嫩av羞羞动漫久久久 | 久久99精品久久只有精品| 日本一区二区三区四区| 色综合欧美在线| 精品在线视频一区| 亚洲视频一区二区在线观看| 911精品产国品一二三产区| 国内精品伊人久久久久av影院| 狠狠色伊人亚洲综合成人| 中文字幕不卡在线观看|