From 10318598c40e8c8d54a63a37754d30872525fc94 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 30 May 2023 15:18:46 +0800 Subject: [PATCH 1/7] =?UTF-8?q?[charter]=20[debug]=20[2s=E9=92=9F=E5=90=8E?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=AD=A3=E7=A1=AE=E7=9A=84=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/passenger/model/CharterPassengerModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index d60f3e145f..fb2d759368 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -237,7 +237,7 @@ object CharterPassengerModel { } when (state) { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { - RxUtils.createSubscribe(5_000) { + RxUtils.createSubscribe { cleanRoutePoints() CallerLogger.d(M_BUS_P + TAG,"请求底盘轨迹") CallerAutoPilotControlManager.getGlobalPath() From 238cc18a387c27714ed5fb565c4d14d8ac92cf91 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 30 May 2023 15:44:06 +0800 Subject: [PATCH 2/7] =?UTF-8?q?[3.2.0][Opt]=E5=85=A8=E8=A7=88=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E8=BD=A8=E8=BF=B9=E6=95=B0=E6=8D=AE=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=AE=89=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/smp/MarkerDrawerManager.kt | 37 +++++++++--- .../eagle/core/function/view/OverMapView.kt | 59 +++++++++++-------- 2 files changed, 63 insertions(+), 33 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt index 376078cfc7..8e31176ef5 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.smp import android.content.Context +import android.util.Log import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.utilcode.util.CoordinateUtils @@ -60,19 +61,28 @@ object MarkerDrawerManager { private fun getLoopCalCarObservable(): Observable { return Observable.create(ObservableOnSubscribe { emitter -> if (emitter.isDisposed) return@ObservableOnSubscribe - loopRouteAndWipe(planningPoints, lonLatHeading.first, lonLatHeading.second, lonLatHeading.third) + loopRouteAndWipe( + planningPoints, + lonLatHeading.first, + lonLatHeading.second, + lonLatHeading.third + ) emitter.onComplete() }) } - private fun loopRouteAndWipe(routePoints: List?, lon: Double, lat: Double, heading: Double) { + private fun loopRouteAndWipe( + routePoints: List?, + lon: Double, + lat: Double, + heading: Double + ) { if (routePoints != null && routePoints.isNotEmpty()) { val newPointList = ArrayList() - val arrivedIndex: Int = getArrivedPointIndex(routePoints, newPointList, lon, lat, heading) - if (arrivedIndex != -1 && lastArrivedIndex != arrivedIndex) { - callback?.onLocationChanged(newPointList, arrivedIndex) - lastArrivedIndex = arrivedIndex - } + val locationIndex: Int = + getCarLocationIndex(routePoints, newPointList, lon, lat, heading) + Log.d("MarkerDrawerManager", "自车在轨迹集合中的索引为:$locationIndex") + callback?.onLocationChanged(newPointList, locationIndex) } } @@ -90,7 +100,7 @@ object MarkerDrawerManager { * @param realLat * @return 返回已经到达点的index */ - private fun getArrivedPointIndex( + private fun getCarLocationIndex( routePoints: List, newPoints: MutableList, realLon: Double, @@ -112,12 +122,21 @@ object MarkerDrawerManager { if (baseDiffDis > diff) { baseDiffDis = diff // 距离最近的时候判断是否走过 - if (DrivingDirectionUtils.getDegreeOfCar2Poi2(realLon, realLat, latLng.longitude, latLng.latitude, heading) >= 90) { + if (DrivingDirectionUtils.getDegreeOfCar2Poi2( + realLon, + realLat, + latLng.longitude, + latLng.latitude, + heading + ) >= 90 + ) { currentIndex = if (i < lastArrivedIndex) { lastArrivedIndex } else { + lastArrivedIndex = i i } + Log.d("MarkerDrawerManager", "已走过的点的索引为:$currentIndex") } } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt index e0c5bb8a82..f2e0f44f6f 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt @@ -46,7 +46,6 @@ import com.mogo.eagle.core.function.smp.MarkerDrawerManager.planningPoints import com.mogo.eagle.core.function.smp.MarkerDrawerManager.startLoopCalCarLocation import com.mogo.eagle.core.function.smp.MarkerDrawerManager.updateRoutePoints import com.mogo.eagle.core.function.smp.V2XMarkerView -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -124,6 +123,9 @@ class OverMapView @JvmOverloads constructor( var siteMarkerList: ArrayList? = null var siteNameList: ArrayList? = null + @Volatile + private var isInit = false + companion object { const val TAG = "OverMapView" } @@ -329,6 +331,7 @@ class OverMapView @JvmOverloads constructor( MarkerDrawerManager.stopLoopCalCarLocation() planningPoints.clear() lastArrivedIndex = -1 + isInit = false } @SuppressLint("UseCompatLoadingForDrawables") @@ -460,34 +463,42 @@ class OverMapView @JvmOverloads constructor( } fun handlePlanningData(locationList: List?) { - if (locationList.isNullOrEmpty()) return - val list: List = locationList - // 转成高德坐标系并存储 - updateRoutePoints(list, mContext!!) - val planningPointList: List = planningPoints - UiThreadHandler.post { - displayCustomOverView() - drawStartAndEndMarker(planningPointList) + if (locationList.isNullOrEmpty()) { + Log.d(TAG, "全局路径规划轨迹为空") + return } - callback = object : MarkerDrawerManager.Callback { - override fun onLocationChanged(planningPoints: List, locIndex: Int) { - // 每1s刷新一下轨迹线 - UiThreadHandler.post { - if (planningPoints.isNotEmpty()) { - drawPolyline(planningPoints, locIndex) - } + val list: List = locationList + ThreadUtils.getSinglePool().submit { + lastArrivedIndex = -1 + // 转成高德坐标系并存储 + updateRoutePoints(list, mContext!!) + val planningPointList: List = planningPoints + UiThreadHandler.post { + displayCustomOverView() + drawStartAndEndMarker(planningPointList) + + if (geoHashInfMap.isNullOrEmpty()) { + UiThreadHandler.postDelayed({ + drawInfrastructureMarkers(locationList) + }, 1000) + } else { + drawInfrastructureMarkers(locationList) } } } - startLoopCalCarLocation() - UiThreadHandler.post { - if (geoHashInfMap.isNullOrEmpty()) { - UiThreadHandler.postDelayed({ - drawInfrastructureMarkers(locationList) - }, 1000) - } else { - drawInfrastructureMarkers(locationList) + if (!isInit) { + callback = object : MarkerDrawerManager.Callback { + override fun onLocationChanged(planningPoints: List, locIndex: Int) { + // 每1s刷新一下轨迹线 + UiThreadHandler.post { + if (planningPoints.isNotEmpty()) { + drawPolyline(planningPoints, locIndex) + } + } + } } + startLoopCalCarLocation() + isInit = true } } From 28fd08eae2a5674dc0ca711b741417b8e11054b3 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 30 May 2023 16:48:15 +0800 Subject: [PATCH 3/7] =?UTF-8?q?[minibus320][adas]=20=E4=BF=AE=E5=A4=8DMAP?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=A7=A3=E6=9E=90=E5=BC=82=E5=B8=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 5 +++-- .../core/utilcode/util/ParseVersionUtils.java | 13 +++++++++++-- .../src/main/proto/message_pad.proto | 2 +- .../zhidao/support/adas/high/AdasManager.java | 19 ++++++++++++++++--- .../ability/AutopilotAbilityManager.java | 4 ++-- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index 339b5457a9..c350f49704 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -38,6 +38,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.ParseVersionUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler @@ -849,8 +850,8 @@ class MoGoAutopilotControlProvider : if(carConfigResp.dockVersion.isNotEmpty()){ if(carConfigResp.dockVersion.contains("taxi")){ //修改雨天模式开关默认状态为开启(仅针对taxi320及以上的版本)-sop 215 - val num = AdasManager.getInstance().parseVersion(carConfigResp.dockVersion) - if(num >= 320){ + val num = ParseVersionUtils.parseVersion(true,carConfigResp.dockVersion) + if(num >= 30200){ FunctionBuildConfig.isRainMode = true } } diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ParseVersionUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ParseVersionUtils.java index b09b3a0ab8..88447b8145 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ParseVersionUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ParseVersionUtils.java @@ -3,6 +3,7 @@ package com.mogo.eagle.core.utilcode.util; import android.text.TextUtils; import android.util.Log; +import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -33,7 +34,11 @@ public class ParseVersionUtils { /** * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) - * 如果用于比较,仅适用于非个位数非0的字符串,例如:"12.03.04" 解析出为120304可能无法正常对比 + * 仅用于版本比较,不能用于展示 + * 例如: + * "12.03.04" 解析结果:120304 + * "2.11.0" 解析结果:21100 + * "3.0.0" 解析结果:30000 * 目前已用于DockerVersion和MaserVersion的解析 * * @param isUseAll 是否使用全部截取数据 true:表示 12.34.56 截取之后 123456 false:表示12.34.56 截取之后 12 @@ -48,8 +53,12 @@ public class ParseVersionUtils { if (matcher.find()) { String group = matcher.group(); if (!TextUtils.isEmpty(group)) { + String format = "%02d"; if (isUseAll) { - group = group.replace(".", ""); + String[] temp = group.split("\\."); + group = String.format(Locale.getDefault(), format, Integer.parseInt(temp[0])); + group += String.format(Locale.getDefault(), format, Integer.parseInt(temp[1])); + group += String.format(Locale.getDefault(), format, Integer.parseInt(temp[2])); } else { group = group.split("\\.")[0]; } diff --git a/libraries/mogo-adas-data/src/main/proto/message_pad.proto b/libraries/mogo-adas-data/src/main/proto/message_pad.proto index 1e02521784..21bc4568a5 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -317,7 +317,7 @@ message CarConfigResp string carType = 9; //车辆类型 string subCarType = 10; //车辆子类型 reserved 11 to 100; - int32 mapVersion = 101;//dockVersion解析出版本号,解析失败为-1。例如:"MAP-taxi_RoboTaxi_df_2.8.0.3_20220928_test" 解析结果为:280 + int32 mapVersion = 101;//dockVersion解析出版本号,仅用于版本对比,解析失败为-1。例如:"MAP-taxi_RoboTaxi_df_2.8.0.3_20220928_test" 解析结果为:20800 bool isDF = 102;//车型是否是东风 bool isHQ = 103;//车型是否是红旗 bool isJinlv = 104;//车型是否是金旅小巴 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 8732af2ce3..6b13e4396f 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -15,6 +15,7 @@ import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -1053,7 +1054,11 @@ public class AdasManager implements IAdasNetCommApi { /** * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) - * 如果用于比较,仅适用于除个位数非0的字符串,例如:"12.03.04" 解析出为120304可能无法正常对比 + * 仅用于版本比较,不能用于展示 + * 例如: + * "12.03.04" 解析结果:120304 + * "2.11.0" 解析结果:21100 + * "3.0.0" 解析结果:30000 * 目前已用于DockerVersion和MaserVersion的解析 * * @param ver 版本字符串 例如:"MAP-taxi_RoboTaxi_df_2.8.0.3_20220928_test" 解析结果为:280 @@ -1065,7 +1070,11 @@ public class AdasManager implements IAdasNetCommApi { /** * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) - * 如果用于比较,仅适用于非个位数非0的字符串,例如:"12.03.04" 解析出为120304可能无法正常对比 + * 仅用于版本比较,不能用于展示 + * 例如: + * "12.03.04" 解析结果:120304 + * "2.11.0" 解析结果:21100 + * "3.0.0" 解析结果:30000 * 目前已用于DockerVersion和MaserVersion的解析 * * @param isUseAll 是否使用全部截取数据 true:表示 12.34.56 截取之后 123456 false:表示12.34.56 截取之后 12 @@ -1080,8 +1089,12 @@ public class AdasManager implements IAdasNetCommApi { if (matcher.find()) { String group = matcher.group(); if (!TextUtils.isEmpty(group)) { + String format = "%02d"; if (isUseAll) { - group = group.replace(".", ""); + String[] temp = group.split("\\."); + group = String.format(Locale.getDefault(), format, Integer.parseInt(temp[0])); + group += String.format(Locale.getDefault(), format, Integer.parseInt(temp[1])); + group += String.format(Locale.getDefault(), format, Integer.parseInt(temp[2])); } else { group = group.split("\\.")[0]; } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java index a7d316e434..f44c666eba 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -138,7 +138,7 @@ public class AutopilotAbilityManager { } private void initAutopilotAbility() { - if (dockerVersion >= 250) { + if (dockerVersion >= 20500) { stop230(); if (autopilotAbility250 == null) { autopilotAbility250 = new AutopilotAbility250(); @@ -186,7 +186,7 @@ public class AutopilotAbilityManager { @Override public void run() { if (dockerVersion == -1 && AdasManager.getInstance().getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) { - dockerVersion = 230; + dockerVersion = 20300; initAutopilotAbility(); } } From 8b4a7a2f449d4c0a3f83fe8575fde7c655028d2e Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 30 May 2023 17:20:37 +0800 Subject: [PATCH 4/7] =?UTF-8?q?[minibus320][adas]=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=9A=9C=E7=A2=8D=E7=89=A9PB=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=9B=B8=E5=AF=B9=E4=BA=8E=E8=87=AA=E8=BD=A6x=E8=BD=B4?= =?UTF-8?q?=E7=9A=84=E8=A7=92=E5=BA=A6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/mogo-adas-data/src/main/proto/message_pad.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/mogo-adas-data/src/main/proto/message_pad.proto b/libraries/mogo-adas-data/src/main/proto/message_pad.proto index 21bc4568a5..c72d33a01e 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -141,7 +141,8 @@ message TrackedObject repeated Location polygon = 15; geometry.Point center = 16; AdditionalAttribute add_attribute = 17; // 事件类型 - reserved 18 to 100; + double angle = 18; //相对于自车x轴的角度,左正右负 + reserved 19 to 100; string strUuid = 101;//String类型车辆ID } From 909e3719c922725740fc880c81138a0833aa7b65 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 30 May 2023 17:57:23 +0800 Subject: [PATCH 5/7] =?UTF-8?q?[dev=5Fminibus-d=5F230425=5F3.2.0]=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/eagle/core/data/enums/EventTypeEnumNew.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index f9f3c5bf2e..1f9a850303 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -225,22 +225,22 @@ enum class EventTypeEnumNew( 1001.toString(), "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, - content = "前方摩托车", - tts = "前方摩托车" + content = "前方摩托车闯入", + tts = "前方摩托车闯入" ), TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES( 1002.toString(), "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, - content = "前方非机动车", - tts = "前方非机动车" + content = "前方非机动车闯入", + tts = "前方非机动车闯入" ), TYPE_USECASE_ID_VRUCW_PERSON( 1003.toString(), "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, - content = "前方路人", - tts = "前方路人" + content = "前方路人闯入", + tts = "前方路人闯入" ), TYPE_ERROR_WEAKNESS( 1006.toString(), From 5191cd4bf27608f76a6218502b2356512732d4a8 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 30 May 2023 18:29:38 +0800 Subject: [PATCH 6/7] =?UTF-8?q?[charter]=20[debug]=20[=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=A2=AB=E5=9B=9E=E6=94=B6mView=E6=B2=A1=E6=9C=89=E8=A2=AB?= =?UTF-8?q?=E5=9B=9E=E6=94=B6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialogfragment/fragment/M1SoftFragment.kt | 178 +++++++++--------- 1 file changed, 94 insertions(+), 84 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt index 721d9da4f1..848fb73cc9 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt @@ -373,58 +373,60 @@ class M1SoftFragment : pattern: Int, windSpeed: Int ) { - if (!airIsOpen && !heaterIsOpen) { - tv_aircondition_switch.text = "打开空调" - tv_aircondition_switch.isChecked = false - dbv_wind.visibility = View.GONE - } else { - tv_aircondition_switch.text = "关闭空调" - tv_aircondition_switch.isChecked = true - dbv_wind.visibility = View.VISIBLE - } - if (airIsOpen) { - val adapter = rv_aircondition_temperature.adapter - if (adapter is TemperatureAdapter) { - adapter.data.forEach { - if (it.value == temperatureCmd) { - rv_aircondition_temperature.tag = touchTag - UiThreadHandler.postDelayed({ - rv_aircondition_temperature?.smoothScrollToPosition(it.index) - },500) + tv_aircondition_switch?.let { + if (!airIsOpen && !heaterIsOpen) { + tv_aircondition_switch.text = "打开空调" + tv_aircondition_switch.isChecked = false + dbv_wind.visibility = View.GONE + } else { + tv_aircondition_switch.text = "关闭空调" + tv_aircondition_switch.isChecked = true + dbv_wind.visibility = View.VISIBLE + } + if (airIsOpen) { + val adapter = rv_aircondition_temperature.adapter + if (adapter is TemperatureAdapter) { + adapter.data.forEach { + if (it.value == temperatureCmd) { + rv_aircondition_temperature.tag = touchTag + UiThreadHandler.postDelayed({ + rv_aircondition_temperature?.smoothScrollToPosition(it.index) + },500) + } } } + when (pattern) {//1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度) + 1 -> {rb_pattern_automatic.isChecked = true} + 2 -> {rb_pattern_refrigeration.isChecked = true} + 3 -> {rb_pattern_ventilate.isChecked = true} + else -> {} + } + heaterAirEnable(true) + when (windSpeed) {//1: 1档,2: 2档,3:3档 + 1 -> { + setWind(rb_wind_speed_low,R.drawable.bus_pm1_aircondition_wind_low) + } + 2 -> { + setWind(rb_wind_speed_middle,R.drawable.bus_pm1_aircondition_wind_middle) + } + 3 -> { + setWind(rb_wind_speed_high,R.drawable.bus_pm1_aircondition_wind_high) + } + else -> {} + } } - when (pattern) {//1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度) - 1 -> {rb_pattern_automatic.isChecked = true} - 2 -> {rb_pattern_refrigeration.isChecked = true} - 3 -> {rb_pattern_ventilate.isChecked = true} - else -> {} - } - heaterAirEnable(true) - when (windSpeed) {//1: 1档,2: 2档,3:3档 - 1 -> { - setWind(rb_wind_speed_low,R.drawable.bus_pm1_aircondition_wind_low) + if (heaterIsOpen) { + rb_pattern_heating.isChecked = true + heaterAirEnable(false) + when (windSpeed) {//1: 1档,2: 2档 + 1 -> { + setWind(rb_wind_speed_middle,R.drawable.bus_pm1_warm_wind_middle) + } + 2 -> { + setWind(rb_wind_speed_high,R.drawable.bus_pm1_warm_wind_high) + } + else -> {} } - 2 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_aircondition_wind_middle) - } - 3 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_aircondition_wind_high) - } - else -> {} - } - } - if (heaterIsOpen) { - rb_pattern_heating.isChecked = true - heaterAirEnable(false) - when (windSpeed) {//1: 1档,2: 2档 - 1 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_warm_wind_middle) - } - 2 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_warm_wind_high) - } - else -> {} } } } @@ -547,38 +549,44 @@ class M1SoftFragment : } fun setLightTop1View(leftLight: Boolean, isFirst: Boolean){ - if (leftLight) { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_close_light1) - tv_light_top_01.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯1") - } else { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_open_light1) - tv_light_top_01.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯1") + tv_light_top_01?.let { + if (leftLight) { + tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_close_light1) + tv_light_top_01.isChecked = true + if(!isFirst) ToastCharterUtils.showShort("打开顶灯1") + } else { + tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_open_light1) + tv_light_top_01.isChecked = false + if(!isFirst) ToastCharterUtils.showShort("关闭顶灯1") + } } } fun setLightTop2View(rightLight: Boolean, isFirst: Boolean){ - if (rightLight) { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_close_light2) - tv_light_top_02.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯2") - } else { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_open_light2) - tv_light_top_02.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯2") + tv_light_top_02?.let { + if (rightLight) { + tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_close_light2) + tv_light_top_02.isChecked = true + if(!isFirst) ToastCharterUtils.showShort("打开顶灯2") + } else { + tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_open_light2) + tv_light_top_02.isChecked = false + if(!isFirst) ToastCharterUtils.showShort("关闭顶灯2") + } } } fun setLightAtmosphereView(atmosphereLight: Boolean, isFirst: Boolean){ - if (atmosphereLight) { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_close_atmosphere) - tv_light_atmosphere.isChecked = true - iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_select) - if(!isFirst) ToastCharterUtils.showShort("打开氛围灯") - } else { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_open_atmosphere) - tv_light_atmosphere.isChecked = false - iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_nor) - if(!isFirst) ToastCharterUtils.showShort("关闭氛围灯") + tv_light_atmosphere?.let { + if (atmosphereLight) { + tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_close_atmosphere) + tv_light_atmosphere.isChecked = true + iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_select) + if(!isFirst) ToastCharterUtils.showShort("打开氛围灯") + } else { + tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_open_atmosphere) + tv_light_atmosphere.isChecked = false + iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_nor) + if(!isFirst) ToastCharterUtils.showShort("关闭氛围灯") + } } } @@ -586,16 +594,18 @@ class M1SoftFragment : * 灯的UI发生变化 */ fun setLightView(leftLight: Boolean, rightLight: Boolean) { - if (leftLight && rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_middle_selected)// 都打开 - } else if (!leftLight && !rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_nor)// 都关闭 - } else { - if (leftLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_left)// 左面开 - } - if (rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_right)// 左面开 + iv_top_light_setting?.let { + if (leftLight && rightLight) { + iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_middle_selected)// 都打开 + } else if (!leftLight && !rightLight) { + iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_nor)// 都关闭 + } else { + if (leftLight) { + iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_left)// 左面开 + } + if (rightLight) { + iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_right)// 左面开 + } } } } From 734e7e3ae4ee3469f1a0ba3d1483297ac41fa042 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 31 May 2023 11:21:09 +0800 Subject: [PATCH 7/7] [3.2.0] fix bug of track obj type init --- .../business/identify/IdentifyFactory.kt | 20 +++++++++++++------ .../identify/MapIdentifySubscriber.kt | 1 + 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/IdentifyFactory.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/IdentifyFactory.kt index f96a7b84ad..409786fc79 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/IdentifyFactory.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/IdentifyFactory.kt @@ -5,8 +5,9 @@ import android.os.Message import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isTaxi import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler @@ -16,7 +17,7 @@ import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject import mogo.yycp.api.proto.SocketDownData -object IdentifyFactory : Identify, IMoGoObuStatusListener { +object IdentifyFactory : Identify, IMoGoObuStatusListener, IMoGoAutopilotCarConfigListener { private const val TAG = "IdentifyFactory" @@ -35,8 +36,16 @@ object IdentifyFactory : Identify, IMoGoObuStatusListener { private var identify: Identify? = null private var aiCloudIdentify: Identify? = null - init { - val dockerVersion = getAutoPilotStatusInfo().dockVersion + fun initType(){ + drawType("默认开启感知优化,等待docker版本") + identify = UserIdentify.beautifyDataDrawer + aiCloudIdentify = AiIdentify.aiCloudDataDrawer + CallerAutopilotCarConfigListenerManager.addListener(TAG, this) + CallerObuWarningListenerManager.addListener(TAG, this) + } + + override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { + val dockerVersion = carConfigResp.dockVersion if (dockerVersion != null && dockerVersion.isNotEmpty()) { try { val version = ParseVersionUtils.parseVersion(true, dockerVersion) @@ -54,8 +63,6 @@ object IdentifyFactory : Identify, IMoGoObuStatusListener { identify = UserIdentify.beautifyDataDrawer } } - aiCloudIdentify = AiIdentify.aiCloudDataDrawer - CallerObuWarningListenerManager.addListener(TAG, this) } @ChainLog( @@ -182,4 +189,5 @@ object IdentifyFactory : Identify, IMoGoObuStatusListener { message.obj = trafficData mDrawerHandler.sendMessage(message) } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt index fb3d511096..44bc67a030 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt @@ -34,6 +34,7 @@ class MapIdentifySubscriber private constructor() : IMoGoSubscriber, } override fun onCrate() { + IdentifyFactory.initType() CallerAutopilotIdentifyListenerManager.addListener(TAG, this) CallerObuWarningListenerManager.addListener(TAG, this) }