diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 84550d31d3..68c4e097c5 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -59,6 +59,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.utils.SoundPoolHelper; +import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; @@ -606,10 +607,14 @@ public class BusOrderModel { @Override public void onFail(String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort(failMsg); + isArrivedStation = false; + isGoingToNextStation = true; + if (ToastUtilsOch.isCustomFastClick(5000)){ + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + }else { + ToastUtils.showShort(failMsg); + } } } }); diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java index 829093f3a7..a2a02a8475 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java @@ -4,6 +4,11 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.utilcode.util.ToastUtils; public class ToastUtilsOch { + + private static long lastClickTime; + // 两次点击按钮之间的点击间隔不能少于1000毫秒 + private static int MIN_CLICK_DELAY_TIME = 1000; + public static void showWithCodeMessage(int code,String message){ if(message==null){ return; @@ -14,4 +19,15 @@ public class ToastUtilsOch { ToastUtils.showShort(message); } } + + public static boolean isCustomFastClick(int customCLickDelayTime) { + MIN_CLICK_DELAY_TIME = customCLickDelayTime; + boolean flag = false; + long curClickTime = System.currentTimeMillis(); + if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { + flag = true; + } + lastClickTime = curClickTime; + return flag; + } } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java index 7f93833b86..29c26ae3c7 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java @@ -11,6 +11,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.elegant.utils.UiThreadHandler; +import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.OverlayViewUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; @@ -159,6 +160,7 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V } public void updateStartAutopilotBtnStatus(boolean isClickable){ + if (mContext == null) return; if (isClickable){ mStartAutopilotBtn.setTextColor( mContext.getResources().getColor(R.color.taxi_p_start_autopilot_txt_color)); @@ -259,6 +261,7 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V } private void updateStatusCountDownOver() { + if (mContext == null) return; isStarting = false; startingCarBgAnimatorDrawable(false); mStartAutopilotBtn.setText( @@ -273,4 +276,14 @@ public class TaxiPassengerStartAutopilotView extends RelativeLayout implements V mContext = null; super.onDetachedFromWindow(); } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + try { + mContext = AbsMogoApplication.getApp(); + }catch (Exception e){ + e.printStackTrace(); + } + } } 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 eb77663d3c..8bd832812b 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 @@ -101,6 +101,7 @@ import java.net.NetworkInterface; import java.net.SocketException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.Enumeration; import java.util.List; @@ -647,6 +648,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleBtnData.add(Constants.TITLE.SEND_SET_DEMO_MODE_REQ_CLOSE); titleBtnData.add(Constants.TITLE.SEND_SET_RAIN_MODE_REQ_OPEN); titleBtnData.add(Constants.TITLE.SEND_SET_RAIN_MODE_REQ_CLOSE); + titleBtnData.add(Constants.TITLE.SEND_DETOURING_OPEN); + titleBtnData.add(Constants.TITLE.SEND_DETOURING_CLOSE); + titleBtnData.add(Constants.TITLE.SEND_DETOURING_SPEED); + titleBtnData.add(Constants.TITLE.SEND_TRIP_INFO); + } private void initBtnRecyclerView() { @@ -1186,7 +1192,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas msg = "未连接司机端"; } showToastCenter(msg); - return; +// return; } switch (data) { case Constants.TITLE.SEND_SET_AUTOPILOT_MODE_REQ: @@ -1345,12 +1351,100 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas AdasManager.getInstance().sendRainModeReq(0); break; case Constants.TITLE.SEND_RECORD_DATA_CONFIG_RESP: - //关闭雨天模式 - AdasManager.getInstance().sendRecordDataConfigReq(); + //数据采集配置 + showRecordDataConfigRespDialog(); + break; + case Constants.TITLE.SEND_DETOURING_OPEN: + //绕障类功能开 + AdasManager.getInstance().sendDetouring(1); + break; + case Constants.TITLE.SEND_DETOURING_CLOSE: + //绕障类功能关 + AdasManager.getInstance().sendDetouring(0); + break; + case Constants.TITLE.SEND_DETOURING_SPEED: + //绕障速度设置 + showDetouringSpeedDialog(); + break; + case Constants.TITLE.SEND_TRIP_INFO: + //行程信息 + AdasManager.getInstance().sendTripInfoReq(1, "", "", false); break; } } + private void showDetouringSpeedDialog() { + AlertDialog.Builder builder1 = new AlertDialog.Builder(this); + builder1.setTitle("绕障速度"); + View view1 = getLayoutInflater().inflate(R.layout.dialog_detouring_speed, null); + final EditText et1 = (EditText) view1.findViewById(R.id.et); + builder1.setView(view1);// + builder1.setCancelable(false);// + builder1.setPositiveButton("设置", null); + //设置反面按钮,并做事件处理 + builder1.setNegativeButton("取消", null); + AlertDialog alertDialog1 = builder1.show();//显示Dialog对话框 + alertDialog1.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Editable editable = et1.getText(); + if (TextUtils.isEmpty(editable)) { + // 条件不成立不能关闭 AlertDialog 窗口 + Toast.makeText(MainActivity.this, "请输入速度", Toast.LENGTH_SHORT).show(); + return; + } + String temp = et1.getText().toString().trim(); + double speed = Double.parseDouble(temp); + AdasManager.getInstance().sendDetouringSpeed(speed); + alertDialog1.dismiss(); + } + }); + } + + private void showRecordDataConfigRespDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(Constants.TITLE.SEND_RECORD_DATA_CONFIG_RESP); + View view = getLayoutInflater().inflate(R.layout.dialog_record_data_config_resp, null); + final EditText reqTypeView = view.findViewById(R.id.reqType); + final EditText recordTypeView = view.findViewById(R.id.recordType); + final EditText topicsNeedToCacheView = view.findViewById(R.id.topicsNeedToCache); + builder.setView(view);// + builder.setCancelable(false);// + builder.setPositiveButton("发送", null); + //设置反面按钮,并做事件处理 + builder.setNegativeButton("取消", null); + AlertDialog alertDialog = builder.show();//显示Dialog对话框 + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Editable editable = reqTypeView.getText(); + if (TextUtils.isEmpty(editable)) { + // 条件不成立不能关闭 AlertDialog 窗口 + Toast.makeText(MainActivity.this, "请输入ReqType", Toast.LENGTH_SHORT).show(); + return; + } + int reqType = Integer.parseInt(editable.toString().trim()); + editable = recordTypeView.getText(); + if (TextUtils.isEmpty(editable)) { + Toast.makeText(MainActivity.this, "请输入RecordType", Toast.LENGTH_SHORT).show(); + return; + } + int recordType = Integer.parseInt(editable.toString().trim()); + List topicsNeedToCache = null; + editable = topicsNeedToCacheView.getText(); + if (!TextUtils.isEmpty(editable)) { + String cache = editable.toString().trim(); + cache = cache.replace(",", " ").replace(",", " "); + String[] caches = cache.split(" "); + topicsNeedToCache = Arrays.asList(caches); + } + AdasManager.getInstance().sendRecordDataConfigReq(reqType, recordType, topicsNeedToCache); + alertDialog.dismiss(); + } + }); + + } + @Override protected void handleMessage(Message msg) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java index 520893fde8..2ee184f5b2 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java @@ -187,6 +187,10 @@ public class Constants { String SEND_SET_RAIN_MODE_REQ_OPEN = "打开雨天模式"; String SEND_SET_RAIN_MODE_REQ_CLOSE = "关闭雨天模式"; String SEND_RECORD_DATA_CONFIG_RESP = "数据采集配置"; + String SEND_DETOURING_OPEN = "绕障类功能开"; + String SEND_DETOURING_CLOSE = "绕障类功能关"; + String SEND_DETOURING_SPEED = "绕障速度阈值"; + String SEND_TRIP_INFO = "行程信息"; } diff --git a/app_ipc_monitoring/src/main/res/layout/dialog_detouring_speed.xml b/app_ipc_monitoring/src/main/res/layout/dialog_detouring_speed.xml new file mode 100644 index 0000000000..717530d7f6 --- /dev/null +++ b/app_ipc_monitoring/src/main/res/layout/dialog_detouring_speed.xml @@ -0,0 +1,30 @@ + + + + + + + \ No newline at end of file diff --git a/app_ipc_monitoring/src/main/res/layout/dialog_record_data_config_resp.xml b/app_ipc_monitoring/src/main/res/layout/dialog_record_data_config_resp.xml new file mode 100644 index 0000000000..c71fb1bec7 --- /dev/null +++ b/app_ipc_monitoring/src/main/res/layout/dialog_record_data_config_resp.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt index dec5498cd8..caec9aab44 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/MoGoAutopilotProvider.kt @@ -379,6 +379,16 @@ class MoGoAutopilotProvider : return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration) } + override fun recordPackage( + type: Int, + id: Int, + duration: Int, + bduration: Int, + topics: List + ): Boolean { + return AdasManager.getInstance().startRecordPackage(id, duration, type, bduration, topics) + } + override fun stopRecord(type: Int, id: Int): Boolean { return AdasManager.getInstance().stopRecordPackage(id, type) } @@ -497,17 +507,43 @@ class MoGoAutopilotProvider : } /** - * 获取数据采集录制模式配置列表 + * 绕障类功能开关 + * isEnable = true 开启 + * isEnable = false 关闭 + * @return boolean */ - override fun getBadCaseConfig() { - AdasManager.getInstance().sendRecordDataConfigReq() + override fun sendDetouring(isEnable: Boolean): Boolean { + return if(isEnable){ + AdasManager.getInstance().sendDetouring(1) + }else{ + AdasManager.getInstance().sendDetouring(0) + } + } + + /** + * 变道绕障的目标障碍物速度阈值 + * @param speed 速度阈值 m/s + * @return boolean + */ + override fun sendDetouringSpeed(speed: Double): Boolean { + return AdasManager.getInstance().sendDetouringSpeed(speed) + } + + /** + * 获取数据采集录制模式配置列表 + * @param reqType 0: all, 1:获取当前所有topic列表, 2:配置需要预加载的topic组合 + * @param recordType 0:不需要修改内置类型的topic组合, 1:需要修改内置类型的topic组合 + * @param topicsNeedToCache + * @return boolean + */ + override fun getBadCaseConfig(reqType: Int,recordType: Int,topicsNeedToCache: List): Boolean{ + return AdasManager.getInstance().sendRecordDataConfigReq(reqType, recordType, topicsNeedToCache) } /** * 向左变道 */ override fun sendOperatorChangeLaneLeft() { -// Log.d("liyz", "MoGoAutopilotProvider sendOperatorChangeLaneLeft -------> ") AdasManager.getInstance().sendOperatorCmdChangeLaneLeft() } @@ -515,7 +551,6 @@ class MoGoAutopilotProvider : * 向右变道 */ override fun sendOperatorChangeLaneRight() { -// Log.d("liyz", "MoGoAutopilotProvider sendOperatorChangeLaneRight -------> ") AdasManager.getInstance().sendOperatorCmdChangeLaneRight() } @@ -523,7 +558,6 @@ class MoGoAutopilotProvider : * 发送设置加速度 acc>0加速 acc<0减速 acc=0复位 */ override fun sendOperatorSetAcceleratedSpeed(cc: Double) { -// Log.d("liyz", "MoGoAutopilotProvider sendOperatorSetAcceleratedSpeed cc $cc ") AdasManager.getInstance().sendOperatorCmdSetAcceleratedSpeed(cc) } @@ -531,10 +565,21 @@ class MoGoAutopilotProvider : * 鸣笛 value 1: honk 2: stop honking */ override fun sendOperatorSetHorn(value: Double) { -// Log.d("liyz", "MoGoAutopilotProvider sendOperatorSetHorn value $value ") AdasManager.getInstance().sendOperatorCmdSetHorn(value) } + /** + * 行程信息 + * @param type 事件类型, 1:行程开始, 2:行程结束, 3:出站, 4:进站, 5:城市占道施工预警 + * @param lineName 路线名, for type 1, 2 + * @param stopName 站点名, for type 3, 4 + * @param isLastStop + * @return + */ + override fun sendTripInfo(type: Int, lineName: String, stopName: String, isLastStop: Boolean) { + AdasManager.getInstance().sendTripInfoReq(type, lineName, stopName, isLastStop) + } + /** * 发送工控机所有节点重启命令 */ diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt index 0402c87379..086731087f 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -46,6 +46,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningAction import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotRotting import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotTrajectory import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPointCloudListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordConfig import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager @@ -409,7 +410,9 @@ class MoGoAdasListenerImpl : OnAdasListener { header: MessagePad.Header?, config: MessagePad.RecordDataConfig? ) { - + if(config!=null){ + invokeAutopilotRecordConfig(config) + } } /** diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java index b6549f9b57..0dde914f8b 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java @@ -22,8 +22,8 @@ public interface BindingcarApiService { * @return {@link BindingcarInfo} */ @Headers("Content-Type:application/json;charset=UTF-8") - @POST("pad/selectPadByMac") - Observable getBindingcarInfo(@Header("access_token") String access_token, @Body RequestBody requestBody); + @POST("eagleEye-mis/cmdbapi/pad/selectPadByMac") + Observable getBindingcarInfo(/*@Header("access_token") String access_token,*/ @Body RequestBody requestBody); /** * 绑定和修改绑定车机 @@ -31,7 +31,7 @@ public interface BindingcarApiService { * @return {@link ModifyBindingcarInfo} */ @Headers("Content-Type:application/json;charset=UTF-8") - @POST("pad/updatePadByMac") - Observable modifyBindingcarInfo(@Header("access_token") String access_token, @Body RequestBody requestBody); + @POST("eagleEye-mis/cmdbapi/pad/updatePadByMac") + Observable modifyBindingcarInfo(/*@Header("access_token") String access_token,*/ @Body RequestBody requestBody); } diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java index 0a0fa8c38e..32305d4d7e 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -6,6 +6,7 @@ import android.util.Log; import com.mogo.commons.constants.SharedPrefsConstants; import com.mogo.eagle.core.data.bindingcar.BindingcarInfo; import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo; +import com.mogo.eagle.core.function.BindHostConst; import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; import com.mogo.eagle.core.function.bindingcar.R; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; @@ -34,11 +35,10 @@ import okhttp3.RequestBody; public class BindingcarNetWorkManager { private static volatile BindingcarNetWorkManager requestNoticeManager; private final BindingcarApiService mBindingcarApiService; - private String token = "c4a2f30cebf64972bcd11577e1c07f86"; //中台做了接口适配,需要这个token - private static final String TAG = "BindingcarNetWorkManager"; + private static final String TAG = "BindingcarNetManager"; private BindingcarNetWorkManager() { - mBindingcarApiService = MoGoRetrofitFactory.getInstance(HostConst.BINDING_SN_HOST) + mBindingcarApiService = MoGoRetrofitFactory.getInstance(BindHostConst.getBaseUrl()) .create(BindingcarApiService.class); } @@ -60,11 +60,13 @@ public class BindingcarNetWorkManager { * @param macAddress mac地址 */ public void getBindingcarInfo(Context context, String macAddress, String widevineIDWithMd5, int screenType) { -// String macAddress = "48:b0:2d:3a:bc:78"; +// String macAddress1 = "48:b0:2d:3a:bc:78"; +// String macAddress1 = "48:b0:2d:4d:b9:63"; // String sn = "X20202203105S688HZ"; + BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); - mBindingcarApiService.getBindingcarInfo(token, requestBody) + mBindingcarApiService.getBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -76,6 +78,7 @@ public class BindingcarNetWorkManager { public void onNext(@NonNull BindingcarInfo info) { if (info != null && info.getData() != null) { CallerLogger.INSTANCE.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); + Log.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); if (info.getData().getCompare().equals("0")) { CallerHmiManager.INSTANCE.showBindingcarDialog(); } else if (info.getData().getCompare().equals("3")) { @@ -84,10 +87,12 @@ public class BindingcarNetWorkManager { TipToast.shortTip("当前工控机没有入库"); } - //根据车辆类型切换不同的车辆模型 + //根据车辆类型切换不同的车辆模型,只针对红旗做处理 // if (info.getData().getVendor().equals("一汽红旗")) { //TODO -// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.xiaobache); -// } else if (info.getData().getVendor().equals("东风")) { +// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.hq_h9); +// } + +// else if (info.getData().getVendor().equals("东风汽车集团")) { // CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); // } else if (info.getData().getVendor().equals("金旅星辰")) { // CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.xiaobache); @@ -118,7 +123,7 @@ public class BindingcarNetWorkManager { public void modifyBindingcar(String macAddress, String widevineIDWithMd5, BindingcarCallBack callBack, int screenType) { BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); - mBindingcarApiService.modifyBindingcarInfo(token, requestBody) + mBindingcarApiService.modifyBindingcarInfo(requestBody) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -130,6 +135,7 @@ public class BindingcarNetWorkManager { public void onNext(@NonNull ModifyBindingcarInfo info) { if (info != null) { callBack.callBackResult(info); + Log.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); CallerLogger.INSTANCE.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); } } 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 4229be3ef9..8ebdf939ae 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 @@ -36,7 +36,6 @@ class DevaToolsProvider : IDevaToolsProvider { override fun initBiz() { bizConfigCenter.init(mContext!!) - FuncConfigImpl.init() traceManager.init(mContext!!) MogoLogCatchManager.init(mContext!!) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt index f7d92b33d0..23af1a9edf 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt @@ -252,8 +252,8 @@ defStyleAttr: Int = 0 override fun onAttachedToWindow() { super.onAttachedToWindow() CallerAutopilotRecordListenerManager.addListener(TAG, this) - //获取数据采集录制模式配置列表 - CallerAutoPilotManager.getBadCaseConfig() + //获取数据采集录制模式配置列表 TODO +// CallerAutoPilotManager.getBadCaseConfig() } override fun onDetachedFromWindow() { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt index f2c0e0c114..0f9f976b4f 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/funcconfig/FuncConfigImpl.kt @@ -23,10 +23,7 @@ object FuncConfigImpl { data: String? ) { when (type) { - BIZ_BEAUTY_MODE -> FunctionBuildConfig.isDemoMode = state - BIZ_RAIN_MODE -> FunctionBuildConfig.isRainMode = state - BIZ_WARNING_UPLOAD -> FunctionBuildConfig.isReportWarning = state - } + } } } ) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 7e71484bdf..b4ad81e21b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -1415,29 +1415,27 @@ class MoGoHmiFragment : MvpFragment(), "EmArrow-1013", "it code : ${it.code} , state : ${getAutoPilotStatusInfo().state}" ) - if (getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING) { - showWarningV2X( - EventTypeEnum.TAKE_OVER_EVENT.poiType, - EventTypeEnum.TAKE_OVER_EVENT.content, - EventTypeEnum.TAKE_OVER_EVENT.tts, - EventTypeEnum.TAKE_OVER_EVENT.poiType, - object : IMoGoWarningStatusListener { - override fun onShow() { - Log.d("EmArrow-1013", "onShow") - takeOver = true - clTakeOverView.visibility = View.VISIBLE - } + showWarningV2X( + EventTypeEnum.TAKE_OVER_EVENT.poiType, + EventTypeEnum.TAKE_OVER_EVENT.content, + EventTypeEnum.TAKE_OVER_EVENT.tts, + EventTypeEnum.TAKE_OVER_EVENT.poiType, + object : IMoGoWarningStatusListener { + override fun onShow() { + Log.d("EmArrow-1013", "onShow") + takeOver = true + clTakeOverView.visibility = View.VISIBLE + } - override fun onDismiss() { - Log.d("EmArrow-1013", "onDismiss") - takeOver = false - clTakeOverView.visibility = View.GONE - } - }, - true, - 6000L - ) - } + override fun onDismiss() { + Log.d("EmArrow-1013", "onDismiss") + takeOver = false + clTakeOverView.visibility = View.GONE + } + }, + true, + 6000L + ) } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index e842a2dd1e..ac985fbe5f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -9,6 +9,7 @@ import android.graphics.Color import android.os.Build import android.text.Html import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.annotation.RequiresApi @@ -1857,7 +1858,6 @@ class DebugSettingView @JvmOverloads constructor( override fun updateBizData(type: String, state: Boolean, lock: Boolean, data: String?) { when (type) { BIZ_BEAUTY_MODE -> { - tbIsDemoMode.isClickable = !lock if(lock){ tbIsDemoMode.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1865,7 +1865,6 @@ class DebugSettingView @JvmOverloads constructor( } } BIZ_RAIN_MODE -> { - tbIsRainMode.isClickable = !lock if(lock){ tbIsRainMode.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1873,7 +1872,6 @@ class DebugSettingView @JvmOverloads constructor( } } BIZ_WARNING_UPLOAD -> { - tbReportWarning.isClickable = !lock if(lock){ tbReportWarning.background = resources.getDrawable(R.drawable.radio_button_lock_background) }else{ @@ -1882,20 +1880,16 @@ class DebugSettingView @JvmOverloads constructor( } BIZ_BAG_RECORD -> { if (lock) { - btnRecordBag.isClickable = false btnRecordBag.background = resources.getDrawable(R.drawable.radio_button_lock_background) } else { - btnRecordBag.isClickable = true btnRecordBag.requestFocus() btnRecordBag.background = null } } BIZ_FULL_LOG -> { if (lock) { - tbLogCatch.isClickable = false tbLogCatch.background = resources.getDrawable(R.drawable.radio_button_lock_background) } else { - tbLogCatch.isClickable = true tbLogCatch.requestFocus() tbLogCatch.background = null } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt new file mode 100644 index 0000000000..ae03721b01 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -0,0 +1,159 @@ +package com.mogo.eagle.core.function.hmi.ui.setting + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.data.config.HmiBuildConfig +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.obu.CallerOBUManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.module.service.routeoverlay.RouteStrategy +import kotlinx.android.synthetic.main.view_sop_setting.view.* + +/** + * SOP设置窗口 + */ +class SOPSettingView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr){ + + init { + LayoutInflater.from(context).inflate(R.layout.view_sop_setting, this, true) + initView() + } + + private fun initView() { + //绕障类功能开关 + tbObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring + tbObstacleAvoidance.setOnCheckedChangeListener { _, isChecked -> + CallerAutoPilotManager.sendDetouring(isChecked) + FunctionBuildConfig.isDetouring = isChecked + } + + //危险障碍物颜色标记开关 + tbMarkingObstacles.setOnCheckedChangeListener { _, isChecked -> + + } + + //引导线动态效果 + tbRouteDynamicEffect.isChecked = + AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) && !AppIdentityModeUtils.isBus( + FunctionBuildConfig.appIdentityMode + ) + tbRouteDynamicEffect.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + RouteStrategy.enable(true) + } else { + RouteStrategy.enable(false) + } + } + + //红绿灯标识 + tbTrafficLight.isChecked = HmiBuildConfig.isShowTrafficLightView + tbTrafficLight.setOnCheckedChangeListener { _, isChecked -> + if(!isChecked){ + HmiBuildConfig.isShowTrafficLightView = false + }else{ + HmiBuildConfig.isShowTrafficLightView = true + CallerHmiManager.disableWarningTrafficLight() + } + } + + //限速标识 + tbSpeedLimit.isChecked = HmiBuildConfig.isShowLimitingVelocityView + tbSpeedLimit.setOnCheckedChangeListener { _, isChecked -> + if(isChecked){ + HmiBuildConfig.isShowLimitingVelocityView = true + }else{ + HmiBuildConfig.isShowLimitingVelocityView = false + CallerHmiManager.disableLimitingVelocity() + } + } + + //自车感知到的他车碰撞预警 + tbCollisionWarning.setOnCheckedChangeListener { buttonView, isChecked -> + + } + + // 演示模式,上一次勾选的数据 + tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode + // 演示模式 + tbDemoMode.setOnCheckedChangeListener { _, isChecked -> + CallerAutoPilotManager.setDemoMode(isChecked) + if (!isChecked) { + //关闭美化模式时,通知工控机 + CallerAutoPilotManager.setIPCDemoMode(isChecked) + } + FunctionBuildConfig.isDemoMode = isChecked + } + //只在司机端设置美化模式开关功能 + if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + tbDemoMode.visibility = View.GONE + } + + + // 雨天模式,上一次勾选的数据 + tbRainMode.isChecked = FunctionBuildConfig.isRainMode + //雨天模式 + tbRainMode.setOnCheckedChangeListener { _, isChecked -> + CallerAutoPilotManager.setRainMode(isChecked) + FunctionBuildConfig.isRainMode = isChecked + } + //雨天模式按钮只在司机屏生效,乘客屏不显示 + if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { + tbRainMode.visibility = View.GONE + } + + //OBU控制总开关 + tbObu.isChecked = CallerOBUManager.isConnected() + tbObu.setOnCheckedChangeListener { _, isChecked -> + if(!isChecked){ + if(AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){ + CallerOBUManager.resetObuIpAddress("192.168.1.199") + }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){ + CallerOBUManager.resetObuIpAddress("192.168.8.199") + } + }else{ + //断开链接 + CallerOBUManager.disConnectObu() + } + } + + //变道绕障的目标障碍物速度阈值 + tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s" + ivSpeedReduce.setOnClickListener { + if(FunctionBuildConfig.detouringSpeed<=3){ + ToastUtils.showShort("阈值小可为3 m/s") + }else{ + FunctionBuildConfig.detouringSpeed-- + tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s" + } + } + ivSpeedAdd.setOnClickListener { + if(FunctionBuildConfig.detouringSpeed>=7){ + ToastUtils.showShort("阈值最大可为7 m/s") + }else{ + FunctionBuildConfig.detouringSpeed++ + tvSpeed.text = "${FunctionBuildConfig.detouringSpeed} m/s" + } + } + btnSpeedSet.setOnClickListener { + val isSuccess = CallerAutoPilotManager.sendDetouringSpeed(FunctionBuildConfig.detouringSpeed.toDouble()) + if(isSuccess == true){ + ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功") + }else{ + ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败") + } + } + + } + +} \ 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/PerspectiveSwitchView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt index 0d91542d7b..4caa7e4038 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/PerspectiveSwitchView.kt @@ -32,18 +32,18 @@ class PerspectiveSwitchView @JvmOverloads constructor( override fun onClick(v: View?) { //切换地图的远近视图 if (MogoMapUIController.getInstance().currentMapVisualAngle.isLongSight) { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .visibleAllMarkers() +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .visibleAllMarkers() MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null) textSwitch.setText(R.string.module_map_model_normal) } else if (MogoMapUIController.getInstance().currentMapVisualAngle.isMediumSight) { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS) +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS) MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null) textSwitch.setText(R.string.module_map_model_faster) } else { - MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) - .visibleAllMarkers() +// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) +// .visibleAllMarkers() MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null) textSwitch.setText(R.string.module_map_model_normal) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java index f2bf122979..f9d2dca0ec 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java @@ -215,7 +215,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { //向上长按 开启自动驾驶 long currentTime = System.currentTimeMillis() / (1000); long oldTime = SharedPrefsMgr.getInstance(getContext()).getLong("old_time_up", 0); -// Log.d("liyz", "time = " + (currentTime - oldTime)); if (currentTime - oldTime > 6) { SharedPrefsMgr.getInstance(getContext()).putLong("old_time_up", System.currentTimeMillis() / 1000); // ToastUtils.showShort("长按 ↑↑↑ 开启自动驾驶"); @@ -456,7 +455,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis Method isConnectedMethod = BluetoothDevice.class.getDeclaredMethod("isConnected", (Class[]) null); isConnectedMethod.setAccessible(true); boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null); -// Log.e("liyz", "showBondedDevice Name:" + device.getName() + " Mac:" + device.getAddress() + "---isConnected = " + isConnected); mAreadlyConnectedList.add(device); if (device.getName().equals("JX-05")) { //后面魔戒可能不使用了 SharedPrefsMgr.getInstance(getContext()).putString("BT_MAC", device.getAddress()); @@ -486,7 +484,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis * 主动连接最近的一次连接 */ private void connectBluetooth() { -// Log.d("liyz", "connectBluetooth ----> size() = " + mAreadlyConnectedList.size()); if (mAreadlyConnectedList.size() > 0) { try { Method method = BluetoothDevice.class.getMethod("createBond"); @@ -498,7 +495,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } } -// Log.d("liyz", "connectBluetooth macAddress = " + macAddress + "---pos = " + pos); if (mAreadlyConnectedList.size() > pos && (pos >= 0)) { method.invoke(mAreadlyConnectedList.get(pos)); } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/moujie/BluetoothMonitorReceiver.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/moujie/BluetoothMonitorReceiver.java index 3e0652f1bb..a968560284 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/moujie/BluetoothMonitorReceiver.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/moujie/BluetoothMonitorReceiver.java @@ -45,13 +45,11 @@ public class BluetoothMonitorReceiver extends BroadcastReceiver { case BluetoothDevice.ACTION_ACL_CONNECTED: // Toast.makeText(context, "蓝牙设备已连接", Toast.LENGTH_SHORT).show(); -// Log.d("liyz", "蓝牙设备已连接 ----> "); // SharedPrefsMgr.getInstance(context).putBoolean("BLUETOOTH", true); break; case BluetoothDevice.ACTION_ACL_DISCONNECTED: // SharedPrefsMgr.getInstance(context).putBoolean("BLUETOOTH", false); -// Log.d("liyz", "蓝牙设备已断开 ----> "); // Toast.makeText(context, "蓝牙设备已断开", Toast.LENGTH_SHORT).show(); EventBus.getDefault().post(new ConnectBluetoothEvent()); break; diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_add.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_add.png new file mode 100644 index 0000000000..429d1196be Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_add.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_reduce.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_reduce.png new file mode 100644 index 0000000000..aa10f4b5de Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_reduce.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml new file mode 100644 index 0000000000..105f81a5cd --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +