Merge branch 'dev_robotaxi-d-app-module_270_220510_2.7.0' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_270_220510_2.7.0

This commit is contained in:
wangmingjun
2022-05-16 19:30:47 +08:00
24 changed files with 265 additions and 81 deletions

View File

@@ -20,6 +20,11 @@ import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.device.Devices
import com.mogo.commons.network.NetConfigUtils
import com.mogo.commons.network.Utils
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD_SHOW
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
@@ -30,6 +35,8 @@ import com.mogo.eagle.core.utilcode.util.ProcessUtils
import com.mogo.eagle.core.utilcode.util.ThreadPoolService
import com.mogo.module.common.constants.HostConst
import com.rousetime.android_startup.AndroidStartup
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
import java.lang.NumberFormatException
class HttpDnsStartUp : AndroidStartup<Boolean>() {
@@ -245,16 +252,41 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
MogoAiCloudSocketManager.getInstance(context).destroy()
MogoAiCloudSocketManager.getInstance(context)
.registerLifecycleListener(10020, object : IMogoLifecycleListener {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectFailure() {
CallerLogger.d(SceneConstant.M_HMI + TAG, "socket-onConnectFailure")
DebugConfig.setDownloadSnapshot(false)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectSuccess() {
CallerLogger.d(SceneConstant.M_HMI + TAG, "socket-onConnectSuccess")
DebugConfig.setDownloadSnapshot(true)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD_SHOW,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectLost() {
CallerLogger.d(SceneConstant.M_HMI + TAG, "socket-onConnectLost")
DebugConfig.setDownloadSnapshot(false)

View File

@@ -286,9 +286,6 @@ class MoGoAutopilotProvider :
)
}
override fun sendMessageToAutopilot(jsonString: String) {
}
override fun cancelAutoPilot() {
if (AdasManager.getInstance().ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
AdasManager.getInstance().sendAutoPilotModeReq(0, 1, null)

View File

@@ -8,6 +8,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_C
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE
@@ -15,6 +16,8 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_C
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_ADAS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
@@ -111,7 +114,7 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自车定位信息
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO,
linkCode = CHAIN_LINK_ADAS,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
@@ -221,6 +224,14 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
//感知红绿灯
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT,
linkCode = CHAIN_LINK_ADAS,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onPerceptionTrafficLight(
header: MessagePad.Header?,
trafficLights: TrafficLightOuterClass.TrafficLights?
@@ -331,14 +342,6 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
// override fun onSSHResult(info: com.zhidao.adas.client.ssh.SSHResult?) {
// if (info != null && "docker restart autocar_default_1" == info.cmd) {
// showDockerRebootResult(info.code, info.msg)
// } else {
// CallerLogger.w("$M_ADAS_IMPL$TAG", "onSSHResult : result info is null")
// }
// }
override fun onError(status: ProtocolStatus, bytes: ByteArray) {
}

View File

@@ -75,6 +75,7 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 找不到可用IP 传入的IP不可用或固定IP列表中所有IP不可用")
}
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = ipcConnectionStatus
CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe=reason
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
}

View File

@@ -24,5 +24,10 @@ class MogoLogCatchConst {
* 本应用设置,关闭日志
*/
const val LOCAL_CONFIG_CLOSE_LOG = 4
/**
* 上传本地缓存链路日志
*/
const val CACHE_TRACE_UPLOAD = 5
}
}

View File

@@ -27,6 +27,7 @@ import com.zhidao.loglib.bean.RemoteLogPushContent
import com.zhidao.loglib.call.LogInfoManagerFactory
import com.zhidao.loglib.core.ILogListener
import com.zhidao.loglib.core.LogInfoManager
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.CACHE_TRACE_UPLOAD
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOCAL_CONFIG_CLOSE_LOG
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOCAL_CONFIG_OPEN_LOG
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOG_PUSH_TYPE
@@ -103,6 +104,10 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
TipToast.longTip("云端下发关闭日志开关")
closeLoggerLevel()
}
CACHE_TRACE_UPLOAD -> {
TipToast.longTip("上传本地缓存链路日志")
}
else -> {
}
}

View File

@@ -37,6 +37,8 @@ class TraceManager {
// Trace过程中进行日志抓取对日志进行配置
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_INIT)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO] =
FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_GNSS)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
@@ -45,11 +47,15 @@ class TraceManager {
FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_VEHICLE)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT] =
FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT)
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
ChainLogParam(true, "ADAS连接状态")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO] =
ChainLogParam(true, "ADAS自车定位")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
ChainLogParam(false, "ADAS自动驾驶链路(包含: 定位,自动驾驶状态,全局路径,到站提醒,节点状态,异常上报)")
ChainLogParam(true, "ADAS自动驾驶链路(包含: 自动驾驶状态交互,全局路径,到站提醒,节点状态,异常上报)")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
ChainLogParam(false, "ADAS感知物体")
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =

View File

@@ -2,6 +2,8 @@ package com.mogo.eagle.core.function.hmi.ui.setting
import android.annotation.SuppressLint
import android.app.Activity
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.graphics.Color
import android.os.Build
@@ -12,6 +14,7 @@ import android.view.View
import androidx.annotation.RequiresApi
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getSystemService
import androidx.recyclerview.widget.LinearLayoutManager
import chassis.Chassis
import com.mogo.cloud.passport.MoGoAiCloudClient
@@ -133,6 +136,9 @@ class DebugSettingView @JvmOverloads constructor(
private var clickListener: ClickListener? = null
//剪切板
private var clipboardManager: ClipboardManager ?= null
init {
LayoutInflater.from(context).inflate(R.layout.view_debug_setting, this, true)
initView()
@@ -616,6 +622,39 @@ class DebugSettingView @JvmOverloads constructor(
clickListener?.showReportListWindow(isChecked)
}
//SN复制按钮
tvPadSnClip.setOnClickListener {
if(clipboardManager==null){
//获取剪贴板管理器:
clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
}
// 创建普通字符型ClipData ,将ClipData内容放到系统剪贴板里
clipboardManager?.setPrimaryClip(ClipData.newPlainText("MoGoSN",AppConfigInfo.mogoSN))
ToastUtils.showLong("SN复制成功")
}
//工控机镜像复制按钮
tvIpcVersionInfoClip.setOnClickListener{
if(clipboardManager==null){
//获取剪贴板管理器:
clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
}
// 创建普通字符型ClipData ,将ClipData内容放到系统剪贴板里
clipboardManager?.setPrimaryClip(ClipData.newPlainText("DockVersion",mAutoPilotStatusInfo?.dockVersion))
ToastUtils.showLong("docker版本复制成功")
}
//经纬度复制按钮
tvCarInfoCopyClip.setOnClickListener{
if(clipboardManager==null){
//获取剪贴板管理器:
clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
}
// 创建普通字符型ClipData ,将ClipData内容放到系统剪贴板里
clipboardManager?.setPrimaryClip(ClipData.newPlainText("LonAndLat","${mGnssInfo?.longitude},${mGnssInfo?.latitude}"))
ToastUtils.showLong("经纬度复制成功")
}
}
/**

View File

@@ -56,6 +56,7 @@ class CircularProgressView @JvmOverloads constructor(
mProgPaint.isDither = true // 设置抖动
mProgPaint.strokeWidth = typedArray.getDimension(R.styleable.CircularProgressView_progWidth, 10.0f)
mProgPaint.color = typedArray.getColor(R.styleable.CircularProgressView_progColor, Color.BLUE)
// mProgPaint.setPathEffect()
// 初始化进度圆环渐变色
val startColor = typedArray.getColor(R.styleable.CircularProgressView_progStartColor, -1)
val firstColor = typedArray.getColor(R.styleable.CircularProgressView_progFirstColor, -1)
@@ -64,8 +65,6 @@ class CircularProgressView @JvmOverloads constructor(
} else {
mColorArray = null
}
typedArray.recycle();
}
@@ -102,6 +101,12 @@ class CircularProgressView @JvmOverloads constructor(
}
fun setBlurMaskFilter(blur: BlurMaskFilter.Blur, radius: Float) {
var blur: BlurMaskFilter = BlurMaskFilter(radius, blur)
mProgPaint.setMaskFilter(blur)
invalidate()
}
/**
* 获取当前进度
* @return 当前进度0-100

View File

@@ -1,6 +1,7 @@
package com.mogo.eagle.core.function.hmi.ui.widget;
import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
@@ -75,13 +76,14 @@ public class SteeringWheelView extends ConstraintLayout {
tapPositionView = findViewById(R.id.tap_position);
steeringCircularV = findViewById(R.id.steering_circular);
steeringCircularV.setBackWidth(8);
steeringCircularV.setBackColor(R.color.hmi_light_blue_00);
steeringCircularV.setBackColor(R.color.hmi_light_back_bg);
steeringCircularV.setProgColor(R.color.hmi_light_blue, R.color.hmi_dark_blue);
steeringCircularV.setProgress((int) (180 * 100) / 360, 1000);
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
steeringCircularVAlpha = findViewById(R.id.steering_circular_alpha);
steeringCircularVAlpha.setAlpha(0.4f);
steeringCircularVAlpha.setBackColor(R.color.hmi_light_blue_00);
steeringCircularVAlpha.setBackWidth(12);
steeringCircularVAlpha.setBlurMaskFilter(BlurMaskFilter.Blur.NORMAL, 12);
steeringCircularVAlpha.setBackColor(R.color.hmi_clear_00);
steeringCircularVAlpha.setProgColor(R.color.hmi_light_blue_alpha);
steeringCircularVAlpha.setProgress((int) (180 * 100) / 360, 1000);
}

View File

@@ -91,6 +91,7 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
private RecyclerView mConnectInfoRV;
private ConnInfoAdapter mConnAdapter;
private List<AutopilotStatusInfo> dataList = new ArrayList<>();
private int mLastStatus = 0x00;
private boolean isFloatingLayerHidden = false;
@Override
@@ -372,22 +373,31 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override
public void onAutopilotStatusResponse(@NonNull AutopilotStatusInfo autoPilotStatusInfo) {
mConnectInfoRV.post(() -> updateConnectInfoView(autoPilotStatusInfo));
int status = autoPilotStatusInfo.getIpcConnStatus();
if (mLastStatus != status) {
AutopilotStatusInfo statusInfo = autoPilotStatusInfo.clone();
mConnectInfoRV.post(() -> updateConnectInfoView(statusInfo));
mLastStatus = status;
}
}
@Override
public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) {}
public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) {
}
@Override
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {}
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
}
@Override
public void onAutopilotSNRequest() {}
public void onAutopilotSNRequest() {
}
private void updateConnectInfoView(@NonNull AutopilotStatusInfo autoPilotStatusInfo) {
if (!isFloatingLayerHidden) {// 遮罩层显示的时候
mConnAdapter.updateData(autoPilotStatusInfo);
mConnectInfoRV.scrollToPosition(mConnAdapter.getItemCount() - 1);
mLastStatus = autoPilotStatusInfo.getIpcConnStatus();
} else {// 遮罩层隐藏的时候
CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG);
}

View File

@@ -17,20 +17,6 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--底层默认进度条,无进度值改变动作-->
<ProgressBar
android:id="@+id/blue_circle"
android:layout_width="@dimen/dp_260"
android:layout_height="@dimen/dp_260"
android:layout_centerHorizontal="true"
android:layout_marginLeft="@dimen/dp_85"
android:layout_marginTop="@dimen/dp_130"
android:layout_marginRight="@dimen/dp_85"
android:indeterminateDrawable="@drawable/bg_steering_outer_taxi"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/steering_tv_left"
android:layout_width="wrap_content"
@@ -61,12 +47,12 @@
<!--进度值改变状态进度条-->
<com.mogo.eagle.core.function.hmi.ui.widget.CircularProgressView
android:id="@+id/steering_circular"
android:layout_width="@dimen/dp_260"
android:layout_height="@dimen/dp_260"
android:layout_width="@dimen/dp_278"
android:layout_height="@dimen/dp_278"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_130"
android:outlineAmbientShadowColor="#1EBBCFF6"
android:layout_marginTop="@dimen/dp_122"
android:padding="@dimen/dp_12"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -76,15 +62,15 @@
<!--状态条阴影-->
<com.mogo.eagle.core.function.hmi.ui.widget.CircularProgressView
android:id="@+id/steering_circular_alpha"
android:layout_width="@dimen/dp_274"
android:layout_height="@dimen/dp_274"
android:layout_width="@dimen/dp_280"
android:layout_height="@dimen/dp_280"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_122"
android:layout_marginTop="@dimen/dp_120"
android:padding="@dimen/dp_12"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:progWidth="22px"
app:progress="0" />
<ImageView
@@ -104,6 +90,6 @@
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/blue_circle" />
app:layout_constraintTop_toBottomOf="@+id/steering_circular" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -89,8 +89,10 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvConnectInfo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="1200px"
android:layout_height="680px"
android:layout_gravity="bottom"
/>
</FrameLayout>

View File

@@ -207,11 +207,32 @@
android:orientation="vertical"
android:visibility="gone">
<TextView
android:id="@+id/tvPadSn"
style="@style/DebugSettingText"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tvPadSn"
style="@style/DebugSettingText"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tvPadSnClip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="复制"
android:layout_margin="@dimen/dp_10"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:textSize="14sp"
android:textColor="#0000FF"
/>
</LinearLayout>
<View
android:layout_width="match_parent"
@@ -316,11 +337,29 @@
android:layout_height="1dp"
android:background="#F0F0F0" />
<TextView
android:id="@+id/tvIpcVersionInfo"
style="@style/DebugSettingText"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tvIpcVersionInfo"
style="@style/DebugSettingText"
android:layout_width="@dimen/dp_600"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tvIpcVersionInfoClip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="复制"
android:textSize="14sp"
android:textColor="#0000FF"
android:layout_gravity="center"
android:gravity="center"
/>
</LinearLayout>
<View
android:layout_width="match_parent"
@@ -565,12 +604,23 @@
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/recordBagDivider" />
<TextView
android:id="@+id/tvCarInfoCopyClip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="复制经纬度"
android:layout_marginStart="@dimen/dp_10"
android:textSize="14sp"
android:textColor="#0000FF"
app:layout_constraintTop_toBottomOf="@id/tvCarInfoCopy"
/>
<TextView
android:id="@+id/tvIdentifyInfoCopy"
style="@style/DebugSettingText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tvCarInfoCopy" />
app:layout_constraintTop_toBottomOf="@id/tvCarInfoCopyClip" />
<TextView
android:id="@+id/tvTrajectoryInfoSizeCopy"

View File

@@ -56,6 +56,7 @@
<color name="hmi_traffic_light_yellow_color_down">#FFFF9B00</color>
<color name="hmi_light_blue">#45D3FF</color>
<color name="hmi_dark_blue">#1B5BFF</color>
<color name="hmi_light_blue_00">#0045D3FF</color>
<color name="hmi_light_blue_alpha">#666C79C4</color>
<color name="hmi_light_back_bg">#1EBBCFF6</color>
<color name="hmi_light_blue_alpha">#6C79C4</color>
<color name="hmi_clear_00">#0045D3FF</color>
</resources>

View File

@@ -49,10 +49,10 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 {
mThreadHandler =
TrafficLightThreadHandler(Looper.getMainLooper(), {
//查询路口时,如果红绿灯显示,则隐藏掉
if (TrafficLightHMIManager.INSTANCE.isWarningTrafficLightShow()) {
TrafficLightHMIManager.INSTANCE.hideTrafficLight()
CallTrafficLightListenerManager.resetTrafficLightData()
}
// if (TrafficLightHMIManager.INSTANCE.isWarningTrafficLightShow()) {
// TrafficLightHMIManager.INSTANCE.hideTrafficLight()
// CallTrafficLightListenerManager.resetTrafficLightData()
// }
mLocation?.let { it ->
val tileId = CallerMapUIServiceManager.getMapUIController()?.getTileId(it.longitude, it.latitude) ?: 0
trafficLightNetWorkModel.requestRoadID(
@@ -78,7 +78,7 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 {
trafficLightNetWorkModel.requestTrafficLight(
it.latitude, it.longitude, it.bearing.toDouble(), road, { result ->
trafficLightResult = result
TrafficLightHMIManager.INSTANCE.updateTrafficLight(result)
// TrafficLightHMIManager.INSTANCE.updateTrafficLight(result)
CallTrafficLightListenerManager.invokeTrafficLightStatus(result)
},
{ errorMsg ->
@@ -99,6 +99,10 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 {
2_000L
)
}
if (TrafficLightHMIManager.INSTANCE.isWarningTrafficLightShow()) {
TrafficLightHMIManager.INSTANCE.hideTrafficLight()
CallTrafficLightListenerManager.resetTrafficLightData()
}
})
}
}, {

View File

@@ -9,7 +9,7 @@ import java.io.Serializable
* 不建议自己初始化此对象,建议使用 CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo();
*
*/
class AutopilotStatusInfo : Serializable {
open class AutopilotStatusInfo : Serializable, Cloneable {
/**
* 当前链接的IP地址, 默认地址 192.168.1.102
*/
@@ -20,6 +20,7 @@ class AutopilotStatusInfo : Serializable {
*/
var connectPort: Int = 4110
var connectStatus = false
/**
* 工控机连接状态文字描述
*/
@@ -74,11 +75,23 @@ class AutopilotStatusInfo : Serializable {
*/
var pilotmode = 0
// 默认未连接
var ipcConnStatus = 0x01
override fun toString(): String {
return "AutopilotStatusInfo(connectIP=$connectIP, connectPort=$connectPort, " +
return "connectIP=$connectIP, connectPort=$connectPort, " +
"connectStatus=$connectStatus, connectDescribe=$connectStatusDescribe, version=$version, dockVersion=$dockVersion," +
" locationStatus=$locationStatus), locationLat=$locationLat, locationLon=$locationLon," +
" satelliteTime=$satelliteTime, speed=$speed, state=$state, reason=$reason, camera=$camera," +
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode)"
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus"
}
public override fun clone(): AutopilotStatusInfo {
try {
return super.clone() as AutopilotStatusInfo
} catch (e: Exception) {
e.printStackTrace()
}
return AutopilotStatusInfo()
}
}

View File

@@ -8,16 +8,20 @@ class ChainConstant {
const val CHAIN_LINK_ADAS = 1
const val CHAIN_LINK_LOG_CONNECT_STATUS = 0
const val CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT = 1
const val CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED = 2
const val CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY = 3
const val CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE = 4
const val CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO = 1
const val CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT = 2
const val CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED = 3
const val CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY = 4
const val CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE = 5
const val CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT = 6
const val CHAIN_LINK_LOG_ADAS_INIT = "-adasInitStatus"
const val CHAIN_LINK_LOG_ADAS_INIT = "-eagleInitStatus"
const val CHAIN_LINK_LOG_ADAS_GNSS = "-adasWsGnssInfo"
const val CHAIN_LINK_LOG_ADAS_AUTO = "-adasWsAutoPilot"
const val CHAIN_LINK_LOG_ADAS_DATA_TRACK = "-adasWsDataTrack"
const val CHAIN_LINK_LOG_ADAS_TRAJECTORY = "-adasWsTrajectory"
const val CHAIN_LINK_LOG_ADAS_VEHICLE = "-adasWsVehicle"
const val CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT = "-adasWsTrafficLight"
const val CHAIN_ALIAS_CODE_MULTI_CONNECT = "CHAIN_ALIAS_CODE_MULTI_CONNECT"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA = "PAD_ADAS_MESSAGE_AUTOPILOT_RECT_DATA"
@@ -29,8 +33,13 @@ class ChainConstant {
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN = "PAD_ADAS_MESSAGE_AUTOPILOT_GUARDIAN"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD = "PAD_ADAS_MESSAGE_AUTOPILOT_RECORD"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE = "PAD_ADAS_MESSAGE_AUTOPILOT_VEHICLE"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT = "PAD_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN = "PAD_ADAS_MESSAGE_AUTOPILOT_WARN"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST"
//operation by user
const val CHAIN_ALIAS_CODE_OCH_BUS_START_AUTOPILOT = "CHAIN_ALIAS_CODE_OCH_BUS_START_AUTOPILOT"
const val CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT = "CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT"

View File

@@ -34,12 +34,6 @@ interface IMoGoAutopilotProvider : IMoGoFunctionServerProvider {
*/
fun sendTrafficLightData(trafficLightResult: TrafficLightResult)
/**
* 发送json数据给 Autopilot 自动驾驶控制器
* 具体的json格式需要与@宋克难 进行沟通
*/
fun sendMessageToAutopilot(jsonString: String)
/**
* 结束自动驾驶
*/

View File

@@ -60,7 +60,7 @@ HOOK_LOG_VERSION=1.6.1
SERVICE_CHAIN_VERSION=1.1.0
################ 外部依赖引用 ################
# loglib
LOGLIB_VERSION=1.2.60
LOGLIB_VERSION=1.3.0
######## MogoAiCloudSDK Version ########
# 网络请求LOGLIB_VERSION
MOGO_NETWORK_VERSION=1.3.55

View File

@@ -1,17 +1,17 @@
package com.zhidao.support.adas.high;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_CONNECT_ADDRESS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_INIT;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_STATUS_CHANGE_REASON;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_BYTE;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_ADAS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNECT_STATUS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -730,6 +730,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*
* @return boolean
*/
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH,
paramIndexes = {-1},
clientPkFileName = "sn"
)
@Override
public boolean sendGlobalPathReq() {
MessagePad.GlobalPathReq req = MessagePad.GlobalPathReq
@@ -790,6 +798,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
* SystemCmdType。SYSTEMCMD_SHUT_DOWN 关机
* @return boolean
*/
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD,
paramIndexes = {0},
clientPkFileName = "sn"
)
@Override
public boolean sendSystemCmdReq(@NonNull MessagePad.SystemCmdType type) {
MessagePad.SystemCmdReq.Builder builder = MessagePad.SystemCmdReq.newBuilder();

View File

@@ -16,4 +16,6 @@ public class AdasChain {
//operation by user
public static final String CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT = "CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT";
public static final String CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH = "CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH";
public static final String CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD = "CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD";
}

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="dp_12">12px</dimen>
<dimen name="dp_20">20px</dimen>
<dimen name="module_v2n_tip_text_margin_right">26px</dimen>
<dimen name="warning_distance_right">30px</dimen>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="dp_12">12px</dimen>
<dimen name="dp_32">42px</dimen>
<dimen name="module_v2n_tip_width">628px</dimen>
<dimen name="module_v2n_tip_height">188px</dimen>