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

📄 commportmodem.java~112~

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

import java.awt.*;
import java.io.*;
import javax.comm.*;
import java.util.*;
import java.util.StringTokenizer;
import java.lang.CharSequence;
import sun.io.*;
import java.lang.Integer;
/**
* Subclasses CommPortOpen and adds send/expect handling for dealing
* with Hayes-type modems.
*
*/
public class CommPortModem extends CommPortOpen {
/** The last line read from the serial port. */
protected String response;


QueueLink recesms=new QueueLink();
QueueLink smsindex=new QueueLink();
Boolean HasNewsms;

/** A flag to control debugging output. */
protected boolean debug = true;
public CommPortModem(Frame f)
throws IOException, NoSuchPortException,PortInUseException,
UnsupportedCommOperationException {

super(f);
}
/** Send a line to a PC-style modem. Send \r\n, regardless of
* what platform we're on, instead of using println( ).
*/
public void WritePort(String s) throws IOException {
if (debug) {
System.out.print(">>> ");
System.out.print(s);
System.out.println( "");
}
os.print(s);

try {
            Thread.sleep(100);
            } catch (InterruptedException e) {
 //           nothing to do
            }
os.flush();
  /*make truely write into the port*/


// Expect the modem to echo the command.
//if (!expect(s)) {
//System.err.println("WARNING: Modem did not echo command.");
//}
// The modem sends an extra blank line by way of a prompt.
// Here we read and discard it.
//String junk = is.readLine( );

//if (junk.length( ) != 0) {
//System.err.print("Warning unexpected response: ");
//System.err.println(junk);
//}
}//end WritePort
/** Read a line, saving it in "response".
* @return true if the expected String is contained in the
response, false if not.
*/
public String ReadPort() throws IOException {
   byte[] buffer= new byte[40000];
   String smsget=new String();
   String []sms=new String[40];
    //String []index=new String[40];
   for(int l=1;l<40;l++)
       sms[l]="";

    try {
             Thread.sleep(10500);
        }
    catch (InterruptedException e) {
           //nothing to do
        }
    is.read(buffer);
    smsget=new String(buffer);
    response=smsget;
    response=response.trim();
    StringTokenizer stringtokenizer=new StringTokenizer(response);
   // System.out.print(response);
    int i=stringtokenizer.countTokens();
    if(i>=5)
    {
      String s2 = new String();
      s2 = stringtokenizer.nextToken();
      s2 = stringtokenizer.nextToken();
      s2 = stringtokenizer.nextToken();
      s2 = stringtokenizer.nextToken();

      int j = 4;
      int k = 1;
      int h = 0;
      while (j <= i) {

        do {

          if (j < i) {

            s2 = stringtokenizer.nextToken();
            if (h != k) {
              //index[k] = s2;
              System.out.print("\n");
              System.out.print(s2);
              System.out.print("\n");
              //index[k] = index[k].substring(0, index[k].length() - 5);

             // System.out.print(index[k]);
              System.out.print("\n");
              h++;
            }
            if(!s2.equals("OK"))
                sms[k] = sms[k] + s2;

          }

          j++;

        }
        while ( (j < i) && (!s2.equals("+CMGL:")));
        k++;

      } //end while
      //System.out.print(k);
      for (int m = 1; m <= k; m++)
        sms[m] = sms[m].trim();
      if (k > 3) {
        for (int m = 1; m <= k - 3; m++) {
          sms[m] = sms[m].trim();
          sms[m] = sms[m].substring(0, sms[m].length() - 6);

          recesms.Enqueue(sms[m]);
          //smsindex.Enqueue(index[m]);
        }
       sms[k - 2]= sms[k - 2].trim();
        //sms[k - 2] = sms[k - 2].substring(0, sms[k - 2].length() - 2);
        recesms.Enqueue(sms[k - 2]);

        //smsindex.Enqueue(index[k - 2]);

      }
      else if (k == 3)
          {
            sms[k - 2].trim();
       // sms[k - 2] = sms[k - 2].substring(0, sms[k - 2].length() - 2);
            recesms.Enqueue(sms[k - 2]);
            //smsindex.Enqueue(index[k - 2]);
          }//endelseif(k==3)
      else
      {
        System.out.print("\n");
        System.out.print("NO SMS COME here\n");
      }//end else
    }//endif


if (debug) {
   System.out.print("\n");
        }

return sms[1];
}
public String read()throws IOException{
  String smsget=new String();
  byte[] buffer= new byte[400];
  try {
            Thread.sleep(1000);
            } catch (InterruptedException e) {
// nothing to do
            }
  is.read(buffer);
  smsget=new String(buffer);
  response=smsget;
  response=response.trim();
  return response;
}
public String readshort()throws IOException{
  String smsget=new String();
  byte[] buffer= new byte[400];
  try {
            Thread.sleep(100);
            } catch (InterruptedException e) {
// nothing to do
            }
  is.read(buffer);
  smsget=new String(buffer);
  response=smsget;
  response=response.trim();
  return response;
}

public int getGSMresponse()
   {
     int i=0;
     int nGSMState;
     String test=new String();
     System.out.print(response);
     StringTokenizer stringtokenizer1=new StringTokenizer(response);
     i=stringtokenizer1.countTokens();
     nGSMState=3;//gsm_wait
     while(stringtokenizer1.hasMoreTokens())
     {
       test=stringtokenizer1.nextToken();
       if((test.length()>=5)&&(test.substring(0,5).equals("ERROR")))
       nGSMState=2;

     }
     if(test.equals("OK")) nGSMState=1;//gsm_ok
     //else if(test.equals("+CMS ERROR")) nGSMState=2;//gsm_err
     System.out.print("\n");

     return nGSMState;
  }


}//end class

⌨️ 快捷键说明

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