⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commportopen.java

📁 使用java实现的计算机自主发短信到手机。 运行界面上
💻 JAVA
字号:
package keti2;

import java.awt.*;
import java.io.*;
import javax.comm.*;
import java.util.*;
import java.util.StringTokenizer;

/**
 * Open a serial port using Java Communications.
 *
 */
public class CommPortOpen {
  /** How long to wait for the open to finish up. */
  public static final int TIMEOUTSECONDS = 30;

  /** The baud rate to use. */
  public static final int BAUD = 115200;

  /** The parent Frame, for the chooser. */
  protected Frame parent;

  /** The input stream */
  protected DataInputStream is;

  // protected DataInputStream in;
  /** The output stream */
  File fFile = new File("c:/a.txt");
  RandomAccessFile outf = new RandomAccessFile(fFile, "rw");

//protected FileInputStream filein;
  protected FileOutputStream fileout = new FileOutputStream(fFile);

  protected DataOutputStream oi = new DataOutputStream(fileout);
  protected PrintStream os;

  protected BufferedInputStream br;

  /** The last line read from the serial port. */
  protected String response;

  /** A flag to control debugging output. */
  protected boolean debug = true;

  /** The chosen Port Identifier */
  protected CommPortIdentifier thePortID;

  /** The chosen Port itself */
  protected CommPort thePort;

  public static void main(String[] argv) throws IOException,
      NoSuchPortException, PortInUseException,
      UnsupportedCommOperationException {
    new CommPortOpen(null).converse();
    System.exit(0);
  }

  /* Constructor */
  public CommPortOpen(Frame f) throws IOException, NoSuchPortException,
      PortInUseException,
      UnsupportedCommOperationException {
// Use the PortChooser from before. Pop up the JDialog.
    PortChooser chooser = new PortChooser(null);
    String portName = null;
    do {
      chooser.setVisible(true);
// Dialog done. Get the port name.
      portName = chooser.getSelectedName();
      if (portName == null)
        System.out.println("No port selected. Try again.\n");
    }
    while (portName == null);

    Frame1.showCommPort(portName);

// Get the CommPortIdentifier.
    thePortID = chooser.getSelectedIdentifier();
// Now actually open the port.
// This form of openPort takes an Application Name and atimeout.
//
    System.out.println("Trying to open " + thePortID.getName() + "...");
    System.out.println("right here 56");
    switch (thePortID.getPortType()) {
      case CommPortIdentifier.PORT_SERIAL:
        thePort = thePortID.open("DarwinSys DataComm",
                                 TIMEOUTSECONDS * 1000);

        SerialPort myPort = (SerialPort) thePort;
// set up the serial port
        myPort.setSerialPortParams(BAUD, SerialPort.DATABITS_8,
                                   SerialPort.STOPBITS_1,
                                   SerialPort.PARITY_NONE);

        break;
      case CommPortIdentifier.PORT_PARALLEL:
        thePort = thePortID.open("DarwinSys Printing",
                                 TIMEOUTSECONDS * 1000);
        ParallelPort pPort = (ParallelPort) thePort;
// Tell API to pick "best available mode" - can fail!
// myPort.setMode(ParallelPort.LPT_MODE_ANY);

// Print what the mode is
        int mode = pPort.getMode();
        switch (mode) {
          case ParallelPort.LPT_MODE_ECP:
            System.out.println("Mode is: ECP");
            break;
          case ParallelPort.LPT_MODE_EPP:
            System.out.println("Mode is: EPP");
            break;
          case ParallelPort.LPT_MODE_NIBBLE:
            System.out.println("Mode is: Nibble Mode.");
            break;
          case ParallelPort.LPT_MODE_PS2:
            System.out.println("Mode is: Byte mode.");
            break;
          case ParallelPort.LPT_MODE_SPP:
            System.out.println("Mode is: Compatibility mode.");
            break;
// ParallelPort.LPT_MODE_ANY is a "set only" mode;
// tells the API to pick "best mode"; will report the
// actual mode it selected.
          default:
            throw new IllegalStateException
                ("Parallel mode " + mode + " invalid.");
        }
        break;
      default: // Neither parallel nor serial??
        throw new IllegalStateException("Unknown port type " +
                                        thePortID);
    }
// Get the input and output streams
// Printers can be write-only
    try {
      thePort.setInputBufferSize(400);
      is = new DataInputStream(thePort.getInputStream());
      br = new BufferedInputStream(thePort.getInputStream());

    }
    catch (IOException e) {
      System.err.println("Can't open input stream: write-only");
      is = null;
    }
    os = new PrintStream(thePort.getOutputStream(), true);
    oi = new DataOutputStream(thePort.getOutputStream());

  }

  /** This method will be overridden by non-trivial subclasses
   * to hold a conversation.
   */
  protected void converse() throws IOException {
    System.out.println("Ready to read and write port.");
// Input/Output code not written -- must subclass.
// Finally, clean up.
    if (is != null)
      is.close();
    os.close();
    oi.close();
    br.close();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -