package BaoWen;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.net.DatagramPacket;
|
import java.net.DatagramSocket;
|
|
import Frame.BaoWenHuiFang;
|
import Frame.TcpIpManage;
|
import Method.GetNowTime;
|
import Method.PutPosInHistoryDataBase;
|
import Method.SaveFIleInTxt;
|
import PbuliClass.Systems;
|
import ToolBarS.ToolBarModel;
|
import home.Open_soft_dialog;
|
import monitorGas.ReadGas;
|
import tbDataModel_Dell.Dell_Ip;
|
import tbDataModel_Dell.Tools;
|
|
public class gas_udp_receive implements Runnable {
|
|
static DatagramSocket socket;
|
//ÓÐÊý¾ÝÉÏÀ´¾Í¸üÐÂÏÂʱ¼ä
|
static String havedatatime=GetNowTime.now();
|
int port=Integer.parseInt(Systems.sys().getGas_port());
|
DatagramPacket packet;
|
|
static int yq=0;
|
/**³õʼ»¯¶ÔÏó
|
* @throws NumberFormatException
|
* @throws IOException */
|
public gas_udp_receive() throws NumberFormatException, IOException{
|
socket = new DatagramSocket(port);
|
byte[] data = new byte[1024]; // ´´½¨byteÊý×é
|
packet= new DatagramPacket(data, data.length);
|
|
}
|
|
|
/**Æô¶¯Ï̵߳ķ½·¨*/
|
public void startThread() {
|
Thread t=new Thread(this);
|
t.start();
|
Open_soft_dialog.addara("Æô¶¯UDP¶Ë¿Ú"+Systems.sys().getCs_udp()+"¼àÌý");
|
}
|
|
|
public void run() {
|
while(true) {
|
|
try {
|
socket.receive(packet); // ½ÓÊÕÊý¾Ý°ü
|
int lenth=packet.getLength();
|
byte[] byt=subBytes(packet.getData(),0, lenth);
|
|
//»ñÈ¡·¢ËͶ˵ÄIPµØÖ·¶ÔÏó
|
String ip=packet.getAddress().getHostAddress();
|
int port=packet.getPort();
|
String datas=Tools.Bytes2HexString(byt);
|
//Èç¹ûÔÝͣûÓÐÆô¶¯
|
if(ToolBarModel.isStartpos()) {
|
Dell_Ip.insert(ip);
|
boolean c=TcpIpManage.getStar();
|
boolean a=TcpIpManage.getDatatypeis().equals("ÔʼÊý¾Ý");
|
boolean b=TcpIpManage.get_xieyi_type().equals("2");
|
if(c && a && b ) {
|
TcpIpManage.get_text_area().append("ÊÕ:"+ip+":"+port+","
|
+datas.toUpperCase()+","+GetNowTime.timestamp2()+"\n ");
|
TcpIpManage.get_text_area().setCaretPosition(TcpIpManage.get_text_area().getText().length());
|
}
|
|
//´¦ÀíÔʼÊý¾Ýº¯Êý
|
if(!BaoWenHuiFang.isHuifangbaowen()) {
|
//²åÈëÔʼÊý¾Ý½øÈëÔʼÊý¾Ý¼¯ºÏ
|
if(datas.startsWith("0103")|| datas.startsWith("0203")|| datas.startsWith("0303") ) {
|
//´¦ÀíÆøÌ屨ÎÄ
|
/**´¦ÀíÆøÌåÊý¾Ý*/
|
ReadGas.dell_gas2_data(ip,datas);
|
}
|
Dell_55AA01.dell_gui();
|
//Èç¹û¿ªÆôÁ˱¨Îı£´æÔʼ±¨ÎĻطÅ
|
if(ToolBarModel.isSavebaowen() && (!BaoWenHuiFang.isHuifangbaowen())) {
|
String time=GetNowTime.timestamp2();
|
PutPosInHistoryDataBase.insert_baowen(datas.toUpperCase(), ip,time);
|
String messages=datas.toUpperCase()+","+ip+","+time;
|
String name="./savefile/"+ToolBarModel.getBaowenname()+".txt";
|
File file4=new File(name);
|
SaveFIleInTxt.save_in_txt(messages,file4,true);
|
messages=null;
|
|
}
|
}
|
}
|
|
byt=null;
|
datas=null;
|
|
} catch (Exception e) {
|
e.printStackTrace(); // Êä³öÒì³£ÐÅÏ¢
|
}
|
}
|
}
|
|
|
|
public static byte[] subBytes(byte[] src, int begin, int count) {
|
byte[] bs = new byte[count];
|
System.arraycopy(src, begin, bs, 0, count);
|
return bs;
|
}
|
|
|
|
|
}
|