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

📄 mycngpdemo.java

📁 pk_Total - 相同msg_Id消息总条数 pk_Number - 相同msg_Id的消息序号 registered_Delivery - 是否要求返回状态报告 msg_Level - 信
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			}
			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 + -