📄 application1.java~150~
字号:
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("Ghost02", 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;
}
}
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
/*
while(rjob.recesms.total>=1)
{
Vector cell1=new Vector();
String sms=new String();
sms=rjob.recesms.DeQueue();
String time=rjob.smsindex.DeQueue();
int 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);
}
*/
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
/*##########################################*/
/*
int k=0;
int l=1;
while(true)
{
if(rapp.frame.Statue)
{
Vector cell=new Vector();
String sms=new String();
sms=rjob.reiceive(l);
receivelink.Enqueue(sms);
System.out.print("\n");
System.out.print(receivelink.DeQueue());
System.out.print("\n");
l++;
//System.out.print(sms);
rapp.frame.jTextField1.setText(sms);
++k;
s[k]=Integer.toString(k);
pnum=rjob.Phnum;
cell.add(s[k]);
cell.add(pnum);
cell.add(sms);
rapp.frame.row.add(cell);
rapp.frame.tableModel.setDataVector(rapp.frame.row,rapp.frame.tableHeadName);
rapp.frame.table.setModel(rapp.frame.tableModel);
rapp.frame.Statue=false;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// nothing to do
}
//rjob.sendChineseSMS(pnum,true,"已经准备就绪");
// rjob.DelSMS(l);
// new Application1().frame.jTextField1.setText(sms);
}//endif
}//end while
/*#########################################################*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -