[V2X]AI云弱势交通预警未处理

This commit is contained in:
renwj
2022-05-06 17:50:07 +08:00
parent 3a9d7d6631
commit 4e003df875
2 changed files with 27 additions and 15 deletions

View File

@@ -11,7 +11,6 @@ import com.mogo.cloud.passport.IMoGoTokenCallback
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.network.ParamsUtil
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
import com.mogo.eagle.core.data.map.MogoLatLng
import com.mogo.eagle.core.data.map.MogoLocation
@@ -19,7 +18,6 @@ import com.mogo.eagle.core.data.traffic.TrafficData
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
@@ -44,6 +42,9 @@ import com.mogo.eagle.core.function.v2x.events.scenario.impl.V2XScenarioManager
import com.mogo.eagle.core.function.v2x.events.utils.*
import com.mogo.eagle.core.function.v2x.events.voice.V2XVoiceManager
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_V2X
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.Utils
@@ -60,13 +61,13 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener
import com.mogo.service.statusmanager.StatusDescriptor
import com.mogo.service.statusmanager.StatusDescriptor.ACC_STATUS
import com.mogo.service.statusmanager.StatusDescriptor.SEEK_HELPING
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.v2x.V2XManager
import com.mogo.v2x.callback.IV2XCallback
import com.mogo.v2x.config.V2XConfig
import com.mogo.v2x.data.V2XAdvanceWarning
import com.mogo.v2x.data.V2XMarkerCardResult
import com.mogo.v2x.data.V2XOptimalRoute
import com.mogo.v2x.data.V2XWarningTarget
import com.mogo.v2x.event.V2XEvent
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.shuyu.gsyvideoplayer.cache.CacheFactory
@@ -78,11 +79,10 @@ import com.shuyu.gsyvideoplayer.utils.GSYVideoType
import kotlinx.coroutines.*
import kotlinx.coroutines.android.asCoroutineDispatcher
import tv.danmaku.ijk.media.player.IjkMediaPlayer
import java.lang.Exception
import java.lang.IllegalStateException
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicBoolean
object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallback,
IMogoMapListener, IMogoStatusChangedListener {
@@ -449,10 +449,22 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
is V2XEvent.Road -> {
handleRoadMarkerEvent(event.data)
}
else -> throw IllegalStateException("invalid event type for $event")
is V2XEvent.Warning -> {
handleWarningTargetEvent(event.data)
}
}
}
private fun handleWarningTargetEvent(data: V2XWarningTarget) {
val v2xMessageEntity = V2XMessageEntity<V2XWarningTarget>()
v2xMessageEntity.type = V2XTypeEnum.ALERT_THE_FRONT_WEAKNESS
// 设置数据
v2xMessageEntity.content = data
val intent = Intent(BROADCAST_SCENE_HANDLER_ACTION)
intent.putExtra(BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity)
LocalBroadcastManager.getInstance(Utils.getApp()).sendBroadcast(intent)
}
private fun handleRoadMarkerEvent(data: V2XMarkerCardResult) {
try {
BridgeApi.v2xStatus()?.let {

View File

@@ -6,9 +6,7 @@ import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import androidx.annotation.Nullable;
import com.mogo.eagle.core.data.enums.WarningDirectionEnum;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener;
@@ -18,8 +16,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.function.v2x.events.scenario.impl.AbsV2XScenario;
import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.v2x.data.V2XWarningTarget;
import java.math.BigDecimal;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
@@ -32,7 +29,7 @@ import java.util.concurrent.TimeUnit;
public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoMapLocationListener, IMoGoWarningStatusListener {
private static final String TAG = "V2XWarningMarker";
private static final V2XWarningMarker sV2XWarningMarker = new V2XWarningMarker();
private V2XWarningEntity mMarkerEntity;
private V2XWarningTarget mMarkerEntity;
private WarningDirectionEnum mDirection;
@@ -45,8 +42,8 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoMapL
CallerLogger.INSTANCE.d(M_V2X + TAG, "----- init -----:\n" + (v2XMessageEntity == null ? "null" : v2XMessageEntity.toString()));
try {
setV2XMessageEntity(v2XMessageEntity);
if (v2XMessageEntity != null && v2XMessageEntity.getContent() instanceof V2XWarningEntity) {
mMarkerEntity = (V2XWarningEntity) v2XMessageEntity.getContent();
if (v2XMessageEntity != null && v2XMessageEntity.getContent() instanceof V2XWarningTarget) {
mMarkerEntity = (V2XWarningTarget) v2XMessageEntity.getContent();
show();
}
} catch (Exception e) {
@@ -67,19 +64,22 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoMapL
}
}
private int getV2XTypeForFrontWarning(V2XWarningEntity entity) {
private int getV2XTypeForFrontWarning(V2XWarningTarget entity) {
switch (entity.getType()) {
case 1:
case 11:
entity.setTts("注意行人");
return 0X2B0201;
case 2:
entity.setTts("注意自行车");
case 4:
entity.setTts("注意摩托车");
return 0X2B0202;
}
return 0;
}
private CharSequence getAlertContentForFrontWarning(V2XWarningEntity entity) {
private CharSequence getAlertContentForFrontWarning(V2XWarningTarget entity) {
double dis = entity.getDistance();
//距离四舍五入保留整数
BigDecimal bg = new BigDecimal(dis);