[Fix]解决美化模式时序问题

This commit is contained in:
chenfufeng
2022-09-21 12:14:05 +08:00
parent d27b42c0a8
commit f815c71c4d
2 changed files with 49 additions and 10 deletions

View File

@@ -344,7 +344,12 @@ class MoGoAutopilotProvider :
override fun setDemoMode(isEnable: Boolean) {
// 同步给乘客端
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
val byteArray = if (isEnable) byteArrayOf(1) else byteArrayOf(0)
val byteArray = if (isEnable) {
"1;${System.currentTimeMillis()}".toByteArray()
} else {
"0;${System.currentTimeMillis()}".toByteArray()
}
// val byteArray = if (isEnable) byteArrayOf(1) else byteArrayOf(0)
if (NSDNettyManager.getInstance().isServerStart) {
NSDNettyManager.getInstance()
.sendMsgToAllClients(
@@ -363,7 +368,11 @@ class MoGoAutopilotProvider :
override fun setIgnoreConditionDraw(isIgnore: Boolean) {
// 同步给乘客端
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
val byteArray = if (isIgnore) byteArrayOf(1) else byteArrayOf(0)
val byteArray = if (isIgnore) {
"1;${System.currentTimeMillis()}".toByteArray()
} else {
"0;${System.currentTimeMillis()}".toByteArray()
}
if (NSDNettyManager.getInstance().isServerStart) {
NSDNettyManager.getInstance()
.sendMsgToAllClients(

View File

@@ -41,6 +41,12 @@ class TeleMsgHandler : IMsgHandler {
@Volatile
private var isReceiveSN = false
@Volatile
private var demoModeTime = 0L
@Volatile
private var timestamp = 0L
override fun handleMsgFromServer(msg: MogoProtocolMsg?, channel: Channel?) {
msg?.let {
when (it.protocolType) {
@@ -57,11 +63,23 @@ class TeleMsgHandler : IMsgHandler {
}
}
MogoProtocolMsg.SYNC_MODE_STATUS -> {
FunctionBuildConfig.isDemoMode = when (it.body[0].toInt()) {
1 -> true
else -> false
val content = String(it.body)
if (content.contains(";")) {
val strArr = content.split(";")
if (strArr.size == 2) {
val currTime = strArr[1].toLong()
if (currTime > demoModeTime) {
FunctionBuildConfig.isDemoMode = when (strArr[0]) {
"1" -> true
else -> false
}
demoModeTime = currTime
invokeNettyConnResult("乘客屏收到的美化模式DemoMode为${FunctionBuildConfig.isDemoMode}")
} else {
invokeNettyConnResult("乘客屏收到过时的美化模式DemoMode为${FunctionBuildConfig.isDemoMode}")
}
}
}
invokeNettyConnResult("乘客屏收到的美化模式DemoMode为${FunctionBuildConfig.isDemoMode}")
}
MogoProtocolMsg.REQ_MAC_ADDRESS -> {
val carConfig = MessagePad.CarConfigResp.parseFrom(msg.body)
@@ -86,11 +104,23 @@ class TeleMsgHandler : IMsgHandler {
}
// 美化模式是否忽略条件直接绘制
11 -> {
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = when (it.body[0].toInt()) {
1 -> true
else -> false
val content = String(it.body)
if (content.contains(";")) {
val strArr = content.split(";")
if (strArr.size == 2) {
val currTime = strArr[1].toLong()
if (currTime > timestamp) {
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = when (strArr[0]) {
"1" -> true
else -> false
}
timestamp = currTime
invokeNettyConnResult("乘客屏收到的美化模式isIgnore为${FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData}")
} else {
invokeNettyConnResult("乘客屏收到过时的美化模式isIgnore为${FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData}")
}
}
}
invokeNettyConnResult("乘客屏收到的美化模式isIgnore为${FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData}")
}
else -> {
}