[Feat]每10s司机屏同步一次数据到所有乘客屏

This commit is contained in:
chenfufeng
2022-09-23 14:36:35 +08:00
parent 4d0625d4c6
commit 1c2b42c5c8
3 changed files with 39 additions and 6 deletions

View File

@@ -54,6 +54,7 @@ import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants
import io.netty.channel.Channel
import mogo.telematics.pad.MessagePad
import java.util.*
import java.util.concurrent.TimeUnit
@@ -69,6 +70,7 @@ class MoGoAutopilotProvider :
private val TAG = "MoGoAutoPilotProvider"
private var mContext: Context? = null
private lateinit var msgHandler: IMsgHandler
private var timer: Timer? = null
override val functionName: String
get() = TAG
@@ -109,11 +111,25 @@ class MoGoAutopilotProvider :
override fun onStartServer() {
ToastUtils.showShort("司机端服务启动成功!")
if (timer == null) {
timer = Timer()
}
// 10s同步一次数据到乘客屏
timer!!.schedule(object : TimerTask() {
override fun run() {
// 同步是否开启美化模式
setDemoMode(FunctionBuildConfig.isDemoMode)
setIgnoreConditionDraw(FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData)
msgHandler.synMsgToAllClients()
}
}, 1000, 10000)
invokeNettyConnResult("司机端服务启动成功!")
}
override fun onStopServer() {
ToastUtils.showLong("司机端服务停止!")
timer?.cancel()
timer = null
invokeNettyConnResult("司机端服务停止!")
}
@@ -169,8 +185,6 @@ class MoGoAutopilotProvider :
CallerLogger.i("$M_ADAS_IMPL$TAG", "initServer……")
// 同步数据给工控机的服务
AsyncDataToAutopilotServer.INSTANCE.initServer()
// 同步是否开启美化模式
setDemoMode(FunctionBuildConfig.isDemoMode)
// 同步是否开启雨天模式
setRainMode(FunctionBuildConfig.isRainMode)
}

View File

@@ -17,4 +17,6 @@ interface IMsgHandler {
fun synWriteTime()
fun getTeleTimeStamp(): Long
fun synMsgToAllClients()
}

View File

@@ -110,10 +110,11 @@ class TeleMsgHandler : IMsgHandler {
if (strArr.size == 2) {
val currTime = strArr[1].toLong()
if (currTime > timestamp) {
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = when (strArr[0]) {
"1" -> true
else -> false
}
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData =
when (strArr[0]) {
"1" -> true
else -> false
}
timestamp = currTime
invokeNettyConnResult("乘客屏收到的美化模式isIgnore为${FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData}")
} else {
@@ -273,4 +274,20 @@ class TeleMsgHandler : IMsgHandler {
}
}
}
override fun synMsgToAllClients() {
if (NSDNettyManager.getInstance().isServerStart) {
val carConfig = AdasManager.getInstance().carConfig
if (carConfig != null) {
val configArray = carConfig.toByteArray()
NSDNettyManager.getInstance().sendMsgToAllClients(
MogoProtocolMsg(
MogoProtocolMsg.REQ_MAC_ADDRESS,
configArray.size, configArray
)
)
}
}
}
}