Merge remote-tracking branch 'origin/dev_robotaxi-d-app-module_270_220510_2.7.0' into dev_robotaxi-d-app-module_270_220510_2.7.0

This commit is contained in:
yangyakun
2022-05-24 18:55:45 +08:00
16 changed files with 235 additions and 29 deletions

View File

@@ -11,7 +11,7 @@
android:layout_width="@dimen/dp_630"
android:layout_height="@dimen/dp_630"
android:layout_marginLeft="-59px"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginTop="-40px"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@@ -22,6 +22,7 @@ import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.map.CenterLine;
import com.mogo.eagle.core.function.call.map.CallerHDMapManager;
import com.mogo.eagle.core.function.call.map.CallerSmpManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
@@ -447,6 +448,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
showOrHideNavi(false);
setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker);
setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker);
clearSmallMapRouteLine();
break;
case ArriveAtStart:
case UserArriveAtStart:
@@ -546,6 +548,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,mCurrentOrder.startSitePoint,R.raw.star_marker);
setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,mCurrentOrder.endSitePoint,R.raw.end_marker);
}
clearSmallMapRouteLine();
//提交取消订单后的回调
TipToast.tip("订单取消成功");
//更新界面
@@ -553,6 +556,10 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
showOrHideNavi(false);
}
private void clearSmallMapRouteLine() {
CallerSmpManager.clearPolyline();
}
/**
* 订单流转debug START
*/

View File

@@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.autopilot.adapter
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HdMapBuildConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD
@@ -33,10 +32,11 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListe
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager.invokeAutopilotCarStateData
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotWarnMessage
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotRotting
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotTrajectory
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPointCloudListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.zhidao.support.adas.high.AdasManager
@@ -241,6 +241,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
override fun onPointCloud(header: MessagePad.Header?, pointCloud: PointCloud.LidarPointCloud?) {
//点云数据透传
//Logger.d("pointCloud","pointCloud"+pointCloud);
CallerAutopilotPointCloudListenerManager.invokeAutopilotPointCloudDataUpdate(header,pointCloud)
}
override fun onBasicInfoReq(

View File

@@ -12,6 +12,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.mogo.toast.TipToast;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.module.common.constants.HostConst;
@@ -60,7 +61,7 @@ public class BindingcarNetWorkManager {
// String macAddress = "48:b0:2d:3a:bc:78";
// String sn = "X20202203105S688HZ";
Log.d("liyz", "getBindingcarInfo -- widevineIDWithMd5 = " + widevineIDWithMd5 + "--macAddress = " +macAddress + "--screenType = " + screenType);
Log.d("liyz", "getBindingcarInfo -- widevineIDWithMd5 = " + widevineIDWithMd5 + "--macAddress = " + macAddress + "--screenType = " + screenType);
BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType);
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
mBindingcarApiService.getBindingcarInfo(token, requestBody)
@@ -80,6 +81,8 @@ public class BindingcarNetWorkManager {
CallerHmiManager.INSTANCE.showBindingcarDialog();
} else if (info.getData().getCompare().equals("3")) {
CallerHmiManager.INSTANCE.showModifyBindingcarDialog();
} else if (info.getData().getCompare().equals("null")) {
TipToast.shortTip("当前工控机没有入库");
}
SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData()));

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.camera.CameraEntity
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths
import com.mogo.eagle.core.data.enums.SidePattern
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
@@ -57,6 +58,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -979,6 +981,7 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
override fun confirm() {
//确认升级
CallerBindingcarManager.getBindingcarProvider().upgradeConfirm(images, padSn, releaseId)
SharedPrefsMgr.getInstance(requireContext()).putBoolean(MoGoConfig.CONFIRM_UPGRADE,true)
adUpgradeDialog?.dismiss()
adUpgradeDialog = null
}

View File

@@ -550,6 +550,12 @@ class DebugSettingView @JvmOverloads constructor(
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = isChecked
}
//TODO
tbIsDrawPath.setOnCheckedChangeListener { _, isChecked ->
}
// 初始化 GSP数据源 数据
rgGpsProvider.check(
when (FunctionBuildConfig.gpsProvider) {
@@ -603,6 +609,13 @@ class DebugSettingView @JvmOverloads constructor(
}
//初始化点云数据渲染情况
tbDrawPointCloudData.isChecked = FunctionBuildConfig.isDrawPointCloudData
//是否渲染点云数据
tbDrawPointCloudData.setOnCheckedChangeListener { _, isChecked ->
FunctionBuildConfig.isDrawPointCloudData = isChecked
}
// 模拟自动驾驶中
tbChangeAutoPilotStatus.setOnCheckedChangeListener { _, isChecked ->
CallerAutoPilotManager.setControlAutopilotCarAuto(isChecked)

View File

@@ -77,13 +77,13 @@ public class SteeringWheelView extends ConstraintLayout {
steeringCircularV = findViewById(R.id.steering_circular);
steeringCircularV.setBackWidth(8);
steeringCircularV.setBackColor(R.color.hmi_light_back_bg);
steeringCircularV.setProgColor(R.color.hmi_light_blue, R.color.hmi_dark_blue);
steeringCircularV.setProgColor(R.color.hmi_dark_blue, R.color.hmi_light_blue);
steeringCircularV.setProgress((int) (180 * 100) / 360, 1000);
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
steeringCircularVAlpha = findViewById(R.id.steering_circular_alpha);
steeringCircularVAlpha.setBackWidth(8);
steeringCircularVAlpha.setBackColor(R.color.hmi_clear_00);
steeringCircularVAlpha.setProgColor(R.color.hmi_light_blue_alpha_00, R.color.hmi_light_blue_alpha_ff);
steeringCircularVAlpha.setProgColor(R.color.hmi_light_blue_alpha_ff, R.color.hmi_light_blue_alpha_00);
steeringCircularVAlpha.setBlurMaskFilter(BlurMaskFilter.Blur.NORMAL, 12);
steeringCircularVAlpha.setProgress((int) (180 * 100) / 360, 1000);
}

View File

@@ -9,6 +9,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper
import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.constants.MoGoConfig
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener
@@ -18,6 +19,7 @@ import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.AppUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -65,20 +67,20 @@ class SystemVersionView @JvmOverloads constructor(
//工控机版本视图点击事件
ivAdVersion.setOnClickListener {
CallerLogger.i("$M_HMI$$TAG", "ad version view clicked")
if(AdUpgradeStateHelper.isUpgradeableStatus()){
if(autopilotStatus == 2){
//当前处于自动驾驶状态不可进行升级Toast提示
ToastUtils.showShort("升级前请先退出自动驾驶模式")
}else{
dockerList?.let {
//弹窗提示,确认是否进行工控机升级
CallerHmiManager.showAdUpgradeDialog(it,
MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn,
""
)
}
}
}
// if(AdUpgradeStateHelper.isUpgradeableStatus()){
// if(autopilotStatus == 2){
// //当前处于自动驾驶状态不可进行升级Toast提示
// ToastUtils.showShort("升级前请先退出自动驾驶模式")
// }else{
// dockerList?.let {
// //弹窗提示,确认是否进行工控机升级
// CallerHmiManager.showAdUpgradeDialog(it,
// MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn,
// ""
// )
// }
// }
// }
ipcUpgradeStateInfo?.let {
when {
AdUpgradeStateHelper.isDownloading(it.status) -> {
@@ -124,6 +126,14 @@ class SystemVersionView @JvmOverloads constructor(
}
if(SharedPrefsMgr.getInstance(context).getBoolean(MoGoConfig.CONFIRM_UPGRADE,false)){
//将角标改为“下载中”
ivAdStatus?.setImageResource(R.drawable.icon_downloading)
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
//设置状态为不可升级
AdUpgradeStateHelper.setUpgradeableStatus(false)
}
}
/**
@@ -177,43 +187,42 @@ class SystemVersionView @JvmOverloads constructor(
ivAdStatus?.setImageResource(R.drawable.icon_latest_version)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
AdUpgradeStateHelper.isDownloadFinish(status) ->{
//升级中,将状态设为“升级中”角标,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
AdUpgradeStateHelper.isUpgrading(status) ->{
//升级中,将状态设为“升级中”角标,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
}
AdUpgradeStateHelper.isUpgrading(status) ->{
//升级中,将状态设为“升级中”角标,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_upgrading)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
AdUpgradeStateHelper.isUpgradeSuccess(status) -> {
//升级成功,将状态设为“最新版”角标,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_latest_version)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
AdUpgradeStateHelper.isUpgradeFailed(status) -> {
//升级失败,将状态设为“升级失败”角标,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_upgrade_failed)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
else -> {
//其他状态,均显示“最新版”,并隐藏进度条
ivAdStatus?.setImageResource(R.drawable.icon_latest_version)
adCircularProgressView?.visibility = View.GONE
ivAdVersion?.setBackgroundResource(R.drawable.version_latest_background)
SharedPrefsMgr.getInstance(context).putBoolean(MoGoConfig.CONFIRM_UPGRADE,false)
}
}
}

View File

@@ -1480,6 +1480,21 @@
app:layout_constraintLeft_toLeftOf="@id/tbIsDrawAutopilotTrajectoryData"
app:layout_constraintRight_toRightOf="@id/tbIsDrawAutopilotTrajectoryData"/>
<ToggleButton
android:id="@+id/tbDrawPointCloudData"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:padding="@dimen/dp_10"
android:textColor="#000"
android:textOff="开启渲染点云数据"
android:textOn="关闭渲染点云数据"
android:textSize="@dimen/dp_24"
app:layout_constraintTop_toBottomOf="@id/tbIsDrawAutopilotTrajectoryData"
app:layout_constraintLeft_toRightOf="@id/tbChangeAutoPilotStatus"
app:layout_constraintRight_toRightOf="parent"
/>
<RadioGroup
android:id="@+id/rgGpsProvider"
android:layout_width="match_parent"

View File

@@ -172,6 +172,7 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
// TODO 临时初始化地图监听工控机、OBU等数据监听器用于感知元素绘制
MapIdentifySubscriber.Companion.getInstance();
MapPointCloudSubscriber.Companion.getInstance();
}
@Override

View File

@@ -0,0 +1,49 @@
package com.mogo.eagle.core.function.map
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPointCloudListener
import com.mogo.eagle.core.function.api.base.IMoGoSubscriber
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPointCloudListenerManager
import com.zhidao.support.adas.high.common.PointCloudDecoder
import com.zhidaoauto.map.sdk.open.business.PointCloudHelper
import mogo.telematics.pad.MessagePad
import rule_segement.PointCloud
/**
* 订阅点云数据
* 数据来源工控机、OBU、云端下发
*
* @author donghongyu
*/
class MapPointCloudSubscriber private constructor() : IMoGoSubscriber, IMoGoAutopilotPointCloudListener {
private val TAG = "MapPointCloudSubscriber"
init {
onCrate()
}
companion object {
val instance: MapPointCloudSubscriber by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
MapPointCloudSubscriber()
}
}
override fun onCrate() {
CallerAutopilotPointCloudListenerManager.addListener(TAG, this)
}
override fun onDestroy() {
CallerAutopilotPointCloudListenerManager.removeListener(TAG)
}
override fun onAutopilotPointCloudDataUpdate(header: MessagePad.Header?, pointCloud: PointCloud.LidarPointCloud?) {
// 根据配置动态控制点云是否绘制
if (FunctionBuildConfig.isDrawPointCloudData) {
val data = PointCloudDecoder.decode(header, pointCloud)
val result = PointCloudHelper.updatePointCloudData(data, false, true, true)
//Logger.d(TAG, "result=$result")
}
}
}

View File

@@ -57,7 +57,7 @@ object FunctionBuildConfig {
*/
@Volatile
@JvmField
var isDrawIdentifyData = true
var isDrawIdentifyData = false
/**
* 地图是否绘制Adas识别回调的「未知类型」Marker
@@ -77,6 +77,15 @@ object FunctionBuildConfig {
@JvmField
var isDrawObuIdentifyData = true
/**
* 地图是否绘制 点云数据
* true - 绘制
* false - 不绘制
*/
@Volatile
@JvmField
var isDrawPointCloudData = true
/**
* 地图是否忽略判断条件直接绘制工控机引导线数据&全局路径规划
* 用于调试

View File

@@ -23,4 +23,6 @@ object MoGoConfig {
//根据加速度判断是否刹车阈值
const val BRAKE_ACCELERATION_THRESHOLD = "BRAKE_ACCELERATION_THRESHOLD"
const val CONFIRM_UPGRADE = "CONFIRM_UPGRADE"
}

View File

@@ -0,0 +1,20 @@
package com.mogo.eagle.core.function.api.autopilot
import mogo.telematics.pad.MessagePad
import rule_segement.PointCloud
/**
* @author xiaoyuzhou
* @date 2021/11/1 5:57 下午
* 感知识别回调
*/
interface IMoGoAutopilotPointCloudListener {
/**
* 点云数据
*
* @param pointCloud 点云数据
*/
fun onAutopilotPointCloudDataUpdate(header: MessagePad.Header?, pointCloud: PointCloud.LidarPointCloud?)
}

View File

@@ -0,0 +1,73 @@
package com.mogo.eagle.core.function.call.autopilot
import androidx.annotation.Nullable
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPointCloudListener
import com.mogo.eagle.core.function.call.base.CallerBase
import mogo.telematics.pad.MessagePad
import perception.TrafficLightOuterClass
import rule_segement.PointCloud
import java.util.concurrent.ConcurrentHashMap
/**
* @author xiaoyuzhou
* @date 2021/9/30 5:48 下午
* 点云数据管理
*/
object CallerAutopilotPointCloudListenerManager : CallerBase() {
// 存储所有注册了监听的对象invokeXXXX进行遍历回调将信息同步
private val M_AUTOPILOT_IDENTIFY_LISTENERS: ConcurrentHashMap<String, IMoGoAutopilotPointCloudListener> =
ConcurrentHashMap()
/**
* 添加 域控制器感知数据 监听
* @param tag 标记,用来注销监听使用
* @param listener 监听回调
*/
fun addListener(
@Nullable tag: String,
@Nullable listener: IMoGoAutopilotPointCloudListener
) {
if (M_AUTOPILOT_IDENTIFY_LISTENERS.containsKey(tag)) {
return
}
M_AUTOPILOT_IDENTIFY_LISTENERS[tag] = listener
}
/**
* 删除监听
* @param tag 标记,用来注销监听使用
*/
fun removeListener(@Nullable tag: String) {
if (!M_AUTOPILOT_IDENTIFY_LISTENERS.containsKey(tag)) {
return
}
M_AUTOPILOT_IDENTIFY_LISTENERS.remove(tag)
}
/**
* 删除自动驾驶按钮选中监听
* @param listener 要删除的监听对象
*/
fun removeListener(@Nullable listener: IMoGoAutopilotPointCloudListener) {
M_AUTOPILOT_IDENTIFY_LISTENERS.forEach {
if (it.value == listener) {
M_AUTOPILOT_IDENTIFY_LISTENERS.remove(it.key)
}
}
}
/**
* 识别交通元素数据发生更新 回调
*/
@Synchronized
fun invokeAutopilotPointCloudDataUpdate(header: MessagePad.Header?, pointCloud: PointCloud.LidarPointCloud?) {
M_AUTOPILOT_IDENTIFY_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onAutopilotPointCloudDataUpdate(header,pointCloud)
}
}
}

View File

@@ -82,7 +82,7 @@ MOGO_LOCATION_VERSION=1.3.59
MOGO_TELEMATIC_VERSION=1.3.59
######## MogoAiCloudSDK Version ########
# 自研地图
MAP_SDK_VERSION=2.1.1.2
MAP_SDK_VERSION=2.2.0.1
MAP_SDK_OPERATION_VERSION=1.0.13
# websocket
WEBSOCKET_VERSION=1.1.7