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