package BaoWen;
|
import java.math.BigInteger;
|
import DataBase.DatabaseManagement;
|
import Method.GetNowTime;
|
import Method.InsertData;
|
import Method.StringToHex;
|
import PbuliClass.Shi_jian_cha_sss;
|
import PbuliClass.ShowMessage;
|
import person.Person;
|
import person.person_Dell;
|
import tbDataModel_Dell.Userdata;
|
|
/**0X0E»ùÕ¾ÉÏ´«±êÇ©Óû§Êý¾Ý
|
* Êý¾Ý¸ñʽ55AA0E+Êý¾Ý³¤¶È£¨N+5£©+±êÇ©ID+Êý¾Ý³¤¶È+Êý¾Ý£¨N£©*/
|
public class Dell_55AA0E {
|
static String[] hex;
|
static Userdata usdata=new Userdata();
|
public static void dell(String message){
|
message=message.replaceAll("\r\n|\r|\n", "");//È¡³öËùÓÐQÐкͻسµ
|
String mdsold=usdata.getMessage();//»ñÈ¡ÉÏÒ»Ìõ·¢Ë͵ÄÐÅÏ¢
|
if( mdsold !=null && message.equals(mdsold) ) {//Èç¹ûµ±Ç°ÐÅÏ¢ºÍÉÏÒ»ÌõÐÅÏ¢Ò»Ñù
|
String time=usdata.getTime();
|
int shicha=Shi_jian_cha_sss.get_time_cha_s(GetNowTime.now(), time);
|
if(shicha<2) {
|
return;
|
}
|
}
|
usdata.setMessage(message);
|
usdata.setTime(GetNowTime.now());
|
|
int lenth=message.length();
|
if(lenth<7) {
|
return;
|
}
|
hex=StringToHex.hex(message);
|
String tagid=hex[5]+hex[4];//±êÇ©ID
|
String message0=message.substring(0, lenth-4);
|
Person prs=person_Dell.get_Person(tagid);
|
if(prs==null) {
|
return;
|
}
|
String type=prs.getBaoliu19();
|
if(type==null) {
|
ShowMessage.zidingyi(tagid+"±êÇ©ÀàÐͲ»´æÔÚ");
|
return;
|
}
|
if(type.equals("ÐÄÂÊ´øÆÁ")) {
|
dell_heart_tag_message(message,tagid,prs);
|
}else if(type.equals("³µÔØ´øÆÁ")) {
|
dell_chezaidaipingtag_message(message0,tagid);
|
}
|
|
}
|
|
/** 16½øÖÆ×ªÎª10½øÖÆ */
|
public static int decodeHEX(String hexs) {
|
BigInteger bigint = new BigInteger(hexs, 16);
|
int numb = bigint.intValue();
|
return numb;
|
|
}
|
|
|
|
/**´¦Àí³µÔØ´øÆÁÄ»±êÇ©ÉÏÀ´µÄÊý¾Ý*/
|
public static void dell_chezaidaipingtag_message(String message0,String tagid) {
|
StringBuffer mes=new StringBuffer();
|
mes.append("userdata,"+tagid+",");
|
String datalent=hex[6];
|
int dataletint=decodeHEX(datalent);
|
for(int i=0;i<dataletint;i++) {
|
mes.append(hex[7+i]);
|
}
|
mes.append(",end");
|
String info=mes.toString();
|
Udp_Out.udp_tcp_out_display(info, tagid);
|
}
|
|
/**´¦ÀíÐÄÂÊÊÖ»·ÉÏÀ´µÄÐÅÏ¢*/
|
public static void dell_heart_tag_message(String message,String tagid,Person prs) {
|
StringBuffer mes1=new StringBuffer();
|
String datalent=hex[6];
|
int dataletint=decodeHEX(datalent);
|
for(int i=0;i<dataletint;i++) {
|
mes1.append(hex[7+i]);
|
}
|
String mes2=deUnicode(mes1.toString());//½«16½øÖÆ×Ö·û´®×ªÎªºº×Ö
|
ShowMessage.zidingyi(tagid+"ÊÕµ½ÐÅÏ¢£º"+mes2);
|
genmessage_from_hearttag(tagid, mes2);
|
replaymesg(prs,mes2);//´¦Àí»Ø¸´ÐÅÏ¢
|
}
|
|
/**ÊÕµ½ÐÅÏ¢»Ø¸´ºó×öµÄÊÂÇé*/
|
public static void replaymesg(Person person,String yes) {
|
String time=GetNowTime.now();
|
String bianma=person.getMessagebianma();
|
if(!bianma.equals("0")) {
|
String[] ziduan= {"Replytime","baoliu2","bianma"};
|
String[] zhi= {time,yes,bianma};
|
DatabaseManagement.fast_alert_dbase("tb_message_history",ziduan, zhi);
|
person.setMessagerelaystate(1);
|
}
|
}
|
|
/**½âÎö´ÓÐÄÂÊÊÖ»·ÉÏÀ´µÄÎÄ×ÖÐÅÏ¢*/
|
public static String genmessage_from_hearttag(String tagid,String mess) {
|
String as=mess.substring(0,1);
|
String a="ÏûϢ䶨Òå";
|
int b=Integer.parseInt(as);
|
switch(b) {
|
case 1:
|
a="ÈËÔ±ÊÜÉË£¬ÐèÒªÖÎÁÆ";
|
InsertData.sosin_tbwarnig(tagid,a);
|
break;
|
|
case 2:
|
a="Îï×ÊÊÜËð£¬ÐèÒªÖ§Ô®";
|
InsertData.sosin_tbwarnig(tagid,a);
|
break;
|
|
case 3:
|
a="ÓлðÔÖ£¬ËÙ¾ÈÔ®";
|
InsertData.sosin_tbwarnig(tagid,a);
|
break;
|
|
case 4:
|
a="ÓÐÒì³££¬ÐèÖ§Ô®";
|
InsertData.sosin_tbwarnig(tagid,a);
|
break;
|
|
case 5:
|
a="ÊÕµ½£¬Ã÷°×";
|
break;
|
|
case 6:
|
a="ÊÕµ½£¬ÎÞ·¨Íê³É";
|
break;
|
|
case 7:
|
a="Çë½øÒ»²½Ã÷È·ÈÎÎñ";
|
break;
|
|
case 8:
|
a="ÇëÉÔºó¹µÍ¨";
|
break;
|
|
|
}
|
return a;
|
}
|
|
public static String hexToAscii(String hexStr) {
|
StringBuilder output = new StringBuilder("");
|
for (int i = 0; i < hexStr.length(); i += 2) {
|
String str = hexStr.substring(i, i + 2);
|
output.append((char) Integer.parseInt(str, 16));
|
}
|
return output.toString();
|
}
|
|
/**
|
* ½«16½øÖÆ×Ö·û´®×ª»»³Éºº×Ö
|
* @param str
|
* @return
|
*/
|
public static String deUnicode(String hexStr) {
|
String str = "0123456789ABCDEF";
|
char[] hexs = hexStr.toCharArray();
|
byte[] bytes = new byte[hexStr.length() / 2]; //1¸öbyteÊýÖµ -> Á½¸ö16½øÖÆ×Ö·û
|
int n;
|
for (int i = 0; i < bytes.length; i++) {
|
n = str.indexOf(hexs[2 * i]) * 16;
|
n += str.indexOf(hexs[2 * i + 1]);
|
bytes[i] = (byte) (n & 0xff);
|
}
|
return new String(bytes);
|
}
|
|
|
}
|