diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 607fda1e40..adbbf2c0eb 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -171,6 +171,7 @@ public abstract class BaseBusTabFragment }); } initListener(); + setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener(){ @Override @@ -179,7 +180,6 @@ public abstract class BaseBusTabFragment } }); - setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); // 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接 findViewById(R.id.btnAutopilotDisable).setOnClickListener(view -> debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) @@ -218,11 +218,6 @@ public abstract class BaseBusTabFragment // mBadcaseBtn的visible显示逻辑在showBadcaseEntrance内处理 mBadcaseBtn = findViewById(R.id.module_mogo_och_badcase_rl); -// CallerHmiManager.INSTANCE.registerBadCaseCallback( -// () -> { // onShow() -// return mBadcaseBtn; }, -// () -> { // onHide() -// return null; }); if (mBadcaseBtn != null) { CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn); @@ -317,7 +312,7 @@ public abstract class BaseBusTabFragment */ public void setArrivedClikable(boolean isClickable){ getActivity().runOnUiThread(() -> { - tvArrived.setClickable(isClickable); + tvArrived.setEnabled(isClickable); if (isClickable){ tvArrived.setTextColor(getResources().getColor(R.color.bus_white)); }else { @@ -359,13 +354,13 @@ public abstract class BaseBusTabFragment ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon); ctvAutopilotStatus.setSelected(false); - ctvAutopilotStatus.setFocusableInTouchMode(true); + ctvAutopilotStatus.setClickable(true); } else { ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot); - ctvAutopilotStatus.setFocusableInTouchMode(true); + ctvAutopilotStatus.setClickable(true); if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) {//1可用 ctvAutopilotStatus.setSelected(false); }else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus){ @@ -381,12 +376,12 @@ public abstract class BaseBusTabFragment ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_success_tv)); ctvAutopilotStatus.setSelected(false); - ctvAutopilotStatus.setFocusableInTouchMode(false); + ctvAutopilotStatus.setClickable(false); }else { ctvAutopilotStatusIv.setImageResource(R.drawable.bus_wrong_autopilot_icon); ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_failure_tv)); - ctvAutopilotStatus.setFocusableInTouchMode(false); + ctvAutopilotStatus.setClickable(false); ctvAutopilotStatus.setSelected(false); } UiThreadHandler.postDelayed(new Runnable() { @@ -480,7 +475,7 @@ public abstract class BaseBusTabFragment ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_tv)); ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatus.setSelected(false); - ctvAutopilotStatus.setFocusableInTouchMode(true); + ctvAutopilotStatus.setClickable(true); ctvAutopilotStatusIv.setImageResource(R.drawable.bus_loading_autopilot_icon); if (autopilotLoadingAnimator == null) { autopilotLoadingAnimator = ObjectAnimator.ofFloat(ctvAutopilotStatusIv, "rotation", 0f, 360f); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 529d48ebbb..645690253e 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -76,14 +76,8 @@ public class BusFragment extends BaseBusTabFragment mSwitchLine.setTag(0); mLineName = findViewById(R.id.module_och_bus_line_name); -// if (DebugConfig.isDebug()) { //任意模式下都打开调试面板 -// mBus.setOnClickListener(view -> { -// ToastUtils.showShort("重置了车站状态"); -// mPresenter.queryBusRoutes(); -// }); - - //debug下调用测试面板 - mCurrentStationName.setOnLongClickListener(v -> { + //调用测试面板 + mCurrentStationName.setOnLongClickListener(v -> { debugTestBar(); showHideTestBar(); return true; @@ -92,21 +86,8 @@ public class BusFragment extends BaseBusTabFragment CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()); // 初始化的时候设置 UI 按钮状态 - switch (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()) { - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE: - hideAutopilotBiz(); - break; - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE: - showAutopilotBiz(); - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE); - break; - case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING: - showAutopilotBiz(); - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - break; - default: - break; - } + showAutopilotBiz(); + mSwitchLine.setOnClickListener(this); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt index be43294c32..bdef0b53fd 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt @@ -40,6 +40,13 @@ object TaxiLoginModel{ .registerCarLocationChangedListener(TAG, mCarLocationChangedListener2) } + fun hasInit():Boolean{ + if(mContext==null&& iTaxiLoginCallback==null){ + return false; + } + return true + } + // 自车定位 private val mCarLocationChangedListener2 = IMogoCarLocationChangedListener2 { location -> mLongitude = location.longitude diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt index fa5191bf3d..1497683ddc 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt @@ -29,15 +29,18 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : private var countDownDisposable: Disposable? = null init { - TaxiLoginModel.init(AbsMogoApplication.getApp()) initListeners() } private fun initListeners() { + TaxiLoginModel.init(AbsMogoApplication.getApp()) TaxiLoginModel.setiTaxiLoginCallback(this) } fun getPhoneCode(phone:String){ + if(!TaxiLoginModel.hasInit()){ + initListeners() + } if (!RegexUtils.isMobileExact(phone)) { ToastUtils.showShort(R.string.module_och_taxi_login_phone_error) mView?.inputPhoneError() @@ -91,6 +94,9 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : } fun gotoLogin(phone: String, code: String) { + if(!TaxiLoginModel.hasInit()){ + initListeners() + } if (!RegexUtils.isMobileExact(phone)) { ToastUtils.showShort(R.string.module_och_taxi_login_phone_error) mView?.inputPhoneError() diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 6d57818bdc..b62e568141 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -960,7 +960,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas public void onClientStatusConnectChanged(int statusCode, String sign, Channel channel) { if (statusCode == ConnectState.STATUS_CONNECT_SUCCESS) { connectStatus = IPC_CONNECTION_STATUS.CONNECTED; - AdasManager.getInstance().startDispatchHandler(); } else { connectStatus = IPC_CONNECTION_STATUS.DISCONNECTED; AdasManager.getInstance().stopDispatchHandler(); diff --git a/build.gradle b/build.gradle index 9e2a5fbcb8..2d52e63827 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ buildscript { classpath "com.bytedance.android.byteX:base-plugin:0.3.0" classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}" classpath 'com.volcengine:apm_insight_plugin:1.4.1' - classpath 'com.mogo.thread.opt:plg:2.2.2' + classpath 'com.mogo.thread.opt:plg:2.2.12' classpath 'com.mogo.cloud:systrace:1.0.1' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' classpath 'com.mogo.sticky:service:1.0.8' diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt index 961ba2b07f..392c350bd2 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/telematic/TeleMsgHandler.kt @@ -162,7 +162,7 @@ class TeleMsgHandler : IMsgHandler { if (isReceiveSN) { isReceiveSN = false } - AdasManager.getInstance().startDispatchHandler() +// AdasManager.getInstance().startDispatchHandler() ToastUtils.showShort("连接司机屏成功!") invokeNettyConnResult("乘客屏连接司机屏成功") val byteArray = byteArrayOf(0) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt index 0e254a00b2..cfebc1ad24 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/can/CanImpl.kt @@ -97,7 +97,7 @@ internal class CanImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotVehic private fun timeOutCheck() { job?.safeCancel() - launch(Dispatchers.Default) { + launch(Dispatchers.Unconfined) { delay(4000) send(CanStatus(isCanEnabled())) }.also { job = it } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt index 0adb0bee7c..89564cb8e0 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/nets/NetsImpl.kt @@ -79,7 +79,7 @@ internal class NetsImpl(ctx: Context): IFlow(ctx) { private fun checkAndSend() { loopCheckAndSendJob?.safeCancel() - launch(Dispatchers.Default) { + launch(Dispatchers.Unconfined) { val connectionInfo = wifiMgr.connectionInfo val enabled = isNetConnected() val name = diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt index b5108cb4c9..c5663854b5 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/flow/rtk/RTKImpl.kt @@ -44,7 +44,7 @@ internal class RTKImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotStatu return } check?.takeIf { it.isActive }?.cancel() - launch { + launch(Dispatchers.Unconfined) { CallerAutoPilotManager.sendStatusQueryReq() delay(5000) isOldVersion.set(true) @@ -82,7 +82,7 @@ internal class RTKImpl(ctx: Context): IFlow(ctx), IMoGoAutopilotStatu if (isRTKEnabled()) { send(RTKStatus("RTK", 0)) timeOutCheck?.takeIf { it.isActive }?.cancel() - launch { + launch(Dispatchers.Unconfined) { delay(4000) send(RTKStatus("", -1)) }.also { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index ee104f1f8b..236d755d45 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager import com.mogo.eagle.core.function.call.trafficlight.CallerTrafficLightListenerManager @@ -51,6 +52,9 @@ class PncActionsView @JvmOverloads constructor( } override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) { + if(getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING){ + return + } UiThreadHandler.post { var actions: String? = null planningActionMsg.actionMsg?.let { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 0dfe574145..606496ab5e 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -323,6 +323,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec byte[] bytes = new byte[len]; System.arraycopy(raw.originalData.toByteArray(), raw.getOffsetValue(), bytes, 0, len); mAdasListener.onPointCloud(bytes); + CupidLogUtils.i(TAG, "收到点云数据" + raw.getPackageLengthValue()); } else { if (rawUnpack != null) { if (raw.getProtocolStatus() == ProtocolStatus.SUCCEED) { @@ -505,7 +506,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec private void updateConnectStatus(@Define.IPCConnectionStatus int status, @Nullable String reason) { ipcConnectionStatus.set(status); if (status == Constants.IPC_CONNECTION_STATUS.CONNECTED) { - startDispatchHandler(); + startCheckCompatibility(); } else { stopCheckCompatibility(); @@ -520,15 +521,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec CupidLogUtils.i(TAG, "工控机连接状态 status=" + status + " reason=" + reason); } - @Override - public void startDispatchHandler() { - if (dispatchHandler != null) { - dispatchHandler.start(); - } - if (dispatchHandlerPointCloud != null) { - dispatchHandlerPointCloud.start(); - } - } @Override public void stopDispatchHandler() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 17b8b6de10..35b0554b2e 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -217,12 +217,6 @@ public class AdasManager implements IAdasNetCommApi { } } - @Override - public void startDispatchHandler() { - if (mChannel != null) { - mChannel.startDispatchHandler(); - } - } @Override public void stopDispatchHandler() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index c10205949b..6fc73c2beb 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -338,10 +338,6 @@ public interface IAdasNetCommApi { */ void decoderRaw(byte[] bytes); - /** - * 启动分发线程 - */ - void startDispatchHandler(); /** * 停止分发线程 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/CupidLogUtils.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/CupidLogUtils.java index 36f5e83d71..2252539d46 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/CupidLogUtils.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/CupidLogUtils.java @@ -18,7 +18,7 @@ public class CupidLogUtils { * @param isEnableLog true开启 false关闭 */ public static void setEnableLog(boolean isEnableLog) { - mIsEnableLog = isEnableLog; +// mIsEnableLog = isEnableLog; TODO 临时注释 } public static boolean isEnableLog() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/thread/DispatchHandler.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/thread/DispatchHandler.java index 5c2f349a93..b2f03d3177 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/thread/DispatchHandler.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/thread/DispatchHandler.java @@ -31,14 +31,6 @@ public class DispatchHandler { this.name = name; } - public void start() { - if (mThread == null) { - mThread = new HandlerThread(name); - mThread.start(); - initHandler(mThread.getLooper()); - } - } - public void stop() { if (mBaseHandler != null) { mBaseHandler.removeCallbacksAndMessages(null); @@ -51,12 +43,15 @@ public class DispatchHandler { } public void sendRawMessage(RawData raw) { - if (mBaseHandler != null) { - Message msg = Message.obtain(); - msg.what = WHAT_DISPATCH_RAW; - msg.obj = raw; - mBaseHandler.sendMessage(msg); + if (mThread == null) { + mThread = new HandlerThread(name); + mThread.start(); + initHandler(mThread.getLooper()); } + Message msg = Message.obtain(); + msg.what = WHAT_DISPATCH_RAW; + msg.obj = raw; + mBaseHandler.sendMessage(msg); }