Merge branch 'dev_robotaxi-d-app-module_270_220510_2.7.0' into dev_robotaxi-d-app-module_270_passenger

This commit is contained in:
yangyakun
2022-05-16 20:06:34 +08:00
31 changed files with 319 additions and 113 deletions

View File

@@ -134,7 +134,8 @@ interface TaxiServiceApiNew {
*/
@Headers( {"Content-type:application/json;charset=UTF-8"} )
// @POST( "/autopilot-car-hailing/api/v1/driver/order/updateStatus" )
@POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" )
// @POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" )
@POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/driver/updateStatus" )
Observable<BaseData> updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket,@Body OrderStatusUpdateReqBean data);
/**

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

@@ -51,18 +51,14 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
@Override
public void getBindingcarInfo(String macAddress) {
mAddress = macAddress;
if (HmiBuildConfig.isShowSnBindingView) {
if (getScreenType() == 1) {
BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, getScreenType());
}
if (HmiBuildConfig.isShowSnBindingView) { //TODO 需要验证
// BindingcarNetWorkManager.getInstance().getBindingcarInfo(mContext, macAddress, getScreenType());
}
}
@Override
public void modifyCarInfo(BindingcarCallBack callBack) {
if (getScreenType() == 1) {
BindingcarNetWorkManager.getInstance().modifyBindingcar(mAddress, callBack, getScreenType());
}
// BindingcarNetWorkManager.getInstance().modifyBindingcar(mAddress, callBack, getScreenType());
}
@@ -72,9 +68,9 @@ public class BindingcarProvider implements IMoGoBindingcarProvider {
screenType = 1; //司机屏
}
// if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
// screenType = 2; //乘客屏
// }
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
screenType = 2; //乘客屏
}
return screenType;
}

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import android.util.Log;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo;
import com.mogo.eagle.core.data.bindingcar.CarInfo;
@@ -14,6 +15,7 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory;
import com.mogo.eagle.core.network.utils.GsonUtil;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.DeviceIdUtils;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.module.common.constants.HostConst;
@@ -37,7 +39,7 @@ public class BindingcarNetWorkManager {
private static final String TAG = "BindingcarNetWorkManager";
private BindingcarNetWorkManager() {
mBindingcarApiService = MoGoRetrofitFactory.getInstance(HostConst.BINDING_SN_HOST)
mBindingcarApiService = MoGoRetrofitFactory.getInstance(HostConst.BINDING_SN_HOST_TEST)
.create(BindingcarApiService.class);
}
@@ -54,12 +56,17 @@ public class BindingcarNetWorkManager {
/**
* 获取绑定的车辆信息
* 获取绑定的车辆信息 TODO
*
* @param macAddress mac地址
*/
public void getBindingcarInfo(Context context, String macAddress, int screenType) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
String sn = DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp());
// String macAddress = "48:b0:2d:3a:bc:7";
// String sn = "X20202203105S688HZ";
// int screenType = 1;
Log.d("liyz", "getBindingcarInfo --- sn = " + sn + "--macAddress = " +macAddress + "--screenType = " + screenType);
BindingcarRequest request = new BindingcarRequest(macAddress, sn, screenType);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mBindingcarApiService.getBindingcarInfo(token, requestBody)
@@ -75,13 +82,13 @@ public class BindingcarNetWorkManager {
if (info != null && info.getData() != null) {
CallerLogger.INSTANCE.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString());
Log.d("liyz", "getBindingcarInfo onNext info.getData() =" + info.getData().toString() + "--compare = " + info.getData().getCompare());
if (info.getData().getCompare() == 0) {
if (info.getData().getCompare().equals(0)) {
CallerHmiManager.INSTANCE.showBindingcarDialog();
} else if (info.getData().getCompare() == 3) {
} else if (info.getData().getCompare().equals(3)) {
CallerHmiManager.INSTANCE.showModifyBindingcarDialog();
}
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.data));
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData()));
}
}
@@ -93,6 +100,7 @@ public class BindingcarNetWorkManager {
@Override
public void onComplete() {
Log.d("liyz", "getBindingcarInfo onComplete -------- ");
}
});
@@ -103,7 +111,9 @@ public class BindingcarNetWorkManager {
* mac: 48:b0:2d:3a:9c:19
*/
public void modifyBindingcar(String macAddress, BindingcarCallBack callBack, int screenType) {
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
// String sn = MoGoAiCloudClientConfig.getInstance().getSn();
String sn = DeviceIdUtils.getWidevineIDWithMd5(AbsMogoApplication.getApp());
Log.d("liyz", "modifyBindingcar --- sn = " + sn + "---macAddress = " + macAddress);
BindingcarRequest request = new BindingcarRequest(macAddress, sn, screenType);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mBindingcarApiService.modifyBindingcarInfo(token, requestBody)
@@ -120,6 +130,8 @@ public class BindingcarNetWorkManager {
callBack.callBackResult(info);
CallerLogger.INSTANCE.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString());
Log.d("liyz", "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString());
} else {
Log.e("liyz", "modifyBindingcar info == null");
}
}

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

@@ -51,7 +51,8 @@ class ModifyBindingCarDialog(context: Context) : BaseFloatDialog(context), Lifec
*/
fun modifyBindingcar() {
CallerBindingcarManager.getBindingcarProvider().modifyCarInfo {
if (it.code == 200) {
Log.e("liyz", "it.code == ${it.code}" )
if (it.code != 205) {
TipToast.shortTip("修改绑定成功")
} else {
TipToast.shortTip("修改绑定失败")

View File

@@ -50,7 +50,7 @@ class ToBindingCarDialog(context: Context) : BaseFloatDialog(context), Lifecycle
*/
fun toBindingcar() {
CallerBindingcarManager.getBindingcarProvider().modifyCarInfo {
if (it.code == 200) {
if (it.code != 205) {
TipToast.shortTip("绑定成功")
} else {
TipToast.shortTip("绑定失败")

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

@@ -1,6 +1,7 @@
package com.mogo.eagle.core.data.bindingcar;
import java.io.Serializable;
import java.util.List;
/**
* @author lixiaopeng
@@ -8,24 +9,25 @@ import java.io.Serializable;
* @since 3/16/22
*/
public class CarInfo implements Serializable {
// compare为0 是表示车辆未绑定ipad sn
// compare为0 是表示车辆未绑定ipad sn
// compare为1 是表示车辆已绑定ipad sn 并且 与所传appsn一致
// compare为2 是表示cmdb车辆没有真实绑定ipad
// compare为3 是表示车辆已绑定ipad sn 并且 与所传appsn不一致
private int compare;
private String old_version;
private String vendor; //销售商
private String series; //类别
private String model; //款式
private String new_version;
private String brand; //品牌
private String energy_type; //驱动类型
private String compare;
private String old_version;
private String vendor; //销售商
private String series; //类别
private String model; //款式
private String new_version;
private String brand; //品牌
private String energy_type; //驱动类型
private List<String> passenger; //乘客数量
public int getCompare() {
public String getCompare() {
return compare;
}
public void setCompare(int compare) {
public void setCompare(String compare) {
this.compare = compare;
}
@@ -85,6 +87,14 @@ public class CarInfo implements Serializable {
this.energy_type = energy_type;
}
public List<String> getPassenger() {
return passenger;
}
public void setPassenger(List<String> passenger) {
this.passenger = passenger;
}
@Override
public String toString() {
return "CarInfo{" +
@@ -96,7 +106,7 @@ public class CarInfo implements Serializable {
", new_version='" + new_version + '\'' +
", brand='" + brand + '\'' +
", energy_type='" + energy_type + '\'' +
", passenger=" + passenger +
'}';
}
}

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

@@ -20,5 +20,7 @@ public class HostConst {
public static final String SOCKET_CENTER_DOMAIN = "socketRegion";
public static final String BINDING_SN_HOST = "https://mygateway.zhidaozhixing.com/cmdbapi/"; //中台提供的接口服务
public static final String BINDING_SN_HOST_TEST = "https://mygateway.zhidaozhixing.com/cmdbapitest/"; //中台提供的接口服务测试
}

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>