¶Ô±ÈÐÂÎļþ |
| | |
| | | package baowen; |
| | | import java.math.BigInteger; |
| | | import java.nio.ByteBuffer; |
| | | |
| | | import frame.Index1; |
| | | import publicclass.GetNowTime; |
| | | import publicclass.JugeNumber; |
| | | |
| | | |
| | | public class Dell_AACC { |
| | | static String time; |
| | | 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; |
| | | |
| | | public static void dell_AACC(String message,String ip,int port) { |
| | | if(message.startsWith("AACC")) { |
| | | time=GetNowTime.gethm(); |
| | | String[] gnggns=message.split("AACC"); |
| | | int size=gnggns.length; |
| | | if(size>2) { |
| | | for(int i=0;i<size;i++) { |
| | | if(gnggns[i].length()>5) { |
| | | 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)); |
| | | |
| | | if(Index1.isShoware() ) { |
| | | if(Index1.getXieyi_type().equals("2")) { |
| | | mess=time+",ç»åº¦:"+lat+",纬度:"+lon+",é«ç¨:"+alt+",俯仰è§:"+pitch |
| | | +",横æ»è§:"+roll+",èªåè§:"+yaw+",ç¶æ:"+stat+",å·®å龿:"+age+",嫿颿°:"+ns; |
| | | }else if(Index1.getXieyi_type().equals("1")) { |
| | | mess=time+","+infom; |
| | | }else if(Index1.getXieyi_type().equals("3")) { |
| | | mess=time+",ç»åº¦:"+lat0+",纬度:"+lon0+",é«ç¨:"+alt0+",俯仰è§:"+pitch0 |
| | | +",横æ»è§:"+roll0+",èªåè§:"+yaw0+",ç¶æ:"+stat0+",å·®å龿:"+age0+",嫿颿°:"+ns0; |
| | | } |
| | | 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<size;i++) { |
| | | hex[i]=message.substring(i*2, 2+i*2); |
| | | } |
| | | |
| | | return hex; |
| | | } |
| | | |
| | | |
| | | /**16è¿å¶è½¬ä¸ºdouble*/ |
| | | public static String doubelttohex(String hexString) { |
| | | long longValue = Long.parseLong(hexString, 16); |
| | | longValue = Long.parseUnsignedLong(hexString, 16); |
| | | double doubleValue = Double.longBitsToDouble(longValue); |
| | | byte[] bytes = hexStringToByteArray(hexString); |
| | | doubleValue = ByteBuffer.wrap(bytes).getDouble(); |
| | | String a1=String.format("%.8f",doubleValue); |
| | | return a1; |
| | | } |
| | | |
| | | public static byte[] hexStringToByteArray(String s) { |
| | | int len = s.length(); |
| | | byte[] data = new byte[len / 2]; |
| | | for (int i = 0; i < len; i += 2) { |
| | | data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16)); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | /**16è¿å¶è½¬ä¸ºfloat*/ |
| | | public static String hextofloat(String hex) { |
| | | Float f = Float.intBitsToFloat(new BigInteger(hex, 16).intValue()); |
| | | String a1=String.format("%.4f",f); |
| | | return a1; |
| | | |
| | | } |
| | | |
| | | } |