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

📄 hcmdat114.java

📁 用java写编写的一个GPS源代码请大家多多指教
💻 JAVA
字号:
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;;
//设备回传的MDAT定位信息
public class HcMDAT114   extends ParseData  implements ParseInterface {

  public HcMDAT114() {
  }

  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);

    //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
    //ID[2],时间null,定位4,南纬5,N6,东经7,E8,速度10,方向9,状态12,温度,里程,行驶时间
    String DBString = reStr[2]+",,"+reStr[4]+","+reStr[5]+","
                      +reStr[6]+","+reStr[7]+","+reStr[8]+","
                      +reStr[10]+","+reStr[9]+stateStr+",null,null,null";
    msg.cMsgType = SENDTODBSERVER;
    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];

      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];

      DbServer.updateTrackForceGpsInfo(dbStr);

         }*/
  }

}

⌨️ 快捷键说明

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