Merge remote-tracking branch 'origin/dev_minibus-d_230425_3.2.0' into dev_minibus-d_230425_3.2.0
This commit is contained in:
@@ -21,6 +21,7 @@ import com.mogo.eagle.core.function.datacenter.obu.drawer.*
|
||||
import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtilsNew
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
|
||||
import com.mogo.eagle.core.utilcode.util.ConvertUtils
|
||||
import com.mogo.support.obu.ObuScene
|
||||
import com.zhidao.support.obu.constants.MogoObuShowConstants
|
||||
import kotlin.math.roundToInt
|
||||
@@ -135,8 +136,10 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(rsiWarningData.warningMsgList[0].distance).toString(),
|
||||
Math.round(rsiWarningData.warningMsgList[0].eventRadius).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
rsiWarningData.warningMsgList[0].distance.roundToInt()),
|
||||
ConvertUtils.intToChinese(
|
||||
rsiWarningData.warningMsgList[0].eventRadius.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -224,7 +227,8 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(rsiWarningData.warningMsgList[0].distance).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
rsiWarningData.warningMsgList[0].distance.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -240,8 +244,10 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(rsiWarningData.warningMsgList[0].distance).toString(),
|
||||
Math.round(rsiWarningData.warningMsgList[0].eventRadius).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
rsiWarningData.warningMsgList[0].distance.roundToInt()),
|
||||
ConvertUtils.intToChinese(
|
||||
rsiWarningData.warningMsgList[0].eventRadius.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -255,7 +261,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener
|
||||
)
|
||||
ttsContent = String.format(
|
||||
EventTypeEnumNew.getWarningTts(appId),
|
||||
mLimitSpeed
|
||||
ConvertUtils.intToChinese(mLimitSpeed)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtils
|
||||
import com.mogo.eagle.core.utilcode.download.Config
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
|
||||
import com.mogo.eagle.core.utilcode.util.ConvertUtils
|
||||
import com.mogo.eagle.core.utilcode.util.FileUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.support.obu.ObuBase
|
||||
@@ -410,8 +411,10 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(data.warningMsgList[0].distance).toString(),
|
||||
Math.round(data.warningMsgList[0].eventRadius).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
data.warningMsgList[0].distance.roundToInt()),
|
||||
ConvertUtils.intToChinese(
|
||||
data.warningMsgList[0].eventRadius.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -506,7 +509,8 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(data.warningMsgList[0].distance).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
data.warningMsgList[0].distance.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -522,8 +526,10 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
)
|
||||
ttsContent = String.format(
|
||||
ttsContent,
|
||||
Math.round(data.warningMsgList[0].distance).toString(),
|
||||
Math.round(data.warningMsgList[0].eventRadius).toString()
|
||||
ConvertUtils.intToChinese(
|
||||
data.warningMsgList[0].distance.roundToInt()),
|
||||
ConvertUtils.intToChinese(
|
||||
data.warningMsgList[0].eventRadius.roundToInt())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -539,7 +545,7 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
)
|
||||
ttsContent = String.format(
|
||||
EventTypeEnumNew.getWarningTts(appId),
|
||||
mLimitSpeed
|
||||
ConvertUtils.intToChinese(mLimitSpeed)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,15 @@ package com.mogo.eagle.core.function.business.identify
|
||||
import android.os.Handler
|
||||
import android.os.Message
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.traffic.TrafficData
|
||||
import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isTaxi
|
||||
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler
|
||||
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import mogo.telematics.pad.MessagePad.TrackedObject
|
||||
import mogo.yycp.api.proto.SocketDownData
|
||||
@@ -31,15 +36,40 @@ object IdentifyFactory : Identify, IMoGoObuStatusListener {
|
||||
private var aiCloudIdentify: Identify? = null
|
||||
|
||||
init {
|
||||
identify = if (FunctionBuildConfig.isBeautyMode) {
|
||||
UserIdentify.beautifyDataDrawer
|
||||
} else {
|
||||
DriverIdentify.originDataDrawer
|
||||
val dockerVersion = getAutoPilotStatusInfo().dockVersion
|
||||
if (dockerVersion != null && dockerVersion.isNotEmpty()) {
|
||||
try {
|
||||
val version = ParseVersionUtils.parseVersion(true, dockerVersion)
|
||||
identify = if (version >= 30100 && isTaxi(FunctionBuildConfig.appIdentityMode)) {
|
||||
FunctionBuildConfig.isBeautyMode = false
|
||||
drawType("关闭感知优化模式")
|
||||
DriverIdentify.originDataDrawer
|
||||
} else {
|
||||
FunctionBuildConfig.isBeautyMode = true
|
||||
drawType("开启感知优化模式")
|
||||
UserIdentify.beautifyDataDrawer
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
drawType("解析docker异常:$dockerVersion")
|
||||
identify = UserIdentify.beautifyDataDrawer
|
||||
}
|
||||
}
|
||||
aiCloudIdentify = AiIdentify.aiCloudDataDrawer
|
||||
CallerObuWarningListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_LINK_INIT,
|
||||
endpoint = 4,
|
||||
nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
)
|
||||
private fun drawType(type: String) {
|
||||
|
||||
}
|
||||
|
||||
private const val MSG_DATA_TRACK = 0
|
||||
private const val MSG_DATA_AI_TRACK = 1
|
||||
private const val MSG_DATA_WARNING = 2
|
||||
@@ -57,12 +87,14 @@ object IdentifyFactory : Identify, IMoGoObuStatusListener {
|
||||
// 非感知美化优化模式,清除旧数据,使用 DriverIdentify originDataDrawer 原始数据绘制
|
||||
if (identify is IdentifyBeautifyDataDrawer) {
|
||||
identify!!.clearOldMarker()
|
||||
drawType("isBeautyMode 模式改变,关闭感知优化模式")
|
||||
identify = DriverIdentify.originDataDrawer
|
||||
}
|
||||
} else {
|
||||
// 感知优化模式,清除旧数据,使用 UserIdentify beautifyDataDrawer 优化数据
|
||||
if (identify is IdentifyOriginDataDrawer) {
|
||||
identify!!.clearOldMarker()
|
||||
drawType("isBeautyMode 模式改变,开启感知优化模式")
|
||||
identify = UserIdentify.beautifyDataDrawer
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,6 +131,7 @@ class IdentifyOriginDataDrawer : Identify {
|
||||
.removeMarker(uuid)
|
||||
}
|
||||
trafficDataUuidList.clear()
|
||||
mMarkersCaches.clear()
|
||||
WarningHelper.clear()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,21 +1,13 @@
|
||||
package com.mogo.eagle.core.function.business.identify;
|
||||
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS;
|
||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED;
|
||||
import static com.mogo.eagle.core.function.business.identify.TrackManager.LIMIT_SPEED;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.geometry.S2CellId;
|
||||
import com.mogo.eagle.core.utilcode.geometry.S2LatLng;
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils;
|
||||
import com.zhjt.service.chain.ChainLog;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
@@ -53,30 +45,9 @@ public class TrackObj {
|
||||
|
||||
private void correct() {
|
||||
calAverageSpeedAndType();
|
||||
String dockerVersion = CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getDockVersion();
|
||||
if (dockerVersion != null && !dockerVersion.isEmpty()) {
|
||||
try {
|
||||
int version = ParseVersionUtils.parseVersion(true, dockerVersion);
|
||||
if (version >= 310 && AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logErrorOfVersion(dockerVersion);
|
||||
}
|
||||
}
|
||||
calLoc();
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = 4,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
|
||||
paramIndexes = {0},
|
||||
clientPkFileName = "sn")
|
||||
private void logErrorOfVersion(String version) {
|
||||
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
private void calAverageSpeedAndType() {
|
||||
if (circleQueue.size() >= 3) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.view.View;
|
||||
|
||||
|
||||
@@ -759,4 +760,122 @@ public final class ConvertUtils {
|
||||
}
|
||||
return cn;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数字转换为汉字
|
||||
*
|
||||
* @param number
|
||||
* @return
|
||||
*/
|
||||
public static String intToChinese(int number) {
|
||||
String value = String.valueOf(number);
|
||||
SpannableStringBuilder spannable = new SpannableStringBuilder();
|
||||
int length = value.length();
|
||||
if (length > 1) {
|
||||
/**
|
||||
* 对于长度大于1的数,对首位进行赋值;
|
||||
* 对于两位数: 如果首位为“1”,则拼接的字符串为“”;
|
||||
*/
|
||||
spannable.append(getChinese(number / (int) Math.pow(10, length - 1), length))
|
||||
.append(getUnitChinese(length));
|
||||
// 如果该数值取余数为0,则直接返回已有字符(例如:100,直接返回一百)
|
||||
if (number % (int) Math.pow(10, length - 1) == 0) {
|
||||
return spannable.toString();
|
||||
}
|
||||
}
|
||||
// 数字为一位数
|
||||
if (length == 1) {
|
||||
spannable.append(getChinese(number, 1));
|
||||
}
|
||||
// 数字为两位数
|
||||
if (length == 2) {
|
||||
// 拼接个位的数值: 如果各位为“0”,则拼接的字符串为“”;
|
||||
spannable.append(getChinese(number % 10, 0));
|
||||
}
|
||||
// 数字为三位数
|
||||
if (length == 3) {
|
||||
if (number % 100 < 10) {
|
||||
spannable.append("零")
|
||||
.append(getChinese(number % 100, 3));
|
||||
} else {
|
||||
spannable.append(getChinese(number % 100 / 10, 3))
|
||||
.append("十")
|
||||
.append(getChinese(number % 10, 0));
|
||||
}
|
||||
}
|
||||
// 数字为四位数
|
||||
if (length == 4) {
|
||||
if (number % 1000 < 10) {
|
||||
spannable.append("零").append(getChinese(number % 1000, 3));
|
||||
} else if (number % 1000 < 100) {
|
||||
spannable.append("零")
|
||||
.append(getChinese(number % 1000 / 10, 3))
|
||||
.append("十")
|
||||
.append(getChinese(number % 10, 0));
|
||||
} else {
|
||||
number = number % 1000;
|
||||
spannable.append(intToChinese(number));
|
||||
}
|
||||
}
|
||||
return spannable.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据不同的情况获取对应的中文
|
||||
*
|
||||
* @param key
|
||||
* @param length
|
||||
* @return
|
||||
*/
|
||||
public static String getChinese(int key, int length) {
|
||||
switch (key) {
|
||||
case 1:
|
||||
if (length == 2) {
|
||||
return "";
|
||||
}
|
||||
return "一";
|
||||
case 2:
|
||||
return "二";
|
||||
case 3:
|
||||
return "三";
|
||||
case 4:
|
||||
return "四";
|
||||
case 5:
|
||||
return "五";
|
||||
case 6:
|
||||
return "六";
|
||||
case 7:
|
||||
return "七";
|
||||
case 8:
|
||||
return "八";
|
||||
case 9:
|
||||
return "九";
|
||||
case 0:
|
||||
if (length == 1) {
|
||||
return "零";
|
||||
}
|
||||
return "";
|
||||
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据数字的位数返回最大位数的单位
|
||||
*
|
||||
* @param length
|
||||
* @return
|
||||
*/
|
||||
public static String getUnitChinese(int length) {
|
||||
switch (length) {
|
||||
case 2:
|
||||
return "十";
|
||||
case 3:
|
||||
return "百";
|
||||
case 4:
|
||||
return "千";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ public class AMapWrapper implements IMogoMap {
|
||||
long time = markerOptionsArrayList.get(0).getTime();
|
||||
batchMarkerOptions.list = markerOptionsArrayList;
|
||||
batchMarkerOptions.delayStrategy = false;
|
||||
batchMarkerOptions.ruleAngle = FunctionBuildConfig.isBeautyMode ? 8.0f : 0f;
|
||||
batchMarkerOptions.ruleAngle = 8.0f;
|
||||
batchMarkerOptions.controlIcon = 1;
|
||||
batchMarkerOptions.satelliteTime = time;
|
||||
batchMarkerOptions.deleteRule = 0;
|
||||
@@ -172,7 +172,7 @@ public class AMapWrapper implements IMogoMap {
|
||||
// 最后一个参数,是否管理锚点的删除
|
||||
aiBatchMarkerOptions.list = markerOptionsArrayList;
|
||||
aiBatchMarkerOptions.delayStrategy = false;
|
||||
aiBatchMarkerOptions.ruleAngle = FunctionBuildConfig.isBeautyMode ? 8.0f : 0f;
|
||||
aiBatchMarkerOptions.ruleAngle = 8.0f;
|
||||
aiBatchMarkerOptions.controlIcon = 1;
|
||||
aiBatchMarkerOptions.satelliteTime = time;
|
||||
aiBatchMarkerOptions.deleteRule = 0;
|
||||
|
||||
Reference in New Issue
Block a user