package baowen; import java.math.BigInteger; import java.nio.ByteBuffer; import frame.Index1; import publicclass.JugeNumber; public class Dell_AACC { static String HC_header; static String week; static String second; static String lat; static String lon; static String alt; static String undulation; static String ve; static String vn; static String vu; static String pitch; static String roll; static String yaw; static String std_lat; static String std_lon; static String std_alt; static String std_ve; static String std_vn; static String std_vu; static String std_pitch; static String std_roll; static String std_yaw; static String vgyro_x; static String vgyro_y; static String vgyro_z; static String vacccar_x; static String vacccar_y; static String vacccar_z; static String speed; static String heading; static String heading2; static String stat; static String age; static String ns; static String ns2; static String leaps; static String hdop; static String warning; static String sensor_used; static String vacc_x; static String vacc_y; static String vacc_z; static String TimeValid; static String receiver; static String CRC32; static int lenth; static String mess; private static String hexStr = "0123456789ABCDEF"; public static void dell_AACC(String message,String ip,int port) { if(message.startsWith("AACC")) { String[] gnggns=message.split("AACC"); int size=gnggns.length; if(size>2) { for(int i=0;i5) { jiexi_AACC("AACC"+gnggns[i],ip,port); } } }else { jiexi_AACC(message,ip,port); } } } public static void jiexi_AACC(String infom,String ip,int port) { String[] hex=hex(infom);//ԭʼÊý¾Ý String lenth0=hex[5]+hex[4]; String lat0=hex[39]+hex[38]+hex[37]+hex[36]+hex[35]+hex[34]+hex[33]+hex[32]; String lon0=hex[47]+hex[46]+hex[45]+hex[44]+hex[43]+hex[42]+hex[41]+hex[40]; String alt0=hex[51]+hex[50]+hex[49]+hex[48]; String pitch0=hex[71]+hex[70]+hex[69]+hex[68]; String roll0=hex[75]+hex[74]+hex[73]+hex[72]; String yaw0=hex[79]+hex[78]+hex[77]+hex[76]; String stat0=hex[153]+hex[152]; String age0=hex[157]+hex[156]+hex[155]+hex[154]; String ns0=hex[161]+hex[160]; lenth=decodeHEX(lenth0); lat=doubelttohex(lat0); lon=doubelttohex(lon0); alt=hextofloat(alt0); pitch=hextofloat(pitch0); roll=hextofloat(roll0); yaw=hextofloat(yaw0); stat=String.valueOf(decodeHEX(stat0)); age=hextofloat(age0); ns=String.valueOf(decodeHEX(ns0)); String stats=stat+":"+get_stat()+"-"+get_gnss_stat(); if(Index1.isShoware() ) { if(Index1.getXieyi_type().equals("2")) { mess="¾­¶È:"+lat+",γ¶È:"+lon+",¸ß³Ì:"+alt+",¸©Ñö½Ç:"+pitch +",ºá¹ö½Ç:"+roll+",º½Ïò½Ç:"+yaw+",״̬:"+stats+",²î·ÖÁäÆÚ:"+age+",ÎÀÐÇ¿ÅÊý:"+ns; }else if(Index1.getXieyi_type().equals("1")) { mess=infom; }else if(Index1.getXieyi_type().equals("3")) { mess="¾­¶È:"+lat0+",γ¶È:"+lon0+",¸ß³Ì:"+alt0+",¸©Ñö½Ç:"+pitch0 +",ºá¹ö½Ç:"+roll0+",º½Ïò½Ç:"+yaw0+",״̬:"+stat0+",²î·ÖÁäÆÚ:"+age0+",ÎÀÐÇ¿ÅÊý:"+ns0; }else if(Index1.getXieyi_type().equals("5")) { mess="$GNGGAD,"+lat+","+lon; } Index1.ara_show(mess); } } /**16½øÖÆ×ªÎª10½øÖÆ*/ public static int decodeHEX(String hexs){ String hex=hexs.trim(); boolean a=JugeNumber.isLetterDigit(hex); int numb=0; if(a) { BigInteger bigint=new BigInteger(hex,16); numb=bigint.intValue(); }else { //ShowMessage.zidingyi("16½øÖÆ×ª10½øÖƳö´í,ÊÕµ½:"+hex); } return numb; } public static String[] hex(String message) { int size=message.length()/2; String[] hex=new String[size]; for(int i=0;i>4; outStr+=binaryArray[pos]; //µÍËÄλ pos=b&0x0F; outStr+=binaryArray[pos]; } return outStr; } private static String[] binaryArray = {"0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","1011", "1100","1101","1110","1111" }; /** * * @param hexString * @return ½«Ê®Áù½øÖÆ×ª»»Îª×Ö½ÚÊý×é */ public static byte[] HexStringToBinary(String hexString){ //hexStringµÄ³¤¶È¶Ô2È¡Õû£¬×÷ΪbytesµÄ³¤¶È int len = hexString.length()/2; byte[] bytes = new byte[len]; byte high = 0;//×Ö½Ú¸ßËÄλ byte low = 0;//×Ö½ÚµÍËÄλ for(int i=0;i