From eab4fa5415926051965769f5fb703e309adbdc35 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 15 Feb 2023 19:46:14 +0800 Subject: [PATCH 01/32] [2.13.2-sop] update map version to test --- .../TaxiPassengerGeocodeSearchModel.java | 11 ++++-- config.gradle | 7 ++-- .../hmi/ui/setting/DebugSettingView.kt | 3 -- .../mogo-core-function-map/build.gradle | 1 - gradle.properties | 2 +- libraries/mogo-map/build.gradle | 2 +- .../mogo/map/location/GDLocationClient.java | 39 ++++++++++++------- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java index 1543ad8da0..213ab2d358 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java @@ -1,7 +1,10 @@ package com.mogo.och.taxi.passenger.model; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; + import android.content.Context; +import com.amap.api.services.core.AMapException; import com.amap.api.services.core.LatLonPoint; import com.amap.api.services.geocoder.GeocodeResult; import com.amap.api.services.geocoder.GeocodeSearch; @@ -16,8 +19,6 @@ import java.util.List; import java.util.Timer; import java.util.TimerTask; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - /** * @author: wangmingjun * @date: 2021/12/6 @@ -52,7 +53,11 @@ public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeS public void initGeocodeSearch(){ //通过经纬度逆地理编码得到位置 - mGeocodeSearch = new GeocodeSearch(mContext); + try { + mGeocodeSearch = new GeocodeSearch(mContext); + } catch (AMapException e) { + e.printStackTrace(); + } mGeocodeSearch.setOnGeocodeSearchListener(this); timer = new Timer(); timerTask = new TimerTask() { diff --git a/config.gradle b/config.gradle index 248a9c1ae9..b900b86f49 100644 --- a/config.gradle +++ b/config.gradle @@ -23,9 +23,10 @@ ext { // amapnavi3dmap : "com.amap.api:navi-3dmap:8.0.1_3dmap8.0.1", // amapsearch : "com.amap.api:search:7.9.0", // amaplocation : "com.amap.api:location:5.5.0", - amapnavi3dmap : "com.amap.api:navi-3dmap:8.0.1_3dmap8.0.1", - amapsearch : "com.amap.api:search:7.1.0", - amaplocation : "com.amap.api:location:5.3.1", + amapnavi3dmap : "com.amap.api:navi-3dmap:9.6.0_3dmap9.6.0", + amapsearch : "com.amap.api:search:9.5.0", + amaplocation : "com.amap.api:location:6.2.0", + // json 转换 gson : "com.google.code.gson:gson:2.8.4", // 内存泄漏检测 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index ccbd434483..11c2899d3c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -646,9 +646,6 @@ class DebugSettingView @JvmOverloads constructor( //云端感知绘制 tbDrawAiCloudFusion.setOnCheckedChangeListener { _, isChecked -> FunctionBuildConfig.isDrawAiCloudFusion = isChecked - if (!FunctionBuildConfig.isDrawAiCloudFusion) { - tbDrawAiCloudFusion.isChecked = false - } } tbDrawRomaMode.isChecked = FunctionBuildConfig.isRomaMode diff --git a/core/function-impl/mogo-core-function-map/build.gradle b/core/function-impl/mogo-core-function-map/build.gradle index 01e097ded7..70b7ff0853 100644 --- a/core/function-impl/mogo-core-function-map/build.gradle +++ b/core/function-impl/mogo-core-function-map/build.gradle @@ -60,7 +60,6 @@ dependencies { implementation rootProject.ext.dependencies.mogocustommap implementation rootProject.ext.dependencies.amapnavi3dmap - implementation rootProject.ext.dependencies.amaplocation implementation rootProject.ext.dependencies.androidxroomruntime kapt rootProject.ext.dependencies.androidxroomcompiler diff --git a/gradle.properties b/gradle.properties index ed28d6f760..afb46c594e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.3.32 MOGO_TELEMATIC_VERSION=1.4.3.32 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.2 +MAP_SDK_VERSION=2.10.0.6_test MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 diff --git a/libraries/mogo-map/build.gradle b/libraries/mogo-map/build.gradle index f4e1bf9862..fe25dceed8 100644 --- a/libraries/mogo-map/build.gradle +++ b/libraries/mogo-map/build.gradle @@ -49,7 +49,7 @@ dependencies { // 高精地图 implementation rootProject.ext.dependencies.mogocustommap // 高德地图 - api rootProject.ext.dependencies.amaplocation + api rootProject.ext.dependencies.amapnavi3dmap if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_utils diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java index cc23b9af97..781b1a0e86 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java @@ -9,6 +9,7 @@ import com.amap.api.location.AMapLocationListener; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.constants.SharedPrefsConstants; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.Utils; public class GDLocationClient implements AMapLocationListener { @@ -27,26 +28,36 @@ public class GDLocationClient implements AMapLocationListener { } //声明LocationClient对象 - private final AMapLocationClient mLocationClient; + private AMapLocationClient mLocationClient; private String mCityCode; private GDLocationClient(Context context) { - mLocationClient = new AMapLocationClient(context); - //初始化定位参数 - //声明mLocationOption对象 - AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); - //设置定位监听 - mLocationClient.setLocationListener(this); - //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 - mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); - //设置定位间隔,单位毫秒,默认为2000ms - mLocationOption.setInterval(1000); - //设置定位参数 - mLocationClient.setLocationOption(mLocationOption); + AMapLocationClient.updatePrivacyShow(Utils.getApp(), true, true); + AMapLocationClient.updatePrivacyAgree(Utils.getApp(), true); + try { + mLocationClient = new AMapLocationClient(context); + } catch (Exception e) { + e.printStackTrace(); + } + if(mLocationClient != null){ + //初始化定位参数 + //声明mLocationOption对象 + AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); + //设置定位监听 + mLocationClient.setLocationListener(this); + //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 + mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + //设置定位间隔,单位毫秒,默认为2000ms + mLocationOption.setInterval(1000); + //设置定位参数 + mLocationClient.setLocationOption(mLocationOption); + } } public void start() { - mLocationClient.startLocation(); + if(mLocationClient != null){ + mLocationClient.startLocation(); + } } @Override From 75b10cec44fef1848ef83123d5fe68854ddb91de Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 11:23:17 +0800 Subject: [PATCH 02/32] [2.13.2-sop] 2.13.4 version --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index afb46c594e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130200 -versionName=2.13.2 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From fc5558fae0488cbeb9d752febe7b039059a538a1 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 13:18:34 +0800 Subject: [PATCH 03/32] [2.13.2-sop] passenger 1.8.4 --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 086a2be1ea..55cf786d9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130400 -versionName=2.13.4 +versionCode=1080400 +versionName=1.8.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 18c39b62a378fbcfb7244ae65585320716c5ba21 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 15:52:04 +0800 Subject: [PATCH 04/32] [2.13.2-sop] fix bug of bindcar change icon --- .../bindingcar/BindingcarProvider.java | 2 + .../network/BindingcarNetWorkManager.java | 50 +++++++++++-------- gradle.properties | 4 +- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java index 0f3a288a2d..b521654bd5 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java @@ -52,6 +52,8 @@ public class BindingcarProvider implements IMoGoBindingcarProvider { public void init(Context context) { mContext = context; IPCUpgradeManager.Companion.getINSTANCE().initServer(context); + SharedPrefsMgr.getInstance(mContext).putLong("typeDriver", 0); + SharedPrefsMgr.getInstance(mContext).putLong("typePassenger", 0); } /** diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java index 4f563ecc8a..e30ed2e054 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.bindingcar.network; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BINDING; import android.content.Context; -import android.util.Log; import com.mogo.commons.constants.HostConst; import com.mogo.commons.constants.SharedPrefsConstants; @@ -64,8 +63,10 @@ public class BindingcarNetWorkManager { public void getBindingcarInfo(Context context, String macAddress, String widevineIDWithMd5, int screenType) { // String macAddress1 = "48:b0:2d:4d:33:40"; // String sn = "X2020220417KA94QIN"; + String macAddress1 = "48:b0:2d:4d:b6:f1"; + String sn = "202201186832WTE"; - BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); + BindingcarRequest request = new BindingcarRequest(macAddress1, sn, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mBindingcarApiService.getBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) @@ -80,9 +81,7 @@ public class BindingcarNetWorkManager { if (info != null && info.getData() != null) { CallerLogger.INSTANCE.d(M_BINDING + TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); //根据车辆类型切换不同的车辆模型,只针对红旗做处理 - if (!SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.MAC_ADDRESS).equals(macAddress)) { - updateCarVrIconRes(info.getData().getBrandId()); - } + updateCarVrIconRes(info.getData().getBrandId()); switch (info.getData().getCompare()) { case "0": CallerHmiManager.INSTANCE.showBindingcarDialog(); @@ -95,7 +94,6 @@ public class BindingcarNetWorkManager { break; } SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData())); - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.MAC_ADDRESS, macAddress); } } @@ -116,9 +114,9 @@ public class BindingcarNetWorkManager { * mac: 48:b0:2d:3a:9c:19 */ public void modifyBindingcar(Context context, String macAddress, String widevineIDWithMd5, BindingcarCallBack callBack, int screenType) { -// String macAddress1 = "48:b0:2d:4d:33:40"; -// String sn = "X2020220417KA94QIN"; - BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); + String macAddress1 = "48:b0:2d:4d:b6:f1"; + String sn = "202201186832WTE"; + BindingcarRequest request = new BindingcarRequest(macAddress1, sn, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mBindingcarApiService.modifyBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) @@ -133,10 +131,7 @@ public class BindingcarNetWorkManager { if (info != null) { callBack.callBackResult(info); CallerLogger.INSTANCE.d(M_BINDING + TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); - if (!SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.MAC_ADDRESS).equals(macAddress)) { - updateCarVrIconRes(info.getData().getBrandId()); - } - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.MAC_ADDRESS, macAddress); + updateCarVrIconRes(info.getData().getBrandId()); } } @@ -152,30 +147,43 @@ public class BindingcarNetWorkManager { } - private void updateCarVrIconRes(String brandId){ - if(brandId == null || brandId.isEmpty()){ + private void updateCarVrIconRes(String brandId) { + if (brandId == null || brandId.isEmpty()) { return; } - CallerLogger.INSTANCE.d(M_BINDING + TAG,"updateCarVrIconRes : " + brandId); - switch (brandId){ + if(getDefaultId().equals(brandId)){ + return; + } + CallerLogger.INSTANCE.d(M_BINDING + TAG, "updateCarVrIconRes : " + brandId); + switch (brandId) { case "1": CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); - HdMapBuildConfig.currentCarVrIconRes =R.raw.chuzuche; + HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche; break; case "2": CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.hq_h9); - HdMapBuildConfig.currentCarVrIconRes =R.raw.hq_h9; + HdMapBuildConfig.currentCarVrIconRes = R.raw.hq_h9; break; case "3": CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.xiaobache); - HdMapBuildConfig.currentCarVrIconRes =R.raw.xiaobache; + HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache; break; default: CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); - HdMapBuildConfig.currentCarVrIconRes =R.raw.chuzuche; + HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche; break; } } + private String getDefaultId(){ + if(HdMapBuildConfig.currentCarVrIconRes == R.raw.chuzuche){ + return "1"; + } + if(HdMapBuildConfig.currentCarVrIconRes == R.raw.xiaobache){ + return "3"; + } + return "1"; + } + } diff --git a/gradle.properties b/gradle.properties index 55cf786d9e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1080400 -versionName=1.8.4 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 571bfb8696000dd66d907ea400d8f766ed00ec67 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 16 Feb 2023 17:08:56 +0800 Subject: [PATCH 05/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20obu=E7=9A=84v2v=E5=92=8Cv2i=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=BC=80=E5=85=B3=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/setting/SOPSettingView.kt | 8 ++++++-- .../src/main/res/layout/view_sop_setting.xml | 1 + .../obu/mogo/MogoPrivateObuNewManager.kt | 20 +++++++++++-------- .../eagle/core/data/config/HmiBuildConfig.kt | 4 ++-- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 87f08bde14..a584348c3c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -103,24 +103,28 @@ class SOPSettingView @JvmOverloads constructor( * 限速数据来源开关 */ tbRoadLimitSpeedSop.setOnCheckedChangeListener { _, isChecked -> - //默认关闭 + //默认开启 HmiBuildConfig.isShowObuLimitSpeedView = isChecked } /** * obu V2V开关 */ + tbObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView tbObuV2vView.setOnCheckedChangeListener { _, isChecked -> - //默认关闭 + //默认开启 HmiBuildConfig.isShowObuV2vView = isChecked +// Log.e("liyz", "---2222-- v2v = ${HmiBuildConfig.isShowObuV2vView}") } /** * obu V2i开关 */ + tbObuV2iView.isChecked = HmiBuildConfig.isShowObuV2iView tbObuV2iView.setOnCheckedChangeListener { _, isChecked -> //默认关闭 HmiBuildConfig.isShowObuV2iView = isChecked +// Log.d("liyz", "---2--- v2i = ${HmiBuildConfig.isShowObuV2iView}") } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml index e9830e19b0..d6720d62b6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -208,6 +208,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/dp_20" + android:visibility="gone" android:background="@drawable/radio_button_normal_background_right" android:textColor="#000" android:textOff="获取路侧限速提醒" diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index c012b9f31e..a36ed03ddd 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -164,7 +164,7 @@ class MogoPrivateObuNewManager private constructor() { */ override fun onMogoObuRvWarning(data: MogoObuRvWarningData) { super.onMogoObuRvWarning(data) -// if (HmiBuildConfig.isShowObuV2vView) { //TODO 临时需要关闭v2v开关 + if (HmiBuildConfig.isShowObuV2vView) { mObuStatusInfo.obuRvStatus = true CallerObuListenerManager.invokeListener(mObuStatusInfo) if (!data.warningMsg.warningData.isNullOrEmpty()) { @@ -218,7 +218,7 @@ class MogoPrivateObuNewManager private constructor() { } } } -// } + } } /** @@ -227,13 +227,13 @@ class MogoPrivateObuNewManager private constructor() { override fun onMogoObuSpatWarning(data: MogoObuSpatWarningData) { super.onMogoObuSpatWarning(data) if (data != null) { -// if (HmiBuildConfig.isShowObuV2iView) { + if (HmiBuildConfig.isShowObuV2iView) { handlerTrafficLight( data.warningType, data.status, data.lights ) -// } + } } } @@ -247,7 +247,7 @@ class MogoPrivateObuNewManager private constructor() { */ override fun onMogoObuRsiWarning(data: MogoObuRsiWarningData) { super.onMogoObuRsiWarning(data) -// if (HmiBuildConfig.isShowObuV2iView) { + if (HmiBuildConfig.isShowObuV2iView) { if (data != null && data.warningMsg != null && data.warningMsg.size > 0) { var alertContent = "" var ttsContent = "" @@ -493,7 +493,7 @@ class MogoPrivateObuNewManager private constructor() { } } } -// } + } } /** @@ -513,7 +513,7 @@ class MogoPrivateObuNewManager private constructor() { "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ------> ${data.toString()}" ) -// if (HmiBuildConfig.isShowObuV2iView) { + if (HmiBuildConfig.isShowObuV2iView) { if (HmiBuildConfig.isShowObuWeaknessTrafficView) { // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (data != null && data.participant != null) { @@ -666,7 +666,7 @@ class MogoPrivateObuNewManager private constructor() { } } } -// } + } } /** @@ -1049,6 +1049,10 @@ class MogoPrivateObuNewManager private constructor() { if (minSpeedTemp == maxSpeedTemp) { minSpeedTemp -= 5 } + if (minSpeedTemp < 0) { + minSpeedTemp = 1 + } + val adviceSpeed = "$minSpeedTemp - $maxSpeedTemp" val adviceSpeedTts = "$minSpeedTemp 到 $maxSpeedTemp" diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt index f156f8b981..1f551208f2 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt @@ -105,14 +105,14 @@ object HmiBuildConfig { */ @JvmField @Volatile - var isShowObuV2vView = false + var isShowObuV2vView = true /** * 是否展示obu的v2i */ @JvmField @Volatile - var isShowObuV2iView = false + var isShowObuV2iView = true /** * 是否展示obu通过工控机展示的v2i From 7d4e0f62f9601967c311ff2def55fdc04e591ebb Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 16 Feb 2023 17:47:03 +0800 Subject: [PATCH 06/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20=E4=BF=AE=E6=94=B9obu=E7=9A=84=E5=BC=80?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/hmi/ui/setting/SOPSettingView.kt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index a584348c3c..a3a612b656 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -191,13 +191,8 @@ class SOPSettingView @JvmOverloads constructor( //OBU控制总开关 tbObu.isChecked = CallerOBUManager.isConnected() tbObu.setOnCheckedChangeListener { _, isChecked -> - if (!isChecked) { + if (isChecked) { CallerOBUManager.resetObuIpAddress("192.168.1.199") -// if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { -// CallerOBUManager.resetObuIpAddress("192.168.1.199") -// } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { -// CallerOBUManager.resetObuIpAddress("192.168.8.199") -// } } else { //断开链接 CallerOBUManager.disConnectObu() From 324f510347163a9158a88abf7dff2d2da0ba7b75 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 19:22:42 +0800 Subject: [PATCH 07/32] [2.13.2-sop] version --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 086a2be1ea..55cf786d9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130400 -versionName=2.13.4 +versionCode=1080400 +versionName=1.8.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 19fa0696d97b01fe46b406970e471a52c8293514 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 19:43:35 +0800 Subject: [PATCH 08/32] [2.13.2-sop] test reset --- .../bindingcar/network/BindingcarNetWorkManager.java | 8 ++------ gradle.properties | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java index e30ed2e054..1261f1e8e7 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -63,10 +63,8 @@ public class BindingcarNetWorkManager { public void getBindingcarInfo(Context context, String macAddress, String widevineIDWithMd5, int screenType) { // String macAddress1 = "48:b0:2d:4d:33:40"; // String sn = "X2020220417KA94QIN"; - String macAddress1 = "48:b0:2d:4d:b6:f1"; - String sn = "202201186832WTE"; - BindingcarRequest request = new BindingcarRequest(macAddress1, sn, screenType); + BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mBindingcarApiService.getBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) @@ -114,9 +112,7 @@ public class BindingcarNetWorkManager { * mac: 48:b0:2d:3a:9c:19 */ public void modifyBindingcar(Context context, String macAddress, String widevineIDWithMd5, BindingcarCallBack callBack, int screenType) { - String macAddress1 = "48:b0:2d:4d:b6:f1"; - String sn = "202201186832WTE"; - BindingcarRequest request = new BindingcarRequest(macAddress1, sn, screenType); + BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mBindingcarApiService.modifyBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) diff --git a/gradle.properties b/gradle.properties index 55cf786d9e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1080400 -versionName=1.8.4 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From edb4f861baf1bdac7f6776023581bbd077cff4d3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 20:12:31 +0800 Subject: [PATCH 09/32] [2.13.2-sop] passenger version --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 086a2be1ea..55cf786d9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130400 -versionName=2.13.4 +versionCode=1080400 +versionName=1.8.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From c1364061d22f46a7ce61384389dab1e0e3be3373 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 21:12:43 +0800 Subject: [PATCH 10/32] [2.13.2-sop] reset version to dricer --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 55cf786d9e..afb46c594e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1080400 -versionName=1.8.4 +versionCode=2130200 +versionName=2.13.2 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From e6d04f5d566b62420495cb329a377625c60867f1 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 17 Feb 2023 09:57:31 +0800 Subject: [PATCH 11/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20=E4=BC=98=E5=8C=96obu=E7=BA=A2=E7=BB=BF?= =?UTF-8?q?=E7=81=AF=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/v2x/trafficlight/core/TrafficLightDispatcher.kt | 1 - .../function/call/obu/CallerObuTrafficLightListenerManager.kt | 4 ---- 2 files changed, 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightDispatcher.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightDispatcher.kt index 3fa53c8834..c2874fa8af 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightDispatcher.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightDispatcher.kt @@ -152,7 +152,6 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight * obu 红绿灯数据 */ override fun onObuTrafficLight(light: Int) { - super.onObuTrafficLight(light) hasObuLightStatus = true CallerHmiManager.showWarningTrafficLight(light, 3) } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuTrafficLightListenerManager.kt index a53d5b350e..a3759c6710 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuTrafficLightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuTrafficLightListenerManager.kt @@ -8,8 +8,6 @@ object CallerObuTrafficLightListenerManager { private val M_OBU_TRAFFIC_LIGHT_LISTENER: ConcurrentHashMap = ConcurrentHashMap() - var mLight: Int = 0 - /** * 添加监听 * @param tag 标记,用来注销监听使用 @@ -22,7 +20,6 @@ object CallerObuTrafficLightListenerManager { if (M_OBU_TRAFFIC_LIGHT_LISTENER.containsKey(tag)) { return } - listener.onObuTrafficLight(mLight) M_OBU_TRAFFIC_LIGHT_LISTENER[tag] = listener } @@ -53,7 +50,6 @@ object CallerObuTrafficLightListenerManager { } fun invokeObuTrafficLight(light: Int) { - this.mLight = light M_OBU_TRAFFIC_LIGHT_LISTENER.forEach { val tag = it.key val listener = it.value From b4523db91ebefb9cbeb19f25f18eefc6a43b26a3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 11:05:31 +0800 Subject: [PATCH 12/32] [2.13.2-sop] 2.13.4 --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index afb46c594e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130200 -versionName=2.13.2 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 280e94a1d87e5a17a1f40ef0683d950cc9d4d747 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 14:50:32 +0800 Subject: [PATCH 13/32] [2.13.2-sop] 2.13.4 fix bug of thread problem --- .../core/function/hmi/ui/MoGoHmiFragment.kt | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index b30ccde589..b258ec9a96 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1091,25 +1091,27 @@ class MoGoHmiFragment : MvpFragment(), * 控制展示限速标志及内容 */ override fun showLimitingVelocity(limitingSpeed: Int, limitSpeedSource: Int) { - // 控制 限速UI 展示 - if (HmiBuildConfig.isShowLimitingVelocityView) { - if (limitingSpeed > 0) { - mViewLimitingVelocity?.visibility = View.VISIBLE - mViewLimitingVelocity?.updateLimitingSpeed(limitingSpeed, limitSpeedSource) - tvLimitingSource?.visibility = View.VISIBLE - if (limitSpeedSource == 1) { - tvLimitingSource.text = "MAP" - } else if (limitSpeedSource == 2) { - tvLimitingSource.text = "RSU" + ThreadUtils.runOnUiThread { + // 控制 限速UI 展示 + if (HmiBuildConfig.isShowLimitingVelocityView) { + if (limitingSpeed > 0) { + mViewLimitingVelocity?.visibility = View.VISIBLE + mViewLimitingVelocity?.updateLimitingSpeed(limitingSpeed, limitSpeedSource) + tvLimitingSource?.visibility = View.VISIBLE + if (limitSpeedSource == 1) { + tvLimitingSource.text = "MAP" + } else if (limitSpeedSource == 2) { + tvLimitingSource.text = "RSU" + } + } else { + mViewLimitingVelocity?.visibility = View.INVISIBLE + mViewLimitingVelocity?.updateLimitingSpeed(0, limitSpeedSource) + tvLimitingSource?.visibility = View.INVISIBLE } } else { - mViewLimitingVelocity?.visibility = View.INVISIBLE - mViewLimitingVelocity?.updateLimitingSpeed(0, limitSpeedSource) - tvLimitingSource?.visibility = View.INVISIBLE + disableLimitingVelocity() + tvLimitingSource?.visibility = View.GONE } - } else { - disableLimitingVelocity() - tvLimitingSource?.visibility = View.GONE } } From 63da381a728e7c06051a8ca511176ab8500a0691 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 17 Feb 2023 14:51:35 +0800 Subject: [PATCH 14/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20=E5=88=A0=E9=99=A4=E8=80=81obu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 - .../mogo-core-function-autopilot/build.gradle | 1 - .../mogo-core-function-hmi/build.gradle | 2 - .../hmi/ui/setting/DebugSettingView.kt | 3 +- .../function/main/MainMoGoApplication.java | 10 - .../mogo-core-function-obu-mogo/build.gradle | 1 - .../core/function/obu/mogo/MoGoObuProvider.kt | 10 +- .../obu/mogo/MogoPrivateObuManager.kt | 1009 ----------------- .../obu/mogo/MogoPrivateObuNewManager.kt | 34 +- .../obu/mogo/utils/TrafficDataConvertUtils.kt | 133 --- .../core/function/api/obu/IMoGoObuProvider.kt | 2 + .../function/call/obu/CallerOBUManager.kt | 7 + 12 files changed, 47 insertions(+), 1167 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt delete mode 100644 core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/utils/TrafficDataConvertUtils.kt diff --git a/config.gradle b/config.gradle index b900b86f49..6809a4f2d5 100644 --- a/config.gradle +++ b/config.gradle @@ -98,9 +98,7 @@ ext { // obu sdk obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3", - mogoobuold : 'com.zhidao.support.obu:mogoobu:1.0.0.33', mogoobu : 'com.mogo.support.obu:mogo-obu:1.0.6', - mogoami : 'com.zhidao.support.obu.ami:mogoami:1.0.0.24', // google googlezxing : "com.google.zxing:core:3.3.3", diff --git a/core/function-impl/mogo-core-function-autopilot/build.gradle b/core/function-impl/mogo-core-function-autopilot/build.gradle index ba162e7500..c7d18e5e1f 100644 --- a/core/function-impl/mogo-core-function-autopilot/build.gradle +++ b/core/function-impl/mogo-core-function-autopilot/build.gradle @@ -51,7 +51,6 @@ dependencies { kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.mogoami implementation rootProject.ext.dependencies.mogoaicloudtelematic if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle index 49f06ebcfa..9cb37395de 100644 --- a/core/function-impl/mogo-core-function-hmi/build.gradle +++ b/core/function-impl/mogo-core-function-hmi/build.gradle @@ -71,8 +71,6 @@ dependencies { implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.mogoami - implementation rootProject.ext.dependencies.android_start_up implementation rootProject.ext.dependencies.cicle_indicator implementation rootProject.ext.dependencies.koomnative diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 11c2899d3c..0690d23ec6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -80,7 +80,6 @@ import com.mogo.map.uicontroller.VisualAngleMode.* import com.mogo.eagle.core.function.business.routeoverlay.* import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner -import com.zhidao.easysocket.utils.L import com.zhidao.support.adas.high.other.permission.BackgrounderPermission import com.zhjt.mogo_core_function_devatools.env.* import kotlinx.android.synthetic.main.view_debug_setting.view.* @@ -1314,7 +1313,7 @@ class DebugSettingView @JvmOverloads constructor( * 设置是否输出OBU日志 true-打印日志,false-不打印日志 */ tbObuLog.setOnCheckedChangeListener { _, isChecked -> - L.setEnableLog(isChecked) + CallerOBUManager.setObuLog(isChecked) } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index d05a210dca..825cae187a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -37,7 +37,6 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.ProcessUtils; import com.mogo.eagle.core.utilcode.util.SPUtils; import com.mogo.map.MapApiPath; -import com.zhidao.support.obu.ami.AmiClientManager; import java.io.File; import java.lang.reflect.Field; @@ -60,7 +59,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { return; } start = System.currentTimeMillis(); - connectAmiIp(); // Crash 日志收集 initCrashConfig(); initLogConfig(); @@ -202,14 +200,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { OverviewDb.Companion.getDb(this); } - /** - * 连接ami - */ - private void connectAmiIp() { - String ipAddress = SharedPrefsMgr.getInstance(AbsMogoApplication.getApp().getBaseContext()).getString(MoGoConfig.OBU_IP, "192.168.1.199"); - AmiClientManager.getInstance().setObuIp(ipAddress); - } - private void initModules() { CallerLogger.INSTANCE.d(M_HMI + TAG, "initModules"); //och模块 diff --git a/core/function-impl/mogo-core-function-obu-mogo/build.gradle b/core/function-impl/mogo-core-function-obu-mogo/build.gradle index 4c4e538ab2..7b8a0e75df 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/build.gradle +++ b/core/function-impl/mogo-core-function-obu-mogo/build.gradle @@ -66,7 +66,6 @@ dependencies { implementation project(':core:mogo-core-function-call') } - implementation rootProject.ext.dependencies.mogoobuold implementation rootProject.ext.dependencies.mogoobu } diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt index a4ab0a31ea..ebf56c32b4 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt @@ -75,19 +75,19 @@ class MoGoObuProvider : IMoGoObuProvider { ipAddress, CommonUtils.getIpAddressString() ) - - //连接old obu - MogoPrivateObuManager.INSTANCE.connectObu(it, ipAddress) } } } override fun disConnect() { - MogoPrivateObuManager.INSTANCE.disConnectObu() + MogoPrivateObuNewManager.INSTANCE.disConnectObu() } override fun isConnected(): Boolean { - return MogoPrivateObuManager.INSTANCE.isConnected() + return MogoPrivateObuNewManager.INSTANCE.isConnected() } + override fun setObuLibLog(isSet: Boolean) { + MogoPrivateObuNewManager.INSTANCE.setObuLog(isSet) + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt deleted file mode 100644 index ea71e56e3f..0000000000 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt +++ /dev/null @@ -1,1009 +0,0 @@ -package com.mogo.eagle.core.function.obu.mogo - -import android.content.Context -import android.util.Log -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.voice.AIAssist -import com.mogo.eagle.core.data.app.AppConfigInfo -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.data.config.HmiBuildConfig -import com.mogo.eagle.core.data.constants.MogoServicePaths -import com.mogo.eagle.core.data.enums.WarningDirectionEnum -import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.TooClose -import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager -import com.mogo.eagle.core.function.obu.mogo.utils.TrafficDataConvertUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.data.enums.EventTypeEnum -import com.mogo.eagle.core.data.enums.EventTypeHelper -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.V2XMsg -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.service.IMogoServiceApis -import com.zhidao.support.obu.MogoObuManager -import com.zhidao.support.obu.OnMogoObuListener -import com.zhidao.support.obu.constants.ObuConstants -import com.zhidao.support.obu.model.* -import com.zhidao.support.obu.model.advance.Light -import org.json.JSONObject - -/** - * - * @author lixiaopeng - * @since 2021/8/8 - * @description OBU 管理 - */ -class MogoPrivateObuManager private constructor() { - companion object { - val INSTANCE: MogoPrivateObuManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { - MogoPrivateObuManager() - } - } - - private var mMogoServiceApis: IMogoServiceApis? = null - private var mContext: Context? = null - private var mObuStatusInfo = CallerObuListenerManager.getObuStatusInfo() - - fun init(context: Context, ipAddress: String) { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "obuManager初始化--") - mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) - .navigation(context) as IMogoServiceApis - mContext = context - //连接obu设备 - connectObu(context, ipAddress) - //控制日志输出 - MogoObuManager.getInstance() - .init(MoGoAiCloudClientConfig.getInstance().getSn(), AppConfigInfo.toString()) - MogoObuManager.getInstance().registerListener(mogoObuListener) - } - - fun connectObu(context: Context, ipAddress: String) { - //自研obu初始化 - mObuStatusInfo.connectIP = ipAddress - mObuStatusInfo.obuSdkVersion = MogoObuManager.getInstance().versionName - if (!MogoObuManager.getInstance().isConnected) { - MogoObuManager.getInstance().connect(context, mObuStatusInfo.connectIP) - } else { - try { - MogoObuManager.getInstance().disConnect() - Thread.sleep(500) - } catch (e: Exception) { - e.printStackTrace() - } - MogoObuManager.getInstance().connect(context, mObuStatusInfo.connectIP) - } - } - - fun disConnectObu() { - try { - MogoObuManager.getInstance().disConnect() - } catch (e: Exception) { - e.printStackTrace() - } - - } - - fun isConnected(): Boolean { - return MogoObuManager.getInstance().isConnected - } - - private val mogoObuListener: OnMogoObuListener = object : OnMogoObuListener() { - // OBU连接成功 - override fun onConnected() { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onConnected ------> ") - mObuStatusInfo.obuStatus = true - CallerObuListenerManager.invokeListener(mObuStatusInfo) - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU", true) } - - //断开mogo obu - com.mogo.support.obu.MogoObuManager.getInstance().disconnect() - } - - // OBU连接失败 - override fun onConnectFail(isNeedReconnect: Boolean) { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onConnectFail ------> ") - mObuStatusInfo.obuStatus = false - mObuStatusInfo.obuHvStatus = false - mObuStatusInfo.obuRvStatus = false - CallerObuListenerManager.invokeListener(mObuStatusInfo) - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU", false) } - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_HV", false) } - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_RV", false) } - } - - // OBU断开连接 - override fun onDisconnect() { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onDisconnect ------> ") - mObuStatusInfo.obuStatus = false - mObuStatusInfo.obuHvStatus = false - mObuStatusInfo.obuRvStatus = false - CallerObuListenerManager.invokeListener(mObuStatusInfo) - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU", false) } - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_HV", false) } - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_RV", false) } - } - - // 接收到的原始数据 - override fun onReceiveOriginData(data: String) { - super.onReceiveOriginData(data) - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onReceiveOriginData ------> data = $data" - ) - - } - - // 发送的数据 - override fun onSendData(bytes: ByteArray) { - super.onSendData(bytes) - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onSendData ------> ") - } - - // CV2X系统信息 - override fun onCvxAppInitIndInfo(info: CvxAppInitIndInfo) { - super.onCvxAppInitIndInfo(info) - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxAppInitIndInfo ------> $info" - ) - if (info != null) { - if (!info.stack_info.isNullOrEmpty()) { - mObuStatusInfo.stackInfo = info.stack_info - } - - if (!info.app_info.isNullOrEmpty()) { - mObuStatusInfo.appInfo = info.app_info - } - - if (!info.hli_info.isNullOrEmpty()) { - mObuStatusInfo.hliInfo = info.hli_info - } - CallerObuListenerManager.invokeListener(mObuStatusInfo) - } - } - - // (2) 车辆信息:CVX_HV_INFO_IND - override fun onCvxHvInfoIndInfo(info: CvxHvInfoIndInfo?) { - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_HV", true) } - mObuStatusInfo.obuHvStatus = true - CallerObuListenerManager.invokeListener(mObuStatusInfo) - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onCvxHvInfoIndInfo ------> $info") - if (info != null && info.basic_info != null && info.basic_info.position != null) { - val movingObjectInfo = info.basic_info - val position = movingObjectInfo.position - val data = JSONObject() - try { - data.putOpt("lon", position.longitude) - data.putOpt("lat", position.latitude) - data.putOpt("speed", movingObjectInfo.speed) - data.putOpt("heading", movingObjectInfo.heading) - if (info.acceleration_set != null) { - data.putOpt("acceleration", info.acceleration_set.lateral) - data.putOpt("yawRate", info.acceleration_set.yaw_rate) - } - try { - data.putOpt("systemTime", System.currentTimeMillis()) - } catch (e: Exception) { - e.printStackTrace() - } - try { - data.putOpt("satelliteTime", System.currentTimeMillis()) - } catch (e: Exception) { - e.printStackTrace() - } - - // 使用与渠道配置一样的gps提供者提供的数据,app/productFlavors/fPadLenovo.gradle GPS_PROVIDER 0-Android系统,1-工控机,2-OBU - if (2 == FunctionBuildConfig.gpsProvider) { - // 同步给MAP地图 - CallerMapUIServiceManager.getMapUIController()?.syncLocation2Map(data) - // 同步更新经纬度和系统时间至 AutoPilotStatusListener - CallerAutoPilotStatusListenerManager.updateAutoPilotLatLon( - System.currentTimeMillis() / 1000.0, - position.longitude, - position.latitude - ) - } - - } catch (e: Exception) { - e.printStackTrace() - } - } - } - - // (3) 远车信息:CVX_RV_INFO_IND - override fun onCvxRvInfoIndInfo(info: CvxRvInfoIndInfo) { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onCvxRvInfoIndInfo ------> $info") - mObuStatusInfo.obuRvStatus = true - CallerObuListenerManager.invokeListener(mObuStatusInfo) - mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_RV", true) } - // 更新数据 - TrafficDataConvertUtils.cvxRvInfoIndInfo2TrafficData(info)?.let { - CallerMapUIServiceManager.getMarkerService()?.updateITrafficLocationInfo(it) - } - } - - // (3) 道路事件预警信息:CVX_RTI_THREAT_IND - override fun onCvxRtiThreatIndInfo(info: CvxRtiThreatIndInfo?) { -// if (HmiBuildConfig.isShowObuV2iView) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxRtiThreatIndInfo ------> $info" - ) - - if (info != null && info.threat_info != null && info.ext_info != null) { - var alertContent = "" - var ttsContent = "" - var appId = info.threat_info.app_id.toString() - val status = info.status - val level = info.threat_info.threat_level - val direction = - getMessageDirection(if (info.ext_info != null) info.ext_info.pos_classification else -1) - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxRtiThreatIndInfo direction = $direction -- pos_classification = ${info.ext_info.pos_classification}" - ) - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- handleDirection = $direction --rtiType = ${info.ext_info.rti_type} --direction = $direction -- pos_classification = ${info.ext_info.pos_classification} " - ) - when (appId) { - // 道路危险情况预警 - EventTypeEnum.TYPE_USECASE_ID_HLW.poiType, - EventTypeEnum.TYPE_USECASE_ID_IVS.poiType - -> { - when (info.ext_info.rti_type) { - //急转弯 - 0x2 -> { - // 特殊处理左、右方向的 - when (direction) { - WarningDirectionEnum.ALERT_WARNING_LEFT, - WarningDirectionEnum.ALERT_WARNING_TOP_LEFT, - WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.poiType - } - WarningDirectionEnum.ALERT_WARNING_RIGHT, - WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT, - WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.poiType - } - } - } - //施工 - 0x7 -> { - appId = EventTypeEnum.FOURS_ROAD_WORK.poiType - } - //限速 - 0xA -> { - appId = EventTypeEnum.TYPE_USECASE_ID_SLW.poiType - } - //事故 - 0xC -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_COLLISION_WARNING.poiType - } - //拥堵 - 0xD -> { - appId = EventTypeEnum.TYPE_USECASE_ID_TJW.poiType - } - //行人 - 0xF -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType - } - //禁止停车 - 0x13 -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType - } - //学校 - 0x14 -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType - } - //桥梁 - 0x17 -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiType - } - //轻轨电车 - 0x18 -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_TRAMCAR.poiType - } - //人行横道 - 0x19 -> { - appId = - EventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType - } - //减速慢行 - 0x1A -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType - } - //事故易发路段 - 0x1B -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_COLLISION_WARNING.poiType - } - //环岛行驶 - 0x1C -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG.poiType - } - //环岛行驶 - 0x1D -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_TEST_SECTION.poiType - } - //驼峰桥 - 0x1E -> { - appId = EventTypeEnum.TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiType - } - } - alertContent = EventTypeEnum.getWarningContent(appId) - ttsContent = EventTypeEnum.getWarningTts(appId) - } - // 前方拥堵提醒 - EventTypeEnum.TYPE_USECASE_ID_TJW.poiType -> { - ttsContent = EventTypeEnum.getWarningTts(appId) - if (info.threat_info != null) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "ttsContent = $ttsContent --alertContent = $alertContent ---info.threat_info.distance = ${info.threat_info.distance} " - ) - if (info.threat_info.distance.toInt() != 0) { - alertContent = String.format( - EventTypeEnum.getWarningContent(appId), - info.threat_info.distance.toInt() - ) - } else { - alertContent = "前方拥堵,减速慢行" - } - } - - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "ttsContent = $ttsContent --alertContent = $alertContent" - ) - } - } - - when (status) { - // 添加 - ObuConstants.STATUS.ADD -> { - //不显示弹框,其它保留 - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxRtiThreatIndInfo ------> appId = $appId --- alertContent = $alertContent --- ttsContent = $ttsContent ") - if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { - Log.d("MsgBox-PriObuManager4", "alertContent或ttsContent为空!") - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OBU, - V2XMsg(appId, - alertContent, - ttsContent) - ) - ) - CallerHmiManager.warningV2X( - appId, - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - (appId + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的 - object : IMoGoWarningStatusListener { - override fun onDismiss() { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - } - }, - true, - 5000L - ) - } - - ObuConstants.STATUS.UPDATE -> { - //显示警告红边 TODO 需要确定是什么值 -// CallerHmiManager.showWarning(direction) - - // 更新数据 - TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.invokeTrackerWarningInfo(it) - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } - } - - // 删除 - ObuConstants.STATUS.DELETE -> { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - // 移除顶部弹窗 -// CallerHmiManager.disableWarningV2X((appId + direction.direction).toString()) - // 更新数据 - TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.removeTrackerWarningInfo(it) - // 事件结束,还原车辆颜色 - it.threatLevel = 0x01 - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } - } - } - } -// } - } - - // (4) V2I预警信息:CVX_IVP_THREAT_IND,红绿灯 - override fun onCvxIvpThreatIndInfo(info: CvxIvpThreatIndInfo?) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "CvxIvpThreatIndInfo ------> $info" - ) - if (info != null && info.ext_info != null - && info.threat_info != null - && info.ext_info.lights != null - && info.ext_info.lights.isNotEmpty() - ) { -// if (HmiBuildConfig.isShowObuV2iView) { - handlerTrafficLight( - info.threat_info.app_id, - info.status, - info.ext_info.lights, - info.ext_info.index - ) -// } - } - } - - // (2) 弱势交通参与者预警信息:CVX_PTC_THREAT_IND - override fun onCvxPtcThreatIndInfo(info: CvxPtcThreatIndInfo?) { -// if (HmiBuildConfig.isShowObuV2iView) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxPtcInfoIndInfo ------> $info" - ) - // 交通参与者类型 0x0:未知 UNKNOWN | 0x1:非机动车 NON_MOTOR | 0x2:行人 PEDESTRIAN 0x3:RSU - if (info != null && (info.ptc_type == 1 || info.ptc_type == 2)) { - //v2i数据传输延迟 -// val hvMillTime = info.threat_info.hv_time.millisecond -// val hvSecondMillTime = (info.threat_info.hv_time.second) * 1000 -// val hvTime = hvMillTime + hvSecondMillTime -// val currentTime = TimeUtils.getNowMills() % 60000 -// val delayTime = currentTime - hvTime - -// CallerObuListenerManager.invokeDelayTime(delayTime) -// CallerLogger.d( -// "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", -// "onCvxPtcInfoIndInfo ---delayTime---> $delayTime" -// ) - - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxPtcInfoIndInfo ---status---> ${info.status}" - ) - var v2xType = "" - if (info.ptc_type == 1) { //摩托车 - v2xType = EventTypeEnum.TYPE_USECASE_ID_VRUCW_MOTORBIKE.poiType - } else if (info.ptc_type == 2) { //行人 - v2xType = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } - val ttsContent = EventTypeEnum.getWarningTts(v2xType) - val alertContent = EventTypeEnum.getWarningContent(v2xType) - val direction = - getMessageDirection(if (info.ext_info != null) info.ext_info.target_classification else -1) - val level = if (info.threat_info != null) info.threat_info.threat_level else -1 - - when (info.status) { - // 添加 - ObuConstants.STATUS.ADD -> { - // if (level == 2 || level == 3) { //不考虑level - //显示警告红边 - CallerHmiManager.showWarning(direction) - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxPtcThreatIndInfo ------> v2xType = $v2xType --- alertContent = $alertContent --- ttsContent = $ttsContent ") - if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { - Log.d("MsgBox-PriObuManager5", "alertContent或ttsContent为空!") - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OBU, - V2XMsg(v2xType, - alertContent, - ttsContent) - ) - ) - CallerHmiManager.warningV2X( - v2xType, - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - (v2xType + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的 - object : IMoGoWarningStatusListener { - override fun onDismiss() { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - } - }, - true, - 5000L - ) -// } - - // 更新数据 - TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.invokeTrackerWarningInfo(it) - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } - } - - ObuConstants.STATUS.UPDATE -> { - } - - // 删除 - ObuConstants.STATUS.DELETE -> { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - // 更新数据 - TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.removeTrackerWarningInfo(it) - // 事件结束,还原交通参与者颜色 - it.threatLevel = 0x01 - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } -// CallerHmiManager.disableWarningV2X(ObuConstants.USE_CASE_ID.VRUCW.toString()) - } - } - - } -// } - } - - // (5) 限速预警信息:CVX_SLW_THREAT_IND - override fun onCvxSlwThreatIndInfo(info: CvxSlwThreatIndInfo?) { - //todo 限速走高精地图 屏蔽OBU限速\ -// CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onCvxSlwThreatIndInfo ------> $info") -// if (info != null) { -// when (info.status) { -// // 添加 -// ObuConstants.STATUS.ADD, -// ObuConstants.STATUS.UPDATE -// -> { -// if (info.ext_info != null) { -// // 计算为千米每小时 TODO 这里需要做一下向上取整数,40,60,80,120等 -// CallerLogger.d( -// "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", -// "info.ext_info.speed_limit_max ------> ${info.ext_info.speed_limit_max}" -// ) -// CallerHmiManager.showLimitingVelocity((Math.round(((info.ext_info.speed_limit_max * 60 * 60) / 1000) / 10) * 10).toInt()) -// } -// } -// // 删除 -// ObuConstants.STATUS.DELETE -> { -// CallerHmiManager.disableLimitingVelocity() -// } -// } -// } - } - - - // (1) V2V预警信息:CVX_V2V_THREAT_IND - override fun onCvxV2vThreatIndInfo(info: CvxV2vThreatIndInfo?) { -// if (HmiBuildConfig.isShowObuV2vView) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxV2vThreatIndInfo ------> $info" - ) - info?.let { - //预警信息,预警类型 threat_level 2、3 - info.threat_info?.let { - //预警方位 - val direction = - getMessageDirection(if (info.ext_info != null) info.ext_info.target_classification else -1) - //处理预警类型 - val appId = info.threat_info.app_id - val level = info.threat_info.threat_level - val status = info.status - if (info.ext_info != null) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "onCvxV2vThreatIndInfo target_classification = ${ - getMessageDirection(info.ext_info.target_classification) - } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" - ) - } - - handleSdkObu(appId, direction, status, level, info) - } - } - } -// } - } - - /** - * 返回OBU监听 - */ - fun getMogoObuListener(): OnMogoObuListener { - return mogoObuListener - } - - /** - * 获取消息的方位 车辆相关 - */ - private fun getMessageDirection(targetClassification: Int): WarningDirectionEnum { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "预警红边:预警方向->$targetClassification") - return when (targetClassification) { - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_IN_LANE, - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_IN_LANE, - 0x04 -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方 - - 0x03 -> WarningDirectionEnum.ALERT_WARNING_RIGHT //正右方 - - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_IN_LANE, - 0x05 -> WarningDirectionEnum.ALERT_WARNING_BOTTOM //正后方 - - 0x02 -> WarningDirectionEnum.ALERT_WARNING_LEFT //正左方 - - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_LEFT -> WarningDirectionEnum.ALERT_WARNING_TOP_LEFT //左前方 - - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_RIGHT, - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_RIGHT, - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_RIGHT, - ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_RIGHT, - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_RIGHT -> WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT //右前方 - - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_LEFT -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT //左后方 - - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_RIGHT, - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_RIGHT -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT //右后方 - - ObuConstants.TARGET_CLASSIFICATION.TC_UNCLASSIFIED -> WarningDirectionEnum.ALERT_WARNING_NON //未知 - else -> WarningDirectionEnum.ALERT_WARNING_ALL - } - } - - fun release() { - MogoObuManager.getInstance().unregisterListener() - } - - /** - * 处理红绿灯 - */ - private fun handlerTrafficLight(appId: Int, status: Int, lights: List, index: Int) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "handlerTrafficLight appId = $appId --- status = $status ---index = $index ---lights.size = ${lights.size} ---lights = $lights " - ) - when (status) { - // 添加 - ObuConstants.STATUS.ADD, - ObuConstants.STATUS.UPDATE - -> { - changeTrafficLightStatus(appId, lights, index) - } - // 删除 - ObuConstants.STATUS.DELETE -> { - // 移除顶部弹窗 - CallerHmiManager.disableWarningTrafficLight() -// CallerHmiManager.disableWarningV2X(appId.toString()) - } - } - } - - private var isRedLight = false - private var isGreenLight = false - - /** - * 修改红绿灯 - */ - @Synchronized - private fun changeTrafficLightStatus( - appId: Int, - lights: List, - index: Int - ) { - var ttsContent = "" - var alertContent = "" - //这里需要根据真实数据确定 index 取值方式 - if (index != -1 && lights.size >= index) { - val currentLight = lights[index] - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "currentLight = $currentLight ---currentLight.phase = ${currentLight.phase} ---rlvw_violation_type = ${currentLight.rlvw_violation_type} --- index = $index ---appId = $appId ---appId = $appId" - ) - // 闯红灯预警 - when (currentLight.rlvw_violation_type) { - 0x0 -> {//不可用 V2I_RLVW_VIOLATION_TYPE_UNAVAILABLE - } - 0x1 -> {//无违规 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION -// CallerHmiManager.disableWarningV2X(appId.toString()) - } - 0x2 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT - ttsContent = EventTypeEnum.getWarningTts(appId.toString()) - alertContent = EventTypeEnum.getWarningContent(appId.toString()) - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> appId.toString() = ${appId.toString()} --- alertContent = $alertContent --- ttsContent = $ttsContent ") - if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { - Log.d("MsgBox-PriObuManager1", "alertContent或ttsContent为空!") - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OBU, - V2XMsg(appId.toString(), alertContent, ttsContent) - ) - ) - CallerHmiManager.warningV2X( - appId.toString(), alertContent, ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - appId.toString(), null, true, 5000L - ) - } - 0x3 -> {//闯黄灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_YELLOW_LIGHT - } - } - - when (currentLight.phase) { - // 灯光不可用 - 0x0 -> { - CallerHmiManager.showWarningTrafficLight(0, 3) - } - // 红灯 - 0x1 -> { - if (!isRedLight) { -// CallerHmiManager.disableWarningV2X(appId.toString()) - isRedLight = true - } - isGreenLight = false - CallerHmiManager.showWarningTrafficLight(1, 3) - - val red = currentLight.count_down.toInt() - CallerHmiManager.changeCountdownRed(red) - CallerHmiManager.changeCountdownGreen(0) - CallerHmiManager.changeCountdownYellow(0) - - } - // 绿灯 - 0x2 -> { - if (!isGreenLight) { -// CallerHmiManager.disableWarningV2X(appId.toString()) - isGreenLight = true - } - isRedLight = false - CallerHmiManager.showWarningTrafficLight(3, 3) - val green = currentLight.count_down.toInt() - CallerHmiManager.changeCountdownGreen(green) - //防止数据出现问题的容错 - CallerHmiManager.changeCountdownRed(0) - CallerHmiManager.changeCountdownYellow(0) - // 拼接建议速度 - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "speed_min = ${currentLight.glosa_suggested_speed_min} --speed_max = ${currentLight.glosa_suggested_speed_max.toInt()}" - ) - val adviceSpeed = - "${currentLight.glosa_suggested_speed_min.toInt()} - ${currentLight.glosa_suggested_speed_max.toInt()}" - - val adviceSpeedTts = - "${currentLight.glosa_suggested_speed_min.toInt()}到${currentLight.glosa_suggested_speed_max.toInt()}" - - ttsContent = - String.format( - EventTypeEnum.getWarningTts(EventTypeEnum.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeedTts - ) - - alertContent = - String.format( - EventTypeEnum.getWarningContent(EventTypeEnum.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeed - ) - - val maxSpeed = currentLight.glosa_suggested_speed_max.toInt() - if (maxSpeed > 0) { - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> TYPE_USECASE_ID_IVP_GREEN --- alertContent = $alertContent --- ttsContent = $ttsContent ") - if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { - Log.d("MsgBox-PriObuManager2", "alertContent或ttsContent为空!") - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OBU, - V2XMsg(EventTypeEnum.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent) - ) - ) - CallerHmiManager.warningV2X( - EventTypeEnum.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - appId.toString(), - null, - true, - 5000L - ) - } - } - // 黄灯 - 0x3 -> { -// CallerHmiManager.disableWarningV2X(appId.toString()) - CallerHmiManager.showWarningTrafficLight(2, 2) - val yellow = currentLight.count_down.toInt() - CallerHmiManager.changeCountdownYellow(yellow) - CallerHmiManager.changeCountdownGreen(0) - CallerHmiManager.changeCountdownRed(0) - } - } - } - - } - - - //todo 二期优化此处内容,注解参数 - /** - * 构造对应展示数据和场景 根据obu的场景,add change delete确定是否展示 - * - * @param appId 使用WarningTypeEnum获取icon、提示内容、tts内容 - * - */ - private fun handleSdkObu( - appId: Int, - direction: WarningDirectionEnum, - status: Int, - level: Int, - info: CvxV2vThreatIndInfo - ) { - // 这里排除需要特殊定制的语音及文案外,其余的都可以使用 EventTypeEnum 提供的 - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "handleSdkObu appId = $appId --- handleDirection = $direction ---level = $level ---status = $status" - ) - var alertContent: String? = null - var ttsContent: String? = null - var changeVisualAngle = false - when (appId.toString()) { - // 变道预警,注意左后车辆/注意右后车辆 - EventTypeEnum.TYPE_USECASE_ID_LCW.poiType -> { - EventTypeHelper.getLCW(appId, direction) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //车辆失控预警 - EventTypeEnum.TYPE_USECASE_ID_CLW.poiType -> { - EventTypeHelper.getCLW(appId, direction) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //左转辅助 - EventTypeEnum.TYPE_USECASE_ID_LTA.poiType -> { - EventTypeHelper.getLTA(appId) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //异常车辆提醒 - EventTypeEnum.TYPE_USECASE_ID_AVW.poiType -> { - EventTypeHelper.getAVW(appId, direction) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //盲区预警 - EventTypeEnum.TYPE_USECASE_ID_BSW.poiType -> { - EventTypeHelper.getBSW(appId, direction) { alert, tts, visualAngle -> - alertContent = alert - ttsContent = tts - changeVisualAngle = visualAngle - } - } - //前车急刹预警 - EventTypeEnum.TYPE_USECASE_ID_EBW.poiType -> { - EventTypeHelper.getEBW(appId) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //前向碰撞预警 - EventTypeEnum.TYPE_USECASE_ID_FCW.poiType -> { - EventTypeHelper.getFCW(appId) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - //逆向超车预警 - EventTypeEnum.TYPE_USECASE_ID_DNPW.poiType -> { - EventTypeHelper.getDNPW(appId) { alert, tts -> - alertContent = alert - ttsContent = tts - } - } - - // 这里处理固定的提示信息,包括了<紧急车辆提醒> - else -> { - ttsContent = EventTypeEnum.getWarningTts(appId.toString()) - alertContent = EventTypeEnum.getWarningContent(appId.toString()) - } - } - - when (status) { - // 添加,更新 add的时候,可能级别是2, - ObuConstants.STATUS.ADD, - ObuConstants.STATUS.UPDATE -> { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" - ) - if (level == 2 || level == 3) { - //不显示顶部弹框,其它保留 - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", - "old handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" - ) - if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { - Log.d("MsgBox-PriObuManager3", "alertContent或ttsContent为空!") - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OBU, - V2XMsg(appId.toString(), - alertContent, - ttsContent) - ) - ) - CallerHmiManager.warningV2X( - appId.toString(), - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - (appId + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的 - object : IMoGoWarningStatusListener { - - override fun onShow() { - super.onShow() - if (changeVisualAngle) { - CallerVisualAngleManager.changeVisualAngle(TooClose) - } - } - - override fun onDismiss() { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - if (changeVisualAngle) { - CallerVisualAngleManager.changeVisualAngle(Default()) - } - } - }, - true, - 5000L - ) - //显示警告红边 - CallerHmiManager.showWarning(direction) - } - //更新周边车辆进行预警颜色变换,车辆实时移动和变色 - TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.invokeTrackerWarningInfo(it) - CallerMapUIServiceManager.getMarkerService()?.updateITrafficThreatLevelInfo(it) - } - } - // 删除 - ObuConstants.STATUS.DELETE -> { - // 关闭警告红边 - CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON) - // 移除顶部弹窗 -// CallerHmiManager.disableWarningV2X((appId + direction.direction).toString()) - //更新周边车辆进行预警颜色变换,车辆实时移动和变色 - TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { - CallerObuListenerManager.removeTrackerWarningInfo(it) - it.threatLevel = 0x01 - CallerMapUIServiceManager.getMarkerService()?.updateITrafficThreatLevelInfo(it) - } - } - } - } - - -} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index a36ed03ddd..b2d7d2fcb6 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -1,7 +1,6 @@ package com.mogo.eagle.core.function.obu.mogo import android.content.Context -import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.enums.* @@ -30,10 +29,12 @@ import com.mogo.support.obu.MogoObuManager import com.mogo.support.obu.OnMogoObuListener import com.mogo.support.obu.constants.MogoObuComType import com.mogo.support.obu.constants.MogoObuConstants +import com.mogo.support.obu.constants.MogoObuLogLevel import com.mogo.support.obu.constants.MogoObuTopicId import com.mogo.support.obu.model.* import com.mogo.support.obu.model.advance.SpatLight import com.mogo.support.obu.option.MogoObuCom +import com.mogo.support.obu.option.MogoObuLog import com.mogo.support.obu.option.MogoObuOptions import org.json.JSONObject @@ -75,7 +76,7 @@ class MogoPrivateObuNewManager private constructor() { .build() //每次连接的时候如果连接连接了,先断开 - if (MogoObuManager.getInstance().connectStatus == 1) { + if (MogoObuManager.getInstance().connectStatus == MogoObuConstants.CONNECT_STATUS.CONNECTED) { try { MogoObuManager.getInstance().disconnect() } catch (e: Exception) { @@ -86,6 +87,35 @@ class MogoPrivateObuNewManager private constructor() { MogoObuManager.getInstance().connect(options) } + /** + * 断开新obu + */ + fun disConnectObu() { + try { + MogoObuManager.getInstance().disconnect() + } catch (e: Exception) { + e.printStackTrace() + } + } + + /** + * 新obu是否连接 + */ + fun isConnected(): Boolean { + return MogoObuManager.getInstance().connectStatus == MogoObuConstants.CONNECT_STATUS.CONNECTED + } + + fun setObuLog(isChecked: Boolean) { + MogoObuManager.getInstance().setEnableLog(isChecked) + + val builder: com.mogo.support.obu.option.MogoObuLog.Builder = + MogoObuLog.newBuilder().setEnableStdio(isChecked) + if (isChecked) { + builder.setStdioLevel(MogoObuLogLevel.DBG) + } + MogoObuManager.getInstance().logConfig(builder.build()) + } + fun getMogoObuListener(): OnMogoObuListener { return mogoObuListener } diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/utils/TrafficDataConvertUtils.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/utils/TrafficDataConvertUtils.kt deleted file mode 100644 index 8e94bc8bc6..0000000000 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/utils/TrafficDataConvertUtils.kt +++ /dev/null @@ -1,133 +0,0 @@ -package com.mogo.eagle.core.function.obu.mogo.utils - -import com.mogo.eagle.core.data.traffic.TrafficData -import com.mogo.eagle.core.data.enums.TrafficTypeEnum -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU -import com.zhidao.support.obu.constants.ObuConstants -import com.zhidao.support.obu.model.CvxPtcThreatIndInfo -import com.zhidao.support.obu.model.CvxRtiThreatIndInfo -import com.zhidao.support.obu.model.CvxRvInfoIndInfo -import com.zhidao.support.obu.model.CvxV2vThreatIndInfo - -/** - * @author xiaoyuzhou - * @date 2021/8/18 2:30 下午 - */ -object TrafficDataConvertUtils { - val TAG = "TrafficDataConvertUtils" - - /** - * OBU 远车 转换交通元素数据 - */ - fun cvxRvInfoIndInfo2TrafficData(info: CvxRvInfoIndInfo): TrafficData? { - if (info.basic_info == null || info.basic_info.position == null) { - CallerLogger.e("$M_OBU$TAG", "cvxRvInfoIndInfo2TrafficData 数据转换异常,请检查参数是否齐全") - return null - } - val trafficData = TrafficData() - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE - trafficData.uuid = info.vehicle_id - trafficData.lat = info.basic_info.position.latitude - trafficData.lon = info.basic_info.position.longitude - trafficData.heading = info.basic_info.heading - trafficData.speed = info.basic_info.speed - - return trafficData - } - - /** - * OBU RSU道路事件预警信息 转换交通元素数据 - */ - fun cvxRtiThreatIndInfo2TrafficData(info: CvxRtiThreatIndInfo): TrafficData? { - // 这里只处理道路施工 - if(info.ext_info.rti_type != 0x7){ - return null - } - if (info.rti_id == null || info.ext_info == null - || info.zones_info == null || info.zones_info.first() == null - || info.zones_info.first().path_points.first() == null - || info.threat_info == null - ) { - CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全") - return null - } - val trafficData = TrafficData() - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_DAO_LU_SHI_GONG - trafficData.uuid = info.rti_id - - trafficData.lat = info.zones_info.first().path_points.first().latitude - trafficData.lon = info.zones_info.first().path_points.first().longitude - - trafficData.threatLevel = info.threat_info.threat_level - - return trafficData - } - - /** - * OBU 预警事件 转换交通元素数据 - */ - fun cvxV2vThreatIndInfo2TrafficData(info: CvxV2vThreatIndInfo): TrafficData? { - if (info.basic_info == null || info.basic_info.position == null || info.threat_info == null) { - CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全") - return null - } - val trafficData = TrafficData() - trafficData.uuid = info.vehicle_id - trafficData.lat = info.basic_info.position.latitude - trafficData.lon = info.basic_info.position.longitude - trafficData.heading = info.basic_info.heading - trafficData.speed = info.basic_info.speed - // 判断车辆V2X预警级别,调整车辆颜色 - trafficData.threatLevel = info.threat_info.threat_level - - if (info.threat_info.app_id == ObuConstants.USE_CASE_ID.EVW) { - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_SPECIAL_VEHICLE - } else { - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE - } - - return trafficData - } - - /** - * OBU 弱势交通参与者信息 转换交通元素数据 TODO - */ - fun cvxPtcThreatIndInfo2TrafficData(info: CvxPtcThreatIndInfo): TrafficData? { - if (info.ptc_pos == null || info.threat_info == null) { - CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全") - return null - } - val trafficData = TrafficData() - - trafficData.uuid = info.ptc_id - trafficData.lat = info.ptc_pos.latitude - trafficData.lon = info.ptc_pos.longitude -// trafficData.heading = info.ptc_pos.heading -// trafficData.speed = info.ptc_pos.speed - - when (info.ptc_type) { - // 未知 - 0x0 -> { - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI - } - // 非机动车 - 0x1 -> { - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO - } - // 行人 - 0x2 -> { - trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE - } - } - - // 判断车辆V2X预警级别,调整车辆颜色 - if (info.threat_info != null) { - trafficData.threatLevel = info.threat_info.threat_level - } - - return trafficData - } - - -} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuProvider.kt index 7f07c4f11e..9bafd7eca7 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuProvider.kt @@ -14,4 +14,6 @@ interface IMoGoObuProvider : IMoGoFunctionServerProvider { fun disConnect() fun isConnected(): Boolean + + fun setObuLibLog(isSet: Boolean) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerOBUManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerOBUManager.kt index 3dd265e6c8..a561e5bbe7 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerOBUManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerOBUManager.kt @@ -41,4 +41,11 @@ object CallerOBUManager { return providerApi.isConnected() } + /** + * 设置obu sdk的 日志 + */ + fun setObuLog(isSet: Boolean) { + providerApi.setObuLibLog(isSet) + } + } \ No newline at end of file From 19528e511d0062fdd778b0563727ec18295f5a0c Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 15:22:42 +0800 Subject: [PATCH 15/32] [2.13.2-sop] 2.13.4 code opt of pnc actions view --- .../com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 1c178824d5..29fd379f52 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -97,6 +97,9 @@ class PncActionsView @JvmOverloads constructor( tvHmiPncActions.text = actions } } + }else{ + this.background = null + tvHmiPncActions.text = "" } } From a7d6fe8038095724d4d777edddf54717200510b9 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 15:28:00 +0800 Subject: [PATCH 16/32] [2.14.0]code opt of pnc view --- .../com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 1c178824d5..29fd379f52 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -97,6 +97,9 @@ class PncActionsView @JvmOverloads constructor( tvHmiPncActions.text = actions } } + }else{ + this.background = null + tvHmiPncActions.text = "" } } From c911616702727048f031663bf8086f36eae88d3f Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 17 Feb 2023 17:25:11 +0800 Subject: [PATCH 17/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20=E8=A7=A3=E5=86=B3=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E5=BE=97=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/obu/mogo/MoGoObuProvider.kt | 1 + .../obu/mogo/MogoPrivateObuNewManager.kt | 42 +++++++++---------- .../mogo/eagle/core/data/obu/ObuStatusInfo.kt | 2 - 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt index ebf56c32b4..81f35634ed 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MoGoObuProvider.kt @@ -22,6 +22,7 @@ class MoGoObuProvider : IMoGoObuProvider { private var mContext: Context? = null private val taxiObuIp = "192.168.1.199" //taxi和bus网段统一 +// private val taxiObuIp = "192.168.0.53" //室内测试环境 override val functionName: String get() = TAG diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index b2d7d2fcb6..3e47a0a414 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.obu.mogo import android.content.Context +import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.enums.* @@ -197,7 +198,7 @@ class MogoPrivateObuNewManager private constructor() { if (HmiBuildConfig.isShowObuV2vView) { mObuStatusInfo.obuRvStatus = true CallerObuListenerManager.invokeListener(mObuStatusInfo) - if (!data.warningMsg.warningData.isNullOrEmpty()) { + if (data.warningMsg != null) { // 更新数据,远车数据,之前要匹配uuid TrafficDataConvertUtilsNew.cvxRvInfoIndInfo2TrafficData(data)?.let { CallerMapUIServiceManager.getMarkerService()?.updateITrafficLocationInfo(it) @@ -213,29 +214,26 @@ class MogoPrivateObuNewManager private constructor() { var appId = "" var level = -1 var status = -1 - data.warningMsg?.let { - if (data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) { - level = data.warningMsg.warningData[0].warningLevel - appId = data.warningMsg.warningData[0].warningType.toString() - status = data.warningMsg.warningData[0].status - - //30秒内同一个事件只出现一次 - if (rvMap.containsKey(appId)) { - var oldTime = rvMap[appId] - var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 - if (timeDiff < 30) { - return - } - rvMap.remove(appId) - rvMap[appId] = System.currentTimeMillis() - } else { - rvMap[appId] = System.currentTimeMillis() + if (data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) { + level = data.warningMsg.warningData[0].warningLevel + appId = data.warningMsg.warningData[0].warningType.toString() + status = data.warningMsg.warningData[0].status + //30秒内同一个事件只出现一次 + if (rvMap.containsKey(appId)) { + var oldTime = rvMap[appId] + var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 + if (timeDiff < 30) { + return } + rvMap.remove(appId) + rvMap[appId] = System.currentTimeMillis() + } else { + rvMap[appId] = System.currentTimeMillis() + } - //拼凑数据 - if (appId != null) { - handleSdkObu(appId, direction, status, level, data) - } + //拼凑数据 + if (appId != null) { + handleSdkObu(appId, direction, status, level, data) } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/obu/ObuStatusInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/obu/ObuStatusInfo.kt index b0206c4d42..cbf40c1031 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/obu/ObuStatusInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/obu/ObuStatusInfo.kt @@ -6,8 +6,6 @@ package com.mogo.eagle.core.data.obu * OBU 相关的状态信息数据 */ class ObuStatusInfo { - // 当前链接的IP地址, 默认地址 192.168.1.199 - var connectIP: String = "192.168.1.199" var obuSdkVersion = "" From 45810346f99e44bab6eac8d21c219024b034a6de Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 19:31:54 +0800 Subject: [PATCH 18/32] [2.13.2-sop] 1.8.4 passenger --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 086a2be1ea..55cf786d9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130400 -versionName=2.13.4 +versionCode=1080400 +versionName=1.8.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From f4e420481e0d6021ca717f66e0c86f937cea98e1 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 20:17:34 +0800 Subject: [PATCH 19/32] [2.13.2-sop] 2.13.4 reset driver --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 55cf786d9e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1080400 -versionName=1.8.4 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From a910705b570492346180480204dab9ca209ee994 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 20 Feb 2023 15:23:53 +0800 Subject: [PATCH 20/32] =?UTF-8?q?[dev=5Frobotaxi-d-app-module=5F2132=5F221?= =?UTF-8?q?223=5F2.13.2=5Fsop]=20=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index b258ec9a96..f127f8e0f5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1099,9 +1099,9 @@ class MoGoHmiFragment : MvpFragment(), mViewLimitingVelocity?.updateLimitingSpeed(limitingSpeed, limitSpeedSource) tvLimitingSource?.visibility = View.VISIBLE if (limitSpeedSource == 1) { - tvLimitingSource.text = "MAP" + tvLimitingSource?.text = "MAP" } else if (limitSpeedSource == 2) { - tvLimitingSource.text = "RSU" + tvLimitingSource?.text = "RSU" } } else { mViewLimitingVelocity?.visibility = View.INVISIBLE From 93d1abdb85198481214639d957417fd00d99539f Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 16:34:20 +0800 Subject: [PATCH 21/32] [2.14.0] fix bug --- .../function/hmi/ui/pnc/PncActionsView.kt | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 6a15160b33..d24aea0959 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -74,16 +74,24 @@ class PncActionsView @JvmOverloads constructor( override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) { try { mAutoPilotStatusInfo?.let { it -> - if (it.state == STATUS_AUTOPILOT_RUNNING) { - UiThreadHandler.post { + UiThreadHandler.post { + if (it.state == STATUS_AUTOPILOT_RUNNING) { + var actions: String? = null planningActionMsg.actionMsg?.let { - actions = PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number) + actions = PncActionsHelper.getAction( + it.drivingState.number, + it.drivingAction.number + ) //如果是存在云端红绿灯数据条件下,设置云端数据 - if (PncActionsHelper.isWaitingTrafficlight(it.drivingState.number, it.drivingAction.number) + if (PncActionsHelper.isWaitingTrafficlight( + it.drivingState.number, + it.drivingAction.number + ) && mTrafficLightResult != null - && getWaitTrafficlightTime().isNotBlank()) { + && getWaitTrafficlightTime().isNotBlank() + ) { actions += ",预计${getWaitTrafficlightTime()}秒后通过" } else { mTrafficLightResult = null @@ -94,16 +102,18 @@ class PncActionsView @JvmOverloads constructor( this.background = null tvHmiPncActions.text = "" } else { - this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) + this.background = + AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) tvHmiPncActions.text = actions } + + } else { + this.background = null + tvHmiPncActions.text = "" } - }else{ - this.background = null - tvHmiPncActions.text = "" } } - }catch (e:Exception){ + } catch (e: Exception) { e.printStackTrace() } } From f06fa8d56196d31c3cd17317a9ac639c0f2e313d Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 17:30:39 +0800 Subject: [PATCH 22/32] [2.13.2-sop] fix bug of pnc --- .../function/hmi/ui/pnc/PncActionsView.kt | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 29fd379f52..9006665492 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -73,16 +73,23 @@ class PncActionsView @JvmOverloads constructor( @BizConfig(FOUNDATION, "", BIZ_PNC_ACTIONS) override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) { mAutoPilotStatusInfo?.let { it -> - if (it.state == STATUS_AUTOPILOT_RUNNING) { - UiThreadHandler.post { + UiThreadHandler.post { + if (it.state == STATUS_AUTOPILOT_RUNNING) { var actions: String? = null planningActionMsg.actionMsg?.let { - actions = PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number) + actions = PncActionsHelper.getAction( + it.drivingState.number, + it.drivingAction.number + ) //如果是存在云端红绿灯数据条件下,设置云端数据 - if (PncActionsHelper.isWaitingTrafficlight(it.drivingState.number, it.drivingAction.number) + if (PncActionsHelper.isWaitingTrafficlight( + it.drivingState.number, + it.drivingAction.number + ) && mTrafficLightResult != null - && getWaitTrafficlightTime().isNotBlank()) { + && getWaitTrafficlightTime().isNotBlank() + ) { actions += ",预计${getWaitTrafficlightTime()}秒后通过" } else { mTrafficLightResult = null @@ -93,13 +100,14 @@ class PncActionsView @JvmOverloads constructor( this.background = null tvHmiPncActions.text = "" } else { - this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) + this.background = + AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) tvHmiPncActions.text = actions } + } else { + this.background = null + tvHmiPncActions.text = "" } - }else{ - this.background = null - tvHmiPncActions.text = "" } } From caa421ed9bbc87a464b8da5786619026008d8742 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 20:49:48 +0800 Subject: [PATCH 23/32] merge --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 086a2be1ea..55cf786d9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=2130400 -versionName=2.13.4 +versionCode=1080400 +versionName=1.8.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 97422bdb93dd103c7ab6154b1cab9be5354aa2d3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 22 Feb 2023 16:20:24 +0800 Subject: [PATCH 24/32] [2.13.2-sop] 2.13.4 reset driver version code --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 55cf786d9e..086a2be1ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1080400 -versionName=1.8.4 +versionCode=2130400 +versionName=2.13.4 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_AUTOPILOT_VERSION=0.0.58.10 From 554accbf11d458a4645e90100d30aedd82bbd515 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 22 Feb 2023 16:41:35 +0800 Subject: [PATCH 25/32] =?UTF-8?q?[2.14.0]fix=E5=BD=95=E5=8C=85=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=88=A0=E5=8C=85=E5=90=8E=E6=98=BE=E7=A4=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../badcase/biz/BadCaseManagerView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt index 70f318d8fe..8d8387e807 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt @@ -434,6 +434,9 @@ class BadCaseManagerView @JvmOverloads constructor( } } } + if(bagManagerList.size == 0){ + tvCancelSelect.performClick() + } //更新列表 bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp) } From 4ead3e2b3298bb7112811ce24942478d5072a55b Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 22 Feb 2023 21:30:42 +0800 Subject: [PATCH 26/32] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E5=AE=89=E8=A3=85App=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=BE=97=E9=AB=98=E5=BE=B7=E5=AE=9A=E4=BD=8D=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 30 +++++++-- .../hmi/ui/widget/SystemVersionView.kt | 65 ++++++++++++------- .../src/main/res/values/strings.xml | 1 + .../call/map/CallerMapUIServiceManager.kt | 9 +++ .../uicontroller/IMogoMapUIController.java | 5 ++ .../java/com/mogo/map/AMapViewWrapper.java | 46 ++++++++++++- .../com/mogo/map/MogoMapUIController.java | 16 +++++ .../map/uicontroller/AMapUIController.java | 16 +++++ 8 files changed, 158 insertions(+), 30 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index 2f649553a8..65da8e1fa6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -6,11 +6,9 @@ import android.view.View import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView -import androidx.annotation.MainThread import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat -import androidx.core.view.marginTop +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R @@ -40,6 +38,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { private var isConfirm = true private var isRetry = false + var location: MogoLocation? = null + init { setContentView(R.layout.dialog_offline_map) setCanceledOnTouchOutside(true) @@ -92,8 +92,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { } } - private fun cacheHDOfflineData() { - CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + private fun cacheHDDataByCityByLonLat() { + CallerMapUIServiceManager.cacheHDDataByCityByLonLat(object : IHdCacheListener { override fun onMapHdCacheProgress(cityId: Int, progress: Double) { updateProgress(progress.toInt()) } @@ -103,7 +103,25 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { showNewContent(isLoading = false, false) } } - }) + }, location!!) + } + + private fun cacheHDOfflineData() { + if (location == null) {// 拿到了高德地图的cityCode + CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + override fun onMapHdCacheProgress(cityId: Int, progress: Double) { + updateProgress(progress.toInt()) + } + + override fun onMapHdCacheResult(cityId: Int, state: Int) { + if (state == 0) {// 失败 + showNewContent(isLoading = false, false) + } + } + }) + } else {// 只拿到了高精的经纬度 + cacheHDDataByCityByLonLat() + } } @SuppressLint("SetTextI18n") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index f3291ce9c3..69dd501adc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt @@ -8,11 +8,14 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener +import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog @@ -34,7 +37,8 @@ class SystemVersionView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener,IMoGoBindingCarListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener, + IMoGoBindingCarListener, IMoGoMapLocationListener { companion object { const val TAG = "SystemVersionView" @@ -44,14 +48,15 @@ class SystemVersionView @JvmOverloads constructor( private var dockerVersion: String? = null //工控机版本 private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中 - private var ipcUpgradeStateInfo: IPCUpgradeStateInfo?=null + private var ipcUpgradeStateInfo: IPCUpgradeStateInfo? = null private var needQueryContainers: Boolean = false - private var dockerList: List?=null + private var dockerList: List? = null private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间 private var currentProgress: Int = -1 //当前已下载包体大小 private var isHDCached = false + private var location: MogoLocation? = null init { LayoutInflater.from(context).inflate(R.layout.view_system_version, this, true) @@ -98,15 +103,16 @@ class SystemVersionView @JvmOverloads constructor( when { AdUpgradeStateHelper.isDownloading(it.status) -> { //下载中,点击Toast提示:下载剩余时间 - it.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> - if(AdUpgradeStateHelper.getRemainingTime( + it.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> + if (AdUpgradeStateHelper.getRemainingTime( progressDetail.total, previousProgress, currentProgress - ).isEmpty()){ + ).isEmpty() + ) { ToastUtils.showShort("下载已完成") - }else{ + } else { ToastUtils.showShort( "预计" + AdUpgradeStateHelper.getRemainingTime( progressDetail.total, @@ -143,13 +149,23 @@ class SystemVersionView @JvmOverloads constructor( if (isHDCached) {// 已缓存 ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded)) } else {// 未缓存 - OfflineMapDialog(context).show() + if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode + if (location == null || (location!!.longitude <= 0.0 && location!!.latitude <= 0.0)) {// 未拿到高精的经纬度 + ToastUtils.showShort(resources.getString(R.string.location_try_again)) + } else {// 拿到了高精的经纬度 + val dialog = OfflineMapDialog(context) + dialog.location = location + dialog.show() + } + } else {// 拿到高德的cityCode + OfflineMapDialog(context).show() + } } } updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached()) - if(AdUpgradeStateHelper.isConfirmUpgrade()){ + if (AdUpgradeStateHelper.isConfirmUpgrade()) { //将角标改为“下载中” ivAdStatus?.setImageResource(R.drawable.icon_downloading) ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) @@ -165,7 +181,7 @@ class SystemVersionView @JvmOverloads constructor( private fun setAdUpgradeInfo(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { this.previousProgress = this.currentProgress ipcUpgradeStateInfo.progress?.let { - it.progressDetail?.let {progressDetail-> + it.progressDetail?.let { progressDetail -> this.currentProgress = progressDetail.current } } @@ -176,22 +192,22 @@ class SystemVersionView @JvmOverloads constructor( * 展示工控机下载、升级状态信息 * */ - fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo){ - ThreadUtils.runOnUiThread{ + fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { + ThreadUtils.runOnUiThread { setAdUpgradeInfo(ipcUpgradeStateInfo) AdUpgradeStateHelper.setUpgradeableStatus(false) - ipcUpgradeStateInfo.status.let {status-> + ipcUpgradeStateInfo.status.let { status -> when { AdUpgradeStateHelper.isDownloading(status) -> { //正在下载,展示“下载中”角标,展示进度条,并设置当前下载进度 ivAdStatus?.setImageResource(R.drawable.icon_downloading) - adCircularProgressView?.let {adCircularProgressView-> + adCircularProgressView?.let { adCircularProgressView -> adCircularProgressView.visibility = View.VISIBLE CallerLogger.i( "$M_HMI$$TAG", "showAdUpgradeStatus status=$status" ) - ipcUpgradeStateInfo.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> + ipcUpgradeStateInfo.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> adCircularProgressView.setProgress( AdUpgradeStateHelper.downloadProgress( progressDetail.current, @@ -212,14 +228,14 @@ class SystemVersionView @JvmOverloads constructor( ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isDownloadFinish(status) ->{ + AdUpgradeStateHelper.isDownloadFinish(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isUpgrading(status) ->{ + AdUpgradeStateHelper.isUpgrading(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE @@ -291,7 +307,8 @@ class SystemVersionView @JvmOverloads constructor( return } CallerAutoPilotStatusListenerManager.addListener(TAG, this) - CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG,this) + CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG, this) + CallerMapLocationListenerManager.addListener(TAG, this, true) needQueryContainers = true } @@ -302,6 +319,7 @@ class SystemVersionView @JvmOverloads constructor( } CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerBindingCarListenerManager.unRegisterDevaToolsLogCatchListener(TAG) + CallerMapLocationListenerManager.removeListener(TAG, true) needQueryContainers = false } @@ -332,13 +350,13 @@ class SystemVersionView @JvmOverloads constructor( */ override fun queryContainersResponse(dockerList: List) { this.dockerList = dockerList - if(dockerList.isNotEmpty()){ + if (dockerList.isNotEmpty()) { //有更新任务,将状态设为“可升级”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgradeable) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_upgradeable_background) AdUpgradeStateHelper.setUpgradeableStatus(true) - }else{ + } else { ToastUtils.showLong("已是最新版本") ivAdStatus?.setImageResource(R.drawable.icon_latest_version) adCircularProgressView?.visibility = View.GONE @@ -360,4 +378,7 @@ class SystemVersionView @JvmOverloads constructor( adCircularProgressView?.visibility = View.GONE } + override fun onLocationChanged(location: MogoLocation?, from: Int, isGps: Boolean) { + this.location = location + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 6bae6b18ef..f51a9b7018 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -59,6 +59,7 @@ 离线地图下载成功 离线地图下载失败 当前已为最新版本 + 请检查定位是否正常 确定 重试 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 180dcaa281..c725af6f6d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.map import android.content.Context import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase @@ -48,6 +49,10 @@ object CallerMapUIServiceManager { serviceProvider?.mapUIController?.cacheHDDataByCity(listener) } + fun cacheHDDataByCityByLonLat(listener: IHdCacheListener, location: MogoLocation) { + serviceProvider?.mapUIController?.cacheHDDataByCity(listener, location) + } + fun isCityDataCached(): Boolean { return serviceProvider?.mapUIController?.isCityDataCached ?: false } @@ -55,4 +60,8 @@ object CallerMapUIServiceManager { fun cancelDownloadCacheData() { serviceProvider?.mapUIController?.cancelDownloadCacheData() } + + fun getCityCode(): String? { + return serviceProvider?.mapUIController?.cityCode + } } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 920e4b64cb..9e8cd3e42f 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -10,6 +10,7 @@ import androidx.annotation.RawRes; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import org.json.JSONObject; @@ -343,6 +344,8 @@ public interface IMogoMapUIController { void cacheHDDataByCity(IHdCacheListener listener); + void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location); + /** * 当前城市离线数据是否已缓存 * @return @@ -350,4 +353,6 @@ public interface IMogoMapUIController { boolean isCityDataCached(); void cancelDownloadCacheData(); + + String getCityCode(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 8fab38a2af..99c0564121 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -395,7 +395,7 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void setRomaMode(int mode) { - mMapView.getMapAutoViewHelper().setRoamStyle(mode,1800, MapAutoApi.ROAM_SPEED_40); + mMapView.getMapAutoViewHelper().setRoamStyle(mode, 1800, MapAutoApi.ROAM_SPEED_40); } @Override @@ -448,7 +448,6 @@ public class AMapViewWrapper implements IMogoMapView, } /** - * * @return true-是,false=不是 */ private boolean isVrMold() { @@ -1219,6 +1218,44 @@ public class AMapViewWrapper implements IMogoMapView, } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mMapView.getMapAutoViewHelper() != null) { + hdCacheListener = listener; + mMapView.getMapAutoViewHelper().cacheHDDataByCityByLonLat(location.getLongitude(), location.getLatitude(), new OnHdDataDownByCityListener() { + @Override + public void onMapHDDataCacheProgressByCity(int cityId, double progress) { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + } + + @Override + public void onMapHDDataCacheStateByCity(int i, int state) {// 0失败,1成功 + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + }); + } + } + }); + } + } + @Override public boolean isCityDataCached() { if (mMapView.getMapAutoViewHelper() != null) { @@ -1244,4 +1281,9 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().cancelCacheHDData(); } } + + @Override + public String getCityCode() { + return GDLocationClient.getInstance(getContext()).getLastCityCode(); + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 90eead43e5..96c0e1e225 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -7,6 +7,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.uicontroller.CarCursorOption; @@ -451,6 +452,13 @@ public class MogoMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mDelegate != null) { + mDelegate.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mDelegate != null) { @@ -465,4 +473,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mDelegate != null) { + return mDelegate.getCityCode(); + } + return null; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 793df718de..1975277335 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -8,6 +8,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import com.zhidaoauto.map.sdk.open.MapAutoApi; @@ -384,6 +385,13 @@ public class AMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mClient != null) { + mClient.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mClient != null) { @@ -398,4 +406,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mClient != null) { + return mClient.getCityCode(); + } + return null; + } } From 7af97da13706ee2ab791d9e321fe40dd47100886 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 22 Feb 2023 21:30:42 +0800 Subject: [PATCH 27/32] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E5=AE=89=E8=A3=85App=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=BE=97=E9=AB=98=E5=BE=B7=E5=AE=9A=E4=BD=8D=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 30 +++++++-- .../hmi/ui/widget/SystemVersionView.kt | 65 ++++++++++++------- .../src/main/res/values/strings.xml | 1 + .../call/map/CallerMapUIServiceManager.kt | 9 +++ .../uicontroller/IMogoMapUIController.java | 5 ++ .../java/com/mogo/map/AMapViewWrapper.java | 46 ++++++++++++- .../com/mogo/map/MogoMapUIController.java | 16 +++++ .../map/uicontroller/AMapUIController.java | 16 +++++ 8 files changed, 158 insertions(+), 30 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index 2f649553a8..65da8e1fa6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -6,11 +6,9 @@ import android.view.View import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView -import androidx.annotation.MainThread import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat -import androidx.core.view.marginTop +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R @@ -40,6 +38,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { private var isConfirm = true private var isRetry = false + var location: MogoLocation? = null + init { setContentView(R.layout.dialog_offline_map) setCanceledOnTouchOutside(true) @@ -92,8 +92,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { } } - private fun cacheHDOfflineData() { - CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + private fun cacheHDDataByCityByLonLat() { + CallerMapUIServiceManager.cacheHDDataByCityByLonLat(object : IHdCacheListener { override fun onMapHdCacheProgress(cityId: Int, progress: Double) { updateProgress(progress.toInt()) } @@ -103,7 +103,25 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { showNewContent(isLoading = false, false) } } - }) + }, location!!) + } + + private fun cacheHDOfflineData() { + if (location == null) {// 拿到了高德地图的cityCode + CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + override fun onMapHdCacheProgress(cityId: Int, progress: Double) { + updateProgress(progress.toInt()) + } + + override fun onMapHdCacheResult(cityId: Int, state: Int) { + if (state == 0) {// 失败 + showNewContent(isLoading = false, false) + } + } + }) + } else {// 只拿到了高精的经纬度 + cacheHDDataByCityByLonLat() + } } @SuppressLint("SetTextI18n") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index f3291ce9c3..69dd501adc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt @@ -8,11 +8,14 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener +import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog @@ -34,7 +37,8 @@ class SystemVersionView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener,IMoGoBindingCarListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener, + IMoGoBindingCarListener, IMoGoMapLocationListener { companion object { const val TAG = "SystemVersionView" @@ -44,14 +48,15 @@ class SystemVersionView @JvmOverloads constructor( private var dockerVersion: String? = null //工控机版本 private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中 - private var ipcUpgradeStateInfo: IPCUpgradeStateInfo?=null + private var ipcUpgradeStateInfo: IPCUpgradeStateInfo? = null private var needQueryContainers: Boolean = false - private var dockerList: List?=null + private var dockerList: List? = null private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间 private var currentProgress: Int = -1 //当前已下载包体大小 private var isHDCached = false + private var location: MogoLocation? = null init { LayoutInflater.from(context).inflate(R.layout.view_system_version, this, true) @@ -98,15 +103,16 @@ class SystemVersionView @JvmOverloads constructor( when { AdUpgradeStateHelper.isDownloading(it.status) -> { //下载中,点击Toast提示:下载剩余时间 - it.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> - if(AdUpgradeStateHelper.getRemainingTime( + it.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> + if (AdUpgradeStateHelper.getRemainingTime( progressDetail.total, previousProgress, currentProgress - ).isEmpty()){ + ).isEmpty() + ) { ToastUtils.showShort("下载已完成") - }else{ + } else { ToastUtils.showShort( "预计" + AdUpgradeStateHelper.getRemainingTime( progressDetail.total, @@ -143,13 +149,23 @@ class SystemVersionView @JvmOverloads constructor( if (isHDCached) {// 已缓存 ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded)) } else {// 未缓存 - OfflineMapDialog(context).show() + if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode + if (location == null || (location!!.longitude <= 0.0 && location!!.latitude <= 0.0)) {// 未拿到高精的经纬度 + ToastUtils.showShort(resources.getString(R.string.location_try_again)) + } else {// 拿到了高精的经纬度 + val dialog = OfflineMapDialog(context) + dialog.location = location + dialog.show() + } + } else {// 拿到高德的cityCode + OfflineMapDialog(context).show() + } } } updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached()) - if(AdUpgradeStateHelper.isConfirmUpgrade()){ + if (AdUpgradeStateHelper.isConfirmUpgrade()) { //将角标改为“下载中” ivAdStatus?.setImageResource(R.drawable.icon_downloading) ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) @@ -165,7 +181,7 @@ class SystemVersionView @JvmOverloads constructor( private fun setAdUpgradeInfo(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { this.previousProgress = this.currentProgress ipcUpgradeStateInfo.progress?.let { - it.progressDetail?.let {progressDetail-> + it.progressDetail?.let { progressDetail -> this.currentProgress = progressDetail.current } } @@ -176,22 +192,22 @@ class SystemVersionView @JvmOverloads constructor( * 展示工控机下载、升级状态信息 * */ - fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo){ - ThreadUtils.runOnUiThread{ + fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { + ThreadUtils.runOnUiThread { setAdUpgradeInfo(ipcUpgradeStateInfo) AdUpgradeStateHelper.setUpgradeableStatus(false) - ipcUpgradeStateInfo.status.let {status-> + ipcUpgradeStateInfo.status.let { status -> when { AdUpgradeStateHelper.isDownloading(status) -> { //正在下载,展示“下载中”角标,展示进度条,并设置当前下载进度 ivAdStatus?.setImageResource(R.drawable.icon_downloading) - adCircularProgressView?.let {adCircularProgressView-> + adCircularProgressView?.let { adCircularProgressView -> adCircularProgressView.visibility = View.VISIBLE CallerLogger.i( "$M_HMI$$TAG", "showAdUpgradeStatus status=$status" ) - ipcUpgradeStateInfo.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> + ipcUpgradeStateInfo.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> adCircularProgressView.setProgress( AdUpgradeStateHelper.downloadProgress( progressDetail.current, @@ -212,14 +228,14 @@ class SystemVersionView @JvmOverloads constructor( ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isDownloadFinish(status) ->{ + AdUpgradeStateHelper.isDownloadFinish(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isUpgrading(status) ->{ + AdUpgradeStateHelper.isUpgrading(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE @@ -291,7 +307,8 @@ class SystemVersionView @JvmOverloads constructor( return } CallerAutoPilotStatusListenerManager.addListener(TAG, this) - CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG,this) + CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG, this) + CallerMapLocationListenerManager.addListener(TAG, this, true) needQueryContainers = true } @@ -302,6 +319,7 @@ class SystemVersionView @JvmOverloads constructor( } CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerBindingCarListenerManager.unRegisterDevaToolsLogCatchListener(TAG) + CallerMapLocationListenerManager.removeListener(TAG, true) needQueryContainers = false } @@ -332,13 +350,13 @@ class SystemVersionView @JvmOverloads constructor( */ override fun queryContainersResponse(dockerList: List) { this.dockerList = dockerList - if(dockerList.isNotEmpty()){ + if (dockerList.isNotEmpty()) { //有更新任务,将状态设为“可升级”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgradeable) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_upgradeable_background) AdUpgradeStateHelper.setUpgradeableStatus(true) - }else{ + } else { ToastUtils.showLong("已是最新版本") ivAdStatus?.setImageResource(R.drawable.icon_latest_version) adCircularProgressView?.visibility = View.GONE @@ -360,4 +378,7 @@ class SystemVersionView @JvmOverloads constructor( adCircularProgressView?.visibility = View.GONE } + override fun onLocationChanged(location: MogoLocation?, from: Int, isGps: Boolean) { + this.location = location + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 6bae6b18ef..f51a9b7018 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -59,6 +59,7 @@ 离线地图下载成功 离线地图下载失败 当前已为最新版本 + 请检查定位是否正常 确定 重试 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 180dcaa281..c725af6f6d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.map import android.content.Context import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase @@ -48,6 +49,10 @@ object CallerMapUIServiceManager { serviceProvider?.mapUIController?.cacheHDDataByCity(listener) } + fun cacheHDDataByCityByLonLat(listener: IHdCacheListener, location: MogoLocation) { + serviceProvider?.mapUIController?.cacheHDDataByCity(listener, location) + } + fun isCityDataCached(): Boolean { return serviceProvider?.mapUIController?.isCityDataCached ?: false } @@ -55,4 +60,8 @@ object CallerMapUIServiceManager { fun cancelDownloadCacheData() { serviceProvider?.mapUIController?.cancelDownloadCacheData() } + + fun getCityCode(): String? { + return serviceProvider?.mapUIController?.cityCode + } } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 920e4b64cb..9e8cd3e42f 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -10,6 +10,7 @@ import androidx.annotation.RawRes; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import org.json.JSONObject; @@ -343,6 +344,8 @@ public interface IMogoMapUIController { void cacheHDDataByCity(IHdCacheListener listener); + void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location); + /** * 当前城市离线数据是否已缓存 * @return @@ -350,4 +353,6 @@ public interface IMogoMapUIController { boolean isCityDataCached(); void cancelDownloadCacheData(); + + String getCityCode(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 8fab38a2af..99c0564121 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -395,7 +395,7 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void setRomaMode(int mode) { - mMapView.getMapAutoViewHelper().setRoamStyle(mode,1800, MapAutoApi.ROAM_SPEED_40); + mMapView.getMapAutoViewHelper().setRoamStyle(mode, 1800, MapAutoApi.ROAM_SPEED_40); } @Override @@ -448,7 +448,6 @@ public class AMapViewWrapper implements IMogoMapView, } /** - * * @return true-是,false=不是 */ private boolean isVrMold() { @@ -1219,6 +1218,44 @@ public class AMapViewWrapper implements IMogoMapView, } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mMapView.getMapAutoViewHelper() != null) { + hdCacheListener = listener; + mMapView.getMapAutoViewHelper().cacheHDDataByCityByLonLat(location.getLongitude(), location.getLatitude(), new OnHdDataDownByCityListener() { + @Override + public void onMapHDDataCacheProgressByCity(int cityId, double progress) { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + } + + @Override + public void onMapHDDataCacheStateByCity(int i, int state) {// 0失败,1成功 + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + }); + } + } + }); + } + } + @Override public boolean isCityDataCached() { if (mMapView.getMapAutoViewHelper() != null) { @@ -1244,4 +1281,9 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().cancelCacheHDData(); } } + + @Override + public String getCityCode() { + return GDLocationClient.getInstance(getContext()).getLastCityCode(); + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 90eead43e5..96c0e1e225 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -7,6 +7,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.uicontroller.CarCursorOption; @@ -451,6 +452,13 @@ public class MogoMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mDelegate != null) { + mDelegate.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mDelegate != null) { @@ -465,4 +473,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mDelegate != null) { + return mDelegate.getCityCode(); + } + return null; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 793df718de..1975277335 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -8,6 +8,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import com.zhidaoauto.map.sdk.open.MapAutoApi; @@ -384,6 +385,13 @@ public class AMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mClient != null) { + mClient.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mClient != null) { @@ -398,4 +406,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mClient != null) { + return mClient.getCityCode(); + } + return null; + } } From 58641d0f3dc387e258f0011e40a491ee563abbe5 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 22 Feb 2023 21:30:42 +0800 Subject: [PATCH 28/32] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E5=AE=89=E8=A3=85App=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=BE=97=E9=AB=98=E5=BE=B7=E5=AE=9A=E4=BD=8D=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 30 +++++++-- .../hmi/ui/widget/SystemVersionView.kt | 65 ++++++++++++------- .../src/main/res/values/strings.xml | 1 + .../call/map/CallerMapUIServiceManager.kt | 9 +++ .../uicontroller/IMogoMapUIController.java | 5 ++ .../java/com/mogo/map/AMapViewWrapper.java | 46 ++++++++++++- .../com/mogo/map/MogoMapUIController.java | 16 +++++ .../map/uicontroller/AMapUIController.java | 16 +++++ 8 files changed, 158 insertions(+), 30 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index 2f649553a8..65da8e1fa6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -6,11 +6,9 @@ import android.view.View import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView -import androidx.annotation.MainThread import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat -import androidx.core.view.marginTop +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R @@ -40,6 +38,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { private var isConfirm = true private var isRetry = false + var location: MogoLocation? = null + init { setContentView(R.layout.dialog_offline_map) setCanceledOnTouchOutside(true) @@ -92,8 +92,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { } } - private fun cacheHDOfflineData() { - CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + private fun cacheHDDataByCityByLonLat() { + CallerMapUIServiceManager.cacheHDDataByCityByLonLat(object : IHdCacheListener { override fun onMapHdCacheProgress(cityId: Int, progress: Double) { updateProgress(progress.toInt()) } @@ -103,7 +103,25 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { showNewContent(isLoading = false, false) } } - }) + }, location!!) + } + + private fun cacheHDOfflineData() { + if (location == null) {// 拿到了高德地图的cityCode + CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + override fun onMapHdCacheProgress(cityId: Int, progress: Double) { + updateProgress(progress.toInt()) + } + + override fun onMapHdCacheResult(cityId: Int, state: Int) { + if (state == 0) {// 失败 + showNewContent(isLoading = false, false) + } + } + }) + } else {// 只拿到了高精的经纬度 + cacheHDDataByCityByLonLat() + } } @SuppressLint("SetTextI18n") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index f3291ce9c3..69dd501adc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt @@ -8,11 +8,14 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener +import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerManager import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog @@ -34,7 +37,8 @@ class SystemVersionView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener,IMoGoBindingCarListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener, + IMoGoBindingCarListener, IMoGoMapLocationListener { companion object { const val TAG = "SystemVersionView" @@ -44,14 +48,15 @@ class SystemVersionView @JvmOverloads constructor( private var dockerVersion: String? = null //工控机版本 private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中 - private var ipcUpgradeStateInfo: IPCUpgradeStateInfo?=null + private var ipcUpgradeStateInfo: IPCUpgradeStateInfo? = null private var needQueryContainers: Boolean = false - private var dockerList: List?=null + private var dockerList: List? = null private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间 private var currentProgress: Int = -1 //当前已下载包体大小 private var isHDCached = false + private var location: MogoLocation? = null init { LayoutInflater.from(context).inflate(R.layout.view_system_version, this, true) @@ -98,15 +103,16 @@ class SystemVersionView @JvmOverloads constructor( when { AdUpgradeStateHelper.isDownloading(it.status) -> { //下载中,点击Toast提示:下载剩余时间 - it.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> - if(AdUpgradeStateHelper.getRemainingTime( + it.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> + if (AdUpgradeStateHelper.getRemainingTime( progressDetail.total, previousProgress, currentProgress - ).isEmpty()){ + ).isEmpty() + ) { ToastUtils.showShort("下载已完成") - }else{ + } else { ToastUtils.showShort( "预计" + AdUpgradeStateHelper.getRemainingTime( progressDetail.total, @@ -143,13 +149,23 @@ class SystemVersionView @JvmOverloads constructor( if (isHDCached) {// 已缓存 ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded)) } else {// 未缓存 - OfflineMapDialog(context).show() + if (CallerMapUIServiceManager.getCityCode().isNullOrEmpty()) {// 未拿到高德的cityCode + if (location == null || (location!!.longitude <= 0.0 && location!!.latitude <= 0.0)) {// 未拿到高精的经纬度 + ToastUtils.showShort(resources.getString(R.string.location_try_again)) + } else {// 拿到了高精的经纬度 + val dialog = OfflineMapDialog(context) + dialog.location = location + dialog.show() + } + } else {// 拿到高德的cityCode + OfflineMapDialog(context).show() + } } } updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached()) - if(AdUpgradeStateHelper.isConfirmUpgrade()){ + if (AdUpgradeStateHelper.isConfirmUpgrade()) { //将角标改为“下载中” ivAdStatus?.setImageResource(R.drawable.icon_downloading) ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) @@ -165,7 +181,7 @@ class SystemVersionView @JvmOverloads constructor( private fun setAdUpgradeInfo(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { this.previousProgress = this.currentProgress ipcUpgradeStateInfo.progress?.let { - it.progressDetail?.let {progressDetail-> + it.progressDetail?.let { progressDetail -> this.currentProgress = progressDetail.current } } @@ -176,22 +192,22 @@ class SystemVersionView @JvmOverloads constructor( * 展示工控机下载、升级状态信息 * */ - fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo){ - ThreadUtils.runOnUiThread{ + fun showAdUpgradeStatus(ipcUpgradeStateInfo: IPCUpgradeStateInfo) { + ThreadUtils.runOnUiThread { setAdUpgradeInfo(ipcUpgradeStateInfo) AdUpgradeStateHelper.setUpgradeableStatus(false) - ipcUpgradeStateInfo.status.let {status-> + ipcUpgradeStateInfo.status.let { status -> when { AdUpgradeStateHelper.isDownloading(status) -> { //正在下载,展示“下载中”角标,展示进度条,并设置当前下载进度 ivAdStatus?.setImageResource(R.drawable.icon_downloading) - adCircularProgressView?.let {adCircularProgressView-> + adCircularProgressView?.let { adCircularProgressView -> adCircularProgressView.visibility = View.VISIBLE CallerLogger.i( "$M_HMI$$TAG", "showAdUpgradeStatus status=$status" ) - ipcUpgradeStateInfo.progress?.let { progress-> - progress.progressDetail?.let {progressDetail-> + ipcUpgradeStateInfo.progress?.let { progress -> + progress.progressDetail?.let { progressDetail -> adCircularProgressView.setProgress( AdUpgradeStateHelper.downloadProgress( progressDetail.current, @@ -212,14 +228,14 @@ class SystemVersionView @JvmOverloads constructor( ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isDownloadFinish(status) ->{ + AdUpgradeStateHelper.isDownloadFinish(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background) AdUpgradeStateHelper.setConfirmUpgrade(false) } - AdUpgradeStateHelper.isUpgrading(status) ->{ + AdUpgradeStateHelper.isUpgrading(status) -> { //升级中,将状态设为“升级中”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgrading) adCircularProgressView?.visibility = View.GONE @@ -291,7 +307,8 @@ class SystemVersionView @JvmOverloads constructor( return } CallerAutoPilotStatusListenerManager.addListener(TAG, this) - CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG,this) + CallerBindingCarListenerManager.registerDevaToolsLogCatchListener(TAG, this) + CallerMapLocationListenerManager.addListener(TAG, this, true) needQueryContainers = true } @@ -302,6 +319,7 @@ class SystemVersionView @JvmOverloads constructor( } CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerBindingCarListenerManager.unRegisterDevaToolsLogCatchListener(TAG) + CallerMapLocationListenerManager.removeListener(TAG, true) needQueryContainers = false } @@ -332,13 +350,13 @@ class SystemVersionView @JvmOverloads constructor( */ override fun queryContainersResponse(dockerList: List) { this.dockerList = dockerList - if(dockerList.isNotEmpty()){ + if (dockerList.isNotEmpty()) { //有更新任务,将状态设为“可升级”角标,并隐藏进度条 ivAdStatus?.setImageResource(R.drawable.icon_upgradeable) adCircularProgressView?.visibility = View.GONE ivAdVersion?.setBackgroundResource(R.drawable.version_upgradeable_background) AdUpgradeStateHelper.setUpgradeableStatus(true) - }else{ + } else { ToastUtils.showLong("已是最新版本") ivAdStatus?.setImageResource(R.drawable.icon_latest_version) adCircularProgressView?.visibility = View.GONE @@ -360,4 +378,7 @@ class SystemVersionView @JvmOverloads constructor( adCircularProgressView?.visibility = View.GONE } + override fun onLocationChanged(location: MogoLocation?, from: Int, isGps: Boolean) { + this.location = location + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 6bae6b18ef..f51a9b7018 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -59,6 +59,7 @@ 离线地图下载成功 离线地图下载失败 当前已为最新版本 + 请检查定位是否正常 确定 重试 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 180dcaa281..c725af6f6d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.call.map import android.content.Context import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase @@ -48,6 +49,10 @@ object CallerMapUIServiceManager { serviceProvider?.mapUIController?.cacheHDDataByCity(listener) } + fun cacheHDDataByCityByLonLat(listener: IHdCacheListener, location: MogoLocation) { + serviceProvider?.mapUIController?.cacheHDDataByCity(listener, location) + } + fun isCityDataCached(): Boolean { return serviceProvider?.mapUIController?.isCityDataCached ?: false } @@ -55,4 +60,8 @@ object CallerMapUIServiceManager { fun cancelDownloadCacheData() { serviceProvider?.mapUIController?.cancelDownloadCacheData() } + + fun getCityCode(): String? { + return serviceProvider?.mapUIController?.cityCode + } } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 920e4b64cb..9e8cd3e42f 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -10,6 +10,7 @@ import androidx.annotation.RawRes; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import org.json.JSONObject; @@ -343,6 +344,8 @@ public interface IMogoMapUIController { void cacheHDDataByCity(IHdCacheListener listener); + void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location); + /** * 当前城市离线数据是否已缓存 * @return @@ -350,4 +353,6 @@ public interface IMogoMapUIController { boolean isCityDataCached(); void cancelDownloadCacheData(); + + String getCityCode(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 8fab38a2af..99c0564121 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -395,7 +395,7 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void setRomaMode(int mode) { - mMapView.getMapAutoViewHelper().setRoamStyle(mode,1800, MapAutoApi.ROAM_SPEED_40); + mMapView.getMapAutoViewHelper().setRoamStyle(mode, 1800, MapAutoApi.ROAM_SPEED_40); } @Override @@ -448,7 +448,6 @@ public class AMapViewWrapper implements IMogoMapView, } /** - * * @return true-是,false=不是 */ private boolean isVrMold() { @@ -1219,6 +1218,44 @@ public class AMapViewWrapper implements IMogoMapView, } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mMapView.getMapAutoViewHelper() != null) { + hdCacheListener = listener; + mMapView.getMapAutoViewHelper().cacheHDDataByCityByLonLat(location.getLongitude(), location.getLatitude(), new OnHdDataDownByCityListener() { + @Override + public void onMapHDDataCacheProgressByCity(int cityId, double progress) { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + } + + @Override + public void onMapHDDataCacheStateByCity(int i, int state) {// 0失败,1成功 + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + }); + } + } + }); + } + } + @Override public boolean isCityDataCached() { if (mMapView.getMapAutoViewHelper() != null) { @@ -1244,4 +1281,9 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().cancelCacheHDData(); } } + + @Override + public String getCityCode() { + return GDLocationClient.getInstance(getContext()).getLastCityCode(); + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 90eead43e5..96c0e1e225 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -7,6 +7,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.uicontroller.CarCursorOption; @@ -451,6 +452,13 @@ public class MogoMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mDelegate != null) { + mDelegate.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mDelegate != null) { @@ -465,4 +473,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mDelegate != null) { + return mDelegate.getCityCode(); + } + return null; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 793df718de..1975277335 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -8,6 +8,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.map.hdcache.IHdCacheListener; import com.zhidaoauto.map.sdk.open.MapAutoApi; @@ -384,6 +385,13 @@ public class AMapUIController implements IMogoMapUIController { } } + @Override + public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { + if (mClient != null) { + mClient.cacheHDDataByCity(listener, location); + } + } + @Override public boolean isCityDataCached() { if (mClient != null) { @@ -398,4 +406,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.cancelDownloadCacheData(); } } + + @Override + public String getCityCode() { + if (mClient != null) { + return mClient.getCityCode(); + } + return null; + } } From d48e4c8f57c930643f197ccc317fe5be1fed4d70 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 23 Feb 2023 14:30:34 +0800 Subject: [PATCH 29/32] =?UTF-8?q?[2.14.0][Opt]=E6=BC=AB=E6=B8=B8=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=85=B3=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index d623504d63..e42a5d7de3 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -76,7 +76,7 @@ object FunctionBuildConfig { */ @Volatile @JvmField - var isRomaMode = true + var isRomaMode = false /** * 开启roma自由/循迹路线 From 949356f7256c0ec280266b1324398bac188b9e4a Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 23 Feb 2023 14:30:34 +0800 Subject: [PATCH 30/32] =?UTF-8?q?[2.14.0][Opt]=E6=BC=AB=E6=B8=B8=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=85=B3=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index d623504d63..e42a5d7de3 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -76,7 +76,7 @@ object FunctionBuildConfig { */ @Volatile @JvmField - var isRomaMode = true + var isRomaMode = false /** * 开启roma自由/循迹路线 From 63a34b00d3dd085c10511bc184d93ffbe33287ba Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 23 Feb 2023 15:43:00 +0800 Subject: [PATCH 31/32] =?UTF-8?q?[2.14.0]fix=E5=88=A0=E9=99=A4Bag=E5=8C=85?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=81=B6=E7=8E=B0ConcurrentModificationExcep?= =?UTF-8?q?tion=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../badcase/biz/BadCaseManagerView.kt | 54 ++++++++++++++----- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt index 8d8387e807..8e7cd83e12 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt @@ -28,6 +28,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig.bagMan import com.zhjt.mogo_core_function_devatools.badcase.record.Audition import kotlinx.android.synthetic.main.layout_badcase_manager.view.* import java.util.* +import kotlin.collections.ArrayList /** @@ -61,6 +62,8 @@ class BadCaseManagerView @JvmOverloads constructor( private var isNameModify = false + private val deleteDataList: ArrayList = ArrayList() + init { LayoutInflater.from(context).inflate(R.layout.layout_badcase_manager, this, true) initView() @@ -381,14 +384,23 @@ class BadCaseManagerView @JvmOverloads constructor( 0 -> { ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶成功") } + 1 -> { + //执行中 + } 2 -> { - ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶copy过程失败,原因:${bagManager.uploadCosResp.message}") + ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶执行python失败") } 3 -> { - ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶合并过程失败,原因:${bagManager.uploadCosResp.message}") + ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶拷贝过程失败") } 4 -> { - ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶上传过程失败,原因:${bagManager.uploadCosResp.message}") + ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶合并过程失败") + } + 5 -> { + ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶上传过程失败") + } + else -> { + ToastUtils.showShort("${bagManager.uploadCosResp.key} 上传cos桶 ${bagManager.uploadCosResp.message}") } } @@ -404,39 +416,55 @@ class BadCaseManagerView @JvmOverloads constructor( bagManagerList.remove(deleteBagInfo) //更新列表 // bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp) - if(bagManagerList.size>0){ - //继续执行删除命令 - bagManagerEntity.reqType = 4 - bagManagerEntity.keyReq = bagManagerList[0].key - CallerAutoPilotManager.sendBagManagerCmd(bagManagerEntity) - } } } //遍历列表,如当天Bag全部删除,同时把日期标题也删除更新列表 + deleteDataList.clear() val titleIterator = bagManagerEntity.bagsInfoResp.iterator() while(titleIterator.hasNext()){ val titleBagInfo = titleIterator.next() if(titleBagInfo.itemType == 1){ val bagIterator = bagManagerEntity.bagsInfoResp.iterator() var hasBag = false + var bagBagInfo: BagInfoEntity ?= null while(bagIterator.hasNext()){ - val bagBagInfo = bagIterator.next() + bagBagInfo = bagIterator.next() if(bagBagInfo.itemType == 0){ - bagBagInfo.timestamp?.let { - if(it.contains(titleBagInfo.timestamp.toString())){ + bagBagInfo.timestamp.let { + if(it.contains(titleBagInfo.timestamp)){ hasBag = true } } } } if(!hasBag){ - bagIterator.remove() +// bagIterator.remove() + titleBagInfo.let { deleteDataList.add(it) } } } } + + if(deleteDataList.isNotEmpty()){ + val deleteIterator = bagManagerEntity.bagsInfoResp.iterator() + while(deleteIterator.hasNext()){ + val deleteInfo = deleteIterator.next() + if(deleteDataList.contains(deleteInfo)){ + deleteIterator.remove() + } + } + } + if(bagManagerList.size == 0){ tvCancelSelect.performClick() } + + if(bagManagerList.size>0){ + //继续执行删除命令 + bagManagerEntity.reqType = 4 + bagManagerEntity.keyReq = bagManagerList[0].key + CallerAutoPilotManager.sendBagManagerCmd(bagManagerEntity) + } + //更新列表 bagManagerListAdapter?.setData(bagManagerEntity.bagsInfoResp) } From 360ce0d53a5eb92929d1b8287ddbe489c258f787 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 23 Feb 2023 16:44:30 +0800 Subject: [PATCH 32/32] [2.14.0] open roma --- .../java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index e42a5d7de3..d623504d63 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -76,7 +76,7 @@ object FunctionBuildConfig { */ @Volatile @JvmField - var isRomaMode = false + var isRomaMode = true /** * 开启roma自由/循迹路线