diff --git a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt index 48b547108e..2b1fda75fd 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt @@ -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) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 00e4cecc36..1422073312 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -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") diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt new file mode 100644 index 0000000000..a97cbff741 --- /dev/null +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt @@ -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? = null +) + + +@Keep +data class EventExtUnit( + val heading: Double? = null, + val uuid: String? = null +) \ No newline at end of file