From: snickersun Date: Tue, 10 Mar 2020 17:59:46 +0000 (+0800) Subject: 1、增加NMEA日志,可以支持回放路径 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=521dba09304315f6142099853cd2935a64bb5fd9;p=icsupport.git 1、增加NMEA日志,可以支持回放路径 2、upload,all日志增加Nmea.txt 3、优化nmea解析,修正上报数据。坐标小数点后6位压缩到4位。 --- diff --git a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java index 307bcc4b..246d93e7 100644 --- a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java +++ b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java @@ -396,13 +396,13 @@ public class ICSmsManager { String logfile=cmdl[1]; if (logfile.isEmpty()|| logfile.equals("all")) { - String filelist[] = {"crashlog", "APILog", "GPS", "LocationAlarm", "Battery", "log"}; + String filelist[] = {"crashlog", "Nmea","APILog", "GPS", "LocationAlarm", "Battery", "log"}; // String filelist[]={"APILog","LocationAlarm","Battery"}; String time = TimeUtil.getSystemTime3(); StringBuilder sb = new StringBuilder(); Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1() { public void call(Long param1Long) { - sendSMS(phonenumber, "start Upload allLogfile [crashlog APILog log GPS LocationAlarm Battery] to " + Config.getFtpServer(mContext)); + sendSMS(phonenumber, "start Upload allLogfile [crashlog Nmea APILog log GPS LocationAlarm Battery] to " + Config.getFtpServer(mContext)); String logtime = TimeUtil.getSystemTime3(); for (String file : filelist) { diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index d9c48f05..c7e5c1b4 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -445,7 +445,7 @@ public void updateCellInfo() { updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。 ICLogger.i("forceLocation="+forceLocation+", WorkingMod="+mod+", isLocating="+isLocating+", lastStep="+runtime.getLastStepCount()+", currentStep="+ runtime.getTotalStepCount()); - if (isLocating ) { + if (isLocating && 1!=forceLocation) { ICLogger.i("locating ,skip location!"); return; } diff --git a/app/src/main/java/com/enqualcomm/support/NMEAListener.java b/app/src/main/java/com/enqualcomm/support/NMEAListener.java index 47735638..a48517c1 100644 --- a/app/src/main/java/com/enqualcomm/support/NMEAListener.java +++ b/app/src/main/java/com/enqualcomm/support/NMEAListener.java @@ -80,9 +80,9 @@ public class NMEAListener implements NmeaListener, LocationListener { // EqcAlgorithmNative.native_EqcAlgorithmMethod5(paramString); // ICLogger.i("Nmea :"+nmeastr+" "+paramLong); - if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(this.runtime.getCacheDir(),"Nmea","Nmea :"+nmeastr+" "+paramLong); + if (Config.LOG_TOFILE) FileOutputUtil.fileOutputRaw(this.runtime.getCacheDir(),"Nmea",nmeastr); - searchCout++; + if(nmeastr.startsWith("$RD_RSSI")) searchCout++; if (nmeastr.startsWith("$GPGLL,")){ @@ -101,7 +101,7 @@ public class NMEAListener implements NmeaListener, LocationListener { String Lat=tmplist[1]; String lon=tmplist[3]; String fixed=tmplist[6]; - ICLogger.i("GPGLL Lat="+Lat+",Lon="+lon+",fixed="+fixed); +// ICLogger.i("GPGLL Lat="+Lat+",Lon="+lon+",fixed="+fixed); }else if (nmeastr.startsWith("$GPRMC,")) { // GPRMC编辑 @@ -127,23 +127,23 @@ public class NMEAListener implements NmeaListener, LocationListener { String lon=tmplist[5]; String fixed=tmplist[2]; String speed=tmplist[7]; - ICLogger.i("GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed); - if (Config.LOG_TOFILE) - FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", "GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed); +// ICLogger.i("GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed); +// if (Config.LOG_TOFILE) +// FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", "GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed); StringBuilder sb=new StringBuilder(); - + sb.append("GPRMC, location time= " + TimeUtil.getLocalTime() + " ,lon= " + lon + ", lat= " + Lat + ","+fixed+" FixedCount=" + locationFixedCount + ", speed=" + speed); + ICLogger.i(sb.toString()); + if (Config.LOG_TOFILE) + FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", sb.toString()); //定位了, if (fixed.equals("A")) { locationFixedCount++; - sb.append(", location time= " + TimeUtil.getLocalTime() + " ,lon= " + lon + ", lat= " + Lat + " FixedCount=" + locationFixedCount + ", speed=" + speed); - ICLogger.i(sb.toString()); - if (Config.LOG_TOFILE) - FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", sb.toString()); + if (speed.trim().isEmpty())speed="0.0"; - runtime.getLocationInstance().setLocation(latitude, longitude,Double.valueOf(speed), 0, numSatelliteList.size()); + runtime.getLocationInstance().setLocation(Lat, lon,Double.valueOf(speed), 0, numSatelliteList.size()); if (locationFixedCount > MaxFixedTimes) { /* 只有当前GPS已经定位,且location不为空才给 runtime赋值GPS坐标。 @@ -191,7 +191,7 @@ public class NMEAListener implements NmeaListener, LocationListener { max3Satellite.clear(); //清除 最大3个星值 } int satcount=(tmplist.length-4)/4; - ICLogger.i("Nmea :"+nmeastr+" "+satcount); +// ICLogger.i("Nmea :"+nmeastr+" "+satcount); for (int i=0;i wifi_aps=null; @@ -102,6 +104,17 @@ public class ICLocation { currentLP.speed=speed; currentLP.heading=heading; currentLP.used_gps_numbs = userdgpsnumbers; + currentLP.latStr=""; + currentLP.lonStr=""; + } + public void setLocation(String lat,String lon,double speed,double heading,int userdgpsnumbers){ + currentLP.lat=0; + currentLP.lon=0; + currentLP.speed=speed; + currentLP.heading=heading; + currentLP.used_gps_numbs = userdgpsnumbers; + currentLP.latStr=lat; + currentLP.lonStr=lon; } public void clearLBSdata(){ diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index dc8d7cf3..4133d808 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -467,11 +467,17 @@ public class Runtime { int lonl=(int) ((gpsp.getLocation().lon - loni)*10000); int speedi=(int)gpsp.getLocation().speed; int speedl=(int) ((gpsp.getLocation().speed - speedi)*10); - + String latStr=gpsp.getLocation().latStr; + String lonStr=gpsp.getLocation().lonStr; if (isGPSFixed()) { - String gpsStr=String.format("%04d.%04dN%05d.%04dE%03d.%01d",lati,latl,loni,lonl,speedi,speedl); - sb.append("A").append(gpsStr); + if (gpsp.getLocation().lonStr.isEmpty()) { + String gpsStr = String.format("%04d.%04dN%05d.%04dE%03d.%01d", lati, latl, loni, lonl, speedi, speedl); + sb.append("A").append(gpsStr); + }else{ + String gpsStr = String.format("%sN%sE%03d.%01d", latStr.substring(0,9), lonStr.substring(0,10), speedi, speedl); + sb.append("A").append(gpsStr); + } }else{ String gpsStr=String.format("%04d.%04dN%05d.%04dE%03d.%01d",0,0,0,0,0,0); sb.append("V").append(gpsStr); diff --git a/app/src/main/java/com/enqualcomm/support/utils/FileOutputUtil.java b/app/src/main/java/com/enqualcomm/support/utils/FileOutputUtil.java index a56aa2f8..dad44ac7 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/FileOutputUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/FileOutputUtil.java @@ -118,7 +118,26 @@ public class FileOutputUtil { return; } } - + public static void fileOutputRaw(File dir, String filename, String msg) { +// String str = TimeUtil.getSystemTime(); + + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(filename); + stringBuilder.append(".txt"); + File file = new File(dir, stringBuilder.toString()); + try { + PrintStream printStream = new PrintStream(new FileOutputStream(file, true)); + StringBuilder stringBuilder1 = new StringBuilder(); + stringBuilder1.append(msg); + printStream.println(stringBuilder1.toString()); + printStream.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + + } + + } public static void fileOutput(File dir, String filename, String msg) { String str = TimeUtil.getSystemTime();