package BaoWen;
|
import java.io.File;
|
import java.io.IOException;
|
import java.net.DatagramPacket;
|
import java.net.DatagramSocket;
|
import java.net.InetAddress;
|
import java.net.UnknownHostException;
|
import Frame.BaoWenHuiFang;
|
import Frame.TcpIpManage;
|
import JNADell.Dell_usetaganchor;
|
import Method.BaoWenShow;
|
import Method.GetNowTime;
|
import Method.PutPosInHistoryDataBase;
|
import Method.SaveFIleInTxt;
|
import PbuliClass.ShowMessage;
|
import PbuliClass.Systems;
|
import ToolBarS.ToolBarModel;
|
import VectroData.ForwardDatas;
|
import engbs.Bsbaowen;
|
import engbs.Tongji;
|
import home.Open_soft_dialog;
|
import jiekou.Kongzhi;
|
import tbDataModel_Dell.Dell_Ip;
|
import tbDataModel_Dell.Tools;
|
import urt.Dell_Urt_XTB;
|
import urt.Dell_replypara;
|
import urt.Dell_status;
|
import yunwei.dell_enginemonitor;
|
import yunwei.dell_shebei_manege;
|
|
/**¸ÃÀàÓÃÓÚ¼àÌýÍⲿÊý¾Ý¾ÍÊÇURTÊý¾ÝµÈ*/
|
public class Urt_7000_port implements Runnable {
|
static DatagramSocket socket;
|
static String havedatatime=GetNowTime.now();//ÓÐÊý¾ÝÉÏÀ´¾Í¸üÐÂÏÂʱ¼ä
|
static String gspgengxin=GetNowTime.now();//gpsÊý¾ÝÓиüÐÂ
|
static String a=Systems.sys().getBaowentou();//±¨ÎÄÍ·
|
int port=Integer.parseInt(Systems.sys().getCs_udp());
|
DatagramPacket packet;
|
static int yq=0;
|
static int urtbaowenmun=1;//yang2023.07.08
|
/**³õʼ»¯¶ÔÏó
|
* @throws NumberFormatException
|
* @throws IOException */
|
public Urt_7000_port() throws NumberFormatException, IOException{
|
socket = new DatagramSocket(port);
|
byte[] data = new byte[2048]; // ´´½¨byteÊý×é
|
packet= new DatagramPacket(data, data.length);
|
}
|
|
/**Æô¶¯Ï̵߳ķ½·¨*/
|
public void startThread() {
|
Open_soft_dialog.addara("Æô¶¯"+port+"¶Ë¿Ú¼àÌý");
|
Thread t=new Thread(this);
|
t.start();
|
}
|
|
public void run() {
|
while(true) {
|
if(TcpIpManage.isUrt()) {
|
try {
|
socket.receive(packet); // ½ÓÊÕÊý¾Ý°ü
|
urtbaowenmun++;
|
if(ToolBarModel.isStartpos()) {//Èç¹û¿ªÆôλÖýâÎö
|
dellurtport_reveive(packet);//´¦ÀíURT¶Ë¿ÚÊÕµ½µÄÊý¾Ý
|
}
|
if(urtbaowenmun==5000000) {
|
urtbaowenmun=1;
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}else {
|
try {
|
Thread.sleep(1000);//ÐÝÃßʱ¼ä
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|
|
/**´¦Àíurt¶Ë¿ÚÊÕµ½µÄÊý¾Ý2023.07.08*/
|
public static void dellurtport_reveive(DatagramPacket packet) {
|
Dell_55AA01.dell_gui();
|
int lenth=packet.getLength();
|
String ip=packet.getAddress().getHostAddress();//»ñÈ¡·¢ËͶ˵ÄIPµØÖ·¶ÔÏó
|
int port=packet.getPort();
|
String message=new String(packet.getData(), 0, lenth);//½âÎöASCLL¸ñʽÊý¾Ý
|
message=message.replaceAll(" ", "");
|
message=message.replaceAll("\r\n", "");
|
String hex=message.toUpperCase();
|
String time2=GetNowTime.timestamp2();
|
DellMessage.save_log(hex);//Èç¹ûJNA¿ªÆô±£´æÔʼÊý¾Ýyang20230725
|
BaoWenShow.show2(message, "URT¶Ë¿Ú", ip, port);//ÏÔʾURT¶Ë¿ÚÊý¾Ý
|
BaoWenShow.show2(message, "ÔʼÊý¾Ý", ip, port);//ÏÔʾURT¶Ë¿ÚÊý¾Ý
|
byte[] byt=subBytes(packet.getData(),0, lenth);
|
String datas=Tools.Bytes2HexString(byt);//½âÎöHEX¸ñʽÊý¾Ý
|
if(datas.startsWith("55AA")) {
|
Dell_Baowen.intsert(ip, datas,time2, port);
|
}
|
Dell_Ip.insert(ip);
|
if(!BaoWenHuiFang.isHuifangbaowen()) {//´¦ÀíÔʼÊý¾Ýº¯Êý
|
if(ToolBarModel.isSavebaowen() && (!BaoWenHuiFang.isHuifangbaowen())) {//Èç¹û¿ªÆôÁ˱¨Îı£´æÔʼ±¨ÎĻطÅ
|
PutPosInHistoryDataBase.insert_baowen(message, ip,time2);
|
String messages=message+","+ip+","+time2;
|
String name="./savefile/"+ToolBarModel.getBaowenname()+".txt";
|
File file4=new File(name);
|
SaveFIleInTxt.save_in_txt(messages,file4,true);
|
}
|
dellmessage(hex,message,ip,port,time2);//´¦ÀíÊÕµ½µÄ±¨ÎÄÐÅÏ¢
|
}
|
|
}
|
|
public static DatagramSocket getSocket() {
|
return socket;
|
}
|
|
public static byte[] subBytes(byte[] src, int begin, int count) {
|
byte[] bs = new byte[count];
|
System.arraycopy(src, begin, bs, 0, count);
|
return bs;
|
}
|
|
|
public static String getHavedatatime() {
|
return havedatatime;
|
}
|
|
|
public static String getGspgengxin() {
|
return gspgengxin;
|
}
|
|
|
public static int getYq() {
|
return yq;
|
}
|
|
|
/**ʵÏÖUDPת·¢
|
* @param data ÐèҪת·¢µÄÊý¾Ý
|
* @param lenthÐèҪת·¢µÄÊý¾Ý³¤¶È
|
* @param ipת·¢µØÖ·
|
* @param ports¶Ë¿Ú
|
* @throws IOException */
|
public static void udp_out(byte[] data,int length,String ip,String ports,String tagid,String message) {
|
int port=Integer.parseInt(ports);
|
InetAddress address=null;
|
try {
|
address=InetAddress.getByName(ip);
|
} catch (UnknownHostException e) {
|
ShowMessage.zidingyi_24("UDPδ֪µØÖ·Òì³£:"+ip);
|
}
|
DatagramPacket packet=new DatagramPacket(data, length, address, port);
|
|
try {
|
socket.send(packet);
|
BaoWenShow.show(message, "UDPת·¢",tagid);
|
} catch (IOException e) {
|
ShowMessage.zidingyi_24("UDP·¢ËÍÒì³£:"+ip);
|
}
|
|
}
|
|
public static void dell_GNGGA(String message,String ip,int port) {
|
gspgengxin=GetNowTime.now();
|
String[] gnggns=message.split("\\$GNGGA");
|
int size=gnggns.length;
|
if(size>2) {
|
for(int i=1;i<size;i++) {
|
if(gnggns[i].length()>15) {
|
Dell_GNGGA.dell_GNGGA("$GNGGA"+gnggns[i],ip,port);
|
}
|
}
|
}else if(size==2){
|
Dell_GNGGA.dell_GNGGA("$GNGGA"+gnggns[1],ip,port);
|
}
|
}
|
|
|
public static void dell_herat(String message) {
|
Tongji.intsert_hear(message);
|
yq++;
|
Tongji.setYingqingint(yq);
|
if(yq==1000) {
|
yq=1;
|
}
|
}
|
|
/**´¦ÀímessageÐÅÏ¢*/
|
public static void dellmessage(String hex,String message,String ip,int port,String time) {
|
if(message.startsWith(a+"display")) {
|
Dell_display.display(message);
|
}else if(message.startsWith(a+"anchor_info")) {
|
Dell_Message.dell_anchor_info(message);
|
}else if(message.startsWith(a+"anchor_near")) {
|
Dell_Message.dell_anchor_near(message);
|
}else if(message.startsWith(a+"anchor_tongbu")) {
|
Dell_Message.dell_anchor_tongbu(message);
|
}else if(message.startsWith(a+"tag_info")) {
|
Dell_Message.dell_tag_info(message);
|
}else if(message.startsWith(a+"gas_colector")) {
|
Dell_Message.dell_tag_info(message);
|
}else if(message.startsWith(a+"gas_sensor")) {
|
Dell_Message.dell_tag_info(message);
|
}else if(message.startsWith("get_anchor_info")) {
|
Dell_Message.dell_get_anchor_info(message);
|
}else if(message.startsWith("get_anchor_nearinfo")) {
|
Dell_Message.dell_get_anchor_nearinfo(message);
|
}else if(message.startsWith("get_taginfo")) {
|
Dell_Message.dell_get_taginfo(message);
|
}else if(message.startsWith("$GNGGA")) {
|
dell_GNGGA( message, ip, port);
|
}else if (message.startsWith("$SSGGA")){
|
String replace = message.replace("$SSGGA", "$GNGGA");
|
dell_GNGGA( replace, ip, port);
|
} else if(message.startsWith("$GPGGA")) {
|
String replace = message.replace("$GPGGA", "$GNGGA");
|
dell_GNGGA( replace, ip, port);
|
//Dell_Message.dell_gpgga(message, ip);
|
}else if(message.startsWith("add_person")) {
|
Dell_Add_Alert_Delete_Person.add_person(message);
|
}else if(message.startsWith("alert_person")) {
|
Dell_Add_Alert_Delete_Person.alert_person(message);
|
}else if(message.startsWith("delete_person")) {
|
Dell_Add_Alert_Delete_Person.delete_person(message);
|
}else if(message.startsWith("BSTOCS1")) {
|
Bsbaowen.dell_BSTOCS1(message);
|
}else if(message.startsWith("hxzk_heart")) {
|
dell_herat(message);
|
}else if(message.startsWith("$XTB")) {
|
Dell_Urt_XTB.dell_XTB(message,ip,port);
|
}else if(message.startsWith("deltefoword")) {
|
ForwardDatas.delete(message);
|
}else if(hex.startsWith("55AA")) {
|
Dell_Baowen.intsert(ip,hex,time,port);
|
}else if(message.startsWith("55BB")) {
|
Dell_usetaganchor.dell_udp_message(message);
|
}else if(message.startsWith("$replypara")) {
|
Dell_replypara.replypara(message);
|
}else if(message.startsWith("$status")) {
|
Dell_status.dell_status(message);
|
}else if(message.startsWith("$control")) {
|
Kongzhi.fengming(message);
|
}else if(message.startsWith("$engineheart")) {
|
//ÐÄÌø°ü¸ñʽΪ£º$engineheart,µçÄÔÐòÁкÅ,end
|
dell_enginemonitor.dell_message(message, ip);
|
}else if(message.startsWith("$control")) {
|
//$equipment,tagid,¿¨ºÅ,°æ±¾ºÅ,µçÄÔÐòÁкÅ,end
|
dell_shebei_manege.dell_message(message, ip);
|
}else {
|
Dell_Baowen.intsert(ip,message,time,port);//²åÈ뼯ºÏ
|
}
|
}
|
|
/**½«Êý¾Ý·¢¸ø»ùÕ¾*/
|
public static void outlora(byte[] data,int length,String ip,int port,String datafrom) {
|
DatagramSocket socket = getSocket();
|
if(socket ==null) {
|
return;
|
}
|
if(port<800) {
|
port=8233;
|
}
|
String datas1=Tools.Bytes2HexString(data);
|
if(ip==null) {
|
datas1="ûÓмì²âµ½IP...\n";
|
BaoWenShow.ok("2", "TOANC",datas1, "",datafrom);
|
}else if(ip.length()<4 || port ==0){
|
datas1="erro:lora"+ip+"µØÖ·"+ip+"¶Ë¿Ú"+port;
|
BaoWenShow.ok("2", "TOANC",datas1, "",datafrom);
|
return;
|
}
|
|
DatagramPacket packet=null;
|
InetAddress address=null;
|
//Èç¹ûÊý¾ÝÀàÐÍÏàͬ
|
try {
|
address=InetAddress.getByName(ip);
|
} catch (UnknownHostException e) {
|
e.printStackTrace();
|
}
|
packet=new DatagramPacket(data, length, address, port);
|
|
try {
|
Urt_7000_port.socket.send(packet);
|
String datas=Tools.Bytes2HexString(data).substring(0, packet.getLength()*2);
|
BaoWenShow.ok("2", "TOANC",datas, "",datafrom);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
public static int getUrtbaowenmun() {
|
return urtbaowenmun;
|
}
|
}
|