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 12ac54c427..92d69df229 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 @@ -648,6 +648,9 @@ 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); } private void initBtnRecyclerView() { @@ -1187,7 +1190,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas msg = "未连接司机端"; } showToastCenter(msg); - return; +// return; } switch (data) { case Constants.TITLE.SEND_SET_AUTOPILOT_MODE_REQ: @@ -1346,11 +1349,52 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas AdasManager.getInstance().sendRainModeReq(0); break; case Constants.TITLE.SEND_RECORD_DATA_CONFIG_RESP: + //数据采集配置 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; } } + 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); 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..95052dc6b3 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,9 @@ 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 = "绕障速度阈值"; } 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/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 2e660ed49e..b0881d57ca 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 @@ -1225,13 +1225,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec } /** - * 绕障开关和速度控制 + * 设置参数命令 * - * @param type - * @param value + * @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s) + * @param value 转成字符串的值 + * @return boolean */ @Override - public boolean setDetouring(int type, String value) { + public boolean sendSetParamReq(int type, String value) { MessagePad.SetOneParam oneParam = MessagePad.SetOneParam .newBuilder().setType(type).setValue(value).build(); MessagePad.SetParamReq req = MessagePad.SetParamReq @@ -1241,5 +1242,27 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec return sendPBMessage(MessageType.TYPE_SEND_DETOURING_DATA_REQ.typeCode, req.toByteArray()); } + /** + * 绕障类功能开关 + * + * @param enable 0:关闭,1:开启 + * @return boolean + */ + @Override + public boolean sendDetouring(int enable) { + return sendSetParamReq(1, String.valueOf(enable)); + } + + /** + * 变道绕障的目标障碍物速度阈值 + * + * @param speed 速度阈值 m/s + * @return boolean + */ + @Override + public boolean sendDetouringSpeed(double speed) { + return sendSetParamReq(2, String.valueOf(speed)); + } + } 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 4d7de6c654..22eb4ec033 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 @@ -620,14 +620,37 @@ public class AdasManager implements IAdasNetCommApi { } /** - * 绕障开关和速度控制 + * 设置参数命令 * - * @param type - * @param value + * @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s) + * @param value 转成字符串的值 + * @return boolean */ @Override - public boolean setDetouring(int type, String value) { - return mChannel != null && mChannel.setDetouring(type, value); + public boolean sendSetParamReq(int type, String value) { + return mChannel != null && mChannel.sendSetParamReq(type, value); + } + + /** + * 绕障类功能开关 + * + * @param enable 0:关闭,1:开启 + * @return boolean + */ + @Override + public boolean sendDetouring(int enable) { + return mChannel != null && mChannel.sendDetouring(enable); + } + + /** + * 变道绕障的目标障碍物速度阈值 + * + * @param speed 速度阈值 m/s + * @return boolean + */ + @Override + public boolean sendDetouringSpeed(double speed) { + return mChannel != null && mChannel.sendDetouringSpeed(speed); } /** 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 f2bed1cec8..ec5a0c170d 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 @@ -354,6 +354,31 @@ public interface IAdasNetCommApi { * @return boolean */ boolean sendOperatorCmdStopHonking(); + + /** + * 设置参数命令 + * + * @param type 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s) + * @param value 转成字符串的值 + * @return boolean + */ + boolean sendSetParamReq(int type, String value); + + /** + * 绕障类功能开关 + * + * @param enable 0:关闭,1:开启 + * @return boolean + */ + boolean sendDetouring(int enable); + + /** + * 变道绕障的目标障碍物速度阈值 + * + * @param speed 速度阈值 m/s + * @return boolean + */ + boolean sendDetouringSpeed(double speed); // TODO 需求暂停 待讨论 // boolean getRoutes(); @@ -384,10 +409,6 @@ public interface IAdasNetCommApi { */ void setEnableLog(boolean isEnableLog); - /** - * 绕障开关和速度相关 - */ - boolean setDetouring(int type, String value); /** * 获取与当前连接工控机兼容性 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java index 625b824321..815e0897dd 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java @@ -49,7 +49,7 @@ public enum MessageType { TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, "数据采集配置查询"), TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, "数据采集配置"), TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求"), - TYPE_SEND_DETOURING_DATA_REQ(MessagePad.MessageType.MsgTypeSetParamReq, "绕障开关和阈值"), + TYPE_SEND_DETOURING_DATA_REQ(MessagePad.MessageType.MsgTypeSetParamReq, "设置参数命令"), //透传 原始pb文件中不存在以下type。由于Java中无法强转所以在mogo-adas-data message_pad.proto中放开注释 TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态");