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-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 3bc530ebaa..5facb2cac5 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/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-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/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/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 } } } 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-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 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"; }