diff --git a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt index 74e7f4bab0..2b3954de81 100644 --- a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt +++ b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt @@ -3,10 +3,7 @@ package com.mogo.eagle.core.function.monitoring import android.os.Handler import android.os.Looper import android.os.Message -import com.mogo.eagle.core.data.camera.Camera -import com.mogo.eagle.core.data.camera.CameraEntity -import com.mogo.eagle.core.data.camera.LiveCameraInfo -import com.mogo.eagle.core.data.camera.ReqLiveCarBean +import com.mogo.eagle.core.data.camera.* import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager import com.mogo.eagle.core.function.monitoring.net.CameraListServices @@ -39,8 +36,9 @@ class CronTaskManager { when (msg.what) { CRON_TASK_TYPE -> { removeMessages(CRON_TASK_TYPE) - // 路测和车侧摄像头列表分开调用 - requestCameraList() + // 路测和车侧摄像头列表分开调用 +// requestCameraList() + requestDeviceList() requestCarCameraList() sendEmptyMessageDelayed(CRON_TASK_TYPE, 10000) } @@ -48,6 +46,7 @@ class CronTaskManager { } } + @Deprecated("已废弃", ReplaceWith("requestDeviceList()"), DeprecationLevel.WARNING) private fun requestCameraList() { // 衡阳可直播的摄像头有限,先写死roadId便于调试 disposable = netWork.create(CameraListServices::class.java, HostConst.CAMERA_STREAM_HOST) @@ -73,6 +72,37 @@ class CronTaskManager { }) } + /** + * 请求路口一定范围内的设备信息(包含:摄像头、灯) + */ + private fun requestDeviceList() { + CallerMapLocationListenerManager.getCurrentLocation()?.let { location -> + disposable = netWork.create(CameraListServices::class.java, HostConst.MEC_ETL_HOST) + .getDeviceList(location.longitude, location.latitude, 500) + .subscribeOn(Schedulers.io()) + .map { cameraListInfo -> + cameraListInfo.result?.crossings?.flatMap { crossing -> + crossing.cameras.filter { camera -> + !camera.ip.isNullOrEmpty() + }.map { + CameraEntity(it.flvUrl, "", it.roadName, + it.crossingName, it.getHeadingStr(), it.ip) + } + } ?: ArrayList() + } + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ + cameraList = it + Logger.d(TAG, "requestDeviceList返回结果为:$it") + }, { + it.printStackTrace() + Logger.e(TAG, "requestDeviceList:message is:${it.message}, cause is:${it.cause}") + }) + } ?: run { + Logger.e(TAG, "CurrentLocation is null!") + } + } + private fun requestCarCameraList() { CallerMapLocationListenerManager.getCurrentLocation()?.let { location -> carDisposable = netWork.create(CameraListServices::class.java, HostConst.LAUNCHER_SNAPSHOT_HOST) diff --git a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt index 2d38c66577..c4aad2e21a 100644 --- a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt +++ b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt @@ -1,9 +1,6 @@ package com.mogo.eagle.core.function.monitoring.net -import com.mogo.eagle.core.data.camera.CameraListInfo -import com.mogo.eagle.core.data.camera.CameraStreamEntity -import com.mogo.eagle.core.data.camera.LiveCarCameraInfo -import com.mogo.eagle.core.data.camera.ReqLiveCarBean +import com.mogo.eagle.core.data.camera.* import io.reactivex.Single import retrofit2.http.* @@ -16,4 +13,10 @@ interface CameraListServices { @GET("/openStream/{cameraIp}") fun openCameraStream(@Path("cameraIp") cameraIp: String): Single + + @GET("/mec-etl-server/crossing/geo/device") + fun getDeviceList( + @Query("lon") lon: Double, @Query("lat") lat: Double, + @Query("radiusMeter") radiusMeter: Int + ): Single } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/camera/CameraListInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/camera/CameraListInfo.kt index 7bfcea6824..34adf4129f 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/camera/CameraListInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/camera/CameraListInfo.kt @@ -62,7 +62,7 @@ data class Camera( @SerializedName("id") var id: String, @SerializedName("ip") - var ip: String, + var ip: String?, @SerializedName("lat") var lat: Double, @SerializedName("lon") diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/HostConst.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/HostConst.java index 38ea62345f..1267ac21f3 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/HostConst.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/HostConst.java @@ -22,6 +22,7 @@ public class HostConst { public static final String WEBSOCKET_DOMAIN = "dzt-Instant.zhidaozhixing.com"; public static final String CAMERA_STREAM_HOST = "http://dzt-smartTransportationAiCloud.zhidaozhixing.com"; public static final String OPEN_CAMERA_STREAM_HOST = "http://10.0.16.6:18080"; + public static final String MEC_ETL_HOST = "http://dzt-mecEtl.zhidaozhixing.com"; public static final String SOCKET_CENTER_DOMAIN = "socketRegion";