[6.5.0][道路事件] 优化exts字段解析,添加3d模型朝向控制

This commit is contained in:
renwj
2024-07-10 14:32:03 +08:00
parent 14acd4e883
commit 1233236c14
3 changed files with 32 additions and 33 deletions

View File

@@ -174,9 +174,9 @@ class V2NTest {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, GsonUtils.toJson(map).toByteArray())
}
delay(2000)
val eventId = "xxxxxxxxxxxxx"
val eventId = "yyyyyyyyyyyyy"
for (i in 0 until 500) {
val data = MessagePad.Event.getDefaultInstance().toBuilder().setLongitude(newPoint.first).setLatitude(newPoint.second).setEventId(eventId).setTimestamp(System.currentTimeMillis()).addAllTargetIds(emptyList()).addTargetIdsBytes(ByteString.EMPTY).addTargetIds("0").setExts("{ \"cameraIp\": \"172.18.7.40\",\"eventExtUnits\":[{\"heading\":266.5414733886719,\"uuid\":\"e440951e-5eb6-4091-8560-72a5d8aaf229\"}] }").build()
val data = MessagePad.Event.getDefaultInstance().toBuilder().setLongitude(newPoint.first).setLatitude(newPoint.second).setEventId(eventId).setTimestamp(System.currentTimeMillis()).addAllTargetIds(emptyList()).addTargetIdsBytes(ByteString.EMPTY).setGnssType(2).addTargetIds("0").setExts("{ \"cameraIp\": \"172.18.7.40\",\"eventExtUnits\":[{\"heading\":266.5414733886719,\"uuid\":\"e440951e-5eb6-4091-8560-72a5d8aaf229\"}] }").build()
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_OTHER_RETROGRADE_VEHICLE, data.toByteArray())
CallerV2nNioEventListenerManager.invokeV2nNioOtherRetrogradeEvent(data)
delay(50)

View File

@@ -46,8 +46,7 @@ import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.function.biz.v2x.V2XBizTrace
import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst
import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper
import com.mogo.eagle.function.biz.v2x.v2n.pnc.beans.Extras
import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker
import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker.Marker
import com.mogo.eagle.function.biz.v2x.v2n.utils.EventDismissBean
@@ -57,17 +56,12 @@ import com.mogo.eagle.function.biz.v2x.v2n.utils.V2NUtils
import com.mogo.eagle.function.biz.v2x.v2n.utils.V2XEventAnalyticsManager
import com.mogo.map.MapDataWrapper
import com.mogo.map.entities.Lane
import com.mogo.map.overlay.core.Level.MAP_MARKER
import com.mogo.map.overlay.point.Point
import mogo.telematics.pad.MessagePad
import mogo.telematics.pad.MessagePad.Header
import mogo.telematics.pad.MessagePad.TrackedObject
import mogo.telematics.pad.MessagePad.V2nCrossSpeed
import mogo.v2x.MogoV2X
import mogo.v2x.MogoV2X.RSI_PB
import mogo.v2x.MogoV2X.RTEData_PB
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.TimeUnit.SECONDS
import kotlin.math.abs
/**
@@ -323,21 +317,15 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "event == null"), true)
return@Callback true
}
val body = runCatching { GsonUtils.fromJson(event.exts, Map::class.java) }.getOrNull()
val cameraIp = body?.get("cameraIp") as? String ?: ""
val array = (body?.get("eventExtUnits") as? JsonArray)
val body = runCatching { GsonUtils.fromJson(event.exts, Extras::class.java) }.getOrNull()
val cameraIp = body?.cameraIp
val array = body?.eventExtUnits
var heading = 0.0
var uuid = ""
if (array != null && array.size() > 0) {
if (!array.isNullOrEmpty()) {
for (e in array) {
if (e is JsonObject) {
if (e.has("heading")) {
heading = runCatching { e.asDouble }.getOrNull() ?: 0.0
}
if (e.has("uuid")) {
uuid = runCatching { e.asString }.getOrNull() ?: ""
}
}
heading = e.heading ?: 0.0
uuid = e.uuid ?: ""
}
}
Logger.d(TAG, "cameraIp: $cameraIp, heading:$heading, uuid: $uuid")
@@ -406,21 +394,15 @@ internal object V2NIdentifyDrawer: IEventDismissListener {
} else if (msg.what == MSG_WHAT_DRAW_PEOPLE_CROSS) {
Logger.i(TAG, "people cross -- 1 --")
val data = msg.obj as? MessagePad.Event ?: return@Callback true
val body = runCatching { GsonUtils.fromJson(data.exts, Map::class.java) }.getOrNull()
val cameraIp = body?.get("cameraIp") as? String ?: ""
val array = (body?.get("eventExtUnits") as? JsonArray)
val body = runCatching { GsonUtils.fromJson(data.exts, Extras::class.java) }.getOrNull()
val cameraIp = body?.cameraIp
val array = body?.eventExtUnits
var heading = 0.0
var uuid = ""
if (array != null && array.size() > 0) {
if (!array.isNullOrEmpty()) {
for (e in array) {
if (e is JsonObject) {
if (e.has("heading")) {
heading = runCatching { e.asDouble }.getOrNull() ?: 0.0
}
if (e.has("uuid")) {
uuid = runCatching { e.asString }.getOrNull() ?: ""
}
}
heading = e.heading ?: 0.0
uuid = e.uuid ?: ""
}
}
Logger.d(TAG, "cameraIp: $cameraIp, heading:$heading, uuid: $uuid")

View File

@@ -0,0 +1,17 @@
package com.mogo.eagle.function.biz.v2x.v2n.pnc.beans
import androidx.annotation.Keep
@Keep
data class Extras (
val cameraIp: String? = null,
val eventExtUnits: List<EventExtUnit>? = null
)
@Keep
data class EventExtUnit(
val heading: Double? = null,
val uuid: String? = null
)