From 52fa1061012ed00eeb85e850b1f285b84f9fc613 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 6 Sep 2022 11:00:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[CrashFix]=E4=BF=AE=E6=AD=A3=E5=B4=A9?= =?UTF-8?q?=E6=BA=83=20java.lang.RuntimeException:=20android.os.DeadSystem?= =?UTF-8?q?Exception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../status/flow/gps/GpsImpl.kt | 14 +++++++++++--- .../status/flow/nets/NetsImpl.kt | 19 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt index c290ed65b0..f53bf35c5e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/gps/GpsImpl.kt @@ -35,15 +35,23 @@ internal class GpsImpl(ctx: Context): IFlow(ctx) { } private val onClose = { - send(false, PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) + send(false, isGrandFineLocation()) } private val onOpen = { - send(true, PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) + send(true, isGrandFineLocation()) } + private fun isGrandFineLocation(): Boolean = try { + PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION) + } catch (t: Throwable) { + t.printStackTrace() + false + } + + override fun onCreate() { - val isGranted = PermissionUtils.isGranted(Manifest.permission.ACCESS_FINE_LOCATION) + val isGranted = isGrandFineLocation() send(isLocationEnabled(), isGranted) if (!isGranted) { PermissionUtils.requestAccessFineLocation(object : SimpleCallback { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt index 0e15261740..0adb0bee7c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt @@ -78,12 +78,21 @@ internal class NetsImpl(ctx: Context): IFlow(ctx) { private var loopCheckAndSendJob: Job? = null private fun checkAndSend() { - val connectionInfo = wifiMgr.connectionInfo - val enabled = isNetConnected() - val name = if (isLocationEnabled()) connectionInfo.ssid?.replace(Regex("[\\W]"), "") else "WI-FI" loopCheckAndSendJob?.safeCancel() - launch(Dispatchers.Default) { delay(1000); checkAndSend() }.also { loopCheckAndSendJob = it } - send(enabled, name) + launch(Dispatchers.Default) { + val connectionInfo = wifiMgr.connectionInfo + val enabled = isNetConnected() + val name = + try { + if (isLocationEnabled()) connectionInfo.ssid?.replace(Regex("[\\W]"), "") else "WI-FI" + } catch (t: Throwable) { + t.printStackTrace() + "WI-FI" + } + send(enabled, name) + delay(1000); + checkAndSend() + }.also { loopCheckAndSendJob = it } } private fun isLocationEnabled() = From e04d3b8d9502d53685325223bf6fd2c05152b7ed Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 6 Sep 2022 18:07:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[=E7=8A=B6=E6=80=81=E6=A0=8F]=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=BE=AA=E8=BF=B9/=E7=AE=97=E8=B7=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../status/entity/Status.kt | 69 +++++++++++++++++-- .../status/ui/adapter/StatusAdapter.kt | 28 +++++++- 2 files changed, 88 insertions(+), 9 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt index b7bb0f8082..f790cbcde3 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/entity/Status.kt @@ -145,7 +145,25 @@ class CanStatus(var enabled: Boolean = false): Status() { */ class TracingStatus(var state: Tracing = UNKNOWN): Status() { - enum class Tracing(val code: String? = "") { + enum class Tracing(val code: String? = "", var extra: Map? = null) { + + /** + * 类型切换 + */ + MAP_TRA_TYPE("IMAP_TRA_TYPE"), + + + /** + * 地图数据存在 + */ + MAP_DATA_EXIST("IMAP_DATA_EXIST"), + + + /** + * 地图数据不存在 + */ + MAP_DATA_NOT_EXIST("EMAP_DATA_NOT_EXIST"), + /** * 寻迹-已找到轨迹文件 */ @@ -213,13 +231,50 @@ class TracingStatus(var state: Tracing = UNKNOWN): Status() { } fun String.toState(): Tracing? { - return when(this) { - "IMAP_TRA_EXIST" -> TRACK_FINDED - "IMAP_TRA_LOADED" -> TRACK_LOADED - "EMAP_TRA_NOT_EXIST" -> TRACK_NOT_EXIST - "EMAP_TRA_LOAD_FAILED" -> TRACK_LOAD_FAIL - "IMAP_TRA_ROUTING" -> ROUTE_LOADED + val ss = split("|") + var code = "" + if (ss.isNotEmpty()) { + code = ss[0] + } + var extra: Map? = null + if (ss.size > 1) { + + val sb = StringBuilder() + for (i in 1 until ss.size) { + sb.append(ss[i]) + sb.append(",") + } + if (sb.isNotEmpty()) { + sb.setLength(sb.length - 1) + } + extra = mutableMapOf("extra" to sb.toString()) + } + return when(code) { + "IMAP_TRA_EXIST" -> TRACK_FINDED.apply { + this.extra = extra + } + "IMAP_TRA_LOADED" -> TRACK_LOADED.apply { + this.extra = extra + } + "EMAP_TRA_NOT_EXIST" -> TRACK_NOT_EXIST.apply { + this.extra = extra + } + "EMAP_TRA_LOAD_FAILED" -> TRACK_LOAD_FAIL.apply { + this.extra = extra + } + "IMAP_TRA_ROUTING" -> ROUTE_LOADED.apply { + this.extra = extra + } "EMAP_HADMAP_ENGINE_NO_ROUTING_INFO" -> ROUTE_FAILED + "IMAP_TRA_TYPE" -> MAP_TRA_TYPE.apply { + this.extra = extra + } + "MAP_DATA_EXIST" -> MAP_DATA_EXIST.apply { + this.extra = extra + } + "MAP_DATA_NOT_EXIST" -> MAP_DATA_NOT_EXIST.apply { + this.extra = extra + } else -> null } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt index 98c35d7892..7e9d4fded7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/adapter/StatusAdapter.kt @@ -6,6 +6,7 @@ import android.widget.* import androidx.core.content.* import androidx.recyclerview.widget.* import com.mogo.eagle.core.utilcode.kotlin.* +import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.util.* import com.zhjt.mogo_core_function_devatools.* import com.zhjt.mogo_core_function_devatools.R @@ -19,6 +20,10 @@ import kotlinx.coroutines.* internal class StatusAdapter(val ctx: Context, var data: ArrayList): RecyclerView.Adapter() { + companion object { + const val TAG = "StatusAdapter" + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StatusViewHolder = StatusViewHolder(LayoutInflater.from(ctx).inflate(R.layout.layout_status_bar_item, parent, false)) @@ -69,7 +74,7 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec } is TracingStatus -> { when(status.state) { - ROUTE_FAILED, TRACK_LOAD_FAIL, TRACK_NOT_EXIST, TRACK_FINDED, UNKNOWN -> { + MAP_DATA_NOT_EXIST, MAP_DATA_EXIST, MAP_TRA_TYPE, ROUTE_FAILED, TRACK_LOAD_FAIL, TRACK_NOT_EXIST, TRACK_FINDED, UNKNOWN -> { iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_trace_unkown) } TRACK_LOADED -> { @@ -116,7 +121,26 @@ internal class StatusAdapter(val ctx: Context, var data: ArrayList): Rec else -> "定位异常" } - is TracingStatus -> "轨迹类型:${ if (status.state == TRACK_LOADED) "循迹" else if (status.state == ROUTE_LOADED) "自主算路" else "暂无轨迹" }" + is TracingStatus -> { + val extra = status.state.extra + val extraDesc = if (extra != null && extra.isNotEmpty()) extra.values.joinToString(",") else "" + Logger.d(TAG, "traceing_state: $status -> extra: $extraDesc :: extra: $extra") + when(status.state) { + //"轨迹类型:${ if (status.state == TRACK_LOADED) "循迹" else if (status.state == ROUTE_LOADED) "自主算路" else "暂无轨迹" }" + MAP_TRA_TYPE -> { + "暂无轨迹" + } + MAP_DATA_EXIST -> "地图数据存在,正在加载${if (extraDesc.isEmpty()) "" else "[$extraDesc]" }" + MAP_DATA_NOT_EXIST -> "地图数据不存在${if (extraDesc.isEmpty()) "" else "[$extraDesc]"}" + TRACK_FINDED -> "轨迹类型:循迹[已找到轨迹$extraDesc]" + TRACK_LOADED -> "轨迹类型:循迹[加载成功$extraDesc]" + TRACK_NOT_EXIST -> "轨迹类型:循迹[不存在$extraDesc]" + TRACK_LOAD_FAIL -> "轨迹类型:循迹[加载失败$extraDesc]" + ROUTE_LOADED -> "轨迹类型:自主算路[加载成功$extraDesc]" + ROUTE_FAILED -> "轨迹类型:自主算路[加载失败$extraDesc]" + UNKNOWN -> "暂无轨迹" + } + } } } } \ No newline at end of file From 056a7274a6fd27039eba47900c8eda30c7864c74 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 6 Sep 2022 18:22:16 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[Change]=20A=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=B2=A1=E6=9C=89=E8=AE=A2=E9=98=85=E7=82=B9?= =?UTF-8?q?=E4=BA=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../com/zhidao/adas/client/ui/MainActivity.java | 2 +- .../function/autopilot/MoGoAutopilotProvider.kt | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index e2521d2633..6d57818bdc 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -974,7 +974,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas int mode = Constants.getIpcConnectionMode(this); Set messageTypes = new HashSet<>(); // 注释掉下面代码,默认开启点云订阅 - //messageTypes.add(MessageType.TYPE_RECEIVE_POINT_CLOUD); + messageTypes.add(MessageType.TYPE_RECEIVE_POINT_CLOUD); SubscribeInterfaceOptions subscribeInterfaceOptions = SubscribeInterfaceOptions.newBuilder() .setRole(com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.DEBUG) .setType(com.zhidao.support.adas.high.common.Constants.SUBSCRIBE_TYPE.UNSUBSCRIBE) diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index eb426b94f2..a95120b060 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -90,19 +90,19 @@ class MoGoAutopilotProvider : CallerMapDataCollectorManager.registerOnMapCollectTaskListener(this) // 配置默认关闭的连接topic - val messageTypes: MutableSet = HashSet() - messageTypes.add(MessageType.TYPE_RECEIVE_POINT_CLOUD) - val subscribeInterfaceOptions = SubscribeInterfaceOptions.newBuilder() - .setRole(Constants.TERMINAL_ROLE.DRIVER) - .setType(Constants.SUBSCRIBE_TYPE.UNSUBSCRIBE) - .setMessageTypes(messageTypes).build() +// val messageTypes: MutableSet = HashSet() +// messageTypes.add(MessageType.TYPE_RECEIVE_POINT_CLOUD) +// val subscribeInterfaceOptions = SubscribeInterfaceOptions.newBuilder() +// .setRole(Constants.TERMINAL_ROLE.DRIVER) +// .setType(Constants.SUBSCRIBE_TYPE.UNSUBSCRIBE) +// .setMessageTypes(messageTypes).build() // "192.168.1.102" val options = AdasOptions.Builder() .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false) - .setSubscribeInterfaceOptions(subscribeInterfaceOptions) +// .setSubscribeInterfaceOptions(subscribeInterfaceOptions)// .build() AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl()) From af9670e871ed2805c877e6e7753cc7c0ac60def6 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 7 Sep 2022 09:57:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[2.10.0]taxi=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E5=AE=9A=E4=BD=8D=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/och/taxi/model/TaxiModel.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index f09f6d1d4f..0b5a063e82 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1345,6 +1345,9 @@ public class TaxiModel { * 实时计算当前剩余里程和时间 */ public void dynamicCalculateRouteInfo() { + if (mLatitude <= 0.0 || mLongitude <= 0.0){ + return; + } if (mRoutePoints.size() > 0){ List lastPoints = CoordinateCalculateRouteUtil .getRemainPointListByCompare(mRoutePoints, mLongitude, mLatitude);