查询摄像头列表接口替换

Signed-off-by: chenfufeng <chenfufeng@zhidaoauto.com>
This commit is contained in:
chenfufeng
2021-11-12 18:55:51 +08:00
parent f286337055
commit 4758237887
4 changed files with 45 additions and 11 deletions

View File

@@ -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)

View File

@@ -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<CameraStreamEntity>
@GET("/mec-etl-server/crossing/geo/device")
fun getDeviceList(
@Query("lon") lon: Double, @Query("lat") lat: Double,
@Query("radiusMeter") radiusMeter: Int
): Single<CameraListInfo?>
}

View File

@@ -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")

View File

@@ -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";