[6.5.0][道路事件] 经纬度弄反了,导致绘制不可见

This commit is contained in:
renwj
2024-07-08 20:47:16 +08:00
parent e0aa56d32c
commit 5bfb239e6e
7 changed files with 68 additions and 25 deletions

View File

@@ -0,0 +1,124 @@
package com.mogo.functions.test
import android.text.TextUtils
import android.util.Log
import androidx.test.core.app.ActivityScenario
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.config.FunctionBuildConfig
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager
import com.mogo.eagle.core.function.main.MainLauncherActivity
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils
import com.mogo.map.MapDataWrapper
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
import mogo.telematics.pad.MessagePad
import mogo.telematics.pad.MessagePad.V2nCrossSpeed
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import java.util.concurrent.TimeUnit
@RunWith(AndroidJUnit4::class)
@LargeTest
class V2NTest {
companion object {
private const val TAG = "GreenWaveTest"
}
lateinit var launch: ActivityScenario<MainLauncherActivity>
@Before
fun before() {
launch = ActivityScenario.launch(MainLauncherActivity::class.java)
}
@Test
fun testGreenWave(): Unit = runBlocking {
val arguments = InstrumentationRegistry.getArguments()
val millis = arguments.getString("delay", "0").toLong()
if (millis > 0) {
delay(millis)
}
var location = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
val distance = arguments.getString("distance", "0").toDouble()
var newPoint = DrivingDirectionUtils.calculateNewPoint(location.longitude, location.latitude, location.heading, distance)
var crossInfo = MapDataWrapper.getCrossRoad(newPoint.first, newPoint.second, location.heading)
while (crossInfo == null || TextUtils.isEmpty(crossInfo.cross_id) || TextUtils.isEmpty(crossInfo.cross_id_end)) {
Log.d(TAG, "获取到的路口数据无效, 5秒后重试")
delay(TimeUnit.SECONDS.toMillis(5))
Log.d(TAG, "5秒时间到开始计算新的路口数据")
location = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
newPoint = DrivingDirectionUtils.calculateNewPoint(location.longitude, location.latitude, location.heading, distance)
crossInfo = MapDataWrapper.getCrossRoad(newPoint.first, newPoint.second, location.heading)
}
Log.d(TAG, "获取到路口数据...")
FunctionBuildConfig.isNewV2NData = true
FunctionBuildConfig.v2nMainSwitch = true
CallerV2nNioEventListenerManager.invokeV2nNioGreenWavePassageEvent(
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())
delay(TimeUnit.MINUTES.toMillis(10))
}
@Test
fun testPeopleCross(): Unit = runBlocking {
val arguments = InstrumentationRegistry.getArguments()
val millis = arguments.getString("delay", "0").toLong()
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
val eventId = "xxxxxxxxxxxxx"
for (i in 0 until 500) {
CallerV2nNioEventListenerManager.invokeV2nNioCrossoverEvent(
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\" }")
.build())
delay(50)
newPoint = DrivingDirectionUtils.calculateNewPoint(targetX, targetY, targetHeading, 0.5)
}
delay(TimeUnit.MINUTES.toMillis(10))
}
}