zsh_root
2024-01-02 7b595546af704983dbafcd0d385c8768ddacefc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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(&& 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;
    }
 
 
 
 
}