case ICLocation.EMERGNECY_MOD:
case ICLocation.REALTIME_MOD: {
//GPS 优先的话多给些时间(10秒)
- if (checktimes > GPSLocationTimeoutInSeconds) {
- ICLogger.i("waitAndSendLocation " + checktimes + " timeout");
+ timeCost = System.currentTimeMillis() - startCheckTime;
+
+ if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+ ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+ wifi_timeout = true;
+ }
+ if ((checktimes > GPSLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > GPSLocationTimeoutInSeconds*1000))) {
+ //有时timer计数不准,则根据实际时间计算
+ ICLogger.i("waitAndSendLocation " + checktimes + "> "+GPSLocationTimeoutInSeconds+" or timeCost "+timeCost+"> "+GPSLocationTimeoutInSeconds*1000+"ms ");
timeout = true;
}
if (NoMoveTimeout && (timeout || gps_nosignal)) {
//没有移动,GPS超时或者没信号都会给 计数 加 1
gpsTimeoutCountOnNoMove++;
}
- timeCost = System.currentTimeMillis() - startCheckTime;
- if ((startCheckTime != 0L) && (timeCost > 50 * 1000L)) {
- //有时timer计数不准,则根据实际时间计算
- ICLogger.i("waitAndSendLocation " + timeCost + "> 50000ms timeout");
- //timeout=true;
- }
// lbs only +timeout, lbs+wifi+gpsNosignal, libs+ , lbs+gps+wifi, Timeout can override wifi and gps
if ((lbs_ok && timeout)
|| (gps_ok)
}
runtime.getLocationInstance().setLocationType(locationtype);
runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+ ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
+
if (startSOSLocation) {
StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
DeliverMessage(AP10_CMD);
if (startNomalLocation = true) {
startNomalLocation = false;
if (gps_ok) {
- if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
+// if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);
DeliverMessage(AP01_CMD);
- }
+// }
} else {
StringMessage AP02_CMD = protocolAPIHelper.getLBSLocationMSG(runtime);
DeliverMessage(AP02_CMD);
if (Config.LOG_TOFILE) {
ICLogger.logToFile("GPS", msg);
}
- } else if (timeout) {
+ } else if ((timeout ||gps_nosignal) && !lbs_ok && wifi_timeout) {
//timeout + noLBS +noGPS
ICLogger.i("timeout no location ");
stopCheckLocationResult();
break;
case ICLocation.CUSTOM_MOD9_WIFI_FIRST: {
//检测wifi和lbs先,成功则直接返回,失败则开启GPS
- if (checktimes > WiFiLocationTimeoutInSeconds) {
- ICLogger.i("waitAndSendLocation " + checktimes + " WIFI Timeout start GPS location");
+
+ timeCost = System.currentTimeMillis() - startCheckTime;
+ //wifi扫描 检测次数到,或者实际时间到,都会触发 timeout事件,开启gps扫描。
+ if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+ ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+ if (!wifi_timeout)
+ {
+ startGpsLocate();
+ }
wifi_timeout = true;
- startGpsLocate();
}
- if (checktimes > GPSLocationTimeoutInSeconds) {
- ICLogger.i("waitAndSendLocation " + checktimes + " GPS timeout");
+ //WIFI First 会在完成 wifi 检测且没有 后再开始GPS测试。
+ if ((checktimes > (GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds)) || ((startCheckTime != 0L) && (timeCost > (GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds)*1000))) {
+ //有时timer计数不准,则根据实际时间计算
+ ICLogger.i("waitAndSendLocation GPS Timeout " + checktimes + "> "+(GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds)+" or timeCost "+timeCost+"> "+GPSLocationTimeoutInSeconds*1000+"ms ");
timeout = true;
}
+
if (NoMoveTimeout && (timeout || gps_nosignal)) {
//没有移动,GPS超时或者没信号都会给 计数 加 1
gpsTimeoutCountOnNoMove++;
}
- timeCost = System.currentTimeMillis() - startCheckTime;
- if ((startCheckTime != 0L) && (timeCost > 50 * 1000L)) {
- //有时timer计数不准,则根据实际时间计算
- ICLogger.i("waitAndSendLocation " + timeCost + "> 50000ms timeout");
- //timeout=true;
- }
+
// lbs only +timeout, lbs+wifi+gpsNosignal, libs+ , lbs+gps+wifi, Timeout can override wifi and gps
String locationtype = "LBS";
if (wifi_ok) {
locationtype = "WiFi";
runtime.getLocationInstance().setLocationType(locationtype);
runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+ ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
if (startSOSLocation) {
StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
DeliverMessage(AP10_CMD);
if ((lbs_ok && timeout)
|| (gps_ok)
|| (lbs_ok && (gps_ok || startSOSLocation))
- || (lbs_ok && (gps_ok || startSOSLocation) && wifi_ok)
- || (lbs_ok && gps_nosignal && wifi_ok)
) {
if (gps_ok) {
}
runtime.getLocationInstance().setLocationType(locationtype);
runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+ ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
if (startSOSLocation) {
StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
DeliverMessage(AP10_CMD);
if (startNomalLocation = true) {
startNomalLocation = false;
if (gps_ok) {
- if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
+// if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);
DeliverMessage(AP01_CMD);
- }
+// }
} else {
StringMessage AP02_CMD = protocolAPIHelper.getLBSLocationMSG(runtime);
DeliverMessage(AP02_CMD);
if (Config.LOG_TOFILE) {
ICLogger.logToFile("GPS", msg);
}
- } else if (timeout) {
+ } else if ((timeout ||gps_nosignal) && !lbs_ok) {
//timeout + noLBS +noGPS
ICLogger.i("timeout no location ");
stopCheckLocationResult();
case ICLocation.CUSTOM_MOD8_WIFI:
default: {
//wifi优先的话给20秒时间
- if (checktimes > WiFiLocationTimeoutInSeconds) {
- ICLogger.i("waitAndSendLocation " + checktimes + " timeout");
- timeout = true;
- }
timeCost = System.currentTimeMillis() - startCheckTime;
- if ((startCheckTime != 0L) && (timeCost > 20 * 1000L)) {
- //有时timer计数不准,则根据实际时间计算
- ICLogger.i("waitAndSendLocation " + timeCost + "> 20000ms timeout");
- // timeout=true;
+ if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+ ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+ wifi_timeout = true;
}
- if ((lbs_ok && timeout) || (lbs_ok && wifi_ok)) {
+
+ if ((lbs_ok && wifi_timeout) || (lbs_ok && wifi_ok)) {
String locationtype = "LBS";
if (wifi_ok) {
locationtype = "WiFi";
}
runtime.getLocationInstance().setLocationType(locationtype);
runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+ ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
if (startSOSLocation) {
StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
ICLogger.logToFile("GPS", msg);
- } else if (timeout == true) {
- ICLogger.i("timeout no location ");
+ } else if (wifi_timeout && !lbs_ok) {
+ ICLogger.i("WiFi timeout no location ");
stopCheckLocationResult();
if (Config.LOG_TOFILE)
- ICLogger.logToFile("GPS", "timeout no location ");
+ ICLogger.logToFile("GPS", "WiFi timeout no location ");
}
}
break;