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; } /**