list = autopilotConfigAdapter.getDatas();
+ if (list == null || list.isEmpty()) {
+ Toast.makeText(AutopilotConfigActivity.this, "未找到可用数据,无法保存", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ Toast.makeText(AutopilotConfigActivity.this, "正在保存...", Toast.LENGTH_SHORT).show();
+ Runnable runnable = new Runnable() {
+ @Override
+ public void run() {
+ boolean isNull = false;
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i).isNull()) {
+ isNull = true;
+ break;
+ }
+ }
+ if (!isNull) {
+ Constants.setPath(AutopilotConfigActivity.this, list);
+ }
+ Message msg = Message.obtain();
+ msg.what = WHAT_START;
+ msg.obj = !isNull;
+
+ getHandler().sendMessage(msg);
+ }
+ };
+ ThreadPoolManager.getsInstance().execute(runnable);
+ }
+
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ EventBus.getDefault().post(new UpdateDataEvent());
+ if (getHandler() != null)
+ getHandler().removeCallbacksAndMessages(null);
+ EventBus.getDefault().unregister(this);
+ }
+
+ @Override
+ protected void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ switch (msg.what) {
+ case WHAT_START:
+ if ((Boolean) msg.obj) {
+ builder.setTitle("保存成功")
+ .setMessage("配置保存成功啦")
+ .setNegativeButton("退出",
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ finish();
+ }
+ })
+ .setPositiveButton("确定",
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ }
+ });
+ } else {
+ builder.setTitle("保存失败")
+ .setMessage("请输入必填项\n所有输入框均必填\uD83E\uDD2A")
+ .setPositiveButton("确认",
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ }
+ });
+ }
+ break;
+
+ }
+ AlertDialog dialog = builder.show();
+// dialog.setCancelable(false);
+// dialog.setCanceledOnTouchOutside(false);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.menu_create, menu);
+ MenuItem itemDel = menu.findItem(R.id.action_del_item);
+ CheckBox del = itemDel.getActionView().findViewById(R.id.action_del);
+ del.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ if (autopilotConfigAdapter != null) {
+ autopilotConfigAdapter.setShowDel(isChecked);
+ }
+ }
+ });
+
+ MenuItem itemLocation = menu.findItem(R.id.action_location_item);
+ Button btn_lon = itemLocation.getActionView().findViewById(R.id.btn_lon);
+ Button btn_lat = itemLocation.getActionView().findViewById(R.id.btn_lat);
+ lonText = itemLocation.getActionView().findViewById(R.id.lon);
+ latText = itemLocation.getActionView().findViewById(R.id.lat);
+ btn_lon.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (lon != -1) {
+ findEditText(lon);
+ }
+ }
+ });
+ btn_lat.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (lat != -1) {
+ findEditText(lat);
+ }
+ }
+ });
+ return true;
+ }
+
+ private void findEditText(double value) {
+ View view = getWindow().getDecorView().findFocus();
+ if (view instanceof EditText) {
+ EditText editText = ((EditText) view);
+ String content = String.valueOf(value);
+ editText.setText(content);
+ editText.setSelection(content.length());
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onLocationEvent(GnssInfo info) {
+ if (info != null && info.bean != null) {
+ lon = info.bean.getLongitude();
+ lat = info.bean.getLatitude();
+ if (lonText != null)
+ lonText.setText("Lon:" + lon);
+ if (latText != null)
+ latText.setText("Lat:" + lat);
+ }
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+ switch (id) {
+ case R.id.action_settings_item:
+ autopilotConfigAdapter.add();
+// linearLayoutManager.scrollToPositionWithOffset(dbAdapter.getItemCount() - 1, 0);
+ recyclerView.scrollToPosition(autopilotConfigAdapter.getItemCount() - 1);
+ return true;
+ case R.id.action_save_item:
+ onSave();
+ return true;
+ case android.R.id.home:
+ onBack();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ private void onBack() {
+ new AlertDialog.Builder(this)
+ .setTitle("退出提示")
+ .setMessage("是否配置页面")
+ .setNegativeButton("取消",
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ }
+ })
+ .setPositiveButton("确认",
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ finish();
+ }
+ }).show();
+ }
+
+ //返回键处理
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ onBack();
+ return true;
+ } else {
+ return super.onKeyDown(keyCode, event);
+ }
+ }
+}
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/HorizontalDividerItemDecoration.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/HorizontalDividerItemDecoration.java
new file mode 100644
index 0000000000..932b4484e9
--- /dev/null
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/HorizontalDividerItemDecoration.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.zhidao.adas.client.ui;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * DividerItemDecoration is a {@link RecyclerView.ItemDecoration} that can be used as a divider
+ * between items of a {@link LinearLayoutManager}. It supports both {@link #HORIZONTAL} and
+ * {@link #VERTICAL} orientations.
+ *
+ *
+ * mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
+ * mLayoutManager.getOrientation());
+ * recyclerView.addItemDecoration(mDividerItemDecoration);
+ *
+ */
+public class HorizontalDividerItemDecoration extends RecyclerView.ItemDecoration {
+ public static final int HORIZONTAL = LinearLayout.HORIZONTAL;
+ public static final int VERTICAL = LinearLayout.VERTICAL;
+
+ private static final String TAG = "DividerItem";
+ private static final int[] ATTRS = new int[]{android.R.attr.listDivider};
+
+ private Drawable mDivider;
+
+
+ private final Rect mBounds = new Rect();
+
+ /**
+ * Creates a divider {@link RecyclerView.ItemDecoration} that can be used with a
+ * {@link LinearLayoutManager}.
+ *
+ * @param context Current context, it will be used to access resources.
+ */
+ public HorizontalDividerItemDecoration(Context context) {
+ final TypedArray a = context.obtainStyledAttributes(ATTRS);
+ mDivider = a.getDrawable(0);
+ if (mDivider == null) {
+ Log.w(TAG, "@android:attr/listDivider was not set in the theme used for this "
+ + "DividerItemDecoration. Please set that attribute all call setDrawable()");
+ }
+ a.recycle();
+ }
+
+
+ /**
+ * Sets the {@link Drawable} for this divider.
+ *
+ * @param drawable Drawable that should be used as a divider.
+ */
+ public void setDrawable(@NonNull Drawable drawable) {
+ if (drawable == null) {
+ throw new IllegalArgumentException("Drawable cannot be null.");
+ }
+ mDivider = drawable;
+ }
+
+ /**
+ * @return the {@link Drawable} for this divider.
+ */
+ @Nullable
+ public Drawable getDrawable() {
+ return mDivider;
+ }
+
+ @Override
+ public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
+ if (parent.getLayoutManager() == null || mDivider == null) {
+ return;
+ }
+ drawHorizontal(c, parent);
+ }
+
+
+ private void drawHorizontal(Canvas canvas, RecyclerView parent) {
+ canvas.save();
+ final int top;
+ final int bottom;
+ //noinspection AndroidLintNewApi - NewApi lint fails to handle overrides.
+ if (parent.getClipToPadding()) {
+ top = parent.getPaddingTop();
+ bottom = parent.getHeight() - parent.getPaddingBottom();
+ canvas.clipRect(parent.getPaddingLeft(), top,
+ parent.getWidth() - parent.getPaddingRight(), bottom);
+ } else {
+ top = 0;
+ bottom = parent.getHeight();
+ }
+
+ final int childCount = parent.getChildCount();
+ for (int i = 0; i < childCount; ) {
+ final View child = parent.getChildAt(i);
+ parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
+ final int right = mBounds.right + Math.round(child.getTranslationX());
+ final int left = right - mDivider.getIntrinsicWidth();
+ mDivider.setBounds(left, top, right, bottom);
+ mDivider.draw(canvas);
+ i += 2;
+ }
+ canvas.restore();
+ }
+
+ @Override
+ public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
+ RecyclerView.State state) {
+ if (mDivider == null) {
+ outRect.set(0, 0, 0, 0);
+ return;
+ }
+ outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
+ }
+}
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java
similarity index 99%
rename from app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java
rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java
index 28898aa44d..77e290075d 100644
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/InfoFragment.java
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java
@@ -1,4 +1,4 @@
-package com.zhidao.adas.client.ui.mian;
+package com.zhidao.adas.client.ui;
import android.content.Context;
import android.os.Bundle;
@@ -14,6 +14,7 @@ import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import com.zhidao.adas.client.R;
+import com.zhidao.adas.client.adapter.DataShowAdapter;
import com.zhidao.adas.client.bean.ArrivalNotification;
import com.zhidao.adas.client.bean.AutopilotState;
import com.zhidao.adas.client.bean.ErrorData;
@@ -27,7 +28,6 @@ import com.zhidao.adas.client.bean.VehicleState;
import com.zhidao.adas.client.bean.Warn;
import com.zhidao.adas.client.utils.MyLinearLayoutManager;
import com.zhidao.support.adas.high.common.CupidLogUtils;
-import com.zhidao.support.adas.high.msg.ReportMessage;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java
similarity index 88%
rename from app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java
rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java
index 8bea944df4..c84ef04749 100644
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/MainActivity.java
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java
@@ -1,8 +1,10 @@
-package com.zhidao.adas.client.ui.mian;
+package com.zhidao.adas.client.ui;
import static com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.text.Editable;
@@ -20,6 +22,7 @@ import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatButton;
import androidx.fragment.app.FragmentManager;
@@ -37,8 +40,11 @@ import com.mogo.telematic.client.status.ConnectState;
import com.mogo.telematic.server.netty.NettyServerListener;
import com.zhidao.adas.client.BuildConfig;
import com.zhidao.adas.client.R;
+import com.zhidao.adas.client.adapter.InfoTitleAdapter;
+import com.zhidao.adas.client.base.BaseActivity;
import com.zhidao.adas.client.base.BaseAdapter;
import com.zhidao.adas.client.bean.ArrivalNotification;
+import com.zhidao.adas.client.bean.AutoPilotMode;
import com.zhidao.adas.client.bean.AutopilotState;
import com.zhidao.adas.client.bean.BasicInfoReq;
import com.zhidao.adas.client.bean.CarConfigResp;
@@ -66,19 +72,14 @@ import com.zhidao.support.adas.high.common.ProtocolStatus;
import com.zhidao.support.recorder.RecordDataManager;
import org.greenrobot.eventbus.EventBus;
-import org.json.JSONException;
-import org.json.JSONObject;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Enumeration;
import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
import java.util.concurrent.ScheduledExecutorService;
import chassis.VehicleStateOuterClass;
@@ -87,7 +88,7 @@ import mogo.telematics.pad.MessagePad;
import mogo_msg.MogoReportMsg;
import record_cache.RecordPanelOuterClass;
-public class MainActivity extends AppCompatActivity implements OnAdasListener, OnAdasConnectStatusListener, BaseAdapter.OnItemClickListener {
+public class MainActivity extends BaseActivity implements OnAdasListener, OnAdasConnectStatusListener, BaseAdapter.OnItemClickListener {
private final static String TAG = MainActivity.class.getSimpleName();
private EditText etIp;
private TextView role;
@@ -106,7 +107,6 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
private RecyclerView infoFragment;
private TextView tvConnectState;
private ScheduledExecutorService mExecutorServiceConfigTimer;
- private Gson gson;
private final List titleFragmentData = new ArrayList<>();
@@ -135,7 +135,7 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
private long recordKey;
private String recordFileName;
private int connectStatus;
-
+ private AutoPilotModeDialog autoPilotModeDialog;
public interface TITLE {
String RECEIVE_TRAJECTORY = "车前引导线";
@@ -175,7 +175,7 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
initView();
firstFragment();
- gson = new Gson();
+
initAdas();
connectStatus = AdasManager.getInstance().getIpcConnectionStatus();
onUpdateConnectStateView();
@@ -341,15 +341,15 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
titleFragmentData.add(TITLE.RECEIVE_ERROR);
- titleBtnData.add("下发站点1");
- titleBtnData.add("下发站点2");
+ titleBtnData.add("启动自动驾驶");
titleBtnData.add("自动驾驶路径查询");
titleBtnData.add("下发SN");
titleBtnData.add("数据采集5秒");
titleBtnData.add("数据采集start");
titleBtnData.add("数据采集end");
+ titleBtnData.add("录音测试");
titleBtnData.add("发送信号灯");
- titleBtnData.add("速度设置");
+ titleBtnData.add("自动驾驶限速");
titleBtnData.add("重启Docker");
titleBtnData.add("重启IPC");
titleBtnData.add("关机");
@@ -871,82 +871,51 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
@Override
public void onItemClick(int position, String data) {
CupidLogUtils.w(TAG, "TitleAdapter===>name:" + data);
- if (connectStatus == com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS.DISCONNECTED) {
- toastMsg("IPC 未连接");
- return;
- }
- switch (data) {
- case "下发站点1":
- MessagePad.Location startLocation = MessagePad.Location.newBuilder()
- .setLatitude(26.820319143036112)
- .setLongitude(112.57770688564666)
- .build();
- MessagePad.Location endLocation = MessagePad.Location.newBuilder()
- .setLatitude(26.82355278566775)
- .setLongitude(112.57001723522112)
- .build();
- MessagePad.RouteInfo info = MessagePad.RouteInfo.newBuilder()
- .setStartLocation(startLocation)
- .setStartName("KXCNMZ")
- .setEndLocation(endLocation)
- .setEndName("SDYJKXCXMBZ")
-// .addAllWayPoints(null)
- .setSpeedLimit(0.0)
- .setVehicleType(9)
- .setIsSpeakVoice(true)
- .build();
- AdasManager.getInstance().sendAutoPilotModeReq(1, 0, info);
- //"{\"action\":\"aiCloudToStartAutopilot\",\"result\":{\"endLatLon\":{\"lat\":26.82355278566775,\"lon\":112.57001723522112},\"endName\":\"SDYJKXCXMBZ\",\"isSpeakVoice\":true,\"speedLimit\":0.0,\"startLatLon\":{\"lat\":26.820319143036112,\"lon\":112.57770688564666},\"startName\":\"KXCNMZ\",\"vehicleType\":9,\"wayLatLons\":null}}"
-// " {\"action\":\"aiCloudToStartAutopilot\",\"result\":{\"endLatLon\":{\"lat\":26.819811964643154,\"lon\":112.57732459897345},\"endName\":\"KXCNMDM\",\"isSpeakVoice\":true,\"speedLimit\":0.0,\"startLatLon\":{\"lat\":26.823347858814472,\"lon\":112.56994205894226},\"startName\":\"SDYJKXCXMBDM\",\"vehicleType\":9,\"wayLatLons\":null}}"
+// if (connectStatus == com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS.DISCONNECTED) {
+// toastMsg("IPC 未连接");
+// return;
+// }
+ switch (position) {
+ case 0:
+ if (autoPilotModeDialog == null) {
+ autoPilotModeDialog = new AutoPilotModeDialog(this);
+ }
+ if (!autoPilotModeDialog.isShowing()) {
+ autoPilotModeDialog.show();
+ }
+
break;
- case "下发站点2":
- MessagePad.Location startLocation2 = MessagePad.Location.newBuilder()
- .setLatitude(26.823347858814472)
- .setLongitude(112.56994205894226)
- .build();
- MessagePad.Location endLocation2 = MessagePad.Location.newBuilder()
- .setLatitude(26.819811964643154)
- .setLongitude(112.57732459897345)
- .build();
- MessagePad.RouteInfo info2 = MessagePad.RouteInfo.newBuilder()
- .setStartLocation(startLocation2)
- .setStartName("SDYJKXCXMBDM")
- .setEndLocation(endLocation2)
- .setEndName("KXCNMDM")
-// .addAllWayPoints(null)
- .setSpeedLimit(0.0)
- .setVehicleType(9)
- .setIsSpeakVoice(true)
- .build();
- AdasManager.getInstance().sendAutoPilotModeReq(1, 0, info2);
-// "{\"action\":\"aiCloudToStartAutopilot\",\"result\":{\"endLatLon\":{\"lat\":26.82355278566775,\"lon\":112.57001723522112},\"endName\":\"SDYJKXCXMBZ\",\"isSpeakVoice\":true,\"speedLimit\":0.0,\"startLatLon\":{\"lat\":26.820319143036112,\"lon\":112.57770688564666},\"startName\":\"KXCNMZ\",\"vehicleType\":9,\"wayLatLons\":null}}"
- //" {\"action\":\"aiCloudToStartAutopilot\",\"result\":{\"endLatLon\":{\"lat\":26.819811964643154,\"lon\":112.57732459897345},\"endName\":\"KXCNMDM\",\"isSpeakVoice\":true,\"speedLimit\":0.0,\"startLatLon\":{\"lat\":26.823347858814472,\"lon\":112.56994205894226},\"startName\":\"SDYJKXCXMBDM\",\"vehicleType\":9,\"wayLatLons\":null}}"
- break;
- case "自动驾驶路径查询":
+ case 1:
+ //自动驾驶路径查询
AdasManager.getInstance().sendGlobalPathReq();
break;
- case "下发SN":
+ case 2:
//发送sn
AdasManager.getInstance().sendBasicInfoResp("X202021111192N41VY", 1);
break;
- case "数据采集5秒":
+ case 3:
+ //数据采集5秒
boolean b = AdasManager.getInstance().startRecordPackage(1, 5, 1);
CupidLogUtils.w(TAG, "AutopilotRecord===>send:" + b);
break;
- case "数据采集start":
+ case 4:
+ //数据采集start
boolean bStart = AdasManager.getInstance().startRecordPackage(1, 1);
CupidLogUtils.w(TAG, "AutopilotRecord===>send:" + bStart);
break;
- case "数据采集end":
+ case 5:
+ //数据采集end
boolean bEnd = AdasManager.getInstance().stopRecordPackage(1, 1);
CupidLogUtils.w(TAG, "AutopilotRecord===>send:" + bEnd);
break;
- case "录音测试":
+ case 6:
+ //录音测试
CupidLogUtils.w(TAG, "录音测试");
RecordDataManager.getInstance().init(MainActivity.this, "1234567", "", 22, "", "");
RecordDataManager.getInstance().record();
break;
- case "发送信号灯":
+ case 7:
+ //发送信号灯
MessagePad.TrafficLightStatus left = MessagePad.TrafficLightStatus.newBuilder()
.setPhaseNo("1")
.setColor("R")
@@ -969,25 +938,55 @@ public class MainActivity extends AppCompatActivity implements OnAdasListener, O
.build();
AdasManager.getInstance().sendTrafficLightData("10038", 26.848153, 112.574883, "180.0", "SN", 100413, -4, 201, 0, detail);
break;
- case "速度设置":
- AdasManager.getInstance().sendAutopilotSpeedReq(28);
+ case 8:
+ //速度设置
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("自动驾驶限速");
+ View view = getLayoutInflater().inflate(R.layout.dialog_speed, null);
+ final EditText et = (EditText) view.findViewById(R.id.et);
+ builder.setView(view);//
+ builder.setCancelable(false);//
+ builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Editable editable = et.getText();
+ if (TextUtils.isEmpty(editable)) {
+ // 条件不成立不能关闭 AlertDialog 窗口
+ Toast.makeText(MainActivity.this, "请输入速度", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ String temp = et.getText().toString().trim();
+ double speed = Double.parseDouble(temp) / 3.6;
+ AdasManager.getInstance().sendAutopilotSpeedReq(speed);
+ }
+ });
+ //设置反面按钮,并做事件处理
+ builder.setNegativeButton("取消", null);
+ builder.show();//显示Dialog对话框
+
break;
- case "重启Docker":
+ case 9:
+ //重启Docker
AdasManager.getInstance().rebootAPDocker();
break;
- case "重启IPC":
+ case 10:
+ //重启IPC
AdasManager.getInstance().rebootIPC();
break;
- case "关机":
+ case 11:
+ //关机
AdasManager.getInstance().shutdownIPC();
break;
- case "采集类型":
+ case 12:
+ //采集类型
AdasManager.getInstance().sendRecordCause(recordKey, recordFileName, "1", "变道有干扰");
break;
- case "打开演示模式":
+ case 13:
+ //打开演示模式
AdasManager.getInstance().sendDemoModeReq(1);
break;
- case "关闭演示模式":
+ case 14:
+ //关闭演示模式
AdasManager.getInstance().sendDemoModeReq(0);
break;
}
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/UpgradeFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/UpgradeFragment.java
similarity index 98%
rename from app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/UpgradeFragment.java
rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/UpgradeFragment.java
index c3194b65e4..f2d0de4970 100644
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/UpgradeFragment.java
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/UpgradeFragment.java
@@ -1,4 +1,4 @@
-package com.zhidao.adas.client.ui.mian;
+package com.zhidao.adas.client.ui;
import android.content.Context;
import android.graphics.Color;
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/VersionFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java
similarity index 98%
rename from app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/VersionFragment.java
rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java
index 66df8cc7cf..3c5e27e49f 100644
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/mian/VersionFragment.java
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java
@@ -1,4 +1,4 @@
-package com.zhidao.adas.client.ui.mian;
+package com.zhidao.adas.client.ui;
import android.content.Context;
import android.os.Bundle;
@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator;
import com.zhidao.adas.client.BuildConfig;
import com.zhidao.adas.client.R;
+import com.zhidao.adas.client.adapter.ConfigAdapter;
import com.zhidao.adas.client.bean.CarConfigResp;
import com.zhidao.adas.client.bean.Config;
import com.zhidao.support.adas.high.AdasManager;
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AiCloudToStartAutopilot.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AiCloudToStartAutopilot.java
deleted file mode 100644
index e9d598dbd7..0000000000
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AiCloudToStartAutopilot.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.zhidao.adas.client.ui.autopilot;
-
-import java.util.List;
-
-public class AiCloudToStartAutopilot {
-
- private String action = "aiCloudToStartAutopilot";
- public ResultDTO result;
-
- public static class ResultDTO {
- public EndLatLonDTO endLatLon;
- public Integer speedLimit = 20;
- public StartLatLonDTO startLatLon;
- public List wayLatLons;
-
- public static class EndLatLonDTO {
- public Double lat;
- public Double lon;
- }
-
- public static class StartLatLonDTO {
- public Double lat;
- public Double lon;
- }
-
- public static class WayLatLonsDTO {
- public Double lat;
- public Double lon;
- }
- }
-}
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AutopilotConfigActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AutopilotConfigActivity.java
deleted file mode 100644
index 351dbe15c9..0000000000
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/autopilot/AutopilotConfigActivity.java
+++ /dev/null
@@ -1,305 +0,0 @@
-package com.zhidao.adas.client.ui.autopilot;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.CompoundButton;
-import android.widget.EditText;
-import android.widget.Switch;
-import android.widget.Toast;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import com.google.gson.Gson;
-
-import com.google.gson.reflect.TypeToken;
-import com.zhidao.support.adas.high.AdasManager;
-import com.zhidao.adas.client.R;
-import com.zhidao.adas.client.utils.Constants;
-import com.zhidao.adas.client.utils.PreferencesUtils;
-
-import java.util.List;
-
-
-public class AutopilotConfigActivity extends AppCompatActivity {
-
- public static void launch(Context context) {
- Intent intent = new Intent(context,AutopilotConfigActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(intent);
- }
-
- private Gson gson = new Gson();
- private EditText start_lon1;
- private EditText start_lat1;
- private EditText stop_lon1;
- private EditText stop_lat1;
- private EditText t_lon1;
- private EditText t_lat1;
-
- private EditText start_lon2;
- private EditText start_lat2;
- private EditText stop_lon2;
- private EditText stop_lat2;
- private EditText t_lon2;
- private EditText t_lat2;
-
- private EditText start_lon3;
- private EditText start_lat3;
- private EditText stop_lon3;
- private EditText stop_lat3;
- private EditText t_lon3;
- private EditText t_lat3;
-
- private EditText start_lon4;
- private EditText start_lat4;
- private EditText stop_lon4;
- private EditText stop_lat4;
- private EditText t_lon4;
- private EditText t_lat4;
- private List list;
-
- AiCloudToStartAutopilot data1;
- AiCloudToStartAutopilot data2;
- AiCloudToStartAutopilot data3;
- AiCloudToStartAutopilot data4;
- private String init_all_path = "[\n" +
- " {\n" +
- " \"action\": \"aiCloudToStartAutopilot\",\n" +
- " \"result\": {\n" +
- " \"endLatLon\": {\n" +
- " \"lat\": 26.82355278566775,\n" +
- " \"lon\": 112.57001723522112\n" +
- " },\n" +
- " \"speedLimit\": 20,\n" +
- " \"startLatLon\": {\n" +
- " \"lat\": 26.820319143036112,\n" +
- " \"lon\": 112.57770688564666\n" +
- " },\n" +
- " \"wayLatLons\": [{\n" +
- " \"lat\": 40.1984044,\n" +
- " \"lon\": 116.7323222\n" +
- " }]\n" +
- " }\n" +
- " },\n" +
- " {\n" +
- " \"action\": \"aiCloudToStartAutopilot\",\n" +
- " \"result\": {\n" +
- " \"endLatLon\": {\n" +
- " \"lat\": 40.1979005,\n" +
- " \"lon\": 116.7261382\n" +
- " },\n" +
- " \"speedLimit\": 20,\n" +
- " \"startLatLon\": {\n" +
- " \"lat\": 40.1992337,\n" +
- " \"lon\": 116.7386131\n" +
- " },\n" +
- " \"wayLatLons\": [{\n" +
- " \"lat\": 40.1984044,\n" +
- " \"lon\": 116.7323222\n" +
- " }]\n" +
- " }\n" +
- " },\n" +
- " {\n" +
- " \"action\": \"aiCloudToStartAutopilot\",\n" +
- " \"result\": {\n" +
- " \"endLatLon\": {\n" +
- " \"lat\": 40.1979005,\n" +
- " \"lon\": 116.7261382\n" +
- " },\n" +
- " \"speedLimit\": 20,\n" +
- " \"startLatLon\": {\n" +
- " \"lat\": 40.1992337,\n" +
- " \"lon\": 116.7386131\n" +
- " },\n" +
- " \"wayLatLons\": [{\n" +
- " \"lat\": 40.1984044,\n" +
- " \"lon\": 116.7323222\n" +
- " }]\n" +
- " }\n" +
- " },\n" +
- " {\n" +
- " \"action\": \"aiCloudToStartAutopilot\",\n" +
- " \"result\": {\n" +
- " \"endLatLon\": {\n" +
- " \"lat\": 40.1979005,\n" +
- " \"lon\": 116.7261382\n" +
- " },\n" +
- " \"speedLimit\": 20,\n" +
- " \"startLatLon\": {\n" +
- " \"lat\": 40.1992337,\n" +
- " \"lon\": 116.7386131\n" +
- " },\n" +
- " \"wayLatLons\": [{\n" +
- " \"lat\": 40.1984044,\n" +
- " \"lon\": 116.7323222\n" +
- " }]\n" +
- " }\n" +
- " }\n" +
- "]";
-
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_autopilot_cloud_config);
- start_lon1 = findViewById(R.id.start_lon1);
- start_lat1 = findViewById(R.id.start_lat1);
- stop_lon1 = findViewById(R.id.stop_lon1);
- stop_lat1 = findViewById(R.id.stop_lat1);
- t_lon1 = findViewById(R.id.t_lon1);
- t_lat1 = findViewById(R.id.t_lat1);
-
- start_lon2 = findViewById(R.id.start_lon2);
- start_lat2 = findViewById(R.id.start_lat2);
- stop_lon2 = findViewById(R.id.stop_lon2);
- stop_lat2 = findViewById(R.id.stop_lat2);
- t_lon2 = findViewById(R.id.t_lon2);
- t_lat2 = findViewById(R.id.t_lat2);
-
- start_lon3 = findViewById(R.id.start_lon3);
- start_lat3 = findViewById(R.id.start_lat3);
- stop_lon3 = findViewById(R.id.stop_lon3);
- stop_lat3 = findViewById(R.id.stop_lat3);
- t_lon3 = findViewById(R.id.t_lon3);
- t_lat3 = findViewById(R.id.t_lat3);
-
- start_lon4 = findViewById(R.id.start_lon4);
- start_lat4 = findViewById(R.id.start_lat4);
- stop_lon4 = findViewById(R.id.stop_lon4);
- stop_lat4 = findViewById(R.id.stop_lat4);
- t_lon4 = findViewById(R.id.t_lon4);
- t_lat4 = findViewById(R.id.t_lat4);
- //开始执行
- final Button button = findViewById(R.id.start);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String json = PreferencesUtils.getString(AutopilotConfigActivity.this, Constants.SEL_PATH, null);
- if (TextUtils.isEmpty(json)) {
- Toast.makeText(AutopilotConfigActivity.this, "请先选择路线", Toast.LENGTH_SHORT).show();
- return;
- }
- json = json.split("##")[1];
- Log.i("开始执行自动驾驶", json);
-// AdasManager.getInstance().aiCloudToAdasData(json);
- }
- });
- findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- data1.result.startLatLon.lon = Double.parseDouble(start_lon1.getText().toString().trim());
- data1.result.startLatLon.lat = Double.parseDouble(start_lat1.getText().toString().trim());
- data1.result.endLatLon.lon = Double.parseDouble(stop_lon1.getText().toString().trim());
- data1.result.endLatLon.lat = Double.parseDouble(stop_lat1.getText().toString().trim());
- data1.result.wayLatLons.get(0).lon = Double.parseDouble(t_lon1.getText().toString().trim());
- data1.result.wayLatLons.get(0).lat = Double.parseDouble(t_lat1.getText().toString().trim());
-
-
- data2.result.startLatLon.lon = Double.parseDouble(start_lon2.getText().toString().trim());
- data2.result.startLatLon.lat = Double.parseDouble(start_lat2.getText().toString().trim());
- data2.result.endLatLon.lon = Double.parseDouble(stop_lon2.getText().toString().trim());
- data2.result.endLatLon.lat = Double.parseDouble(stop_lat2.getText().toString().trim());
- data2.result.wayLatLons.get(0).lon = Double.parseDouble(t_lon2.getText().toString().trim());
- data2.result.wayLatLons.get(0).lat = Double.parseDouble(t_lat2.getText().toString().trim());
-
-
- data3.result.startLatLon.lon = Double.parseDouble(start_lon3.getText().toString().trim());
- data3.result.startLatLon.lat = Double.parseDouble(start_lat3.getText().toString().trim());
- data3.result.endLatLon.lon = Double.parseDouble(stop_lon3.getText().toString().trim());
- data3.result.endLatLon.lat = Double.parseDouble(stop_lat3.getText().toString().trim());
- data3.result.wayLatLons.get(0).lon = Double.parseDouble(t_lon3.getText().toString().trim());
- data3.result.wayLatLons.get(0).lat = Double.parseDouble(t_lat3.getText().toString().trim());
-
-
- data4.result.startLatLon.lon = Double.parseDouble(start_lon4.getText().toString().trim());
- data4.result.startLatLon.lat = Double.parseDouble(start_lat4.getText().toString().trim());
- data4.result.endLatLon.lon = Double.parseDouble(stop_lon4.getText().toString().trim());
- data4.result.endLatLon.lat = Double.parseDouble(stop_lat4.getText().toString().trim());
- data4.result.wayLatLons.get(0).lon = Double.parseDouble(t_lon4.getText().toString().trim());
- data4.result.wayLatLons.get(0).lat = Double.parseDouble(t_lat4.getText().toString().trim());
-
-
- PreferencesUtils.putString(AutopilotConfigActivity.this, Constants.ALL_PATH, gson.toJson(list));
- }
- });
- View path1 = findViewById(R.id.path1);
- View path2 = findViewById(R.id.path2);
- View path3 = findViewById(R.id.path3);
- View path4 = findViewById(R.id.path4);
- path1.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(AutopilotConfigActivity.this, "已设置路线1", Toast.LENGTH_SHORT).show();
- PreferencesUtils.putString(AutopilotConfigActivity.this, Constants.SEL_PATH, "1##" + gson.toJson(list.get(0)));
- button.setText("开始执行自动驾驶(路线1)");
- }
- });
- path2.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(AutopilotConfigActivity.this, "已设置路线2", Toast.LENGTH_SHORT).show();
- PreferencesUtils.putString(AutopilotConfigActivity.this, Constants.SEL_PATH, "2##" + gson.toJson(list.get(1)));
- button.setText("开始执行自动驾驶(路线2)");
- }
- });
- path3.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(AutopilotConfigActivity.this, "已设置路线3", Toast.LENGTH_SHORT).show();
- PreferencesUtils.putString(AutopilotConfigActivity.this, Constants.SEL_PATH, "3##" + gson.toJson(list.get(2)));
- button.setText("开始执行自动驾驶(路线3)");
- }
- });
- path4.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(AutopilotConfigActivity.this, "已设置路线4", Toast.LENGTH_SHORT).show();
- PreferencesUtils.putString(AutopilotConfigActivity.this, Constants.SEL_PATH, "4##" + gson.toJson(list.get(3)));
- button.setText("开始执行自动驾驶(路线4)");
- }
- });
-
- String allPath = PreferencesUtils.getString(AutopilotConfigActivity.this, Constants.ALL_PATH, init_all_path);
- list = gson.fromJson(allPath, new TypeToken>() {
- }.getType());
- data1 = list.get(0);
- data2 = list.get(1);
- data3 = list.get(2);
- data4 = list.get(3);
- start_lon1.setText(String.valueOf(data1.result.startLatLon.lon));
- start_lat1.setText(String.valueOf(data1.result.startLatLon.lat));
- stop_lon1.setText(String.valueOf(data1.result.endLatLon.lon));
- stop_lat1.setText(String.valueOf(data1.result.endLatLon.lat));
- t_lon1.setText(String.valueOf(data1.result.wayLatLons.get(0).lon));
- t_lat1.setText(String.valueOf(data1.result.wayLatLons.get(0).lat));
-
- start_lon2.setText(String.valueOf(data2.result.startLatLon.lon));
- start_lat2.setText(String.valueOf(data2.result.startLatLon.lat));
- stop_lon2.setText(String.valueOf(data2.result.endLatLon.lon));
- stop_lat2.setText(String.valueOf(data2.result.endLatLon.lat));
- t_lon2.setText(String.valueOf(data2.result.wayLatLons.get(0).lon));
- t_lat2.setText(String.valueOf(data2.result.wayLatLons.get(0).lat));
-
- start_lon3.setText(String.valueOf(data3.result.startLatLon.lon));
- start_lat3.setText(String.valueOf(data3.result.startLatLon.lat));
- stop_lon3.setText(String.valueOf(data3.result.endLatLon.lon));
- stop_lat3.setText(String.valueOf(data3.result.endLatLon.lat));
- t_lon3.setText(String.valueOf(data3.result.wayLatLons.get(0).lon));
- t_lat3.setText(String.valueOf(data3.result.wayLatLons.get(0).lat));
-
- start_lon4.setText(String.valueOf(data4.result.startLatLon.lon));
- start_lat4.setText(String.valueOf(data4.result.startLatLon.lat));
- stop_lon4.setText(String.valueOf(data4.result.endLatLon.lon));
- stop_lat4.setText(String.valueOf(data4.result.endLatLon.lat));
- t_lon4.setText(String.valueOf(data4.result.wayLatLons.get(0).lon));
- t_lat4.setText(String.valueOf(data4.result.wayLatLons.get(0).lat));
-
-
- }
-
-}
\ No newline at end of file
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 7764de93a4..a76e17f67a 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
@@ -2,14 +2,58 @@ package com.zhidao.adas.client.utils;
import android.content.Context;
+import com.google.gson.reflect.TypeToken;
+import com.zhidao.adas.client.bean.AutoPilotMode;
+import com.zhidao.support.adas.high.common.JsonUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
/**
* @author song kenan
* @des
* @date 2021/10/8
*/
public class Constants {
- public static final String ALL_PATH = "all_path";//所有路线
- public static final String SEL_PATH = "sel_path";//选择的路线
+ private static final String ALL_PATH = "all_path";//所有路线
+ private static final String DEFAULT_PATH = "[{\"endLatLon\":{\"latitude\":40.19774,\"longitude\":116.72704},\"endName\":\"汇源果汁\",\"name\":\"北京市顺义区北小营镇\",\"speedLimit\":20.0,\"startLatLon\":{\"latitude\":40.20047,\"longitude\":116.73512},\"startName\":\"13号路口西\"},{\"endLatLon\":{\"latitude\":40.19996,\"longitude\":116.73584},\"endName\":\"13号路口(主路)\",\"name\":\"北京市顺义区北小营镇\",\"speedLimit\":20.0,\"startLatLon\":{\"latitude\":40.19763,\"longitude\":116.72686},\"startName\":\"汇源果汁\"}]";
+
+ public static List getPaths(Context context) {
+ String json = PreferencesUtils.getString(context, ALL_PATH, DEFAULT_PATH);
+ List list = JsonUtil.fromJson(json, new TypeToken>() {
+ }.getType());
+ return list;
+ }
+
+ public static boolean setPath(Context context, List list) {
+ if (list != null) {
+ return PreferencesUtils.putString(context, ALL_PATH, JsonUtil.toJson(list));
+ }
+ return false;
+ }
+
+ public static boolean addPath(Context context, List list, AutoPilotMode mode) {
+ if (list == null)
+ list = new ArrayList<>();
+ if (!list.contains(mode)) {
+ list.add(mode);
+ return PreferencesUtils.putString(context, ALL_PATH, JsonUtil.toJson(list));
+ }
+ return false;
+ }
+
+ public static boolean delPath(Context context, List list, AutoPilotMode mode) {
+ if (list == null) {
+ return PreferencesUtils.delete(context, ALL_PATH);
+ } else {
+ if (list.contains(mode)) {
+ list.remove(mode);
+ return PreferencesUtils.putString(context, ALL_PATH, JsonUtil.toJson(list));
+ }
+ }
+ return false;
+ }
+
/***********************是否使用固定IP******************/
// 0:固定IP 1:指定 2:UDP
diff --git a/app_ipc_monitoring/src/main/res/drawable/bg_dialog.xml b/app_ipc_monitoring/src/main/res/drawable/bg_dialog.xml
new file mode 100644
index 0000000000..470ebb3806
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/bg_dialog.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/drawable/ic_add_false.xml b/app_ipc_monitoring/src/main/res/drawable/ic_add_false.xml
new file mode 100644
index 0000000000..76e20442b6
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/ic_add_false.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/drawable/ic_add_true.xml b/app_ipc_monitoring/src/main/res/drawable/ic_add_true.xml
new file mode 100644
index 0000000000..1b622a26f5
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/ic_add_true.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/drawable/ic_minus_false.xml b/app_ipc_monitoring/src/main/res/drawable/ic_minus_false.xml
new file mode 100644
index 0000000000..d32a9ba9f7
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/ic_minus_false.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/drawable/ic_minus_true.xml b/app_ipc_monitoring/src/main/res/drawable/ic_minus_true.xml
new file mode 100644
index 0000000000..5e3bf24a2c
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/ic_minus_true.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/drawable/selector_add.xml b/app_ipc_monitoring/src/main/res/drawable/selector_add.xml
new file mode 100644
index 0000000000..b90c10de3e
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/selector_add.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/drawable/selector_minus.xml b/app_ipc_monitoring/src/main/res/drawable/selector_minus.xml
new file mode 100644
index 0000000000..4d671adc0f
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/selector_minus.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/drawable/text.xml b/app_ipc_monitoring/src/main/res/drawable/text.xml
new file mode 100644
index 0000000000..58c4db851b
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/drawable/text.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/layout/activity_autopilot_cloud_config.xml b/app_ipc_monitoring/src/main/res/layout/activity_autopilot_cloud_config.xml
index 131a197495..a7b9a9c4ba 100644
--- a/app_ipc_monitoring/src/main/res/layout/activity_autopilot_cloud_config.xml
+++ b/app_ipc_monitoring/src/main/res/layout/activity_autopilot_cloud_config.xml
@@ -1,529 +1,38 @@
-
+ tools:context=".ui.AutopilotConfigActivity">
-
-
-
-
-
-
-
-
+ android:theme="@style/AppTheme.AppBarOverlay">
-
+
+ android:layout_gravity="center"
+ android:text="标题"
+ android:textColor="#fff"
+ android:textSize="20sp" />
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/layout/activity_main.xml b/app_ipc_monitoring/src/main/res/layout/activity_main.xml
index e7316b9c60..fd6d4ce8fc 100644
--- a/app_ipc_monitoring/src/main/res/layout/activity_main.xml
+++ b/app_ipc_monitoring/src/main/res/layout/activity_main.xml
@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5F5"
- tools:context=".ui.mian.MainActivity">
+ tools:context=".ui.MainActivity">
+
+
+
+
+
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/layout/dialog_autopilot_mode.xml b/app_ipc_monitoring/src/main/res/layout/dialog_autopilot_mode.xml
new file mode 100644
index 0000000000..b25a35f542
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/dialog_autopilot_mode.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/layout/dialog_speed.xml b/app_ipc_monitoring/src/main/res/layout/dialog_speed.xml
new file mode 100644
index 0000000000..ae2c71a35c
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/dialog_speed.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/layout/item_autopilot_config.xml b/app_ipc_monitoring/src/main/res/layout/item_autopilot_config.xml
new file mode 100644
index 0000000000..aa1343be5e
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/item_autopilot_config.xml
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_ipc_monitoring/src/main/res/layout/item_via.xml b/app_ipc_monitoring/src/main/res/layout/item_via.xml
new file mode 100644
index 0000000000..10834cc562
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/item_via.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/layout/layout_del.xml b/app_ipc_monitoring/src/main/res/layout/layout_del.xml
new file mode 100644
index 0000000000..a1bdb9c906
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/layout_del.xml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/layout/layout_location.xml b/app_ipc_monitoring/src/main/res/layout/layout_location.xml
new file mode 100644
index 0000000000..be3c7ef1ab
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/layout/layout_location.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app_ipc_monitoring/src/main/res/menu/menu_create.xml b/app_ipc_monitoring/src/main/res/menu/menu_create.xml
new file mode 100644
index 0000000000..8881fe7f57
--- /dev/null
+++ b/app_ipc_monitoring/src/main/res/menu/menu_create.xml
@@ -0,0 +1,28 @@
+
diff --git a/app_ipc_monitoring/src/main/res/values/strings.xml b/app_ipc_monitoring/src/main/res/values/strings.xml
index 8917cafb09..9ac45fad6e 100644
--- a/app_ipc_monitoring/src/main/res/values/strings.xml
+++ b/app_ipc_monitoring/src/main/res/values/strings.xml
@@ -1,3 +1,7 @@
工控机监控
+ 添加
+ 保存
+ 删除
+ 没有数据\n请点击右上角\"⊕\"添加
diff --git a/app_ipc_monitoring/src/main/res/values/styles.xml b/app_ipc_monitoring/src/main/res/values/styles.xml
index 0ad69b4dc1..725f5b6689 100644
--- a/app_ipc_monitoring/src/main/res/values/styles.xml
+++ b/app_ipc_monitoring/src/main/res/values/styles.xml
@@ -16,5 +16,16 @@
- false
- false
-
+
diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasConnectStatusListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasConnectStatusListener.java
index 6ddb1f5157..9d26048fd7 100644
--- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasConnectStatusListener.java
+++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasConnectStatusListener.java
@@ -14,7 +14,7 @@ public interface OnAdasConnectStatusListener {
* 与工控机链接状态变化
*
* @param ipcConnectionStatus {@link Constants.IPC_CONNECTION_STATUS}
- * @param failedMsg 连接异常信息
+ * @param failedMsg 连接异常信息 需要判null
*/
void onConnectionIPCStatus(@Define.IPCConnectionStatus int ipcConnectionStatus, String failedMsg);