diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 54349e6..7abdbfc 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -23,6 +23,7 @@
+
diff --git a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java
index 51f7aa9..23f7365 100644
--- a/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java
+++ b/foudations/mogo-socket/src/main/java/com/mogo/cloud/socket/SocketManager.java
@@ -32,7 +32,7 @@ import static com.mogo.cloud.httpdns.MogoHttpDnsConfig.HTTP_DNS_ENV_QA;
import static com.mogo.cloud.httpdns.MogoHttpDnsConfig.HTTP_DNS_ENV_RELEASE;
/**
- * Socket 长链服务
+ * Socket 长链核心服务
*/
public class SocketManager implements IMogoCloudSocketManager, Callback {
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java
index e648d68..66ecb7b 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java
@@ -33,12 +33,13 @@ public class SnapshotUploadInTime implements UploadInTimeHandler.IUploadInTimeLi
return sInstance;
}
- public synchronized void release() {
- sInstance = null;
- }
-
+ /**
+ * 开始实时定位数据上报
+ * @param context 上下文对象
+ * @param appId 注册id
+ */
public void start(Context context, String appId) {
- //开启内部定位
+ //开启内部定位服务
if (!isUseExternalLocation) {
MogoRTKLocation.getInstance().init();
}
@@ -53,12 +54,19 @@ public class SnapshotUploadInTime implements UploadInTimeHandler.IUploadInTimeLi
}
+ /**
+ * 停止实时定位数据上报
+ */
public void stop() {
+ //上传数据服务关闭
UploadInTimeHandler.getInstance().stop();
+ //关闭长链服务
SocketHandler.getInstance().stop();
+ //关闭内部定位服务
if (!isUseExternalLocation) {
MogoRTKLocation.getInstance().stop();
}
+ sInstance = null;
}
@Override
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java
index f9ce08a..ac2e268 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/UploadInTimeHandler.java
@@ -5,6 +5,9 @@ import android.os.Message;
import com.mogo.utils.WorkThreadHandler;
+/**
+ * AI云 实时上报数据频率处理类
+ */
public class UploadInTimeHandler {
private static final String TAG = "UploadInTimeHandler";
@@ -17,14 +20,14 @@ public class UploadInTimeHandler {
private IUploadInTimeListener iUploadInTimeListener;
- private UploadInTimeHandler(){
+ private UploadInTimeHandler() {
}
- public static UploadInTimeHandler getInstance(){
- if(uploadInTimeHandler == null){
- synchronized (UploadInTimeHandler.class){
- if(uploadInTimeHandler == null){
+ public static UploadInTimeHandler getInstance() {
+ if (uploadInTimeHandler == null) {
+ synchronized (UploadInTimeHandler.class) {
+ if (uploadInTimeHandler == null) {
uploadInTimeHandler = new UploadInTimeHandler();
}
}
@@ -32,14 +35,14 @@ public class UploadInTimeHandler {
return uploadInTimeHandler;
}
- public void start(){
+ public void start() {
mHandler = new Handler(WorkThreadHandler.newInstance(TAG).getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == MSG_DATA_CHANGED) {
mHandler.sendEmptyMessageDelayed(MSG_DATA_CHANGED, uploadDelay);
- if(iUploadInTimeListener != null){
+ if (iUploadInTimeListener != null) {
iUploadInTimeListener.sendLocationData();
}
}
@@ -48,7 +51,7 @@ public class UploadInTimeHandler {
mHandler.sendEmptyMessage(MSG_DATA_CHANGED);
}
- public void setUploadInTimeListener(IUploadInTimeListener uploadInTimeListener){
+ public void setUploadInTimeListener(IUploadInTimeListener uploadInTimeListener) {
this.iUploadInTimeListener = uploadInTimeListener;
}
@@ -64,13 +67,23 @@ public class UploadInTimeHandler {
}
}
- public void stop(){
- mHandler.removeMessages(MSG_DATA_CHANGED);
- mHandler = null;
+ public void stop() {
+ if (mHandler.hasMessages(MSG_DATA_CHANGED)) {
+ mHandler.removeMessages(MSG_DATA_CHANGED);
+ mHandler = null;
+ }
+ iUploadInTimeListener = null;
+ uploadInTimeHandler = null;
}
+ /**
+ * 实时上报数据回调
+ */
public interface IUploadInTimeListener {
+ /**
+ * 上报自车数据
+ */
void sendLocationData();
}
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/location/MogoRTKLocation.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/location/MogoRTKLocation.java
index 23a77ef..08a9e6a 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/location/MogoRTKLocation.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/location/MogoRTKLocation.java
@@ -44,6 +44,9 @@ public class MogoRTKLocation {
return list;
}
+ /**
+ * 开启定位服务
+ */
public void init() {
locationManager = (LocationManager) MoGoAiCloudClient.getInstance().getContext().getSystemService(Context.LOCATION_SERVICE);
String provider = locationManager.getBestProvider(getCriteria(), true);
@@ -110,6 +113,9 @@ public class MogoRTKLocation {
}
};
+ /**
+ * 关闭定位服务
+ */
public void stop() {
Logger.d(TAG, "stop RTK Location");
if (locationManager != null && locationListener != null) {
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/net/RealTimeApiService.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/net/RealTimeApiService.java
deleted file mode 100644
index e1f9bd8..0000000
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/net/RealTimeApiService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.mogo.realtime.net;
-
-/**
- * @author liujing
- * @description <>
- * date: 2021/1/20
- */
-interface RealTimeApiService {
-
-}
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnAckListener.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnAckListener.java
index 09fc360..1d18a35 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnAckListener.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnAckListener.java
@@ -1,6 +1,13 @@
package com.mogo.realtime.socket;
+/**
+ * 长连接数据消息ack回调
+ */
public interface IMogoCloudOnAckListener {
+ /**
+ * 对齐系统时间
+ * @param resetTime 系统时间
+ */
void onAck(long resetTime);
}
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnMsgListener.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnMsgListener.java
index ba641f1..dc779ac 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnMsgListener.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/IMogoCloudOnMsgListener.java
@@ -2,7 +2,20 @@ package com.mogo.realtime.socket;
import com.mogo.realtime.entity.MogoSnapshotSetData;
+/**
+ * 长连接数据上报下发回调
+ */
public interface IMogoCloudOnMsgListener {
+ /**
+ * 长连接数据发送回调
+ * @param id 发送消息id
+ */
+ void onMsgSend(long id);
+
+ /**
+ * 长连接数据接收回调
+ * @param mogoSnapshotSetData 自车周边数据
+ */
void onMsgReceived(MogoSnapshotSetData mogoSnapshotSetData);
}
diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java
index 81fabc5..5db6382 100644
--- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java
+++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java
@@ -121,6 +121,10 @@ public class SocketHandler {
}
};
+ /**
+ * 发送自车和ADAS数据
+ * @param cloudLocationInfo 自车定位信息
+ */
public void sendMsg(List cloudLocationInfo) {
if (cloudLocationInfo == null) {
Log.e(TAG, "请检查传入数组对象为Null");
@@ -158,6 +162,7 @@ public class SocketHandler {
Log.d(TAG, "no information to sent");
return;
}
+
WebSocketData webSocketData = new WebSocketData();
webSocketData.setMsgType(MSG_TYPE_UPLINK_CAR_DATA.getMsgType());
webSocketData.setSeq(computeSendMsgTime());
@@ -173,15 +178,22 @@ public class SocketHandler {
msgBody.msgType(msgType);
msgBody.content(msg);
SocketManager.getInstance().sendMsg(msgBody, msgId -> {
-
+ for (IMogoCloudOnMsgListener listener : onMsgListenerList) {
+ if (listener != null) {
+ listener.onMsgSend(msgId);
+ }
+ }
});
}
public void stop() {
SocketManager.getInstance().unregisterOnMessageListener(0x040002, onMessageListener);
SocketManager.getInstance().unregisterOnMessageListener(0x040003, onMessageListener);
+ SocketManager.getInstance().release();
onMsgListenerList.clear();
onAckListenerList.clear();
+ mLastInfo = null;
+ mInstance = null;
}
/**