[V2X]道路施工(AI云)事件代码逻辑优化
This commit is contained in:
160
app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt
Normal file
160
app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt
Normal file
@@ -0,0 +1,160 @@
|
||||
package com.mogo.functions.test
|
||||
|
||||
import android.os.*
|
||||
import androidx.test.core.app.*
|
||||
import androidx.test.ext.junit.runners.*
|
||||
import androidx.test.filters.*
|
||||
import com.mogo.eagle.core.function.hmi.ui.*
|
||||
import com.mogo.eagle.core.function.main.*
|
||||
import com.mogo.eagle.core.function.v2x.events.*
|
||||
import com.mogo.v2x.event.V2XEvent.RoadAI
|
||||
import kotlinx.coroutines.*
|
||||
import org.junit.*
|
||||
import org.junit.runner.*
|
||||
import roadwork.Road.*
|
||||
import java.util.concurrent.*
|
||||
import java.util.concurrent.TimeUnit.MILLISECONDS
|
||||
import java.util.concurrent.TimeUnit.SECONDS
|
||||
import kotlin.Result
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@LargeTest
|
||||
class RoadAITest {
|
||||
|
||||
lateinit var launch: ActivityScenario<MainLauncherActivity>
|
||||
|
||||
@Before
|
||||
fun before() {
|
||||
launch = ActivityScenario.launch(MainLauncherActivity::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun test() = runBlocking(Dispatchers.Default) {
|
||||
ensureMoGoHmiFragmentShow()
|
||||
val nanos = System.nanoTime()
|
||||
val child =
|
||||
RW_PB
|
||||
.newBuilder()
|
||||
.setHeader(
|
||||
Header
|
||||
.newBuilder()
|
||||
.setFrameId("rw")
|
||||
.setModuleName("ai_cloud")
|
||||
.setStamp(Time.newBuilder()
|
||||
.setSec(TimeUnit.NANOSECONDS.convert(nanos, SECONDS).toInt())
|
||||
.setNsec(180000000)
|
||||
.build())
|
||||
.build())
|
||||
.setRoadwork(
|
||||
Roadwork_PB
|
||||
.newBuilder()
|
||||
.setId("4e47e17d-4950-4c80-9b02-29a450e54b50")
|
||||
.setScore(95)
|
||||
.setDetectTime(nanos)
|
||||
.setPoiType(100061)
|
||||
.setType(1006)
|
||||
.setCenter(
|
||||
Center_PB
|
||||
.newBuilder()
|
||||
.setRoad(Road_PB
|
||||
.newBuilder()
|
||||
.setRoadId("200091")
|
||||
.setLaneNo("-2")
|
||||
.setTileId("556834853")
|
||||
.setBearing(156)
|
||||
.build())
|
||||
.setPoint(GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819533419884188)
|
||||
.setLon(112.57506466334905)
|
||||
.build())
|
||||
.build())
|
||||
.addPolygon(0, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819544927961125)
|
||||
.setLon(112.57503948748804)
|
||||
.build())
|
||||
.addPolygon(1, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.81953162903423)
|
||||
.setLon(112.57503758421541)
|
||||
.build())
|
||||
.addPolygon(2, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.81952255026517)
|
||||
.setLon(112.5750496963295)
|
||||
.build())
|
||||
.addPolygon(3, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819517691652617)
|
||||
.setLon(112.57507582382465)
|
||||
.build())
|
||||
.addPolygon(4, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819521911807858)
|
||||
.setLon(112.57508983920647)
|
||||
.build())
|
||||
.addPolygon(5, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819535210732194)
|
||||
.setLon(112.57509174248064)
|
||||
.build())
|
||||
.addPolygon(6, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.81954428950259)
|
||||
.setLon(112.5750796303722)
|
||||
.build())
|
||||
.addPolygon(7, GPSPoint_PB
|
||||
.newBuilder()
|
||||
.setLat(26.819549148117684)
|
||||
.setLon(112.57505350287552)
|
||||
.build())
|
||||
.addRoad(0, Road_PB
|
||||
.newBuilder()
|
||||
.setRoadId("200090")
|
||||
.setLaneNo("-2")
|
||||
.setTileId("556834853")
|
||||
.setBearing(154)
|
||||
.build())
|
||||
.addRoad(1, Road_PB
|
||||
.newBuilder()
|
||||
.setRoadId("200091")
|
||||
.setLaneNo("-2")
|
||||
.setTileId("556834853")
|
||||
.setBearing(156)
|
||||
.build())
|
||||
.build())
|
||||
.build()
|
||||
val event = RoadAI(data = child)
|
||||
while (true) {
|
||||
delay(1000)
|
||||
V2XEventManager.onAck(event)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private suspend fun ensureMoGoHmiFragmentShow(): MoGoHmiFragment = suspendCancellableCoroutine {
|
||||
launch.onActivity { itx ->
|
||||
val executor = Executors.newSingleThreadScheduledExecutor()
|
||||
executor.scheduleAtFixedRate({
|
||||
var find =
|
||||
itx.supportFragmentManager.fragments.find { it is MoGoHmiFragment } as? MoGoHmiFragment
|
||||
while (find == null) {
|
||||
find =
|
||||
itx.supportFragmentManager.fragments.find { it is MoGoHmiFragment } as? MoGoHmiFragment
|
||||
}
|
||||
while (!find.isResumed) {
|
||||
Thread.sleep(500)
|
||||
}
|
||||
it.resumeWith(Result.success(find))
|
||||
try {
|
||||
Thread.sleep(500)
|
||||
executor.shutdownNow()
|
||||
} catch (e: Throwable) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}, 50, 500, MILLISECONDS)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user