Merge remote-tracking branch 'origin/dev_MogoAP_eagle-1030_211020_8.0.14' into dev_MogoAP_eagle-1030_211020_8.0.14
This commit is contained in:
@@ -181,7 +181,7 @@ public class SmallMapDirectionView
|
||||
|
||||
@Override
|
||||
public void onLocationChanged(@Nullable MogoLocation location) {
|
||||
// Logger.d(TAG, "onCarLocationChanged2 :" + location.getLatitude()+":"+location.getLongitude());
|
||||
Logger.d(TAG, "onCarLocationChanged2 :" + location.getLatitude()+":"+location.getLongitude());
|
||||
LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude());
|
||||
//更新车辆位置
|
||||
if (mCarMarker != null) {
|
||||
@@ -217,10 +217,10 @@ public class SmallMapDirectionView
|
||||
clearPolyline();
|
||||
mCoordinatesLatLng.clear();
|
||||
}
|
||||
cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).build();
|
||||
cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).build();
|
||||
} else {
|
||||
//设置希望展示的地图缩放级别
|
||||
cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).zoom(zoomLevel).build();
|
||||
cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build();
|
||||
// mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, zoomLevel));
|
||||
}
|
||||
mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
|
||||
|
||||
@@ -20,7 +20,10 @@ import kotlin.math.floor
|
||||
class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener {
|
||||
|
||||
private var vip: Boolean = false
|
||||
private var isFirst = false
|
||||
// 是否第一次进入道路100m处
|
||||
private var isFirst = true
|
||||
// 是否已进入到路口(停止线处)
|
||||
private var isEnter = false
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -32,8 +35,8 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener {
|
||||
}
|
||||
|
||||
override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) {
|
||||
Logger.d(TAG, "处理路口交通数据。isFirst为:${isFirst}")
|
||||
if (isFirst) {
|
||||
Logger.d(TAG, "处理路口交通数据:是否是第一次处理:${isFirst}是否进入路口:${isEnter}")
|
||||
if (isFirst && !isEnter) {
|
||||
getCurrentRoadTrafficLight(trafficLightResult)?.let {
|
||||
handleRedLightWarning(it, trafficLightResult.flashYellow)
|
||||
}
|
||||
@@ -41,9 +44,12 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onEnterCrossRoad() {
|
||||
Logger.d(TAG, "进入路口")
|
||||
isFirst = true
|
||||
override fun onEnterCrossRoad(enter: Boolean) {
|
||||
Logger.d(TAG, "回调是否进入路口:$enter")
|
||||
isEnter = enter
|
||||
if (enter) {
|
||||
isFirst = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onVipSet(status: Boolean) {
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.mogo.eagle.core.data.trafficlight.TrafficLightDetail
|
||||
import com.mogo.eagle.core.function.api.trafficlight.ITrafficLightProvider
|
||||
import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst.Companion.MODULE_NAME
|
||||
import com.mogo.eagle.core.function.v2x.trafficlight.core.MogoTrafficLightManager
|
||||
import com.mogo.utils.logger.Logger
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_TRAFFIC_LIGHT)
|
||||
class TrafficLightProvider : ITrafficLightProvider {
|
||||
@@ -31,10 +30,18 @@ class TrafficLightProvider : ITrafficLightProvider {
|
||||
lightId: Int,
|
||||
crossingNo: String,
|
||||
heading: Double,
|
||||
controlTime: Int,
|
||||
onSuccess: (() -> Unit),
|
||||
onError: ((String) -> Unit)
|
||||
) {
|
||||
return MogoTrafficLightManager.INSTANCE.turnLightToGreen(lightId, crossingNo,heading,onSuccess, onError)
|
||||
return MogoTrafficLightManager.INSTANCE.turnLightToGreen(
|
||||
lightId,
|
||||
crossingNo,
|
||||
heading,
|
||||
controlTime,
|
||||
onSuccess,
|
||||
onError
|
||||
)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -121,12 +121,13 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 {
|
||||
// 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null
|
||||
if (trafficLightResult != null && it.isInRange(loc.latitude, loc.longitude)) {
|
||||
inRange = true
|
||||
Logger.d("arrowtest", "进入路口")
|
||||
CallTrafficLightListenerManager.invokeEnterCrossRoad()
|
||||
Logger.d(TAG, "进入路口")
|
||||
CallTrafficLightListenerManager.invokeEnterCrossRoad(true)
|
||||
return
|
||||
}
|
||||
if (inRange) {
|
||||
Logger.d("arrowtest", "离开路口")
|
||||
Logger.d(TAG, "离开路口")
|
||||
CallTrafficLightListenerManager.invokeEnterCrossRoad(false)
|
||||
inRange = false
|
||||
trafficLightResult = null
|
||||
mThreadHandler?.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT)
|
||||
@@ -148,10 +149,18 @@ class MogoTrafficLightManager : IMogoCarLocationChangedListener2 {
|
||||
lightId: Int,
|
||||
crossingNo: String,
|
||||
heading: Double,
|
||||
controlTime: Int,
|
||||
onSuccess: (() -> Unit),
|
||||
onError: ((String) -> Unit)
|
||||
) {
|
||||
trafficLightNetWorkModel.turnLightToGreen(lightId, crossingNo, heading, onSuccess, onError)
|
||||
trafficLightNetWorkModel.turnLightToGreen(
|
||||
lightId,
|
||||
crossingNo,
|
||||
heading,
|
||||
controlTime,
|
||||
onSuccess,
|
||||
onError
|
||||
)
|
||||
}
|
||||
|
||||
override fun onCarLocationChanged(latLng: MogoLatLng?) {
|
||||
|
||||
@@ -107,13 +107,14 @@ class TrafficLightNetWorkModel {
|
||||
lightId: Int,
|
||||
crossingNo: String,
|
||||
heading: Double,
|
||||
controlTime: Int,
|
||||
onSuccess: (() -> Unit),
|
||||
onError: ((String) -> Unit)
|
||||
) {
|
||||
request<BaseResponse<Any>> {
|
||||
val map = hashMapOf<String, String>()
|
||||
start {
|
||||
val trafficLightRequestData = ChangeLightRequestData(lightId, crossingNo, heading)
|
||||
val trafficLightRequestData = ChangeLightRequestData(lightId, crossingNo, heading, controlTime)
|
||||
map["sn"] = MoGoAiCloudClientConfig.getInstance().sn
|
||||
map["data"] = Gson().toJson(trafficLightRequestData)
|
||||
}
|
||||
|
||||
@@ -7,9 +7,7 @@ import android.os.Looper
|
||||
import android.os.Message
|
||||
import com.mogo.cloud.commons.utils.CoordinateUtils
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng
|
||||
import com.mogo.eagle.core.data.trafficlight.TrafficLightResult
|
||||
import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight
|
||||
import com.mogo.eagle.core.data.trafficlight.turnRedAtOnce
|
||||
import com.mogo.eagle.core.data.trafficlight.*
|
||||
import com.mogo.eagle.core.data.v2x.VipMessage
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener
|
||||
@@ -114,8 +112,9 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
|
||||
if (!turnLightFirst) {
|
||||
// 首次判断,变灯
|
||||
turnLightFirst = true
|
||||
Logger.d(TAG, "触发变灯")
|
||||
turnLight()
|
||||
val controlTime = if (currentResult!!.isGreen()) 45 - currentResult.remain else 45
|
||||
Logger.d(TAG, "触发变灯 , controlTime : $controlTime")
|
||||
turnLight(controlTime)
|
||||
}
|
||||
lastResult?.let {
|
||||
//如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗
|
||||
@@ -159,7 +158,7 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
|
||||
|
||||
private fun cancelVip() {
|
||||
vip = false
|
||||
if(handler.hasMessages(MSG_WHAT_VIP_CANCEL)){
|
||||
if (handler.hasMessages(MSG_WHAT_VIP_CANCEL)) {
|
||||
handler.removeMessages(MSG_WHAT_VIP_CANCEL)
|
||||
}
|
||||
CallerHmiManager.vipIdentification(false)
|
||||
@@ -203,12 +202,12 @@ class VipCarManager : IMogoOnMessageListener<VipMessage>, IMoGoTrafficLightListe
|
||||
})
|
||||
}
|
||||
|
||||
private fun turnLight() {
|
||||
private fun turnLight(controlTime: Int) {
|
||||
result?.let {
|
||||
MogoTrafficLightManager.INSTANCE.turnLightToGreen(
|
||||
it.lightId,
|
||||
it.crossId,
|
||||
mLocation!!.bearing.toDouble(), {
|
||||
mLocation!!.bearing.toDouble(), controlTime, {
|
||||
Logger.d(TAG, "变灯请求成功")
|
||||
}, { errorMsg ->
|
||||
Logger.e(TAG, "变灯请求失败 msg : $errorMsg")
|
||||
|
||||
@@ -4,6 +4,6 @@ class ChangeLightRequestData(
|
||||
val lightId: Int, //红绿灯ID
|
||||
val crossingNo: String, //路口ID
|
||||
val heading: Double, //行车航向角
|
||||
val action: String? = "" //保留字段,暂时没用
|
||||
val time: Int //控灯时间
|
||||
) {
|
||||
}
|
||||
@@ -12,7 +12,7 @@ interface IMoGoTrafficLightListener {
|
||||
/**
|
||||
* 车辆进入路口回调
|
||||
*/
|
||||
fun onEnterCrossRoad(){
|
||||
fun onEnterCrossRoad(enter:Boolean){
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ interface ITrafficLightProvider : IMoGoFunctionServerProvider {
|
||||
lightId: Int,
|
||||
crossingNo: String,
|
||||
heading: Double,
|
||||
controlTime:Int,
|
||||
onSuccess: (() -> Unit),
|
||||
onError: ((String) -> Unit)
|
||||
)
|
||||
|
||||
@@ -116,10 +116,10 @@ object CallTrafficLightListenerManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun invokeEnterCrossRoad(){
|
||||
fun invokeEnterCrossRoad(enter: Boolean) {
|
||||
M_TRAFFIC_LIGHT_LISTENER.forEach {
|
||||
val listener = it.value
|
||||
listener.onEnterCrossRoad()
|
||||
listener.onEnterCrossRoad(enter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ MOGO_TRAFFICLIVE_VERSION=1.3.13
|
||||
MOGO_LOCATION_VERSION=1.3.13
|
||||
######## MogoAiCloudSDK Version ########
|
||||
# 自研地图
|
||||
MAP_SDK_VERSION=V2.0.0.9
|
||||
MAP_SDK_VERSION=2.0.0.11
|
||||
# websocket
|
||||
WEBSOCKET_VERSION=1.1.7
|
||||
## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级
|
||||
|
||||
@@ -87,7 +87,12 @@ public class MogoRouteOverlayManager implements IMogoCarLocationChangedListener2
|
||||
if (trajectoryInfos == null || trajectoryInfos.size() == 0) {
|
||||
return;
|
||||
}
|
||||
Log.e(TAG, "trajectoryInfos:" + trajectoryInfos.size());
|
||||
ADASTrajectoryInfo adasTrajectoryInfo = trajectoryInfos.get(0);
|
||||
double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat();
|
||||
double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon();
|
||||
|
||||
Log.d(TAG, "trajectoryInfos:" + adasTrajectoryInfo.getLat()+":"+adasTrajectoryInfo.getLon());
|
||||
Log.d(TAG, "location:" + lat+":"+lon);
|
||||
List<MogoLatLng> mogoLatLngs = new ArrayList<>();
|
||||
for (ADASTrajectoryInfo a : trajectoryInfos) {
|
||||
mogoLatLngs.add(new MogoLatLng(a.getLat(), a.getLon()));
|
||||
|
||||
Reference in New Issue
Block a user