增加了新的上传摄像头状态的接口

This commit is contained in:
董宏宇
2021-04-25 14:34:44 +08:00
parent 1bf60bc7d6
commit 9b5ba1f0e0
7 changed files with 218 additions and 3 deletions

View File

@@ -1,6 +1,22 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">

View File

@@ -0,0 +1,103 @@
package com.mogo.cloud.live.manager;
import com.google.gson.Gson;
import com.mogo.cloud.GsonUtil;
import com.mogo.cloud.live.model.BaseData;
import com.mogo.cloud.live.model.CameraStatusModel;
import com.mogo.cloud.live.network.LiveApiServer;
import com.mogo.cloud.network.NetConstants;
import com.mogo.cloud.network.RetrofitFactory;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.utils.logger.Logger;
import java.util.HashMap;
import java.util.Map;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 摄像头状态管理
*/
public class CameraStatusManager {
private final String TAG = "CameraStatusManager";
private static volatile CameraStatusManager requestLiveManager;
private final LiveApiServer liveApiServer;
private CameraStatusManager() {
liveApiServer = RetrofitFactory.INSTANCE.getInstance(NetConstants.TECH_HOST) //todo 涉及摄像头状态管理接口 没有对HttpDNS进行配置
.create(LiveApiServer.class);
}
public static CameraStatusManager getInstance() {
if (requestLiveManager == null) {
synchronized (CameraStatusManager.class) {
if (requestLiveManager == null) {
requestLiveManager = new CameraStatusManager();
}
}
}
return requestLiveManager;
}
/**
* 上传当前车机摄像头状态
*
* @param c_1 前置
* @param c_2 后置
*/
public void reportCameraStatus(int c_1, int c_2) {
try {
String sn = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn();
CameraStatusModel cameraStatusModel = new CameraStatusModel();
CameraStatusModel.CameraStatus cameraStatus = new CameraStatusModel.CameraStatus();
cameraStatus.setC_1(c_1);
cameraStatus.setC_2(c_2);
cameraStatusModel.setSn(sn);
cameraStatusModel.setCaller("AiSDK");
cameraStatusModel.setSdkVersion("1.0.1");
cameraStatusModel.setCameraStatus(cameraStatus);
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( cameraStatusModel ) );
liveApiServer.reportCameraStatus(requestBody)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseData>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Logger.d(TAG, "上传摄像头状态 onSubscribe");
}
@Override
public void onNext(@NonNull BaseData baseData) {
Logger.d(TAG, "上传摄像头状态 onNext");
}
@Override
public void onError(@NonNull Throwable e) {
Logger.e(TAG, "上传摄像头状态 onError");
}
@Override
public void onComplete() {
Logger.d(TAG, "上传摄像头状态 onComplete");
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@@ -40,6 +40,8 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
private final SocketMsgUtils mSocketMsgUtils; // Socket 长链接
private MoGoLiveManager mLivePusher; // 自研直播SDK
private CameraStatusManager cameraStatusManager;
public static LiveStreamManagerImpl getInstance(Application application, String devicesId) {
if (sInstance == null) {
synchronized (LiveStreamManagerImpl.class) {
@@ -56,6 +58,7 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
private LiveStreamManagerImpl(Application application, String devicesId) {
mApplication = application;
mHandler = new Handler();
cameraStatusManager = CameraStatusManager.getInstance();
// 初始化直播推流
initLivePush(devicesId);
// 初始化Socket长连接通道
@@ -133,6 +136,8 @@ public class LiveStreamManagerImpl implements ILiveStreamManager {
msgBody.content(SocketRequestUtils.buildDeviceData(frontStatus, backStatus));
mSocketMsgUtils.uploadCamInfo(msgBody);
cameraStatusManager.reportCameraStatus(frontStatus, backStatus);
}
@Override

View File

@@ -0,0 +1,78 @@
package com.mogo.cloud.live.model;
/**
* @author donghongyu
* @date 4/25/21 11:31 AM
* {
* "caller": "AiSDK",
* "cameraStatus": {
* "C_1": 1,
* "C_2": 2
* },
* "sdkVersion": "2.0.10",
* "sn": "F803EB2046PZD00149"
* }
*/
public class CameraStatusModel {
private String sn;
private String caller;
private String sdkVersion;
private CameraStatus cameraStatus;
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getCaller() {
return caller;
}
public void setCaller(String caller) {
this.caller = caller;
}
public String getSdkVersion() {
return sdkVersion;
}
public void setSdkVersion(String sdkVersion) {
this.sdkVersion = sdkVersion;
}
public CameraStatus getCameraStatus() {
return cameraStatus;
}
public void setCameraStatus(CameraStatus cameraStatus) {
this.cameraStatus = cameraStatus;
}
public static class CameraStatus{
public int C_1;//前置
public int C_2;//后置
public int getC_1() {
return C_1;
}
public void setC_1(int c_1) {
C_1 = c_1;
}
public int getC_2() {
return C_2;
}
public void setC_2(int c_2) {
C_2 = c_2;
}
}
}

View File

@@ -1,17 +1,19 @@
package com.mogo.cloud.live.network;
import com.mogo.cloud.live.model.BaseData;
import com.mogo.cloud.live.model.CameraStatusModel;
import com.mogo.cloud.live.model.LiveReceive;
import java.util.Map;
import io.reactivex.Observable;
import retrofit2.http.Field;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
/**
@@ -55,4 +57,12 @@ public interface LiveApiServer {
*/
@GET("mec-etl-server/device/unit/camera/live")
Observable<BaseData<LiveReceive>> getDesignativeIntersectionLive(@QueryMap Map<String, Object> parameters);
/**
* 上传摄像头状态
*
* @return {@link BaseData}
*/
@POST("alarm/car/video/reportCameraStatus")
Observable<BaseData> reportCameraStatus(@Body RequestBody parameters);
}

View File

@@ -24,6 +24,9 @@ class NetConstants {
const val TRAVEL_CONDITION_HOST = "http://dzt-travelCondition.zhidaozhixing.com"
const val TMC_HOST = "http://dzt-tmcServer.zhidaozhixing.com"
const val TECH_HOST = "http://tech-dev.zhidaozhixing.com"
const val IM_SOCKET_DOMAIN = "dzt-im.zhidaozhixing.com"
const val WEBSOCKET_DOMAIN = "dzt-Instant.zhidaozhixing.com"
}

View File

@@ -27,7 +27,7 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/
USERNAME=xintai
PASSWORD=xintai2018
# 编译模式: false - 依赖本地版本, true - 依赖 maven 版本
RELEASE=true
RELEASE=false
# AI CLOUD 云平台
# 工具类
MOGO_UTILS_VERSION=1.0.71