📄 mycngpdemo.java
字号:
}
catch ( IllegalArgumentException ex )
{
ex.printStackTrace () ;
showStateMsg ( "取消短消息命令的输入参数不合法" ) ;
}
catch ( Exception ex )
{
ex.printStackTrace () ;
showStateMsg ( "取消短消息命令的处理出现异常" ) ;
}
}
}
/**
* 根据用户输入的消息生成SubmitMsg
* @return CNGPSubmitMessage 对象
*/
private CNGPSubmitMessage getSubmitMsg ()
{
Args arg = Env.getMsgConfig ().getArgs ( "CNGPSubmitMessage" ) ;
String SPId = arg.get ( "spid" , "3AAAQQQQQQ" ) ;
int subType = arg.get ( "subtype" , 1 ) ;
int needReport = arg.get ( "needReport" , 1 ) ;
int priority = arg.get ( "priority" , 0 ) ;
String serviceId = arg.get ( "serviceId" , "abcdefghij" ) ;
String feeType = arg.get ( "FeeType" , "01" ) ;
int feeUserType = arg.get ( "FeeUserType" , 0 ) ;
String feeCode = arg.get ( "FeeCode" , "123456" ) ;
//int msgFormat = arg.get ( "msgFormat" , 15 ) ;
int msgFormat = Integer.parseInt(dcs_value.getText().trim());
/*if ( timeFlag.getText ().trim ().equalsIgnoreCase("N") || timeFlag.getText().trim().length() <1)
{ //不支持相对时间,只支持绝对时间,则采用原接口。
Date validTime = null ;
Date atTime = null ;
DateFormat format = DateFormat.getDateInstance () ;
String strValidTime = arg.get ( "ValidTime" , "" ) ;
if ( strValidTime != "" )
{
try
{
validTime = format.parse ( strValidTime ) ;
}
catch ( Exception ex2 )
{
}
}
else
{
validTime = null ;
}
String strAtTime = arg.get ( "AtTime" , "" ) ;
if ( strAtTime != "" )
{
try
{
atTime = format.parse ( strAtTime ) ;
}
catch ( Exception ex3 )
{
}
}
else
{
atTime = null ;
}
String srcTermId = arg.get ( "srcTermId" , "106213512345678" ) ;
String chargeTermId = arg.get ( "ChargeTermId" , "075540512345678" ) ;
int destTermIdCount = arg.get ( "destTermIdCount" , 0 ) ;
String[] rcvMobile = new String[0] ;
int msgLength = arg.get ( "msgLength" , 8 ) ;
String msgContent = arg.get ( "msgmsgContent" , "测试test" ) ;
int protocolValue = arg.get ( "protocolValue" , 0 ) ;
if ( service_Id.getText ().trim () != "" )
{
serviceId = service_Id.getText ().trim () ;
}
if ( fee_Terminal_Id.getText ().trim () != "" )
{
chargeTermId = fee_Terminal_Id.getText ().trim () ;
}
if ( src_Terminal_Id.getText () != "" )
{
srcTermId = src_Terminal_Id.getText ().trim () ;
}
//接受号码前缀非空
if ( dest_Terminal_Id.getText ().trim () != null )
{
//起止数值之差在指定范围内
destTermIdCount = Integer.parseInt ( calledTo.getText ().trim () ) -
Integer.parseInt ( calledFrom.getText ().trim () ) + 1 ;
if ( destTermIdCount > 0 && destTermIdCount <= 100 )
{
//"号码前缀 + 后缀"不能超过21位
if ( ( dest_Terminal_Id.getText ().trim ().length () +
calledTo.getText ().trim ().length () ) <= 21 )
{
rcvMobile = new String[destTermIdCount + 1] ;
int start = Integer.parseInt ( calledFrom.getText ().
trim () ) ;
for ( int i = start ; i <= start + destTermIdCount ; i++ )
{
int len = calledTo.getText ().trim ().length () ;
String postfix_Dest_Terminal_Id =
"000000000000000000000" + i ;
postfix_Dest_Terminal_Id = postfix_Dest_Terminal_Id.
substring (
postfix_Dest_Terminal_Id.length () - len ) ;
rcvMobile[i
- start] = dest_Terminal_Id.getText ().trim ()
+ postfix_Dest_Terminal_Id ;
}
}
}
else
{
destTermIdCount = 0 ;
}
}
if ( msg_Content.getText ().trim () != null )
{
msgContent = msg_Content.getText ().trim () ;
}
try
{
CNGPSubmitMessage submitMsg = new CNGPSubmitMessage (
SPId ,
subType ,
needReport ,
priority , //priority
serviceId , //serviceId
feeType , //FeeType
feeUserType , //FeeUserType
feeCode , //FeeCode
msgFormat , //msgFormat
validTime ,
atTime , //定时发送时间
srcTermId , //srcTermId
chargeTermId , //ChargeTermId
destTermIdCount , //destTermIdCount
rcvMobile , //destTermId
msgLength , //msgLength
msgContent , //msgmsgContent
protocolValue //protocolValue
) ;
return submitMsg ;
}
catch ( IllegalArgumentException e )
{
showStateMsg ( "提交短消息请求的输入参数不合法" ) ;
e.printStackTrace () ;
return null ;
}
catch ( Exception e )
{
showStateMsg ( "提交短消息请求处理异常" ) ;
e.printStackTrace () ;
return null ;
}
}
else
{*/
String validTime = arg.get ( "ValidTime" , null ) ;
String atTime = arg.get ( "AtTime" , null ) ;
validTime = validTimePostfix.getText().trim();
atTime = atTimePostfix.getText().trim();
String srcTermId = arg.get ( "srcTermId" , "075511111111" ) ;
String chargeTermId = arg.get ( "ChargeTermId" , "075540512345678" ) ;
int destTermIdCount = arg.get ( "destTermIdCount" , 0 ) ;
String[] rcvMobile = new String[0] ;
int msgLength = arg.get ( "msgLength" , 8 ) ;
String msgContent = arg.get ( "msgmsgContent" , "测试test" ) ;
int protocolValue = arg.get ( "protocolValue" , 0 ) ;
if ( service_Id.getText ().trim () != "" )
{
serviceId = service_Id.getText ().trim () ;
}
if ( fee_Terminal_Id.getText ().trim () != "" )
{
chargeTermId = fee_Terminal_Id.getText ().trim () ;
}
if ( src_Terminal_Id.getText () != "" )
{
srcTermId = src_Terminal_Id.getText ().trim () ;
}
//接受号码前缀非空
if ( dest_Terminal_Id.getText ().trim () != null )
{
//起止数值之差在指定范围内
destTermIdCount = Integer.parseInt ( calledTo.getText ().trim () ) -
Integer.parseInt ( calledFrom.getText ().trim () ) + 1 ;
if ( destTermIdCount > 0 && destTermIdCount <= 100 )
{
//"号码前缀 + 后缀"不能超过21位
if ( ( dest_Terminal_Id.getText ().trim ().length () +
calledTo.getText ().trim ().length () ) <= 21 )
{
//rcvMobile = new String[destTermIdCount + 1] ;
rcvMobile = new String[destTermIdCount] ;
int start = Integer.parseInt ( calledFrom.getText ().
trim () ) ;
for ( int i = start ; i < start + destTermIdCount ; i++ )
{
int len = calledTo.getText ().trim ().length () ;
String postfix_Dest_Terminal_Id =
"000000000000000000000" + i ;
postfix_Dest_Terminal_Id = postfix_Dest_Terminal_Id.
substring (
postfix_Dest_Terminal_Id.length () - len ) ;
rcvMobile[i
- start] = dest_Terminal_Id.getText ().trim ()
+ postfix_Dest_Terminal_Id ;
}
}
}
else
{
destTermIdCount = 0 ;
}
}
if ( msg_Content.getText ().trim () != null )
{
msgContent = msg_Content.getText ().trim () ;
}
try
{
CNGPSubmitMessage submitMsg = new CNGPSubmitMessage (
SPId ,
subType ,
needReport ,
priority , //priority
serviceId , //serviceId
feeType , //FeeType
feeUserType , //FeeUserType
feeCode , //FeeCode
msgFormat , //msgFormat
validTime ,
atTime , //定时发送时间(null:立即发送)
srcTermId , //srcTermId
chargeTermId , //ChargeTermId
destTermIdCount , //destTermIdCount
rcvMobile , //destTermId
msgLength , //msgLength
msgContent , //msgmsgContent
protocolValue //protocolValue
) ;
return submitMsg ;
}
catch ( IllegalArgumentException e )
{
showStateMsg ( "提交短消息请求的输入参数不合法" ) ;
e.printStackTrace () ;
return null ;
}
catch ( Exception e )
{
showStateMsg ( "提交短消息请求处理异常" ) ;
e.printStackTrace () ;
return null ;
}
//}
}
/**
* 根据用户输入的消息生成CancelMsg
* @return CNGPCancelMessage 对象
*/
private CNGPExitMessage getCancelMsg ()
{
try
{
return new CNGPExitMessage () ;
}
catch ( IllegalArgumentException ex )
{
ex.printStackTrace () ;
showStateMsg ( "取消短消息参数输入参数不合法" ) ;
return null ;
}
catch ( Exception e )
{
e.printStackTrace () ;
return null ;
}
}
/**
* 对提交请求后收到的响应消息进行处理。
* @param msg 提交短消息请求后收到的响应消息
* @return 返回处理CNGP_Submit_REP的操作结果
*/
private void ProcessSubmitRep ( CNGPMessage msg )
{
//收到的响应消息转换成repMsg
CNGPSubmitRespMessage repMsg = ( CNGPSubmitRespMessage ) msg ;
if ( repMsg != null )
{
sendSuccessMsgSum++ ;
}
}
/**
* 对收到短讯中心下发的短消息的处理。
* @param msg 短讯中心下发的短消息
*/
public void ProcessRecvDeliverMsg ( CNGPMessage msg )
{
CNGPDeliverMessage deliverMsg = ( CNGPDeliverMessage ) msg ;
//下发的消息
if ( deliverMsg.getIsReport () == 0 )
{
try
{
showStateMsg ( "接收消息: " + deliverMsg.toString () ) ;
}
catch ( Exception e )
{
e.printStackTrace () ;
}
}
else
{
//状态报告消息,不处理
showStateMsg ( "收到状态报告消息: " + deliverMsg.toString () ) ;
byte[] tmp = new byte[10];
System.arraycopy(deliverMsg.getMsgContent(),3,tmp,0,10);
showStateMsg ( "状态报告消息id: " + new String(getMsgId(tmp)) ) ;
}
recvDeliverMsgSum++ ;
}
/**
* 通知SMC下发的Terminate消息
*/
public void Terminate ()
{
showStateMsg ( "SMC下发终断消息" ) ;
loginSmProxy = false ;
smp = null ;
}
/**
* 显示SmProxy运行程序的状态
* @str 显示的内容
*/
private void showStateMsg ( String str )
{
if ( ( str == null ) || ( str == "" ) )
{
return ;
}
allRecvContent.insert ( sdf.format ( new Date () ) + str + "\n" , 0 ) ;
//防止内存耗尽
if ( allRecvContent.getText ().length () > 2 * 1024 )
{
allRecvContent.setText ( allRecvContent.getText ().substring ( 0, 1024 ) ) ;
}
allRecvContent.setCaretPosition ( 0 ) ;
}
/**
*显示统计消息
*/
private void showStatisticData ()
{
SendMsgSum.setText ( new Integer ( sendMsgSum ).toString () ) ;
SuccessSendSum.setText ( new Integer ( sendSuccessMsgSum ).toString () ) ;
RecvMsgSum.setText ( new Integer ( recvDeliverMsgSum ).toString () ) ;
}
/**
* 检查系统连接状态消息
*/
class MoniterThread extends Thread
{
public MoniterThread ()
{
setDaemon ( true ) ;
}
public void run ()
{
String connState = null ;
try
{
while ( true )
{
connState = smp.getConnState () ;
showStatisticData () ;
if ( connState == null ) connState = "系统运行正常" ;
myProxyState.setText ( connState ) ;
//一秒钟检查10次
sleep ( 100 ) ;
}
}
catch ( Exception e )
{
showStateMsg ( "状态监控线程出现异常退出" ) ;
e.printStackTrace () ;
}
}
}
/**
* 使用SmProxy应用程序,必须登录系统
*/
void loginButton_actionPerformed ( ActionEvent e )
{
//判断系统是否已经初始化了
if ( loginSmProxy )
{
showStateMsg ( "系统已经初始化" ) ;
return ;
}
try
{
args.set ( "source-addr" , loginName.getText ().trim () ) ;
args.set ( "shared-secret" , loginPass.getText ().trim () ) ;
showStateMsg ( "系统正在初始化" ) ;
//smp = new CNGPSMProxy ( args ) ;
smp = new MyCNGPSMProxy( this,args ) ;
showStateMsg ( "系统初始化成功" ) ;
loginSmProxy = true ;
new MoniterThread ().start () ;
}
catch ( Exception ex )
{
showStateMsg ( "系统初始化失败" ) ;
this.myProxyState.setText ( ex.getMessage () ) ;
ex.printStackTrace () ;
loginSmProxy = false ;
}
}
//转换bcd码
public String getMsgId(byte[] byteArray)
{
StringBuffer strBuf = new StringBuffer();
for (int i = 0; i < byteArray.length; i++)
{
strBuf.append((byteArray[i] & 0xf0) >> 4);
strBuf.append(byteArray[i] & 0x0f);
}
return strBuf.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -