[6.5.0][道路事件] 逻辑优化

This commit is contained in:
renwj
2024-07-12 19:26:25 +08:00
parent dce9797ef0
commit 3b420253d8
10 changed files with 91 additions and 47 deletions

View File

@@ -7,8 +7,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.platform.app.InstrumentationRegistry
import com.google.protobuf.ByteString
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.multidisplay.TelematicConstant
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager
@@ -125,6 +128,9 @@ class V2NTest {
val polygon = generateTriangle(point.first, point.second, car.heading, r * 1e-5)
val data = TrackedObject.getDefaultInstance().toBuilder().setType(13).setLongitude(point.first).setLatitude(point.second).setAltitude(0.0).setSystemTime(System.currentTimeMillis() * 1.0 / 1000).setSatelliteTime(1.0).setUuid(10).setCarID("1").setColor("#ffffff").setHeading(car.heading).setSpeed(0.0).setDrawLevel(1).setDriverTime(1.0).setCameraIp("172.18.7.40").setVideoUrl("").addAllImageUrl(Collections.singletonList("http://www.baidu.com")).addAllPolygon(polygon.map { Location.getDefaultInstance().toBuilder().setLongitude(it.first).setLatitude(it.second).setAltitude(0.0).setHeading(0.0).setStation(false).build() }).setDetectStartTime(System.currentTimeMillis()).setV2XUuid("xxxxx1").setStrUuid("xxxxx2").build()
val trafficData = Collections.singletonList(data)
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(AutopilotControlParameters().also {
it.autoPilotLine = AutoPilotLine(10L, "", "","", "", System.currentTimeMillis(), "")
})
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_SHI_GU, data.toByteArray())
CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate(trafficData)
delay(TimeUnit.MINUTES.toMillis(10))
@@ -185,6 +191,9 @@ class V2NTest {
delay(2000)
val data = V2nCrossSpeed.getDefaultInstance().toBuilder().setSpeedLeftMin(0).setSpeedLeftMax(0).setSpeedRightMin(0).setSpeedRightMax(0).setSpeedStraightMin(30).setSpeedStraightMax(54).setMaxSpeed(0).setMaxStatus(0).setLng(newPoint.first).setLat(newPoint.second).build()
CallerV2nNioEventListenerManager.invokeV2nNioGreenWavePassageEvent(data)
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(AutopilotControlParameters().also {
it.autoPilotLine = AutoPilotLine(10L, "", "","", "", System.currentTimeMillis(), "")
})
while (!CallerTelematicManager.getServerStarted()) {
Log.d(TAG , "乘客屏未连接, 2秒后重试...")
delay(2000)
@@ -202,21 +211,6 @@ class V2NTest {
if (millis > 0) {
delay(millis)
}
val targetX = arguments.getString("lon", "0").toDouble()
val targetY = arguments.getString("lat", "0").toDouble()
val targetHeading = arguments.getString("angle", "0").toDouble()
val targetDistance = arguments.getString("distance", "0").toDouble()
var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
while (distance > targetDistance) {
delay(2000)
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
}
Log.d(TAG, "2 -- > target_distance: $targetDistance, current distance: $distance")
var newPoint = DrivingDirectionUtils.calculateNewPoint(targetX, targetY, targetHeading, targetDistance)
Log.d(TAG, "location:[x:${targetX}, y:${targetY}, new_location:[x:${newPoint.first}, y:${newPoint.second}]")
FunctionBuildConfig.isNewV2NData = true
FunctionBuildConfig.v2nMainSwitch = true
runCatching {
@@ -228,13 +222,34 @@ class V2NTest {
}
delay(2000)
val targetX = arguments.getString("lon", "0").toDouble()
val targetY = arguments.getString("lat", "0").toDouble()
val targetHeading = arguments.getString("angle", "0").toDouble()
val targetDistance = arguments.getString("distance", "0").toDouble()
val eventDistance = arguments.getString("event_distance", "60").toDouble()
var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
while (distance > targetDistance) {
delay(2000)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
}
Log.d(TAG, "2 -- > target_distance: $targetDistance, current distance: $distance")
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
var newPoint = DrivingDirectionUtils.calculateNewPoint(car.longitude, car.latitude, car.heading , eventDistance)
Log.d(TAG, "location:[x:${targetX}, y:${targetY}, new_location:[x:${newPoint.first}, y:${newPoint.second}]")
val eventId = "xxxxxxxxxxxxx"
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(AutopilotControlParameters().also {
it.autoPilotLine = AutoPilotLine(10L, "", "","", "", System.currentTimeMillis(), "")
})
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).setGnssType(2).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()
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_PEOPLE_CROSS, data.toByteArray())
CallerV2nNioEventListenerManager.invokeV2nNioCrossoverEvent(data)
delay(50)
newPoint = DrivingDirectionUtils.calculateNewPoint(targetX, targetY, targetHeading, 1.0)
newPoint = DrivingDirectionUtils.calculateNewPoint(newPoint.first, newPoint.second, targetHeading, 0.1)
}
delay(TimeUnit.MINUTES.toMillis(10))
}
@@ -246,21 +261,6 @@ class V2NTest {
if (millis > 0) {
delay(millis)
}
val targetX = arguments.getString("lon", "0").toDouble()
val targetY = arguments.getString("lat", "0").toDouble()
val targetHeading = arguments.getString("angle", "0").toDouble()
val targetDistance = arguments.getString("distance", "0").toDouble()
var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
while (distance > targetDistance) {
delay(2000)
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
}
Log.d(TAG, "2 -- > target_distance: $targetDistance, current distance: $distance")
var newPoint = DrivingDirectionUtils.calculateNewPoint(targetX, targetY, targetHeading, targetDistance)
Log.d(TAG, "location:[x:${targetX}, y:${targetY}, new_location:[x:${newPoint.first}, y:${newPoint.second}]")
FunctionBuildConfig.isNewV2NData = true
FunctionBuildConfig.v2nMainSwitch = true
runCatching {
@@ -271,13 +271,34 @@ class V2NTest {
CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, GsonUtils.toJson(map).toByteArray())
}
delay(2000)
val targetX = arguments.getString("lon", "0").toDouble()
val targetY = arguments.getString("lat", "0").toDouble()
val targetHeading = arguments.getString("angle", "0").toDouble()
val targetDistance = arguments.getString("distance", "0").toDouble()
val eventDistance = arguments.getString("event_distance", "60").toDouble()
var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
while (distance > targetDistance) {
delay(2000)
Log.d(TAG, "target_distance: $targetDistance, current distance: $distance")
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY)
}
car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
Log.d(TAG, "2 -- > target_distance: $targetDistance, current distance: $distance")
var newPoint = DrivingDirectionUtils.calculateNewPoint(car.longitude, car.latitude, car.heading , eventDistance)
Log.d(TAG, "location:[x:${targetX}, y:${targetY}, new_location:[x:${newPoint.first}, y:${newPoint.second}]")
val eventId = "yyyyyyyyyyyyy"
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(AutopilotControlParameters().also {
it.autoPilotLine = AutoPilotLine(10L, "", "","", "", System.currentTimeMillis(), "")
})
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).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)
newPoint = DrivingDirectionUtils.calculateNewPoint(targetX, targetY, targetHeading, 1.0)
newPoint = DrivingDirectionUtils.calculateNewPoint(newPoint.first, newPoint.second, targetHeading, 1.0)
}
delay(TimeUnit.MINUTES.toMillis(10))
}