From cf58a67071387f5d9ce233526622d13f902f32c7 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 15 Feb 2023 17:11:08 +0800 Subject: [PATCH 01/23] [2.13.0-arch-opt] fix bug of steering brake view --- .../mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt index 00021183f3..a0494eb6c6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt @@ -81,6 +81,7 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo brakeView.visibility = View.GONE isShowTurnLight = false } + turnLightView.visibility = View.VISIBLE } } From a43523e76ca3146661d6e1db65151f11aaf6e2d5 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 15 Feb 2023 17:14:51 +0800 Subject: [PATCH 02/23] [2.13.0-arch-opt] thread problm --- .../hmi/ui/vehicle/SteeringBrakeView.kt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt index a0494eb6c6..42c4e62409 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt @@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.Utils import kotlinx.android.synthetic.main.view_steering_brake.view.* @@ -73,15 +74,17 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo //can数据转发 转向灯状态 0是正常 1是左转 2是右转 if (lightSwitch != null) { CallerLogger.d("$M_HMI$TAG", "---lightSwitch.getNumber() = " + lightSwitch.number) - if (lightSwitch.number == 1 || lightSwitch.number == 2) { - isShowTurnLight = true - brakeView.visibility = View.VISIBLE - brakeView.setBrakeLight(0) - } else { - brakeView.visibility = View.GONE - isShowTurnLight = false + ThreadUtils.runOnUiThread { + if (lightSwitch.number == 1 || lightSwitch.number == 2) { + isShowTurnLight = true + brakeView.visibility = View.VISIBLE + brakeView.setBrakeLight(0) + } else { + brakeView.visibility = View.GONE + isShowTurnLight = false + } + turnLightView.visibility = View.VISIBLE } - turnLightView.visibility = View.VISIBLE } } From 4234dec07fb7cc5b977507a55737505654a25220 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 15 Feb 2023 17:16:41 +0800 Subject: [PATCH 03/23] [2.13.0-arch-opt] fix bug --- .../core/function/hmi/ui/vehicle/TurnLightViewStatus.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt index c2683e8c6c..308278c1e5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt @@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.api.map.angle.Turning import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.util.ThreadUtils import kotlinx.android.synthetic.main.view_steering_brake.view.* import kotlinx.android.synthetic.main.view_turn_light_status.view.* import kotlinx.coroutines.Dispatchers @@ -71,8 +72,10 @@ open class TurnLightViewStatus @JvmOverloads constructor( override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) { super.onAutopilotLightSwitchData(lightSwitch) lightSwitch?.let { - turnLightView.visibility = View.VISIBLE - setTurnLight(it) + ThreadUtils.runOnUiThread { + turnLightView.visibility = View.VISIBLE + setTurnLight(it) + } } } From 55f0a5d2a652502950af43e443e1f0ff31138bfb Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 15 Feb 2023 17:49:36 +0800 Subject: [PATCH 04/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E9=A1=B6?= =?UTF-8?q?=E8=A7=86=E8=A7=92=E9=80=BB=E8=BE=91=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/vehicle/TurnLightViewStatus.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt index 308278c1e5..52e50fcb0f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt @@ -41,6 +41,9 @@ open class TurnLightViewStatus @JvmOverloads constructor( private val visible: Boolean + @Volatile + private var isVisualAngleChanged: Boolean = false + init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.TurnLightView) val dayLight = typedArray.getBoolean(R.styleable.TurnLightView_day_light_mode, false) @@ -90,7 +93,10 @@ open class TurnLightViewStatus @JvmOverloads constructor( //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 when (directionLight) { Chassis.LightSwitch.LIGHT_LEFT -> { //左转向 - CallerVisualAngleManager.changeAngle(Turning(true)) + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + CallerVisualAngleManager.changeAngle(Turning(true)) + } showNormalAnimation() left_select_image.visibility = View.VISIBLE right_select_image.visibility = View.GONE @@ -98,7 +104,10 @@ open class TurnLightViewStatus @JvmOverloads constructor( setAnimation(left_select_image) } Chassis.LightSwitch.LIGHT_RIGHT -> { //右转向 - CallerVisualAngleManager.changeAngle(Turning(true)) + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + CallerVisualAngleManager.changeAngle(Turning(true)) + } showNormalAnimation() left_select_image.visibility = View.GONE right_select_image.visibility = View.VISIBLE @@ -106,7 +115,10 @@ open class TurnLightViewStatus @JvmOverloads constructor( setAnimation(right_select_image) } else -> { //消失 - CallerVisualAngleManager.changeAngle(Turning(false)) + if (isVisualAngleChanged) { + isVisualAngleChanged = false + CallerVisualAngleManager.changeAngle(Turning(false)) + } animationDisappear() } } From cca871bb831e962a59634d8c5f41a0ce816592ee Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Wed, 15 Feb 2023 19:14:34 +0800 Subject: [PATCH 05/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0obu=E5=8D=87=E7=BA=A7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 4 +++ .../binding/BindingCarManager.kt | 9 +++-- .../upgrade/ObuUpgradeAppNetWorkManager.java | 18 +++++----- .../upgrade/UpgradeManager.kt | 35 +++++++++++++++++++ .../function/main/MainMoGoApplication.java | 1 + .../api/devatools/IDevaToolsProvider.kt | 5 +++ .../call/devatools/CallerDevaToolsManager.kt | 7 ++++ .../core/utilcode/breakpoint/Config.java | 3 ++ 8 files changed, 71 insertions(+), 11 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index f27e3087b9..f988d43fcb 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -158,6 +158,10 @@ class DevaToolsProvider : IDevaToolsProvider { upgradeManager.updateUpgradeProgress(mContext!!) } + override fun updateObuUpgradeStatus() { + upgradeManager.updateObuUpgradeStatus(mContext!!) + } + override fun showStatusBar(ctx: Context, container: ViewGroup) { StatusManager.init(ctx) StatusManager.show(container) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt index 45badb5762..7f2081ccee 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt @@ -57,6 +57,9 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener { if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.macAddress)) { Log.d("Upgrade", "MoGoHandAdasMsgManager address = " + carConfigResp.macAddress) getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn) + + //obu的升级,只需要司机屏连接 + queryObuUpgrade(carConfigResp.macAddress) } } @@ -162,11 +165,11 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener { } /** - * 司机屏 处理obu升级即可,乘客屏不需要处理 TODO OBU的角色 + * 司机屏 处理obu升级即可,乘客屏不需要处理 * */ - fun queryObuUpgrade() { - ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, mAddress, role.toString() + "") + private fun queryObuUpgrade(macAddress: String) { + ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, macAddress) } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java index c323d84c9e..cf5a8832bd 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java @@ -7,6 +7,7 @@ import android.content.Context; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.constants.HostConst; import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo; +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.network.MoGoRetrofitFactory; import com.mogo.eagle.core.network.utils.GsonUtil; @@ -48,17 +49,17 @@ public class ObuUpgradeAppNetWorkManager { } /** - * 获取obu升级信息 + * 获取obu升级信息,obu升级服务端使用app升级接口,根据screenType区分类型 * mac :工控机mac地址 * screenType : 类型 */ - public void getObuUpgradeInfo(Context context, String mac, String screenType) { + public void getObuUpgradeInfo(Context context, String mac) { // String sn = "X20202203105S688HZ"; // String mac = "48:b0:2d:3a:bc:78"; String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - int versionCode = AppUtils.getAppVersionCode(); - CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac + "---type = " + screenType + "---sn = " + sn + "---versionCode =" + versionCode); - UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, screenType); + String obuVersionName = String.valueOf(AppUtils.getAppVersionCode()); // TODO 获取obu的版本号, string和int 服务端处理 + CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac + "---sn = " + sn + "---obuVersionName =" + obuVersionName); + UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, "7"); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mUpgradeApiService.getUpgradeInfo(requestBody) .subscribeOn(Schedulers.io()) @@ -71,9 +72,10 @@ public class ObuUpgradeAppNetWorkManager { @Override public void onNext(@NonNull UpgradeAppInfo info) { if (info != null && info.result != null) { - CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode() + "--versionCode =" + versionCode + "--info.result = " + info.result); - if (info.result.getVersionCode() > versionCode) { - CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl(), info.result.getInstallTitle(), info.result.getInstallContent(), info.result.getInstallType()); + CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo url = " + info.result.getAppUrl() + "----name = " + info.result.getVersionName() + "--obuVersionName =" + obuVersionName + "--info.result = " + info.result); + if (!String.valueOf(info.result.getVersionName()).equals(obuVersionName)) { + //下载 TAG和文件名 TODO + CallerDevaToolsManager.INSTANCE.downLoadPackage("OBU", info.result.getAppUrl()); } } else { CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo onNext info == null"); diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt index e880c59532..3fdbdce9b6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt @@ -14,6 +14,8 @@ import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.util.AppUtils +import com.mogo.eagle.core.utilcode.util.ZipUtils +import java.io.IOException class UpgradeManager : IDownload { @@ -116,6 +118,9 @@ class UpgradeManager : IDownload { } } + /** + * 鹰眼app下载监听 + */ fun updateUpgradeProgress(context: Context) { val builder = NotificationCompat.Builder(context) // builder.setSmallIcon(R.mipmap.icon1001);//todo emArrow 更换图标,去除地图下载图标的依赖关系 @@ -147,4 +152,34 @@ class UpgradeManager : IDownload { }) } + /** + * obu升级包下载监听 + */ + fun updateObuUpgradeStatus(context: Context) { + CallerDevaToolsUpgradeListenerManager.addListener( + TAG, + object : IMogoDevaToolsUpgradeListener { + override fun onStart(url: String?) {} + override fun onPause(url: String?) {} + override fun onProgress(url: String?, length: Int) { + + } + + override fun onFinished(url: String?) { + //下载完成,解压文件 TODO + try { + val files = ZipUtils.unzipFile("", "") + //传给obu升级 + + } catch (e: IOException) { + //解压失败 + + e.printStackTrace() + } + } + + override fun onError(url: String?, errorMsg: String?) {} + }) + } + } \ No newline at end of file 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 4ef06c5609..d1cead5ff1 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 @@ -53,6 +53,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { CallerMsgBoxManager.INSTANCE.queryAllMessages(this); } CallerDevaToolsManager.INSTANCE.updateUpgradeProgress(); + CallerDevaToolsManager.INSTANCE.updateObuUpgradeStatus(); } @Override diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index f53dce752d..e11938e4bc 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -114,6 +114,11 @@ interface IDevaToolsProvider : IProvider { */ fun updateUpgradeProgress() + /** + * obu下载进度 + */ + fun updateObuUpgradeStatus() + /** * 展示状态栏 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 345daf5c4c..37adbfcb54 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -154,6 +154,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.updateUpgradeProgress() } + /** + * obu下载状态 + */ + fun updateObuUpgradeStatus() { + devaToolsProviderApi?.updateObuUpgradeStatus() + } + /** * 展示状态栏 */ diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java index cab22c02bf..987c395343 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java @@ -13,5 +13,8 @@ public class Config { public final static String downLoadPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/downloads/"; + public final static String downLoadObuPath = Environment.getExternalStorageDirectory().getAbsolutePath() + + "/obu/"; + public final static String DOWN_LOAD_TAG = "Package-DownLoad"; } From 6e7f810ece07dd7434a633b62e2477046197d9dd Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 15 Feb 2023 19:41:49 +0800 Subject: [PATCH 06/23] =?UTF-8?q?[Opt]=E5=85=A8=E8=A7=88=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E6=9A=B4=E9=9C=B2=E6=B8=85=E9=99=A4=E8=BD=A8=E8=BF=B9=E5=B9=B6?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E8=B5=B7=E7=BB=88=E7=82=B9=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/view/OverMapView.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt index 8891300245..880661cafd 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt @@ -196,6 +196,20 @@ class OverMapView @JvmOverloads constructor( } } + /** + * 清空线路并隐藏起、终点 + */ + fun clearCustomPolyline() { + if (mBottomPolyline != null) { + mBottomPolyline!!.remove() + } + if (mCoveredPolyline != null) { + mCoveredPolyline!!.remove() + } + mStartMarker?.isVisible = false + mEndMarker?.isVisible = false + } + private fun initView(context: Context) { mContext = context val smpView = LayoutInflater.from(context).inflate(R.layout.module_overview_map_view, this) @@ -413,15 +427,6 @@ class OverMapView @JvmOverloads constructor( return false } - fun clearCustomPolyline() { - if (mBottomPolyline != null) { - mBottomPolyline!!.remove() - } - if (mCoveredPolyline != null) { - mCoveredPolyline!!.remove() - } - } - /** * 绘制新基建Markers(比如:摄像头) * @@ -615,6 +620,7 @@ class OverMapView @JvmOverloads constructor( mCoveredPolyline = mAMap!!.addPolyline(polylineOptions) if (mBottomPolyline != null) { mBottomPolyline!!.remove() + mBottomPolyline = null } } } From e2707eaf338570ee839f36bb5086a4f8cd0a7854 Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 15 Feb 2023 19:54:15 +0800 Subject: [PATCH 07/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A1=B6=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sweeper/view/SweeperTrafficDataView.java | 4 ++++ .../hmi/ui/vehicle/SteeringBrakeView.kt | 3 +++ .../hmi/ui/vehicle/TurnLightViewStatus.kt | 18 +++--------------- .../eagle/core/function/view/MapBizView.kt | 5 ++++- .../call/map/CallerVisualAngleManager.kt | 17 +++++++++++++++++ 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index 03b8ebc9e9..7db1cbbe2f 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager; +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; @@ -92,10 +93,13 @@ public class SweeperTrafficDataView extends ConstraintLayout if (lightSwitch != null) { CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); if (lightSwitch.getNumber()==1){ + CallerVisualAngleManager.INSTANCE.showTurning(true); sweeperTurnSignal.showLeftSignal(); }else if(lightSwitch.getNumber()==2){ + CallerVisualAngleManager.INSTANCE.showTurning(true); sweeperTurnSignal.showRightSignal(); }else{ + CallerVisualAngleManager.INSTANCE.showTurning(false); sweeperTurnSignal.showDirection(); } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt index 42c4e62409..7746dfe9c5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.map.* import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI @@ -77,9 +78,11 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo ThreadUtils.runOnUiThread { if (lightSwitch.number == 1 || lightSwitch.number == 2) { isShowTurnLight = true + CallerVisualAngleManager.showTurning(true) brakeView.visibility = View.VISIBLE brakeView.setBrakeLight(0) } else { + CallerVisualAngleManager.showTurning(false) brakeView.visibility = View.GONE isShowTurnLight = false } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt index 52e50fcb0f..803b0a815e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt @@ -41,9 +41,6 @@ open class TurnLightViewStatus @JvmOverloads constructor( private val visible: Boolean - @Volatile - private var isVisualAngleChanged: Boolean = false - init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.TurnLightView) val dayLight = typedArray.getBoolean(R.styleable.TurnLightView_day_light_mode, false) @@ -93,10 +90,7 @@ open class TurnLightViewStatus @JvmOverloads constructor( //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 when (directionLight) { Chassis.LightSwitch.LIGHT_LEFT -> { //左转向 - if (!isVisualAngleChanged) { - isVisualAngleChanged = true - CallerVisualAngleManager.changeAngle(Turning(true)) - } + CallerVisualAngleManager.showTurning(true) showNormalAnimation() left_select_image.visibility = View.VISIBLE right_select_image.visibility = View.GONE @@ -104,10 +98,7 @@ open class TurnLightViewStatus @JvmOverloads constructor( setAnimation(left_select_image) } Chassis.LightSwitch.LIGHT_RIGHT -> { //右转向 - if (!isVisualAngleChanged) { - isVisualAngleChanged = true - CallerVisualAngleManager.changeAngle(Turning(true)) - } + CallerVisualAngleManager.showTurning(true) showNormalAnimation() left_select_image.visibility = View.GONE right_select_image.visibility = View.VISIBLE @@ -115,10 +106,7 @@ open class TurnLightViewStatus @JvmOverloads constructor( setAnimation(right_select_image) } else -> { //消失 - if (isVisualAngleChanged) { - isVisualAngleChanged = false - CallerVisualAngleManager.changeAngle(Turning(false)) - } + CallerVisualAngleManager.showTurning(false) animationDisappear() } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index ea51c89a49..405cb1b4f5 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -11,7 +11,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Liste import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.call.map.* import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.map.MogoMapView @@ -89,12 +89,15 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, lightSwitch?.let { when (it.number) { 1 -> { //左转灯 + CallerVisualAngleManager.showTurning(true) CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(4, 500) } 2 -> { //右转灯 + CallerVisualAngleManager.showTurning(true) CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(2, 500) } else -> { + CallerVisualAngleManager.showTurning(false) CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(3, 500) } } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index 4387d4a198..8a8d2dc4d8 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -14,6 +14,9 @@ object CallerVisualAngleManager { .navigation() as? IMoGoVisualAngleChangeProvider } + @Volatile + private var isVisualAngleChanged = false + fun changeAngle(scene: Scene) { provider?.changeAngle(scene) } @@ -21,4 +24,18 @@ object CallerVisualAngleManager { fun updateLongSightLevel(level: Boolean) { provider?.updateLongSightLevel(level) } + + fun showTurning(open: Boolean) { + if (open) { + if (!isVisualAngleChanged) { + isVisualAngleChanged + changeAngle(Turning(true)) + } + } else { + if (isVisualAngleChanged) { + isVisualAngleChanged = false + changeAngle(Turning(false)) + } + } + } } \ No newline at end of file From 1e0f64a374501446287c0ebec900c6fa15faf4d1 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Wed, 15 Feb 2023 20:49:27 +0800 Subject: [PATCH 08/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E8=AE=BE?= =?UTF-8?q?=E5=A4=87SN=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java index b9b636186a..1cdf113a79 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java @@ -618,6 +618,7 @@ public final class DeviceUtils { // // 联想PAD 获取SN,2022-2023款PAD无法获取暂时不启用 // serial = (String) get.invoke(c, "ro.odm.lenovo.gsn"); // } + Log.d("getSerialNumber()", "serial = " + serial); } catch (Exception e) { e.printStackTrace(); } From be7f5d419aa526c7af658f620b7e54a77a66a767 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Wed, 15 Feb 2023 20:59:01 +0800 Subject: [PATCH 09/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E6=9A=82=E6=97=B6=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E7=9A=84sn=EF=BC=8C=E6=96=B9=E4=BE=BF?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java index 1cdf113a79..c80b2deecb 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/DeviceUtils.java @@ -703,7 +703,8 @@ public final class DeviceUtils { * @return 当前的设备SN信息,优先使用设备固定的sn, */ public static String getDeviceSN() { - String devicesSN = SPUtils.getInstance().getString(KEY_DEVICE_ID); +// String devicesSN = SPUtils.getInstance().getString(KEY_DEVICE_ID); + String devicesSN = ""; if (TextUtils.isEmpty(devicesSN)) { // 获取设备唯一SN devicesSN = getSerialNumber(); From 4bec76e02dc7924b8b55f0d2ca4bf182e0cac89c Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 15 Feb 2023 21:09:04 +0800 Subject: [PATCH 10/23] [2.13.0-arch-opt] fix bug of thread problem and add new func obu fusion and warning union --- .../sweeper/view/SweeperTrafficDataView.java | 26 +++--- .../obu/MogoPrivateObuNewManager.kt | 84 ++++++++++++++----- .../hmi/ui/vehicle/SteeringBrakeView.kt | 13 +-- .../identify/MapIdentifySubscriber.kt | 51 ++++++++++- .../api/obu/IMoGoObuStatusListener.kt | 9 +- .../obu/CallerObuWarningListenerManager.kt | 8 ++ 6 files changed, 150 insertions(+), 41 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index 7db1cbbe2f..b8e5c3c370 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -89,18 +89,20 @@ public class SweeperTrafficDataView extends ConstraintLayout */ @Override public void onAutopilotLightSwitchData(@org.jetbrains.annotations.Nullable Chassis.LightSwitch lightSwitch) { - //转向灯状态 0是正常 1是左转 2是右转 - if (lightSwitch != null) { - CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); - if (lightSwitch.getNumber()==1){ - CallerVisualAngleManager.INSTANCE.showTurning(true); - sweeperTurnSignal.showLeftSignal(); - }else if(lightSwitch.getNumber()==2){ - CallerVisualAngleManager.INSTANCE.showTurning(true); - sweeperTurnSignal.showRightSignal(); - }else{ - CallerVisualAngleManager.INSTANCE.showTurning(false); - sweeperTurnSignal.showDirection(); + ThreadUtils.runOnUiThread { + //转向灯状态 0是正常 1是左转 2是右转 + if (lightSwitch != null) { + CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); + if (lightSwitch.getNumber()==1){ + CallerVisualAngleManager.INSTANCE.showTurning(true); + sweeperTurnSignal.showLeftSignal(); + }else if(lightSwitch.getNumber()==2){ + CallerVisualAngleManager.INSTANCE.showTurning(true); + sweeperTurnSignal.showRightSignal(); + }else{ + CallerVisualAngleManager.INSTANCE.showTurning(false); + sweeperTurnSignal.showDirection(); + } } } } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 56ccec4d4b..71a0eab932 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -11,12 +11,14 @@ import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.Default import com.mogo.eagle.core.function.api.map.angle.TooClose import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager 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.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtilsNew @@ -577,18 +579,24 @@ class MogoPrivateObuNewManager private constructor() { info: ObuScene.RvWarningData ) { // 这里排除需要特殊定制的语音及文案外,其余的都可以使用 EventTypeEnumNew 提供的 - var alertContent: String = "" - var ttsContent: String = "" + var alertContent = "" + var ttsContent = "" + var v2xType = appId var changeVisualAngle = false when (appId) { //前向碰撞预警 MogoObuConstants.V2X_WARNING_TYPE.FCW.toString() -> { - alertContent = - EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType) - ttsContent = - EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType) - -// ObuManager.getInstance().obuRvToTrackedObject(info) //todo emArrow + if (FunctionBuildConfig.isObuWarningFusionUnion) { + alertContent = "前车距离过近" + ttsContent = "前车距离过近" + CallerObuWarningListenerManager.invokeTrackerFusionData(ObuManager.getInstance().obuRvToTrackedObject(info)) + } else { + alertContent = + EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType) + ttsContent = + EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType) + } + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType } //交叉路口碰撞预警 @@ -597,6 +605,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_ICW.poiType } //左转辅助预警 @@ -605,6 +614,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_LTA.poiType } //盲区预警 @@ -613,6 +623,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType) alertContent = EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_BSW.poiType if ( direction == WarningDirectionEnum.ALERT_WARNING_LEFT || direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT || @@ -638,7 +649,8 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType) - if ( + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType + if ( direction == WarningDirectionEnum.ALERT_WARNING_LEFT || direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT || direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT @@ -661,6 +673,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_DNPW.poiType } //紧急制动预警 @@ -669,6 +682,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_EBW.poiType } //异常车辆提醒 @@ -687,6 +701,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_CLW.poiType alertContent = String.format(alertContent, direction.desc) ttsContent = String.format(ttsContent, direction.desc) } @@ -696,6 +711,7 @@ class MogoPrivateObuNewManager private constructor() { EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType) + v2xType = EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType } // 这里处理固定的提示信息,包括了<紧急车辆提醒> @@ -715,9 +731,9 @@ class MogoPrivateObuNewManager private constructor() { ) if (level == 2 || level == 3) { //不显示弹框,其它保留 - saveObuData(appId, alertContent, ttsContent) + saveObuData(v2xType, alertContent, ttsContent) CallerHmiManager.warningV2X( - appId, + v2xType, alertContent, ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 object : IMoGoWarningStatusListener { @@ -736,10 +752,12 @@ class MogoPrivateObuNewManager private constructor() { }, direction ) } + //更新周边车辆进行预警颜色变换,车辆实时移动和变色 ,UUID不需要匹配了 TrafficDataConvertUtilsNew.cvxV2vThreatIndInfo2TrafficData(info)?.let { CallerMapUIServiceManager.getMarkerService() ?.updateITrafficThreatLevelInfo(it) + CallerObuWarningListenerManager.invokeTrackerWarningInfo(it) } } // 删除 @@ -751,6 +769,7 @@ class MogoPrivateObuNewManager private constructor() { it.threatLevel = 0x01 CallerMapUIServiceManager.getMarkerService() ?.updateITrafficThreatLevelInfo(it) + CallerObuWarningListenerManager.removeTrackerWarningInfo(it) } } } @@ -815,13 +834,24 @@ class MogoPrivateObuNewManager private constructor() { if (!isShowRunRedLight) { isShowRunRedLight = true CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "changeTrafficLightStatus 闯红灯 --------> ") + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "changeTrafficLightStatus 闯红灯 --------> " + ) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) alertContent = EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) - saveObuData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent) - showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) + saveObuData( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, + alertContent, + ttsContent + ) + showWarning( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, + alertContent, + ttsContent, + WarningDirectionEnum.ALERT_WARNING_NON + ) } } @@ -839,16 +869,27 @@ class MogoPrivateObuNewManager private constructor() { ttsContent = String.format( EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeedTts) + adviceSpeedTts + ) alertContent = String.format( EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeed) + adviceSpeed + ) val maxSpeed = currentLight.suggestMaxSpeed if (maxSpeed > 0) { - saveObuData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent) - showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) + saveObuData( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, + alertContent, + ttsContent + ) + showWarning( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, + alertContent, + ttsContent, + WarningDirectionEnum.ALERT_WARNING_NON + ) } } } @@ -914,7 +955,12 @@ class MogoPrivateObuNewManager private constructor() { /** * 消息盒子对应消息的语音播报 */ - private fun showWarning(type: String, content: String, tts: String, direction: WarningDirectionEnum) { + private fun showWarning( + type: String, + content: String, + tts: String, + direction: WarningDirectionEnum + ) { CallerHmiManager.warningV2X( type, content, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt index 7746dfe9c5..604ae04474 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt @@ -32,6 +32,7 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo private const val TAG = "SteeringBrakeView" } + @Volatile private var isShowTurnLight = false private var brakeLight = -1 @@ -61,11 +62,13 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo "$M_HMI$TAG", "---onAutopilotLightSwitchData ---Acceleration = " + gnssInfo.acceleration + "-- brakeLight = " + brakeLight ) - if (!isShowTurnLight) { //在不展示转向灯的情况下,展示车辆刹车的动效 - brakeView.visibility = View.VISIBLE - brakeView.setBrakeLight(brakeLight) - } else { - brakeView.visibility = View.GONE + ThreadUtils.runOnUiThread { + if (!isShowTurnLight) { //在不展示转向灯的情况下,展示车辆刹车的动效 + brakeView.visibility = View.VISIBLE + brakeView.setBrakeLight(brakeLight) + } else { + brakeView.visibility = View.GONE + } } } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt index 0cd59447a9..fa308abe33 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/MapIdentifySubscriber.kt @@ -4,10 +4,13 @@ import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_IDENTIFY +import com.mogo.eagle.core.data.traffic.TrafficData import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener import com.mogo.eagle.core.function.api.base.IMoGoSubscriber import com.mogo.eagle.core.function.api.map.marker.IMoGoIdentifyListener +import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager +import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager import com.mogo.eagle.core.utilcode.util.ThreadUtils import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject @@ -21,7 +24,7 @@ import mogo.yycp.api.proto.SocketDownData */ @Route(path = PATH_IDENTIFY) class MapIdentifySubscriber private constructor() : IMoGoIdentifyListener, IMoGoSubscriber, - IMoGoAutopilotIdentifyListener { + IMoGoAutopilotIdentifyListener, IMoGoObuStatusListener { private val TAG = "MapIdentifySubscriber" @@ -37,11 +40,12 @@ class MapIdentifySubscriber private constructor() : IMoGoIdentifyListener, IMoGo override fun onCrate() { CallerAutopilotIdentifyListenerManager.addListener(TAG, this) - + CallerObuWarningListenerManager.addListener(TAG, this) } override fun onDestroy() { CallerAutopilotIdentifyListenerManager.removeListener(TAG) + CallerObuWarningListenerManager.removeListener(TAG) } override fun onAutopilotIdentifyDataUpdate(trafficData: List?) { @@ -62,7 +66,6 @@ class MapIdentifySubscriber private constructor() : IMoGoIdentifyListener, IMoGo try { if (FunctionBuildConfig.isDrawAiCloudFusion) { ThreadUtils.getSinglePool().execute { -// aiCloudDataDrawer.renderAiCloudResult(cloudData) IdentifyFactory.renderAiCloudResult(cloudData) } } else { @@ -74,7 +77,6 @@ class MapIdentifySubscriber private constructor() : IMoGoIdentifyListener, IMoGo } fun clearAiCloudRoma() { -// aiCloudDataDrawer.clearAiMarker() IdentifyFactory.clearAiMarker() } @@ -92,6 +94,47 @@ class MapIdentifySubscriber private constructor() : IMoGoIdentifyListener, IMoGo } } + override fun updateTrackerFusionData(trackObject: TrackedObject?) { + super.updateTrackerFusionData(trackObject) + try { + if (FunctionBuildConfig.isObuWarningFusionUnion) { + ThreadUtils.getSinglePool().execute { + //todo emArrow + } + } else { + + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun updateTrackerWarningInfo(trafficData: TrafficData) { + super.updateTrackerWarningInfo(trafficData) + try { + if (FunctionBuildConfig.isObuWarningFusionUnion) { + ThreadUtils.getSinglePool().execute { + IdentifyFactory.renderOBUWarningObj(true, trafficData) + } + } else { + IdentifyFactory.renderOBUWarningObj(false, trafficData) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun removeTrackerWarningInfo(trafficData: TrafficData) { + super.removeTrackerWarningInfo(trafficData) + try { + ThreadUtils.getSinglePool().execute { + IdentifyFactory.renderOBUWarningObj(false, trafficData) + } + } catch (e: Exception) { + e.printStackTrace() + } + } + override fun getIdentifyObj(uuid: String): TrackedObject? { return IdentifyFactory.getIdentifyObj(uuid) } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuStatusListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuStatusListener.kt index 27446d7979..72980475f5 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuStatusListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuStatusListener.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.api.obu -import com.mogo.eagle.core.data.obu.ObuStatusInfo import com.mogo.eagle.core.data.traffic.TrafficData +import mogo.telematics.pad.MessagePad /** * @author xiaoyuzhou @@ -17,6 +17,13 @@ interface IMoGoObuStatusListener { } + /** + * obu Tracker data + */ + fun updateTrackerFusionData(trackObject: MessagePad.TrackedObject?){ + + } + /** * 更新obu Tracker 预警信息 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuWarningListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuWarningListenerManager.kt index 228bb7fb73..0e94a35120 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuWarningListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuWarningListenerManager.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.call.obu import com.mogo.eagle.core.data.traffic.TrafficData import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener import com.mogo.eagle.core.function.call.base.CallerBase +import mogo.telematics.pad.MessagePad /** * OBU 监听管理 @@ -19,6 +20,13 @@ object CallerObuWarningListenerManager : CallerBase() { } } + fun invokeTrackerFusionData(trackObject: MessagePad.TrackedObject?){ + M_LISTENERS.forEach { + val listener = it.value + listener.updateTrackerFusionData(trackObject) + } + } + fun invokeTrackerWarningInfo(trafficData: TrafficData) { M_LISTENERS.forEach { val listener = it.value From 2845517249bd0d883f5b904af2ff192366dad518 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 16 Feb 2023 16:00:11 +0800 Subject: [PATCH 11/23] =?UTF-8?q?[=E5=B7=A5=E6=8E=A7=E6=9C=BA=E7=9B=91?= =?UTF-8?q?=E6=8E=A7]=20=E6=B7=BB=E5=8A=A0=E6=98=BE=E7=A4=BA=E6=9C=89?= =?UTF-8?q?=E6=95=88=E6=95=B0=E6=8D=AE=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/zhidao/adas/client/bean/BaseInfo.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java index dc56ac3fc9..f67a2ee02a 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java @@ -11,10 +11,12 @@ public abstract class BaseInfo { public final long nowTime; public final MessagePad.Header header; public final int len; + public final int payloadLen; private SimpleDateFormat sdf; public BaseInfo(String action, int len, MessagePad.Header header, SimpleDateFormat sdf) { this.action = action; + this.payloadLen = len; nowTime = System.currentTimeMillis(); this.len = 8 + header.getSerializedSize() + len; this.header = header; @@ -25,12 +27,13 @@ public abstract class BaseInfo { this.action = action; nowTime = System.currentTimeMillis(); this.len = len; + this.payloadLen = len; this.header = null; } @Override public String toString() { - return "原始数据长度:" + len + "\nHeader:[" + "MessageID:" + header.getMsgID() + + return "原始数据长度:" + len + "\tPayload数据长度:" + payloadLen + "\nHeader:[" + "MessageID:" + header.getMsgID() + " MessageType:" + header.getMsgType() + " 发送时间:" + sdf.format(new Date((long) (header.getTimestamp() * 1000))) + " 数据源时间:" + sdf.format(new Date((long) (header.getSourceTimestamp() * 1000))) + "]\n"; } From e0007ad81b275e32ba129bdfdfb6d29395a5f018 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Thu, 16 Feb 2023 16:13:01 +0800 Subject: [PATCH 12/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E5=90=8E=E7=9A=84=E5=89=AF=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=96=B9=E6=B3=95=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../core/utilcode/util/MultiDisplayUtils.kt | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt index c24acc4a62..67c6f0aa99 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt @@ -15,6 +15,57 @@ import androidx.appcompat.app.AppCompatActivity object MultiDisplayUtils { private val TAG: String = "MultiDisplayUtils" + /** + * 定昌电子,6屏幕异显 对应的lcd匹配数组, 当前数组只对应于6屏异显, + * 如果是其他屏幕个数, 需要自己重新对应下相关的索引 + * display 里面查看port对应的值 + */ + private var lcd_sub_port_six_lcd_mode = arrayOf( + // main lcd // HDMI-1 + //-------------------begin 定昌电子 RK3588 ------------------- + "port=240", // HDMI-2 + "port=3", // HDMI-3 + "port=243", // HDMI-4 + "port=2", // HDMI-5 + "port=1", // HDMI-6 + //-------------------end 定昌电子 RK3588 ------------------- + ) + + /** + * 获取其他的屏幕 + */ + fun getOtherDisplay(): Array { + val mDisplayManager = + Utils.getApp().getSystemService(Context.DISPLAY_SERVICE) as DisplayManager + // 获取除了内置屏幕(主屏幕)的其它屏幕 + val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION) + // 初始化新的集合进行接收排序后的屏幕信息 + val displaysList = arrayOfNulls(displays.size) + + // 判断副屏个数 + if (displays.isNotEmpty()) { + // 循环出来副屏幕进行重新排序 + for (i in displays.indices) { + // 这里如果需要固定某个屏幕, 使用 if( display.toString().indexOf("port=1")!=-1) ) 而不是使用 display[i] + val strDisplayString: String = displays[i].toString() + for (j in lcd_sub_port_six_lcd_mode.indices) { // 这里增加port的匹配, 如果不需要对应的匹配 可看下面的other LCD + if (strDisplayString.indexOf(lcd_sub_port_six_lcd_mode[j]) != -1) { // 查找我们实际屏幕的匹配port + displaysList[j] = displays[i] + } + } + } + + // 没有匹配到的显示 + for (i in displays.indices) { + if (displaysList[i] == null) { + displaysList[i] = displays[i] + } + } + } + return displaysList + } + + // 获取 是否支持扩展屏幕打开应用 fun isSupportMultiDisplay(context: Context): Boolean { // 先检查一下是不是支持在第二屏上显示activity这个特性, From 63204a14adec8e9fb6b8302acc4cc3536e8e2dac Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 18:37:42 +0800 Subject: [PATCH 13/23] [2.13.0-arch-opt]fix bug --- .../sweeper/view/SweeperTrafficDataView.java | 3 - .../hmi/ui/vehicle/SteeringBrakeView.kt | 2 - .../hmi/ui/vehicle/TurnLightViewStatus.kt | 55 +++++++++---------- .../hmi/ui/widget/LimitingVelocityView.kt | 2 + .../res/layout/view_limiting_speed_vr.xml | 3 +- .../eagle/core/function/view/MapBizView.kt | 52 +++++++++++++----- .../CallerChassisLamplightListenerManager.kt | 15 ++--- 7 files changed, 76 insertions(+), 56 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index b8e5c3c370..32db9adef0 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -94,13 +94,10 @@ public class SweeperTrafficDataView extends ConstraintLayout if (lightSwitch != null) { CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); if (lightSwitch.getNumber()==1){ - CallerVisualAngleManager.INSTANCE.showTurning(true); sweeperTurnSignal.showLeftSignal(); }else if(lightSwitch.getNumber()==2){ - CallerVisualAngleManager.INSTANCE.showTurning(true); sweeperTurnSignal.showRightSignal(); }else{ - CallerVisualAngleManager.INSTANCE.showTurning(false); sweeperTurnSignal.showDirection(); } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt index 604ae04474..f89fe8f773 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/SteeringBrakeView.kt @@ -81,11 +81,9 @@ class SteeringBrakeView(context: Context, attrs: AttributeSet?) : ConstraintLayo ThreadUtils.runOnUiThread { if (lightSwitch.number == 1 || lightSwitch.number == 2) { isShowTurnLight = true - CallerVisualAngleManager.showTurning(true) brakeView.visibility = View.VISIBLE brakeView.setBrakeLight(0) } else { - CallerVisualAngleManager.showTurning(false) brakeView.visibility = View.GONE isShowTurnLight = false } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt index 803b0a815e..fd1931ee7f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TurnLightViewStatus.kt @@ -12,16 +12,10 @@ import android.widget.ImageView import androidx.constraintlayout.widget.ConstraintLayout import chassis.Chassis import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener -import com.mogo.eagle.core.function.api.map.angle.Turning import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.ThreadUtils -import kotlinx.android.synthetic.main.view_steering_brake.view.* import kotlinx.android.synthetic.main.view_turn_light_status.view.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch /** * @description @@ -40,6 +34,9 @@ open class TurnLightViewStatus @JvmOverloads constructor( } private val visible: Boolean + private var isLeftLight: Boolean = false + private var isRightLight: Boolean = false + private var isDisappear: Boolean = false init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.TurnLightView) @@ -73,7 +70,6 @@ open class TurnLightViewStatus @JvmOverloads constructor( super.onAutopilotLightSwitchData(lightSwitch) lightSwitch?.let { ThreadUtils.runOnUiThread { - turnLightView.visibility = View.VISIBLE setTurnLight(it) } } @@ -86,27 +82,37 @@ open class TurnLightViewStatus @JvmOverloads constructor( if (!isAttachedToWindow) { return } - GlobalScope.launch(Dispatchers.Main) { - //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 - when (directionLight) { - Chassis.LightSwitch.LIGHT_LEFT -> { //左转向 - CallerVisualAngleManager.showTurning(true) + //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 + when (directionLight.number) { + Chassis.LightSwitch.LIGHT_LEFT_VALUE -> { //左转向 + if (!isLeftLight) { + isLeftLight = true + isRightLight = false + isDisappear = false showNormalAnimation() left_select_image.visibility = View.VISIBLE right_select_image.visibility = View.GONE right_select_image.clearAnimation() setAnimation(left_select_image) } - Chassis.LightSwitch.LIGHT_RIGHT -> { //右转向 - CallerVisualAngleManager.showTurning(true) + } + Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转向 + if (!isRightLight) { + isRightLight = true + isLeftLight = false + isDisappear = false showNormalAnimation() left_select_image.visibility = View.GONE right_select_image.visibility = View.VISIBLE left_select_image.clearAnimation() setAnimation(right_select_image) } - else -> { //消失 - CallerVisualAngleManager.showTurning(false) + } + Chassis.LightSwitch.LIGHT_NONE_VALUE -> { //消失 + if (!isDisappear) { + isDisappear = true + isLeftLight = false + isRightLight = false animationDisappear() } } @@ -170,10 +176,9 @@ open class TurnLightViewStatus @JvmOverloads constructor( } override fun onAnimationEnd(p0: Animation?) { - if (visible) { + if (!visible) { turn_light_layout.visibility = View.GONE } - stopAnimate() } }) } @@ -182,19 +187,13 @@ open class TurnLightViewStatus @JvmOverloads constructor( private fun setAnimation(imageView: ImageView) { val animationSet = AnimatorSet() val valueAnimator = ObjectAnimator.ofFloat(imageView, "alpha", 0f, 1.0f) - val valueAnimatorDisappare = ObjectAnimator.ofFloat(imageView, "alpha", 1.0f, 0f) + val valueAnimatorDisappear = ObjectAnimator.ofFloat(imageView, "alpha", 1.0f, 0f) valueAnimator.duration = 1000 - valueAnimatorDisappare.duration = 800 + valueAnimatorDisappear.duration = 800 valueAnimator.repeatCount = -1 - valueAnimatorDisappare.repeatCount = -1 - animationSet.playTogether(valueAnimatorDisappare, valueAnimator) + valueAnimatorDisappear.repeatCount = -1 + animationSet.playTogether(valueAnimatorDisappear, valueAnimator) animationSet.start() } - private fun stopAnimate() { - turn_light_layout.clearAnimation() - left_nor_image.clearAnimation() - right_nor_image.clearAnimation() - } - } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt index ec4155e06c..32406eba70 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt @@ -40,9 +40,11 @@ class LimitingVelocityView constructor( if (limitingVelocity > 0) { this.visibility = View.VISIBLE tvLimitingVelocity.text = "$limitingVelocity" + tvLimitingSource.visibility = View.VISIBLE tvLimitingSource.text = sourceType.name } else { this.visibility = View.GONE + tvLimitingSource.visibility = View.GONE tvLimitingSource.text = "" } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml index fb6060c188..0bca4b164a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml @@ -30,7 +30,6 @@ android:textSize="@dimen/dp_30" android:textStyle="bold" app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvLimitingVelocity" - android:visibility="gone" /> + app:layout_constraintTop_toBottomOf="@+id/tvLimitingVelocity" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index 405cb1b4f5..01defbe2ab 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.view import android.content.Context import android.os.Bundle import android.util.AttributeSet +import android.util.Log import androidx.lifecycle.LifecycleObserver import chassis.Chassis import com.mogo.eagle.core.data.map.MogoLocation @@ -11,15 +12,17 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Liste import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager -import com.mogo.eagle.core.function.call.map.* +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.setting.CallerSkinModeListenerManager import com.mogo.map.MogoMapView -class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), IMoGoSkinModeChangeListener, - IMoGoChassisLocationWGS84Listener, IMoGoChassisLamplightListener , LifecycleObserver { - - companion object{ +class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), + IMoGoSkinModeChangeListener, + IMoGoChassisLocationWGS84Listener, IMoGoChassisLamplightListener, LifecycleObserver { + + companion object { private const val TAG = "MapBizView" } @@ -34,7 +37,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, } - private fun initMapView(){ + private fun initMapView() { map?.uiSettings?.let { //设置所有手势是否可用 it.setAllGesturesEnabled(true) @@ -84,26 +87,47 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, setExtraGPSData(gnssInfo) } + @Volatile + private var isVisualAngleChanged = false + override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) { super.onAutopilotLightSwitchData(lightSwitch) lightSwitch?.let { when (it.number) { - 1 -> { //左转灯 + Chassis.LightSwitch.LIGHT_LEFT_VALUE -> { //左转灯 CallerVisualAngleManager.showTurning(true) - CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(4, 500) + showTurn(1) } - 2 -> { //右转灯 - CallerVisualAngleManager.showTurning(true) - CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(2, 500) - } - else -> { + Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转灯 CallerVisualAngleManager.showTurning(false) - CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(3, 500) + showTurn(2) + + } + Chassis.LightSwitch.LIGHT_NONE_VALUE -> { + CallerVisualAngleManager.showTurning(false) + hideTurn() } } } } + private fun showTurn(lightNum: Int) { + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + when (lightNum) { + 1 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(4, 500) + 2 -> CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(2, 500) + } + } + } + + private fun hideTurn() { + if (isVisualAngleChanged) { + isVisualAngleChanged = false + CallerMapUIServiceManager.getMapUIController()?.setCarLightsType(3, 500) + } + } + override fun onDestroy() { // 先取消注册数据,再onDestroy CallerSkinModeListenerManager.removeListener(TAG) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLamplightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLamplightListenerManager.kt index e5157806b7..08493422d9 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLamplightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLamplightListenerManager.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.call.autopilot +import android.util.Log import chassis.Chassis import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener import com.mogo.eagle.core.function.call.base.CallerBase @@ -17,24 +18,24 @@ object CallerChassisLamplightListenerManager : CallerBase= 10) { isOnTurnLight = false return turn_light - } else { - turnLightTimes++ - null } + turnLightTimes++ + return null } else { - null + return null } } else { turnLightTimes = 0 From 88ffcfdc71925fe5517b834fca24757f0b4ad24b Mon Sep 17 00:00:00 2001 From: donghongyu Date: Thu, 16 Feb 2023 18:45:04 +0800 Subject: [PATCH 14/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E4=BC=98=E5=8C=96=E5=9C=A8=E5=89=AF=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E5=90=AF=E5=8A=A8=E8=B0=83=E7=94=A8=E4=B8=AA=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- app/productFlavors/fMultiDisplayOchBus.gradle | 2 +- .../fMultiDisplayOchTaxi.gradle | 2 +- .../core/utilcode/util/MultiDisplayUtils.kt | 19 +++++++------------ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/productFlavors/fMultiDisplayOchBus.gradle b/app/productFlavors/fMultiDisplayOchBus.gradle index 2e6173c679..49cf57f8f8 100644 --- a/app/productFlavors/fMultiDisplayOchBus.gradle +++ b/app/productFlavors/fMultiDisplayOchBus.gradle @@ -20,7 +20,7 @@ project.android.productFlavors { //高德地图鉴权信息 manifestPlaceholders = [ AMAP_API_VALUE : rootProject.ext.android.fLauncherAmapApiValue, - CHANNEL_VALUE : "fPadLenovoOchBus", + CHANNEL_VALUE : "fMultiDisplayOchBus", ACTIVITY_ROOT : true, SCREEN_ORIENTATION: "landscape" ] diff --git a/app/productFlavors/fMultiDisplayOchTaxi.gradle b/app/productFlavors/fMultiDisplayOchTaxi.gradle index fba1ab5e63..a04d284d67 100644 --- a/app/productFlavors/fMultiDisplayOchTaxi.gradle +++ b/app/productFlavors/fMultiDisplayOchTaxi.gradle @@ -23,7 +23,7 @@ project.android.productFlavors { // 高德地图鉴权信息 AMAP_API_VALUE : rootProject.ext.android.fLauncherAmapApiValue, // BUGLY_APP_CHANNEL - CHANNEL_VALUE : "fPadLenovoOchTaxi", + CHANNEL_VALUE : "fMultiDisplayOchTaxi", // 在启动的时候把Task给清空 ACTIVITY_ROOT : true, // Activity的朝向 diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt index 67c6f0aa99..e14d16cc03 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt @@ -7,7 +7,6 @@ import android.content.pm.PackageManager import android.hardware.display.DisplayManager import android.util.Log import android.view.Display -import androidx.appcompat.app.AppCompatActivity /** * 多屏幕操作工具类 @@ -51,6 +50,7 @@ object MultiDisplayUtils { for (j in lcd_sub_port_six_lcd_mode.indices) { // 这里增加port的匹配, 如果不需要对应的匹配 可看下面的other LCD if (strDisplayString.indexOf(lcd_sub_port_six_lcd_mode[j]) != -1) { // 查找我们实际屏幕的匹配port displaysList[j] = displays[i] + break } } } @@ -66,7 +66,9 @@ object MultiDisplayUtils { } - // 获取 是否支持扩展屏幕打开应用 + /** + * 获取 是否支持扩展屏幕打开应用 + */ fun isSupportMultiDisplay(context: Context): Boolean { // 先检查一下是不是支持在第二屏上显示activity这个特性, // 在ActivityOptions.java setLaunchDisplayId 上面有相关的说明 @@ -74,13 +76,6 @@ object MultiDisplayUtils { return packageManager.hasSystemFeature(PackageManager.FEATURE_ACTIVITIES_ON_SECONDARY_DISPLAYS) } - // 获取 当前接入的屏幕集合(含主屏幕) - fun getMultiDisplay(context: Context): Array { - // 多次创建副屏 则副屏的id都是增加的,所以不一定是1,这里还是获取一下 - val displayManager = - context.getSystemService(AppCompatActivity.DISPLAY_SERVICE) as DisplayManager - return displayManager.displays - } /** * 在指定ID的屏幕打开Activity,当前应用的,当前进程 @@ -90,8 +85,8 @@ object MultiDisplayUtils { fun startActWithSecond(context: Context, activity: Class<*>) { val launchDisplayId: Int if (isSupportMultiDisplay(context)) { - if (getMultiDisplay(context).size > 1) { - launchDisplayId = getMultiDisplay(context)[1].displayId + if (getOtherDisplay().size > 1 && getOtherDisplay()[0] != null) { + launchDisplayId = getOtherDisplay()[0]!!.displayId // 要加上Intent.FLAG_ACTIVITY_NEW_TASK val options = ActivityOptions.makeBasic() @@ -113,7 +108,7 @@ object MultiDisplayUtils { * @param launchDisplayId 指定屏幕ID * @param activity 要在副屏幕启动的页面 */ - fun startActWithProcess(context: Context, launchDisplayId: Int, activity: Class<*>) { + fun startActWithOther(context: Context, launchDisplayId: Int, activity: Class<*>) { // 要加上Intent.FLAG_ACTIVITY_NEW_TASK val options = ActivityOptions.makeBasic() options.launchDisplayId = launchDisplayId From dae8147f7745b69a351fc98c0b7a13a8dfeee3c0 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 16 Feb 2023 19:09:57 +0800 Subject: [PATCH 15/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/call/map/CallerVisualAngleManager.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index 8a8d2dc4d8..75c5a5f04e 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -28,7 +28,7 @@ object CallerVisualAngleManager { fun showTurning(open: Boolean) { if (open) { if (!isVisualAngleChanged) { - isVisualAngleChanged + isVisualAngleChanged = true changeAngle(Turning(true)) } } else { From 2b6f280ae0622bd41b90cf1b631945279e8580d7 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 19:46:01 +0800 Subject: [PATCH 16/23] [2.13.2-arch-opt] fix bug of limit --- .../src/main/res/layout/bus_base_fragment.xml | 2 +- .../main/res/layout/och_noop_fragment_hmi.xml | 2 +- .../main/res/layout/taxi_base_fragment.xml | 2 +- .../hmi/ui/widget/LimitingVelocityView.kt | 21 +++++++++++-------- .../res/layout/view_limiting_speed_vr.xml | 3 +-- .../eagle/core/data/enums/DataSourceType.kt | 17 ++++++++++++++- 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml index 975b76ad84..582b0f7d84 100644 --- a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml @@ -94,7 +94,7 @@ 0) { - this.visibility = View.VISIBLE - tvLimitingVelocity.text = "$limitingVelocity" - tvLimitingSource.visibility = View.VISIBLE - tvLimitingSource.text = sourceType.name - } else { - this.visibility = View.GONE - tvLimitingSource.visibility = View.GONE - tvLimitingSource.text = "" + ThreadUtils.runOnUiThread { + if (limitingVelocity > 0) { + visibility = View.VISIBLE + tvLimitingVelocity.text = "$limitingVelocity" + Log.d("emArrow","limit : ${ DataSourceType.getName(sourceType)}") + tvLimitingSource.text = DataSourceType.getName(sourceType) + } else { + visibility = View.GONE + tvLimitingSource.text = "" + } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml index 0bca4b164a..c7d079cfb7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_limiting_speed_vr.xml @@ -23,9 +23,8 @@ android:id="@+id/tvLimitingSource" android:layout_width="120dp" android:layout_height="35dp" - android:layout_marginEnd="40dp" android:gravity="center" - android:text="" + android:text="123" android:textColor="@color/color_FFFFFF" android:textSize="@dimen/dp_30" android:textStyle="bold" diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/DataSourceType.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/DataSourceType.kt index 7cc8ddb8fa..bddc074309 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/DataSourceType.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/DataSourceType.kt @@ -1,11 +1,26 @@ package com.mogo.eagle.core.data.enums + + enum class DataSourceType(name: String) { DEFAULT("defalut"), OBU("OBU"), MAP("MAP"), TELEMATIC("TELEMATIC"), AICLOUD("AI云"), - SUMMARY("汇总")// V2X事件汇总 + SUMMARY("汇总");// V2X事件汇总 + + companion object{ + fun getName(type :DataSourceType):String{ + return when(type){ + OBU -> "OBU" + MAP -> "MAP" + TELEMATIC -> "TELEMATIC" + AICLOUD -> "AI云" + SUMMARY -> "汇总" + else -> "defalut" + } + } + } } \ No newline at end of file From 23c7346fa2b270195b69d59b15180738cd7a9c37 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 19:52:45 +0800 Subject: [PATCH 17/23] [2.13.2-arch-opt] cherry pick 2.13.2-sop --- .../binding/BindingCarManager.kt | 2 ++ .../binding/BindingCarNetWorkManager.kt | 31 +++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt index 5facb2cac5..2e08b89f0a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt @@ -43,6 +43,8 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener { fun init(context: Context) { mContext = context + SharedPrefsMgr.getInstance(mContext!!).putLong("typeDriver", 0) + SharedPrefsMgr.getInstance(mContext!!).putLong("typePassenger", 0) CallerAutopilotCarConfigListenerManager.addListener(TAG, this) ipcUpgradeManager.init(context) UiThreadHandler.postDelayed({ queryAppUpgrade() }, 10_000) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index 3a44ccd5e9..dca175382b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -74,17 +74,20 @@ class BindingCarNetWorkManager private constructor() { override fun onSubscribe(d: Disposable) {} override fun onNext(info: BindingCarInfo) { if (info != null && info.getData() != null) { - d(SceneConstant.M_BINDING + TAG, "getBindingCarInfo data =" + info.getData().toString()) - if (!SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.MAC_ADDRESS).equals(macAddress) && DebugConfig.isCarModelChange()) { - updateCarVrIconRes(info.getData().brandId); - } + d( + SceneConstant.M_BINDING + TAG, + "getBindingCarInfo data =" + info.getData().toString() + ) + updateCarVrIconRes(info.getData().brandId); when (info.getData().compare) { "0" -> showBindingCarDialog() "3" -> showModifyBindingCarDialog() "null" -> TipToast.shortTip("当前工控机没有入库") } - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData())) - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.MAC_ADDRESS, macAddress) + SharedPrefsMgr.getInstance(context).putString( + SharedPrefsConstants.CAR_INFO, + GsonUtils.toJson(info.getData()) + ) } } @@ -133,10 +136,7 @@ class BindingCarNetWorkManager private constructor() { SceneConstant.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) && DebugConfig.isCarModelChange()) { - updateCarVrIconRes(info.data.brandId); - } - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.MAC_ADDRESS, macAddress) + updateCarVrIconRes(info.data.brandId) } } @@ -155,6 +155,9 @@ class BindingCarNetWorkManager private constructor() { if (brandId == null || brandId.isEmpty()) { return } + if (getDefaultId() == brandId) { + return + } d(SceneConstant.M_BINDING + TAG, "updateCarVrIconRes : $brandId") when (brandId) { "1" -> { @@ -176,4 +179,12 @@ class BindingCarNetWorkManager private constructor() { } } + private fun getDefaultId(): String { + return when (HdMapBuildConfig.currentCarVrIconRes) { + R.raw.chuzuche -> "1" + R.raw.xiaobache -> "3" + else -> "1" + } + } + } \ No newline at end of file From 0e000cf2d10d9e83ccdf92142c1e632de6cace13 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 16 Feb 2023 21:02:10 +0800 Subject: [PATCH 18/23] [2.13.0-arch-opt]turn light bug fix and add toggle debug view trigger --- .../src/main/res/layout/bus_p_base_fragment.xml | 8 ++++++++ .../src/main/res/layout/bus_base_fragment.xml | 8 ++++++++ .../java/com/mogo/och/noop/OchNoopFragment.kt | 5 +---- .../main/res/layout/och_noop_fragment_hmi.xml | 16 ++++++++-------- .../src/main/res/layout/taxi_p_base_fragment.xml | 8 ++++++++ .../src/main/res/layout/taxi_base_fragment.xml | 8 ++++++++ .../hmi/ui/setting/ToggleDebugViewTrigger.kt | 16 ++++++++++++++++ .../hmi/ui/vehicle/TurnLightViewStatus.kt | 6 ++++-- 8 files changed, 61 insertions(+), 14 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToggleDebugViewTrigger.kt diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml index 3e12a1ebb2..96b90db2b4 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml @@ -12,6 +12,14 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent"/> + + + + (), } override fun initViews() { - viewShowDebugView.setOnLongClickListener { - ToggleDebugView.toggleDebugView.toggle(requireContext()) - true - } + } diff --git a/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml b/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml index b5c29c1225..8cb712a588 100644 --- a/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml +++ b/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml @@ -6,19 +6,19 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - + + + + + + Date: Thu, 16 Feb 2023 21:11:33 +0800 Subject: [PATCH 19/23] [2.13.0-arch-opt] fix bug of mapview angle --- .../main/java/com/mogo/eagle/core/function/view/MapBizView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index 01defbe2ab..ada377f31c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -99,7 +99,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, showTurn(1) } Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转灯 - CallerVisualAngleManager.showTurning(false) + CallerVisualAngleManager.showTurning(true) showTurn(2) } From b4158cef3a57da35d279055ce119572a2278dcd2 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Fri, 17 Feb 2023 10:12:18 +0800 Subject: [PATCH 20/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E4=BF=AE=E6=94=B9=E4=BD=BF=E7=94=A8=E5=8D=95?= =?UTF-8?q?=E6=AC=A1=E5=AE=9A=E4=BD=8D=E7=9A=84=E8=B0=83=E7=94=A8=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20=20CallerChassisLocationWGS84ListenerManag?= =?UTF-8?q?er.INSTANCE.getChassisLocationWGS84().getLatitude()=20CallerCha?= =?UTF-8?q?ssisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS?= =?UTF-8?q?84().getLongitude()=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../och/sweeper/model/SweeperOrderModel.java | 6 +-- .../ui/notice/traffic/NoticeTrafficDialog.kt | 7 ++-- .../hmi/ui/widget/AutoPilotStatusView.kt | 8 ++-- .../routeoverlay/RouteOverlayDrawer.java | 14 ++++--- .../scene/warning/V2XWarningMarker.java | 6 +-- .../function/v2x/events/utils/MapUtils.kt | 6 +-- ...llerChassisLocationWGS84ListenerManager.kt | 39 +++++++++---------- 7 files changed, 45 insertions(+), 41 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java index 38a5dd65e2..fc5b4c548e 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java @@ -23,8 +23,8 @@ import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; @@ -307,8 +307,8 @@ public class SweeperOrderModel { if (distance > SweeperConst.ARRIVE_AT_END_STATION_DISTANCE) { distance = CoordinateUtils.calculateLineDistance(startLon, startLat, - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(), - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat()); + CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLongitude(), + CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLatitude()); } if (distance <= SweeperConst.ARRIVE_AT_END_STATION_DISTANCE) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt index 8f2add30d3..0b1490ef68 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt @@ -20,8 +20,7 @@ import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo.NoticeTrafficAccou import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData import com.mogo.eagle.core.data.notice.NoticeValue import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84Lat -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84Lon +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager.bizProvider import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog @@ -201,8 +200,8 @@ class NoticeTrafficDialog : BaseFloatDialog, LifecycleObserver { mTrafficStyleInfo!!.lat, mTrafficStyleInfo!!.lon ) parameters.startLatLon = AutoPilotLonLat( - getCurWgs84Lat(), - getCurWgs84Lon() + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude ) parameters.endLatLon = AutoPilotLonLat(gcj02[0], gcj02[1]) startAutoPilot(parameters) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/AutoPilotStatusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/AutoPilotStatusView.kt index dd22839a09..8ec86f7842 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/AutoPilotStatusView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/AutoPilotStatusView.kt @@ -10,8 +10,7 @@ import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84Lat -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84Lon +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -80,7 +79,10 @@ class AutoPilotStatusView constructor( currentAutopilot.endName = "HYJC" currentAutopilot.isSpeakVoice = false currentAutopilot.startLatLon = - AutopilotControlParameters.AutoPilotLonLat(getCurWgs84Lat(), getCurWgs84Lon()) + AutopilotControlParameters.AutoPilotLonLat( + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude + ) currentAutopilot.endLatLon = AutopilotControlParameters.AutoPilotLonLat(26.819716071924688, 112.57715442110867) currentAutopilot.vehicleType = 10 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/RouteOverlayDrawer.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/RouteOverlayDrawer.java index 9cf9145540..a218d36f2e 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/RouteOverlayDrawer.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/RouteOverlayDrawer.java @@ -5,16 +5,20 @@ import android.graphics.Color; import android.os.Handler; import android.os.HandlerThread; import android.util.Log; + import androidx.core.util.Pools; + import com.mogo.eagle.core.data.map.MogoLatLng; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils; import com.mogo.map.MogoOverlayManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.map.overlay.MogoPolylineOptions; + import java.util.LinkedList; import java.util.List; + import mogo.telematics.pad.MessagePad; public class RouteOverlayDrawer { @@ -128,8 +132,8 @@ public class RouteOverlayDrawer { pps.add(acquire); RouteStrategy.INSTANCE.check(route.getVelocity(), route.getAcceleration(), routeList.size()); } - double lon = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(); - double lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(); + double lon = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLongitude(); + double lat = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLatitude(); if (points.size() > 0) { MogoLatLng top = null; while (points.size() != 0) { @@ -140,8 +144,8 @@ public class RouteOverlayDrawer { if (first == top) { break; } - lon = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(); - lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(); + lon = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLongitude(); + lat = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLatitude(); long angle = isPointOnCarFront(lon, lat, bearing, first.lon, first.lat); if (angle >= 90) { RouteStrategy.INSTANCE.remove(first.acc); diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java index 51af0affe0..b81750d42c 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java @@ -11,7 +11,7 @@ import com.mogo.commons.utils.Trigonometric; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.data.v2x.DrawLineInfo; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoPersonWarnPolylineManager; @@ -44,8 +44,8 @@ public class V2XWarningMarker implements IV2XMarker { private final List fillPoints = new ArrayList();//停止线经纬度合集 private boolean isFirstLocation = false; private MogoLatLng carLocation = new MogoLatLng( - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(), - CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon() + CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLatitude(), + CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getLongitude() ); /* diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt index 09ec0fb754..c49b645366 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt @@ -3,7 +3,7 @@ package com.mogo.eagle.core.function.v2x.events.utils import android.content.Context import android.graphics.Rect import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.util.WindowUtils @@ -24,8 +24,8 @@ class MapUtils { mBoundRect.right = WindowUtils.dip2px(context, 100f) // 当前车辆位置 val carLocation = MogoLatLng( - CallerAutoPilotStatusListenerManager.getCurWgs84Lat(), - CallerAutoPilotStatusListenerManager.getCurWgs84Lon() + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude, + CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude ) // 调整自适应的地图镜头 CallerMapUIServiceManager.getMapUIController() diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt index 38a45f7fd9..a0212d23ee 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt @@ -14,9 +14,9 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils object CallerChassisLocationWGS84ListenerManager : CallerBase() { @Volatile - private var mGnssInfo: MogoLocation? = null + private var mGnssInfo: MogoLocation = MogoLocation() - fun getChassisLocationWGS84(): MogoLocation? { + fun getChassisLocationWGS84(): MogoLocation { return mGnssInfo } @@ -40,27 +40,26 @@ object CallerChassisLocationWGS84ListenerManager : CallerBase 0) { - val hzTime = (1.0 / hz.toDouble()) * 1000 - // 获取最后一次回调的时间 - val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag] - if (hzLastSendTime != null && hzLastSendTime > 0) { - // 计算是否进入下一次回调周期 - val nowTime = TimeUtils.getNowMills() - if (nowTime - hzLastSendTime > hzTime) { - syncLocationCallback(tag, it, mGnssInfo!!, sourceType) - } - } else { - syncLocationCallback(tag, it, mGnssInfo!!, sourceType) + + M_LISTENERS.forEach { + val tag = it.key + // 获取数据监听需要的HZ + val hz = M_LISTENERS_HZ[tag] + if (hz != null && hz > 0) { + val hzTime = (1.0 / hz.toDouble()) * 1000 + // 获取最后一次回调的时间 + val hzLastSendTime = M_LISTENERS_HZ_LAST_SEND_TIME[tag] + if (hzLastSendTime != null && hzLastSendTime > 0) { + // 计算是否进入下一次回调周期 + val nowTime = TimeUtils.getNowMills() + if (nowTime - hzLastSendTime > hzTime) { + syncLocationCallback(tag, it, mGnssInfo, sourceType) } } else { - syncLocationCallback(tag, it, mGnssInfo!!, sourceType) + syncLocationCallback(tag, it, mGnssInfo, sourceType) } + } else { + syncLocationCallback(tag, it, mGnssInfo, sourceType) } } } From e82bf1ca86721f6b6198157c3dd35236a035ad57 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Fri, 17 Feb 2023 13:52:39 +0800 Subject: [PATCH 21/23] =?UTF-8?q?[1.9.0]=20=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=B3=A8=E5=86=8C=E8=87=AA=E9=A9=BE=E7=9B=91?= =?UTF-8?q?=E5=90=AC=20[2.13.2=20]=20Taxi=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9CallerSmpManager.startQueryV2XEvents();?= =?UTF-8?q?=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presenter/BaseTaxiPassengerPresenter.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index e05daddd00..0173533e1e 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -15,6 +15,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.common.module.manager.OCHAdasAbilityManager; import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback; @@ -27,8 +28,6 @@ import com.mogo.och.taxi.passenger.model.TaxiPassengerModel; import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment; import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen; -import mogo.telematics.pad.MessagePad; - /** * @author: wangmingjun * @date: 2022/3/4 @@ -44,6 +43,7 @@ public class BaseTaxiPassengerPresenter extends Presenter { - mView.showOrHideServingOrderFragment(false,true); - mView.showOrHideStartAutopilotView(false,false); - mView.showOrHidePressengerCheckPager(false, "", - "", "", "", ""); - mView.showOrHideArrivedEndLayout(false,"",""); + mView.showOrHideServingOrderFragment(false,true); + mView.showOrHideStartAutopilotView(false,false); + mView.showOrHidePressengerCheckPager(false, "", + "", "", "", ""); + mView.showOrHideArrivedEndLayout(false,"",""); }); TaxiPassengerModel.getInstance().recoverNaviInfo(); TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch(); @@ -200,7 +201,6 @@ public class BaseTaxiPassengerPresenter extends Presenter Date: Fri, 17 Feb 2023 13:53:35 +0800 Subject: [PATCH 22/23] =?UTF-8?q?[2.14.0][adas=20lib]=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?AutoPilotReady=E5=AD=97=E6=AE=B5=E6=98=AF=E5=90=A6=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=88=A4=E6=96=AD=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=8E=92?= =?UTF-8?q?=E9=99=A4MAP=E7=89=88=E6=9C=AC=E5=92=8CSSM=20Maser=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=8D=E5=8C=B9=E9=85=8D=E5=AF=BC=E8=87=B4=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=87=BA=E9=94=99=E9=97=AE=E9=A2=98=EF=BC=8C=E7=BB=86?= =?UTF-8?q?=E5=8C=96=E4=BD=8D=E7=BD=AE=E5=8E=9F=E5=9B=A0=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E3=80=82=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=BA=8C=E6=AC=A1=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E9=A9=BE=E8=B5=B7=E4=B8=8D=E6=9D=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=A6=82=E6=9E=9C=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E4=BA=86=E5=90=AF=E5=8A=A8=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=EF=BC=8C=E6=B2=A1=E8=B5=B7=E6=9D=A5=E6=88=96?= =?UTF-8?q?=E8=80=85=E5=AD=98=E5=9C=A8=E5=B9=B2=E9=A2=84=20=E6=AD=A4?= =?UTF-8?q?=E6=97=B6systemState=E6=98=AFAUTO=5FPILOT=5FSTARTING=20?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E4=BA=8C=E6=AC=A1=E4=B8=8B=E5=8F=91=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E9=A9=BE=E5=91=BD=E4=BB=A4=20=E6=89=80?= =?UTF-8?q?=E4=BB=A5=E9=9C=80=E8=A6=81=E6=8E=92=E9=99=A4=E6=AD=A4=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adas/high/common/AutopilotAbilityManager.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java index 26d38467f5..733e87d82a 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java @@ -137,7 +137,8 @@ public class AutopilotAbilityManager { } } } - if (version > 1) { + //如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行 + if (version > 1 && statusInfo.hasAutoPilotReady()) { isAutopilotAbility = statusInfo.getAutoPilotReady(); if (!isAutopilotAbility) { SystemStatusInfo.NodeFaultList nodeFaultList = statusInfo.getAutoPilotUnreadyList(); @@ -150,12 +151,12 @@ public class AutopilotAbilityManager { if (state < NODE_INFO_STATE.length) { builder.append(NODE_INFO_STATE[state]); } else { - builder.append("未知 "); + builder.append("未知异常 "); } } unableAutopilotReason = builder.toString(); } else { - unableAutopilotReason = "未知"; + unableAutopilotReason = "未知异常节点"; } } } else { @@ -169,7 +170,9 @@ public class AutopilotAbilityManager { } else if (systemState == SystemStatusInfo.SystemState.SYS_FAULT) { unableAutopilotReason = "系统异常"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_STARTING) { - unableAutopilotReason = "正在开始自动驾驶"; + //如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态 + isAutopilotAbility = true; + //unableAutopilotReason = "正在开始自动驾驶"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_RUNNING) { unableAutopilotReason = "自动驾驶运行中"; } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_STARTING) { @@ -177,7 +180,7 @@ public class AutopilotAbilityManager { } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_RUNNING) { unableAutopilotReason = "平行驾驶运行中"; } else { - unableAutopilotReason = "未知"; + unableAutopilotReason = "未知系统状态"; } } } From 89ed9838a3eb42dc93f8e060b7f907589790e047 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Fri, 17 Feb 2023 14:21:18 +0800 Subject: [PATCH 23/23] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E4=BF=AE=E5=A4=8DEB5=E5=89=AF=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../location/MoGoLocationDispatcher.kt | 2 ++ .../core/utilcode/util/MultiDisplayUtils.kt | 21 ++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index 4c43812fbe..93e8d1f7f2 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -17,6 +17,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84Lis import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.CoordinateTransform +import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.Utils import com.mogo.support.obu.model.MogoObuHvBasicsData @@ -124,6 +125,7 @@ object MoGoLocationDispatcher : DataSourceType.TELEMATIC ) } + MultiDisplayUtils.getOtherDisplay() } /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt index e14d16cc03..4010261abe 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt @@ -39,10 +39,11 @@ object MultiDisplayUtils { // 获取除了内置屏幕(主屏幕)的其它屏幕 val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION) // 初始化新的集合进行接收排序后的屏幕信息 - val displaysList = arrayOfNulls(displays.size) + var displaysList = arrayOfNulls(displays.size) // 判断副屏个数 if (displays.isNotEmpty()) { + displaysList = arrayOfNulls(displays.size) // 循环出来副屏幕进行重新排序 for (i in displays.indices) { // 这里如果需要固定某个屏幕, 使用 if( display.toString().indexOf("port=1")!=-1) ) 而不是使用 display[i] @@ -62,6 +63,18 @@ object MultiDisplayUtils { } } } + // 处理EB5副屏幕 + else { + if (mDisplayManager.displays.isNotEmpty()) { + displaysList = arrayOfNulls(1) + // EB5目前副屏幕ID为固定4096 + for (i in mDisplayManager.displays.indices) { + if (mDisplayManager.displays[i].displayId == 4096) { + displaysList[0] = mDisplayManager.displays[i] + } + } + } + } return displaysList } @@ -83,11 +96,9 @@ object MultiDisplayUtils { * @param activity 要在第二个屏幕启动的页面 */ fun startActWithSecond(context: Context, activity: Class<*>) { - val launchDisplayId: Int if (isSupportMultiDisplay(context)) { - if (getOtherDisplay().size > 1 && getOtherDisplay()[0] != null) { - launchDisplayId = getOtherDisplay()[0]!!.displayId - + if (getOtherDisplay().isNotEmpty() && getOtherDisplay()[0] != null) { + val launchDisplayId = getOtherDisplay()[0]!!.displayId // 要加上Intent.FLAG_ACTIVITY_NEW_TASK val options = ActivityOptions.makeBasic() options.launchDisplayId = launchDisplayId