[6.1.0] fix bug of traffic light and v2n biz , plus change the range cross
This commit is contained in:
@@ -118,7 +118,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
|
||||
"$M_V2X$TAG",
|
||||
"路口经度为:${trafficLightResult.lon},纬度为:${trafficLightResult.lat};车的经度为:${it.longitude},纬度为:${it.latitude};两点距离为:${distance}"
|
||||
)
|
||||
val remainTime = trafficLightStatus.remain
|
||||
val remainTime = trafficLightStatus.time()
|
||||
val arriveTime = distance / speed
|
||||
CallerLogger.d(
|
||||
"$M_V2X$TAG",
|
||||
@@ -235,7 +235,7 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
|
||||
EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType),
|
||||
speed
|
||||
)
|
||||
if (content.isNullOrEmpty() || tts.isNullOrEmpty()) {
|
||||
if (content.isEmpty() || tts.isEmpty()) {
|
||||
Log.d("MsgBox-RedLightWarManaG", "alertContent或ttsContent为空!")
|
||||
}
|
||||
CallerMsgBoxManager.saveMsgBox(
|
||||
@@ -263,8 +263,8 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
|
||||
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
|
||||
}
|
||||
|
||||
override fun onChassisLocationGCJ02(gnssInfo: MogoLocation?) {
|
||||
gnssInfo?.let {
|
||||
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
|
||||
mogoLocation?.let {
|
||||
mLocation = it
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,9 +41,7 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
|
||||
private var roadIDResult: RoadIDResult? = null
|
||||
@Volatile
|
||||
private var trafficLightResult: TrafficLightResult? = null
|
||||
|
||||
@Volatile
|
||||
private var mCross: Boolean = false
|
||||
private var inRange: Boolean = false
|
||||
@Volatile
|
||||
private var firstLoopCrossRoad: Boolean = true //开启循环请求路口
|
||||
@@ -125,7 +123,9 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
|
||||
|
||||
override fun onRoadChange(cross: Boolean) {
|
||||
super.onRoadChange(cross)
|
||||
mCross = cross
|
||||
if(!cross){
|
||||
outOfCrossRange()
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkOutOfRange() {
|
||||
@@ -133,24 +133,34 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener,
|
||||
roadIDResult?.let {
|
||||
// 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null
|
||||
if (trafficLightResult != null && it.isInRange(loc.latitude, loc.longitude)) {
|
||||
if(inRange){
|
||||
return
|
||||
}
|
||||
inRange = true
|
||||
// CallerLogger.d(M_V2X + TAG, "进入路口")
|
||||
CallerLogger.d(M_V2X + TAG, "进入路口")
|
||||
CallerTrafficLightListenerManager.invokeEnterCrossRoad(true)
|
||||
return
|
||||
}
|
||||
if (inRange || !mCross) {
|
||||
// CallerLogger.d(M_V2X + TAG, "离开路口")
|
||||
CallerTrafficLightListenerManager.invokeEnterCrossRoad(false)
|
||||
inRange = false
|
||||
trafficLightResult = null
|
||||
firstLoopCrossRoad = true
|
||||
mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT)
|
||||
CallerTrafficLightListenerManager.resetTrafficLightStatus()
|
||||
if (inRange) {
|
||||
outOfCrossRange()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun outOfCrossRange(){
|
||||
CallerLogger.d(M_V2X + TAG, "离开路口 , inRange:$inRange")
|
||||
if(!inRange){
|
||||
return
|
||||
}
|
||||
CallerTrafficLightListenerManager.invokeEnterCrossRoad(false)
|
||||
inRange = false
|
||||
trafficLightResult = null
|
||||
firstLoopCrossRoad = true
|
||||
mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT)
|
||||
CallerTrafficLightListenerManager.resetTrafficLightStatus()
|
||||
}
|
||||
|
||||
fun getRoadResult(): RoadIDResult? {
|
||||
return roadIDResult
|
||||
}
|
||||
|
||||
@@ -123,6 +123,7 @@ class AiRoadMarker {
|
||||
}
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
private fun realMark(
|
||||
marker: Marker,
|
||||
wrapper: MarkerWrapper,
|
||||
@@ -212,6 +213,7 @@ class AiRoadMarker {
|
||||
aiMakers.remove(id)
|
||||
}
|
||||
MarkerRemoveManager.addMarker(wrapper)
|
||||
countDown.set(0)
|
||||
}
|
||||
|
||||
private fun removeLine() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.currentRoadTrafficLight
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.isGreen
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.time
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_VIP
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2N
|
||||
import com.mogo.eagle.core.data.enums.CommunicationType
|
||||
@@ -34,6 +35,7 @@ import com.mogo.eagle.function.biz.v2x.trafficlight.core.MogoTrafficLightManager
|
||||
import com.mogo.eagle.function.biz.v2x.v2n.utils.V2XEventAnalyticsManager
|
||||
import com.mogo.eagle.function.biz.v2x.vip.network.VipNetWorkModel
|
||||
import com.zhjt.service_biz.BizConfig
|
||||
import kotlin.math.abs
|
||||
|
||||
class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListener,
|
||||
Handler.Callback {
|
||||
@@ -133,7 +135,7 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
|
||||
if (!turnLight) {
|
||||
// 首次判断,变灯
|
||||
turnLight = true
|
||||
val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45
|
||||
val controlTime = if (currentResult!!.isGreen()) 45 - abs(currentResult.time()) else 45
|
||||
turnLight(controlTime)
|
||||
}
|
||||
|
||||
|
||||
@@ -293,10 +293,10 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
"updateTrafficLight ----- currentTrafficLight = $currentTrafficLight"
|
||||
)
|
||||
currentTrafficLight?.let {
|
||||
val remain = if (it.remain > 99) {
|
||||
val remain = if (it.time() > 99) {
|
||||
99
|
||||
} else {
|
||||
it.remain
|
||||
it.time()
|
||||
}
|
||||
onTrafficLightPlusSource(it.convert(), remain, DataSourceType.AICLOUD)
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.autopilot.pnc.PncActionsHelper
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.currentRoadTrafficLight
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.isRed
|
||||
import com.mogo.eagle.core.data.biz.trafficlight.time
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_PNC_ACTIONS
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.FOUNDATION
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener
|
||||
@@ -137,7 +138,7 @@ class PncActionsView @JvmOverloads constructor(
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight() != null
|
||||
&& mTrafficLightResult!!.currentRoadTrafficLight()!!.isRed()
|
||||
) {
|
||||
mTrafficLightResult!!.currentRoadTrafficLight()!!.remain.toString()
|
||||
mTrafficLightResult!!.currentRoadTrafficLight()!!.time().toString()
|
||||
} else {
|
||||
""
|
||||
}
|
||||
|
||||
@@ -18,13 +18,13 @@ fun TrafficLightResult.toTrafficLightDetail():MessagePad.TrafficLightDetail{
|
||||
if(this.laneList != null){
|
||||
left.phaseNo = this.laneList.left.phaseNo
|
||||
left.color = this.laneList.left.color
|
||||
left.remain = this.laneList.left.remain
|
||||
left.remain = this.laneList.left.time()
|
||||
mid.phaseNo = this.laneList.mid.phaseNo
|
||||
mid.color = this.laneList.mid.color
|
||||
mid.remain = this.laneList.mid.remain
|
||||
mid.remain = this.laneList.mid.time()
|
||||
right.phaseNo = this.laneList.right.phaseNo
|
||||
right.color = this.laneList.right.color
|
||||
right.remain = this.laneList.right.remain
|
||||
right.remain = this.laneList.right.time()
|
||||
}
|
||||
return trafficLightBuilder.build()
|
||||
}
|
||||
|
||||
@@ -25,13 +25,16 @@ fun TrafficLightStatus.turnRedAtOnce(): Boolean {
|
||||
return isFlashGreen() || isYellow()
|
||||
}
|
||||
|
||||
fun TrafficLightStatus.time():Int{
|
||||
return if(remain.contains("--") || remain.isEmpty()) -1 else remain.toInt()
|
||||
}
|
||||
|
||||
/**
|
||||
* 红绿灯路口具体灯态信息
|
||||
*/
|
||||
data class TrafficLightStatus(
|
||||
val phaseNo: String, //相位编号
|
||||
val color: String, //灯态: 红灯-R,绿灯-G,绿闪-FG,黄-Y,B-黑
|
||||
val remain: Int //倒计时-秒 todo 云端string类型 如果返回 -- 解析异常
|
||||
val remain: String //倒计时-秒 todo 云端string类型 如果返回 -- 解析异常
|
||||
) {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user