6d21439572df94aa8bda088708d9725abdfbb7cc..674747e1ccde2707bf4d4c02d52b7ef5af5a97dc
2023-07-22 826220679@qq.com
修改了解析
674747 对比 | 目录
2023-07-22 826220679@qq.com
Merge branch 'master' of http://47.108.70.204:60062/r/~shihao.zhang/lixian
2cdbaa 对比 | 目录
2023-07-22 826220679@qq.com
1
734291 对比 | 目录
已添加1个文件
已修改1个文件
216 ■■■■■ 文件已修改
src/baowen/Dell_AACC.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/frame/Index1.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/baowen/Dell_AACC.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,171 @@
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;
    }
}
src/frame/Index1.java
@@ -12,6 +12,9 @@
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.Vector;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
@@ -21,7 +24,6 @@
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import data_model.Dell_lixian;
import data_model.Dell_shebei;
import data_model.Dell_system;
@@ -78,10 +80,11 @@
    static int num=0;
    JComboBox<String> datatype=null;//数据类型
    JComboBox<String> baseanchor=null;//选择基准站ID
    static String datatypeis="全部数据类型";
    static boolean chushi_enhd=false;
    static boolean start_jiexi=false;
    static String tagid="0";
    JComboBox<String> box=null;
    static String xieyi_type="1";//协议类型选择
    public Index1() {//构造方法
        Toolkit toolkit = getToolkit();// èŽ·å¾—çª—ä½“å·¥å…·åŒ…
@@ -125,6 +128,7 @@
            //mb.add(getTcpnum());
            mb.add(getUdpnum());    
            mb.add(getBut_shuaxin1());
            mb.add(getBox());
            jl_UDP.setBounds(x+3, y,140,30);
            //jl_tcp.setBounds(x+140, y,120,30);
            //getTcpnum().setBounds(x+140+120+10, y,100,30);
@@ -152,6 +156,7 @@
            getBut_start().setBounds(x, y2+h1+20,100,40);
            getBut_clear().setBounds(x+120, y2+h1+20,100,40);
            getBox().setBounds(x+240, y2+h1+20,120,40);
@@ -349,10 +354,10 @@
    public static void baowen_show(String message,String ip,String datatype) {
        if(showare) {
            if(chooseip.equals("1") || ip.equals(chooseip)) {
                if(datatypeis.equals("全部数据类型")) {//
                if(xieyi_type.equals("1")) {//
                    are.append(GetNowTime.sss()+":"+message+"\n");
                    are.setCaretPosition(are.getText().length());
                }else if(datatype.equals(datatypeis)) {
                }else if(datatype.equals(xieyi_type)) {
                    are.append(message+"\n");
                    are.setCaretPosition(are.getText().length());
                }
@@ -533,7 +538,37 @@
    }
    
    public JComboBox<String> getBox() {
        if(box==null) {
            box=new JComboBox<String>();
            String[] neixing= {"原始数据","解析后数据","HEX显示","ASCLL显示"};
            ComboBoxModel<String > coModel=new DefaultComboBoxModel<>(neixing);//下拉列表模型
            box.setModel(coModel);
            box.setBackground(Color.white);
            box.setSelectedIndex(2);
            box.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    if(box.getSelectedIndex()==0) {
                        xieyi_type="1";
                    }else if(box.getSelectedIndex()==1) {
                        xieyi_type="2";
                    }else if(box.getSelectedIndex()==2) {
                        xieyi_type="3";
                    }else if(box.getSelectedIndex()==3) {
                        xieyi_type="4";
                    }
                }
            });
        }
        return box;
    }
    public static String getXieyi_type() {
        return xieyi_type;
    }
}