⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hcmdat114.java~16~

📁 用java写编写的一个GPS源代码请大家多多指教
💻 JAVA~16~
字号:
package com.gps.center.parsedata;

import java.util.regex.Pattern;
import com.gps.center.baseclass.MsgObj;
import com.gps.center.baseclass.ParseData;
import com.gps.center.baseclass.ParseInterface;
import com.gps.center.baseclass.HashObj;
import com.gps.center.dataservice.DbServer;
//设备回传的定位信息
public class HcMDAT114   extends ParseData  implements ParseInterface {


    //private DbServer dbdb=new DbServer();
//  private HashObj hashobj;

  public HcMDAT114() {
      //db=new DbServer();
  }

  /**
   * ParseMsg
   *
   * @param msg MsgObj
   */
  public void ParseMsg(MsgObj msg) {
    parseSmsMsg(msg);
  }

  private void parseSmsMsg(MsgObj msg) {
    //MDAT,00001234,13901234567,073831,A,3958.5986,N,11619.8053,E,00.0,000,080903,00*
    //更新hash
    HashObj hashobj;
    Pattern regex;
    regex = Pattern.compile("[,]");
    String[] reStr = regex.split(msg.cMsg);

//    for (int i = 0; i < reStr.length; i++) {
//      System.out.println(reStr[i]);
//    }
//hashtable的对象centerMap是否包含特殊键
    if (super.centerMap.containsKey(reStr[2])) {
      //返回reStr[2]的对象
      hashobj = (HashObj)super.centerMap.get(reStr[2]);
      if (hashobj.cDeviceSmsUsed) {
        if (!hashobj.cPhonNum.equals(msg.cPhoneNum)) {
          hashobj.cPhonNum = msg.cPhoneNum;
        }
      }
      else {
        hashobj.cPhonNum = msg.cPhoneNum;
        hashobj.cDeviceSmsUsed = true;
      }
    }
    else {
      hashobj = new HashObj();
      hashobj.cPhonNum = msg.cPhoneNum;
      hashobj.cDeviceSmsUsed = true;
      super.centerMap.put(reStr[2], hashobj);
    }

    //状态解析
    //MDAT,00000003,13811932658,000000,V,0000.0000,N,00000.0000,E,00.0,000,000000,01,,,,*
    String stateStr = new String("");
    if (reStr[12].indexOf("*") != -1) {
      reStr[12] = reStr[12].replaceFirst("*", "");
    }
    int bt = Integer.parseInt(reStr[12], 16);
//    byte bt = Byte.parseByte(reStr[12]);
    //断电报警33:(1000000)0x40 越界23(100000)0x20 超速22(10000)0x10 报警21(100)0x4 ACC(1)0x1
    if ( (bt & 0x40) == 0x40) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",33";
      }
      else {
        stateStr = stateStr + "+33";
      }
    }
    if ( (bt & 0x20) == 0x20) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",23";
      }
      else {
        stateStr = stateStr + "+23";
      }
    }
    if ( (bt & 0x10) == 0x10) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",22";
      }
      else {
        stateStr = stateStr + "+22";
      }
    }
    if ( (bt & 0x4) == 0x4) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",21";
      }
      else {
        stateStr = stateStr + "+21";
      }
    }
    if ( (bt & 0x1) == 0x1) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",1";
      }
      else {
        stateStr = stateStr + "+1";
      }
    }
    if (bt == 0x0) {
      if (stateStr.equals("")) {
        stateStr = stateStr + ",2";
      }
      else {
        stateStr = stateStr + "+2";
      }
    }

    //添加Msg到sendQueue
    //cMsgtype:1--TCPMSG,2--DEVICEUDPMSG,3--SMSMSG
    //4--TCPSENDTODEVICE,5--UDPSENDTODEVICE,6--SMSSENDTODEVICE,7--TCPSENDTOTERMINAL,8--TCPRETURNTERMINAL
    //MDAT,00001234,13901234567,073831,A,3958.5986,N,11619.8053,E,00.0,000,080903,00*
    // MDAT,命令,ID,时间,定位,纬度,N,经度,E,方向,速度,日期,状态,
    //114, 13954667441, NULL,A,3958.5986,N,11619.8053,E,00.0,000,080903,0,+0022,283848,0089,SMS(UDP,TCP)
    //114,13683253488,NULL,V,0000.0000,N,00000.0000,E,00.0,000,2006-01-13
    //
    String sendStr = "114," + reStr[2] + ",NULL," + reStr[4] + "," + reStr[5] +
        "," + reStr[6] + "," + reStr[7] + "," + reStr[8] + "," + reStr[9] +
        "," + reStr[10] + "," + CanSend.getDateTime() + stateStr +
        ",NULL,NULL,NULL," + "SMS";
    String DBString = reStr[2]+",,"+reStr[4]+","+reStr[5]+","+reStr[6]+","+reStr[7]+","+reStr[8]+","+reStr[10]+","+reStr[9]+","+stateStr+",,,";
    System.out.println(sendStr);
    System.out.println(DBString);
    //db.addVehicleInfo(DBString);
    msg.cMsgType = SENDTODBSERVER;
    //msg.cDeviceID = reStr[2];
    //msg.cPhoneNum = reStr[2];
    msg.cMsg = DBString;
    super.addSendMsg(msg);

    //DeviceID,Longitude,Latitude,Speed
    //3958.5986,N,11619.8053,E
    if (reStr[4].equals("A")) {
      String[] dbStr = new String[4];
      dbStr[0] = reStr[2];

//      System.out.println("reStr[7]:" + reStr[7].substring(0, 3));
//      System.out.println("reStr[7]:" + reStr[7].substring(3));
//      System.out.println("reStr[7]:" + reStr[5].substring(0, 2));
//      System.out.println("reStr[7]:" + reStr[5].substring(2));

      dbStr[1] = String.valueOf(Float.parseFloat(reStr[7].substring(0, 3)) +
                                (Float.parseFloat(reStr[7].substring(3)) / 60));
      dbStr[2] = String.valueOf(Float.parseFloat(reStr[5].substring(0, 2)) +
                                (Float.parseFloat(reStr[5].substring(2)) / 60));
      dbStr[3] = reStr[9];

//      for (int i = 0; i < 4; i++) {
//        System.out.println("dbStr[" + i + "]:" + dbStr[i]);
//      }
      System.out.println("updateTrackForceGpsInfo" );
    //  DbServer.updateTrackForceGpsInfo(dbStr);

    }
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -