package urt;
|
import java.util.LinkedHashMap;
|
import java.util.Map;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import DataBase.DatabaseManagement;
|
import Frame.TcpIpManage;
|
import Method.BaoWenShow;
|
import Method.GetNowTime;
|
import Method.InsertData;
|
import Netty.GroupChatServerHandler;
|
import PbuliClass.ShowMessage;
|
import person.Person;
|
import person.person_Dell;
|
import tbDataModel.Tb_gps;
|
public class lowgpscontral {
|
|
static String k0="IC";//³§ÉÌÃû³Æ
|
|
/**[³§ÉÌ*É豸ID*ÄÚÈݳ¤¶È*ÄÚÈÝ]ÄÚÈݳ¤¶È¹Ì¶¨ÎªËĸö×Ö½ÚµÄ ASCII Âë,¸ßλÔÚǰµÍλÔÚºó
|
*ÖÕ¶Ë·¢ËÍ:[XT*YYYYYYYYYYYYYYY*LEN*LK]ʵÀý:[XT*334588000000156*0002*LK]
|
*ƽ̨»Ø¸´:[XT*YYYYYYYYYYYYYYY*LEN*LK]
|
*˵Ã÷:Á´Â·±£³ÖÊý¾Ýÿ 5 ·ÖÖÓ·¢Ò»´Î,ÈôÖÕ¶ËδÊÕµ½·þÎñÆ÷µÄ»Ø¸´,
|
* Ôò»áÒ»·ÖÖÓÖØÁ¬Ò»´Î£¬ÖØÁ¬ 5 ´ÎºóÒ»Ö±Á¬½Ó²»ÉÏÎñÆ÷£¬Öն˾ͻáÖØÆô*/
|
public static void keeplink(String tagid,String ip,String message,String ccid) {
|
send(message,ip);
|
Dell_gps.add_alow_gps(tagid,ip,ccid);
|
}
|
|
|
public static void delllowgps(String ip,int port,String b) {
|
String[] a=b.split("\\*");
|
if(a !=null) {
|
String id=a[1];
|
int size=id.length();
|
String tagid=a[1].substring(size-4,size);
|
String b0=a[3];
|
if(b0.startsWith("LK")) {
|
keeplink(tagid,ip,b,id);
|
}else if(b0.startsWith("KA")) {
|
keeplinKA(tagid,b,ip,port,id);
|
}else if(b0.startsWith("WT")) {
|
dell_lowgps(ip,b,tagid,id);
|
}else if(b0.startsWith("UD")) {
|
dell_lowgps(ip,b,tagid,id);
|
}else if(b0.startsWith("LGZONE")) {
|
sent_time(tagid,ip,b);
|
}else if(b0.startsWith("UPLOAD")) {
|
alert_hz_succ(tagid,a[2]);
|
}else if(b0.startsWith("VERNO")) {
|
alert_version(tagid,b);
|
}else if(b0.startsWith("FIND")) {
|
ShowMessage.zidingyi(tagid+"Õð¶¯Ö¸ÁîÏ·¢³É¹¦"+"\n");
|
}else if(b0.startsWith("AL")) {
|
dell_lowgps(ip,b,tagid,id);
|
respon_al(id,ip,tagid);
|
}
|
|
|
}
|
|
}
|
|
/**[b739c3c8907a8dc5979b041c7153b3bbIC*860313001005947*0010*KA,220101,0,0,25]
|
* [XT*YYYYYYYYYYYYYYY*LEN*KA,ÈÕÆÚ£¬²½Êý,·¹ö´ÎÊý,µçÁ¿°Ù·ÖÊý]
|
ʵÀý:[XT*334588000000156*0014*KA,120414,50,100,100]
|
ƽ̨»Ø¸´:[XT*YYYYYYYYYYYYYYY*LEN*KA]ʵÀý:[XT*334588000000156*0002*KA]*/
|
public static void keeplinKA(String tagid,String a0,String ip,int port,String ccid) {
|
String[] b1=a0.split(",");
|
String ka="["+k0+"*"+tagid+"*0002*KA]";
|
String power=b1[4].replace("]", "");
|
send(ka,ip);
|
Dell_gps.alert_alow_gps(tagid, power,k0,ip,port,ccid);
|
Person prs=person_Dell.get_Person(tagid);
|
if(prs !=null) {
|
prs.setP_power(power);
|
prs.setP_online("1");
|
prs.setP_addtiem(GetNowTime.now());
|
}
|
}
|
|
/**ʵÀý:
|
* [XT*334588000000156*00CD*UD,180916,025723,A,22.570733,N,113.8626083,E,0.00,249.5,0.0,
|
* 6,100,60,0,0,00000010,7,255,460,1,9529,21809,158,9529,63555,133,9529,63554,129,9529,2
|
* 1405,126,9529,21242,124,9529,21151,120,9529,63556,119,0]
|
* ˵Ã÷£º
|
* Êý¾ÝÄÚÈÝ:
|
* UD,ÃüÁîºÅ
|
* 180916,ÈÕÆÚ£¨ÄêÔÂÈÕ£©£¨0 Ê±Çø£©£¬±íʾ 0 Ê±ÇøµÄ¶þÁãÒ»°ËÄê¾ÅÔÂÊ®ÁùºÅ
|
* 025723,ʱ¼ä£¨Ê±·ÖÃ룩£¨0 Ê±Çø£©£¬±íʾ 0 Ê±ÇøµÄÁ½µãÎåÊ®Æß·Ö¶þÊ®ÈýÃë
|
* A,gps ¶¨Î»ÓÐЧ
|
* 22.570733,γ¶È
|
* N,γ¶È±íʾ
|
* 113.8626083,¾¶È
|
* E,¾¶È±íʾ
|
* 0.00,ËÙ¶È
|
* 249.5,·½Ïò
|
* 0.0,º£°Î
|
* 6,ÎÀÐǸöÊý
|
* 100,gsm ÐźÅÇ¿¶È
|
* 60,µçÁ¿
|
* 0,¼Æ²½Êý
|
* 0,·×ª´ÎÊý
|
* 00000010,ÖÕ¶Ë״̬£¬Êý¾ÝΪ 16 ½øÖÆ£¬½âÎö³É¶þ½øÖÆÎª 0000 0000 0000 0000 0000 0000 0001 0000
|
* Ç°Ãæ 4 ¸ö×Ö½Ú±íʾ״̬£¬ºóÃæ 4 ¸ö×Ö½Ú±íʾ±¨¾¯£¬Êý¾ÝÖÐµÚ 4 λΪ 1£¬¶ÔÕÕÎĵµ×îºóµÄÊý¾Ý½âÎö£¬±íʾÊÖ±í¾²Ö¹×´Ì¬¡£Ïêϸ¿É²Î¿´Îĵµ×îºó²¿·Ö¡£
|
* 7,»ùÕ¾¸öÊý
|
* 255,460,1,9529,21809,158,9529,63555,133,9529,63554,129,9529,21405,126,9529,21242,124,
|
* 9529,21151,120,9529,63556,119,»ùÕ¾ÐÅÏ¢0,WiFi ¸öÊý*/
|
|
@SuppressWarnings("unused")
|
public static void dell_lowgps(String ip,String b,String tagid,String ccid) {
|
String msg=b.replace("]", "");
|
String[] a=msg.split(",");
|
String data=a[1];
|
String time=a[2];
|
String gpsok=a[3];//A:¶¨Î»V:δ¶¨Î»
|
String weidu=a[4];//γ¶È
|
String jingdu=a[6];//¾¶È
|
String sudu=a[8];//ËÙ¶È
|
String fangxiang=a[9];//·½Ïò
|
String gaodu=a[10];//¸ß¶È
|
String num=a[11];//ÎÀÐÇÊý
|
String gsm=a[12];//±íʾµ±Ç°GSM ÐźÅÇ¿¶È(0-100)
|
String power=a[13];//±íʾµ±Ç°µçÁ¿µÈ¼¶°Ù·Ö±È
|
String sate=a[16];//ÖÕ¶Ë״̬
|
String g4num=a[17];//4g»ùÕ¾¸öÊý£¬Éϱ¨»ùÕ¾¸öÊý,0 ±íʾ²»Éϱ¨»ùÕ¾ÐÅÏ¢£¨Ä¬Èϲ»´ø»ùÕ¾Êý¾Ý£¬¶¨Î»»áʧ°Ü£©
|
String gsmshiyan=a[18];//GSM ʱÑÓ
|
String mcc=a[19];//MCC ¹ú¼ÒÂë460 460 ´ú±íÖйú
|
String mnc=a[20];//MNC ÍøºÅ02 02 ´ú±íÖйúÒÆ¶¯
|
String b21=a[21];//Á¬½Ó»ùվλÖÃÇøÓòÂë
|
String b22=a[22];//Á¬½Ó»ùÕ¾±àºÅ
|
String b23=a[23];//Á¬½Ó»ùÕ¾ÐźÅÇ¿¶È
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
gps.setGps_state(gpsok);
|
gps.setGps_num(num);
|
gps.setGps_haiba_gao(gaodu);
|
gps.setIp(ip);
|
}
|
|
if(gpsok.equals("A")) {
|
|
}else {
|
if(g4num.equals("1")) {
|
String b24=a[24];//Wifi ÐÅÏ¢ÊýÁ¿
|
int wifinum=Integer.parseInt(b24);
|
StringBuffer wifi=new StringBuffer();
|
for(int i=0;i<wifinum;i++) {
|
String mac=a[26+i*3];
|
String strang=a[27+i*3];
|
String ms=mac+","+strang+"|";
|
if(i==wifinum-1) {
|
ms=mac+","+strang;
|
}
|
wifi.append(ms);
|
}
|
//Èç¹ûIDºóËÄλºÍ±êÇ©IDÆ¥Åä²Åµ÷ÓÃ
|
int size=tagid.length();
|
if(person_Dell.get_Person(tagid) !=null) {
|
wifis(tagid,tagid,wifi.toString(),ccid);
|
}
|
|
}else{
|
|
}
|
}
|
|
|
}
|
|
|
/**·¢ËÍÊý¾Ý¸øÉ豸
|
* @param a1
|
* @param ip*/
|
public static void send(String a1,String ip) {
|
if(GroupChatServerHandler.get_chanel(ip)!=null) {
|
GroupChatServerHandler.get_chanel(ip).writeAndFlush(a1);
|
if(TcpIpManage.getStar()) {
|
String from="SendtO:"+ip+","+a1;
|
BaoWenShow.tcpshow(from,from);
|
}
|
}
|
}
|
|
/*** ½«16½øÖÆ×Ö·û´®×ª»»Îªbyte[]*/
|
public static byte[] toBytes(String str) {
|
if (str == null || str.trim().equals("")) {
|
return new byte[0];
|
}
|
byte[] bytes = new byte[str.length() / 2];
|
for (int i = 0; i < str.length() / 2; i++) {
|
String subStr = str.substring(i * 2, i * 2 + 2);
|
bytes[i] = (byte) Integer.parseInt(subStr, 16);
|
}
|
return bytes;
|
}
|
|
|
|
@SuppressWarnings("rawtypes")
|
public static void wifis(String imei,String tagid,String msg,String ccid) {
|
Map<String, Object> map = new LinkedHashMap<>();
|
map.put("key", "d09e0211edbdab45d2a02633a50406e7");//¹Ì¶¨
|
map.put("accesstype", "1");//1´ú±íWIFI
|
map.put("imei",imei);//ÊÖ»úimeiºÅÂë,ÊÖ»ú²¦ºÅÒ³ÊäÈë *#06# ²éѯ
|
//"fc:94:35:13:86:40,-52|14:5f:94:65:37:ec,-61|e0:40:07:bb:04:68,-63"
|
map.put("macs",msg);
|
map.put("output", "json");//·µ»Ø¸ñʽ(json/xml)
|
String url = "http://apilocate.amap.com/position";
|
String s = cn.hutool.http.HttpUtil.get(url, map);
|
if( !s.startsWith("Error")) {
|
LinkedHashMap mapaa = JSON.parseObject(s, LinkedHashMap.class);
|
String result = mapaa.get("result").toString();
|
JSONObject jsonObject1 =JSONObject.parseObject(result);
|
String location = jsonObject1.get("location").toString();
|
String adress= jsonObject1.get("desc").toString();
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
gps.setAddtime(GetNowTime.gethm());
|
if(gps !=null) {
|
Person prs=person_Dell.get_Person(tagid);
|
String[] lac=location.split(",");
|
double lat=Double.parseDouble(lac[1]);
|
double lon=Double.parseDouble(lac[0]);
|
double[] d1=GPSUtil.gcj02_To_Gps84(lat,lon);
|
String jd=String.valueOf(d1[1]);
|
String wd=String.valueOf(d1[0]);
|
gps.setGsp_jingdu(jd);
|
gps.setGps_weidu(wd);
|
gps.setAdress(adress);
|
gps.setCcid(ccid);
|
prs.setP_online("1");
|
prs.setP_addtiem(GetNowTime.now());
|
}
|
}
|
}
|
|
/**
|
* »ñÈ¡·þÎñÆ÷¶Ëʱ¼ä×¢£ºÌṩÁ½ÖÖ·µ»Ø·½Ê½£¬Ò»ÖÖ·µ»ØÊ±¼ä´Á£¬Ò»ÖÖ·µ»Ø×Ö·û´®¸ñʽ
|
* A ÖÕ¶Ë·¢ËÍ:
|
* [XT*YYYYYYYYYYYYYYY*LEN*Time]
|
* ʵÀý:[XT*334588000000156*0004*Time]
|
* ƽ̨»Ø¸´: [XT*YYYYYYYYYYYYYYY*LEN*Time,1497597457]
|
* ʵÀý:[XT*334588000000156*000F*Time,1497597457]
|
* ʱ¼ä¸ñʽÓÃʱ¼ä´Á±íʾ£¬¾«È·µ½Ã룬ÖÕ¶ËĬÈÏÓñ±¾©Ê±¼äÏÔʾ£¬ÖÕ¶ËÊÕµ½ÉèÖÃÊ±ÇøÖ¸Áîºó£¬Ðè½øÐÐÏàÓ¦µ÷Õû
|
* B ÖÕ¶Ë·¢ËÍ£º[XT*YYYYYYYYYYYYYYY*LEN*LGZONE]
|
* ʵÀý: [XT*1234567890*0006*LGZONE]
|
* ƽ̨»Ø¸´£º[XT*YYYYYYYYYYYYYYY*LEN*LGZONE,Ê±Çø,ʱ¼ä,ÈÕÆÚ]
|
* ʵÀý: [XT*1234567890*001D*LGZONE,+8,08:00:00,2016-01-12]*/
|
public static void sent_time(String tagid,String ip,String message) {
|
String[] a=message.split("\\*");
|
int size=a[0].length();
|
String k0=a[0].substring(size-2, size);
|
String hms=GetNowTime.HH_MM_SS();
|
String ymd=GetNowTime.y_m_d();
|
String ka="["+k0+"*"+tagid+"*001D*LGZONE,+8,"+hms+","+ymd+"]";
|
send(ka,ip);
|
}
|
|
/**ÐÞ¸ÄÆµÂÊ
|
* [XT*334588000000156*0009*UPLOAD,600]*/
|
public static void alert_hz(String tagid,String hz) {
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
String ip=gps.getIp();
|
if(ip==null || ip.length()<5) {
|
ShowMessage.zidingyi("Ö¸ÁîÏ·¢Ê§°ÜipµØÖ·´íÎó"+"\n");
|
return;
|
}
|
String ct=gps.getCT();
|
String ka="["+ct+"*"+tagid+"*0009*UPLOAD,"+hz+"]";
|
send(ka,ip);
|
ShowMessage.zidingyi("ÐÞ¸Ä"+tagid+"ƵÂÊ"+hz+"ÐÅϢϷ¢"+ip+"\n");
|
}
|
}
|
|
/**ÐÞ¸ÄËùÓÐÖÕ¶ËµÄÆµÂÊ*/
|
public static void all_hz(String hz) {
|
int size=Dell_gps.getGps_vector().size();
|
for(int i=0;i<size;i++) {
|
Tb_gps tg=Dell_gps.getGps_vector().get(i);
|
String tagid=tg.getTagid();
|
if(tagid.length()>6) {
|
alert_hz(tagid,hz);
|
}
|
}
|
ShowMessage.zidingyi("ËùÓÐ±êÆµÂÊÐÞ¸ÄÏ·¢"+"\n");
|
}
|
|
/**ʵÀý:[XT*334588000000156*0006*UPLOAD]*/
|
public static void alert_hz_succ(String tagid,String hz) {
|
ShowMessage.zidingyi(tagid+"ƵÂÊ"+hz+"Ð޸ijɹ¦"+"\n");
|
}
|
|
|
/**ʵÀý:[XT*334588000000156*0002*CR]
|
* ˵Ã÷:Á¢¼´»½ÐÑÖÕ¶ËGPS ¶¨Î»¹¦ÄÜ,Á¬Ðø¶¨Î»3 ·ÖÖÓ£¬°´ÕÕ10 ÃëÒ»´Î¶¨Î»Êý¾ÝÉÏ´«£¬3 ·ÖÖÓºó¹Ø±Õgps ¶¨Î»¡£*/
|
public static void lianxu_dingwei(String tagid) {
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
String ip=gps.getIp();
|
if(ip==null || ip.length()<5) {
|
ShowMessage.zidingyi("Ö¸ÁîÏ·¢Ê§°ÜipµØÖ·´íÎó"+"\n");
|
return;
|
}
|
String ct=gps.getCT();
|
String ka="["+ct+"*"+tagid+"*0002*CR]";
|
send(ka,ip);
|
ShowMessage.zidingyi(tagid+"Á¬Ðø¶¨Î»Ö¸ÁîÏ·¢"+"\n");
|
}
|
}
|
|
/**°æ±¾²éѯ
|
* ƽ̨·¢ËÍ:[XT*YYYYYYYYYYYYYYY*LEN*VERNO]
|
* ʵÀý:[XT*334588000000156*0005*VERNO]
|
* Öն˻ظ´:[XT*YYYYYYYYYYYYYYY*LEN*VERNO,°æ±¾ºÅ]
|
* ʵÀý:[XT*334588000000156*0028*VERNO,G29_BASE_V1.00_2014.04.23_17.46.49]
|
* ˵Ã÷:²éѯÖÕ¶ËÈí¼þ°æ±¾.*/
|
public static void serch_version(String tagid) {
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
String ip=gps.getIp();
|
if(ip==null || ip.length()<5) {
|
ShowMessage.zidingyi(tagid+"Ö¸ÁîÏ·¢Ê§°ÜipµØÖ·´íÎó"+"\n");
|
return;
|
}
|
String ct=gps.getCT();
|
String ka="["+ct+"*"+tagid+"*0005*VERNO]";
|
send(ka,ip);
|
ShowMessage.zidingyi(tagid+"»ñÈ¡°æ±¾Ö¸ÁîÏ·¢"+"\n");
|
}
|
}
|
|
/**Ð޸İ汾ºÅ*/
|
public static void alert_version(String tagid,String message) {
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
String[] a=message.split(",");
|
String version=a[1].replace("]","");
|
gps.setVersion(version);
|
ShowMessage.zidingyi(tagid+"»ñÈ¡°æ±¾³É¹¦"+version+"\n");
|
String[] ziduan= {"version","tagid"};
|
String[] zhi= {version,tagid};
|
DatabaseManagement.fast_alert_dbase("tb_gps", ziduan, zhi);
|
}
|
}
|
|
/**ÕÒÉ豸
|
* ÕÒÊÖ±íÖ¸ÁîÆ½Ì¨·¢ËÍ:
|
* [XT*YYYYYYYYYYYYYYY*LEN*FIND]
|
* ʵÀý:[XT*334588000000156*0004*FIND]
|
* Öն˻ظ´:[XT*YYYYYYYYYYYYYYY*LEN*FIND]
|
* ʵÀý:[XT*334588000000156*0004*FIND]
|
* ˵Ã÷: ·¢Ë͸ÃÖ¸ÁîÖÕ¶ËÏìÁå1 ·ÖÖÓ.°´¼ü¿ÉÈ·ÈÏ*/
|
public static void fond_gps(String tagid) {
|
Tb_gps gps=Dell_gps.get_tb_gps(tagid);
|
if(gps !=null) {
|
String ip=gps.getIp();
|
if(ip==null || ip.length()<5) {
|
ShowMessage.zidingyi(tagid+"ѰÕÒÉ豸ָÁîÏ·¢Ê§°ÜIPµØÖ·´íÎó\n");
|
return;
|
}
|
String ct=gps.getCT();
|
String ka="["+ct+"*"+tagid+"*0004*FIND]";
|
send(ka,ip);
|
ShowMessage.zidingyi(tagid+"ѰÕÒÉ豸ָÁîÏ·¢\n");
|
}
|
}
|
|
/**±¨¾¯Êý¾ÝÉϱ¨
|
* ÖÕ¶Ë·¢ËÍ£¨Òƶ¯ÁªÍ¨£©
|
* [XT*YYYYYYYYYYYYYYY*LEN*AL,λÖÃÊý¾Ý(¼û¸½Â¼Ò»)]
|
* ʵÀý:[XT*334588000000156*00CD*AL,180916,064153,A,22.570512,N,113.8623267,E,0.00,154.8,0.0,
|
* 11,100,100,0,0,00100018,7,0,460,1,9529,21809,155,9529,21242,132,9529,21405,131,9529,6
|
* 3554,131,9529,63555,130,9529,63556,118,9529,21869,116,0,12.4]
|
* ƽ̨»Ø¸´:[XT*YYYYYYYYYYYYYYY*LEN*AL]
|
* ʵÀý:[XT*334588000000156*0002*AL]
|
* ˵Ã÷:Öն˲úÉú¾¯Çéºó·¢Ëͱ¨¾¯ÐÅÏ¢µ½Æ½Ì¨,ÈôÖÕ¶ËûÓÐÊÕµ½»Ø¸´,Ôò¶¨Ê±Éϱ¨Ö±µ½ÊÕµ½±¨¾¯È·ÈÏΪֹ.*/
|
|
/**»Ø¸´±¨¾¯[XT*334588000000156*0002*AL]*/
|
public static void respon_al(String ccid,String ip,String tagid) {
|
String ka="[IC*"+ccid+"*0002*AL]";
|
ShowMessage.zidingyi(tagid+"°´Ï°´¼ü");
|
Person prs=person_Dell.get_Person(tagid);
|
if(prs !=null) {
|
prs.setSos_state("1");;
|
}
|
Tb_gps gps0=Dell_gps.get_tb_gps(tagid) ;
|
String a1=gps0.getGsp_jingdu()+","+gps0.getGps_weidu();
|
InsertData.sosInsertTbWarning(tagid,"SOS", "δ´¦Àí",a1);
|
send(ka,ip);
|
}
|
|
|
}
|