📄 application1.java
字号:
package keti2;
import javax.swing.UIManager;
import java.awt.*;
import java.io.*;
import javax.comm.*;
import java.util.*;
import java.lang.*;
import java.util.StringTokenizer;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class Application1 {
boolean packFrame = false;
static String[] s = new String[30];
String[] smsbuffer = new String[256];
protected static String pnum;
protected static String chinesesms;
int m = 1;
Vector cell = new Vector();
Frame1 frame = new Frame1();
//Construct the application
public Application1() {
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) throws IOException,
NoSuchPortException, PortInUseException,
UnsupportedCommOperationException {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
int time1 = 0;
int nState;
//1---stBeginRest 开始休息/延时
//2---stContinueRest 继续休息/延时
//3---stSendMessageRequest 发出发送短消息命令
//4---stSendMessageResponse 等待发送短消息命令反馈
//5---stSendMessageWaitIdle 发送短消息失败,等待GSM就绪
//6---stReadMessageRequest 发送读取短消息列表的命令
//7---stReadMessageResponse 等待读取短消息命令反馈(读取短消息列表到缓冲区)
//8---stDeleteMessageRequest 发送删除短消息命令
//9---stDeleteMessageResponse 等待删除短消息命令反馈
//10--stDeleteMessageWaitIdle 删除短消息失败,等待GSM就绪
//11--stExitThread 退出
int nGSMState; //gsm的状态
//1--gsm_ok
//2--gsm_err
//3--gsm_wait
int nMsg = 0; // 收到短消息条数
int nDelete = 0; // 目前正在删除的短消息编号
int tmorg = 0;
int tmnow = 0; //上次和现在的时间,计算超时用
Date timenow = new Date();
System.out.print("\n");
QueueLink receivelink = new QueueLink();
Application1 rapp = new Application1();
ReceiveSMS rjob = new ReceiveSMS();
nState = rapp.frame.nState; //1---stBeginRest 开始休息/延时
while (nState != 11) {
switch (nState) {
case 1:
Date timenow1 = new Date();
System.out.print("State=stBeginRest\n");
tmorg = timenow1.getMinutes() * 60 + timenow1.getSeconds();
nState = 2; //stContinueRest
break;
case 2:
Date timenow2 = new Date();
System.out.print("State=stContinueRest\n");
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// nothing to do
}
tmnow = timenow2.getMinutes() * 60 + timenow2.getSeconds();
System.out.print(tmnow);
if (rapp.frame.sendsms.total >= 1) {
nState = 3;
}
else if (tmnow - tmorg >= 3) {
nState = 6;
}
break;
case 3:
Date timenow3 = new Date();
System.out.print("State=stSendMessageRequest\n");
//发送短消息
String sendsms = rapp.frame.sendsms.DeQueue();
String sendphone = rapp.frame.sendphone.DeQueue();
rjob.sendChineseSMS(sendphone, true, sendsms);
tmorg = timenow3.getMinutes() * 60 + timenow3.getSeconds();
nState = 4;
break;
case 4:
Date timenow4 = new Date();
System.out.print("State=stSendMessageResponse\n");
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// nothing to do
}
tmnow = timenow4.getMinutes() * 60 + timenow4.getSeconds();
switch (rjob.getGSMresponse()) {
case 1:
System.out.print(" GSM_OK \n");
nState = 1;
break;
case 2:
System.out.print(" GSM_ERR \n");
nState = 5;
break;
default:
System.out.print(" GSM_WAIT \n");
if (tmnow - tmorg >= 3) {
System.out.print("timeout");
nState = 5;
}
}
break;
case 5:
Date timenow5 = new Date();
System.out.print("State=stSendMessageWaitIdle");
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// nothing to do
}
nState = 3;
break;
case 6:
Date timenow6 = new Date();
System.out.print("State=stReadMessageRequest\n");
//读取短消息
rjob.ReadNew();
tmorg = timenow6.getMinutes() * 60 + timenow6.getSeconds();
nState = 7;
break;
case 7:
Date timenow7 = new Date();
System.out.print("State=stReadMessageResponse\n");
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// nothing to do
}
tmnow = timenow7.getMinutes() * 60 + timenow7.getSeconds();
nMsg = rjob.recesms.total;
System.out.print("\n");
System.out.print("nMsg=" + nMsg);
System.out.print("\n");
switch (rjob.getGSMresponse()) {
case 1:
System.out.print(" GSM_OK \n");
if (nMsg > 0) {
Vector cell1 = new Vector();
String sms = new String();
sms = rjob.recesms.DeQueue();
System.out.print(sms);
///////////利用PDU处理函数处理这部分
///////////////////////////
String time = rjob.getpduindex(sms);
time1 = Integer.parseInt(time);
pnum = rjob.getpduphone(sms, time1);
//根据不同的代码用不同的函数
if (rjob.fenxipdu(sms, time1).equals("en"))
sms = rjob.getenglish7pdu(sms, time1);
else if (rjob.fenxipdu(sms, time1).equals("cn"))
sms = rjob.getcnpdu(sms, time1);
//////////////////////
/////////////////////
/*
//////////////////////////////以前非PDU处理的部分
String time=rjob.smsindex.DeQueue();
time1=Integer.parseInt(time);
pnum=rjob.getphonenum(sms,time1);
sms=rjob.CnEnCode(sms,time1);
///////////////////////
*/
//显示出来
cell1.add(time);
cell1.add(pnum);
cell1.add(sms);
rapp.frame.row.add(cell1);
rapp.frame.tableModel.setDataVector(rapp.frame.row,
rapp.frame.tableHeadName);
rapp.frame.table.setModel(rapp.frame.tableModel);
//
//send to the robot
String strTmp, strReturn;
strTmp = CommandParse.strParseCommand(sms);
//System.out.println("\r\ntest"+strTmp);
Frame1.showLogTAText("sms:" + sms + ":" + strTmp);
Client.StartClient("127.0.0.1", 7458, strTmp);
//return message
strReturn = CommandParse.strParseReturnMsg(strTmp);
rapp.frame.sendsms.Enqueue(strReturn);
rapp.frame.sendphone.Enqueue(pnum);
nDelete = 0;
nState = 8;
}
else {
nState = 1;
}
break;
case 2:
System.out.print(" GSM_ERR \n");
nState = 1;
break;
default:
System.out.print(" GSM_WAIT \n");
if (tmnow - tmorg >= 3) {
System.out.print("timeout");
nState = 1;
}
}
break;
case 8:
Date timenow8 = new Date();
System.out.print("State=stDeleteMessageRequest\n");
if (nDelete < nMsg) {
//gsmDeleteMessage(param[nDelete].index);
//memset(&buff, 0, sizeof(buff));
rjob.DelSMS(time1);
tmorg = timenow8.getMinutes() * 60 + timenow8.getSeconds();
nState = 9;
}
else {
nState = 1;
}
break;
case 9:
Date timenow9 = new Date();
System.out.print("State=stDeleteMessageResponse\n");
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// nothing to do
}
tmnow = timenow9.getMinutes() * 60 + timenow9.getSeconds();
switch (rjob.getGSMresponse()) {
case 1:
System.out.print(" GSM_OK \n");
nMsg--;
nDelete++;
nState = 1;
break;
case 2:
System.out.print(" GSM_ERR \n");
nState = 10;
break;
default:
System.out.print(" GSM_WAIT \n");
if (tmnow - tmorg >= 3) {
System.out.print("timeout");
nState = 1;
}
}
break;
case 10:
Date timenow10 = new Date();
System.out.print("State=stDeleteMessageWaitIdle\n");
try {
Thread.sleep(500);
}
catch (InterruptedException e) {
// nothing to do
}
nState = 8;
break;
}
if (rapp.frame.nState == 11) {
nState = 11;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -