几个对COM口进行操作的类方法

  // 初始化串口驱动
  private boolean initCommDriver_win32() {
    try {
      System.loadLibrary("win32com ");
      String driverName = "com.sun.comm.Win32Driver ";
      CommDriver driver = (CommDriver) Class.forName(driverName).newInstance();
      driver.initialize();
      return true;
    } catch (Throwable e) {
      MessageDialog.openInformation(null, "initDriver ", "initDriver_Err_Win32Com ");
      e.printStackTrace();
      return false;
    }
  }

  // 打开串口
  private boolean OpenComm(String PortName) {
    // 获取指定的COM端口
    try {
      portIdentifier = CommPortIdentifier.getPortIdentifier(PortName);
    } catch (NoSuchPortException e) {
      e.printStackTrace();
      return false;
    }
    // 打开端口(3秒打不开则失败)
    try {
      serialPort = (SerialPort) portIdentifier.open(this.getTitle(), 3000);
    } catch (PortInUseException e) {
      MessageDialog.openInformation(null, "OpenComm ", "Open_Err ");
      e.printStackTrace();
      return false;
    }
    // 设置端口通讯参数 (波特率 = 9600,数据位 = 8,停止位 = 1 ,校验位 =奇校验)
    try {
      serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
          SerialPort.PARITY_ODD);
    } catch (UnsupportedCommOperationException e) {
      MessageDialog.openInformation(null, "OpenComm ", "Set_Port ");
      e.printStackTrace();
      return false;
    }
    // 设置输入流
    try {
      inputStream = serialPort.getInputStream();
    } catch (IOException e) {
      MessageDialog.openInformation(null, "OpenComm ", "Set_InputStream ");
      e.printStackTrace();
      return false;
    }
    // 设置输出流
    try {
      outputStream = serialPort.getOutputStream();
    } catch (IOException e) {
      MessageDialog.openInformation(null, "OpenComm ", "Set_OutputStream ");
      e.printStackTrace();
      return false;
    }
    // 当串口有数据时通知
    serialPort.notifyOnDataAvailable(true);
    // 当串口通讯中断时通知
    serialPort.notifyOnBreakInterrupt(true);
    // 接收数据超时设置
    try {
      serialPort.enableReceiveTimeout(30);
    } catch (UnsupportedCommOperationException e) {
      e.printStackTrace();
      return false;
    }
    // 设置一个串口数据暂存区
    strBuffer = new StringBuffer();
    // 给当前串口添加一个监听器 DisposeSerialportMessage
    try {
      serialPort.addEventListener(new SerialPortEventListener() {
        public void serialEvent(SerialPortEvent e) {
          disposeSerialportMessage(e);
        }
      });
    } catch (TooManyListenersException e) {
      e.printStackTrace();
      return false;
    }
    return true;
  }
快乐渡过每一天,减肥坚持每一天