logic perform update

This commit is contained in:
zhongchao
2021-09-01 16:21:02 +08:00
parent e96bacdc93
commit dc1adf80d0
1042 changed files with 31010 additions and 32322 deletions

View File

@@ -0,0 +1,314 @@
package com.mogo.service.locationinfo;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.RequiresApi;
import java.util.Objects;
/**
* 自车定位信息
*/
public class CloudLocationInfo implements Parcelable {
/**
* 纬度
*/
private double lat;
/**
* 经度
*/
private double lon;
/**
* 车头方向
*/
private double heading;
/**
* 系统时间
*/
private long systemTime;
/**
* 卫星时间
*/
private long satelliteTime;
/**
* 海拔
*/
private double alt;
/**
* 车速
*/
private double speed;
/**
* 车辆类型
* 0:普通车辆、家用车
*/
private int vehicleType = 0;
/**
* 道路ID
*/
private String roadId;
/**
* 车道ID-2D路段
*/
private String laneId;
/**
* 车道号中心线编号为0中心线右侧编号为负数3车道通行Road的车道编号0-1-2-3
*/
private int laneNum;
/**
* 限速
*/
private double rateLimiting;
/**
* 瓦片id
*/
private String tileId;
/**
* 车道宽度
*/
private double roadWidth;
public CloudLocationInfo() {
}
public CloudLocationInfo(CloudLocationInfo info) {
this.lat = info.getLat();
this.lon = info.getLon();
this.heading = info.getHeading();
this.systemTime = System.currentTimeMillis();
this.satelliteTime = System.currentTimeMillis();
this.alt = info.alt;
this.speed = info.speed;
this.vehicleType = info.vehicleType;
this.roadId = info.roadId;
this.laneId = info.laneId;
this.laneNum = info.laneNum;
this.rateLimiting = info.rateLimiting;
this.tileId = info.tileId;
this.roadWidth = info.roadWidth;
}
protected CloudLocationInfo(Parcel in) {
lat = in.readDouble();
lon = in.readDouble();
heading = in.readDouble();
systemTime = in.readLong();
satelliteTime = in.readLong();
alt = in.readDouble();
speed = in.readDouble();
vehicleType = in.readInt();
roadId = in.readString();
laneId = in.readString();
laneNum = in.readInt();
rateLimiting = in.readDouble();
tileId = in.readString();
roadWidth = in.readDouble();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeDouble(lat);
dest.writeDouble(lon);
dest.writeDouble(heading);
dest.writeLong(systemTime);
dest.writeLong(satelliteTime);
dest.writeDouble(alt);
dest.writeDouble(speed);
dest.writeInt(vehicleType);
dest.writeString(roadId);
dest.writeString(laneId);
dest.writeInt(laneNum);
dest.writeDouble(rateLimiting);
dest.writeString(tileId);
dest.writeDouble(roadWidth);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<CloudLocationInfo> CREATOR = new Creator<CloudLocationInfo>() {
@Override
public CloudLocationInfo createFromParcel(Parcel in) {
return new CloudLocationInfo(in);
}
@Override
public CloudLocationInfo[] newArray(int size) {
return new CloudLocationInfo[size];
}
};
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLon() {
return lon;
}
public void setLon(double lon) {
this.lon = lon;
}
public double getHeading() {
return heading;
}
public void setHeading(double heading) {
this.heading = heading;
}
public long getSystemTime() {
return systemTime;
}
public void setSystemTime(long systemTime) {
this.systemTime = systemTime;
}
public long getSatelliteTime() {
return satelliteTime;
}
public void setSatelliteTime(long satelliteTime) {
this.satelliteTime = satelliteTime;
}
public double getAlt() {
return alt;
}
public void setAlt(double alt) {
this.alt = alt;
}
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
public int getVehicleType() {
return vehicleType;
}
public void setVehicleType(int vehicleType) {
this.vehicleType = vehicleType;
}
public String getRoadId() {
return roadId;
}
public void setRoadId(String roadId) {
this.roadId = roadId;
}
public String getLaneId() {
return laneId;
}
public void setLaneId(String laneId) {
this.laneId = laneId;
}
public int getLaneNum() {
return laneNum;
}
public void setLaneNum(int laneNum) {
this.laneNum = laneNum;
}
public double getRateLimiting() {
return rateLimiting;
}
public void setRateLimiting(double rateLimiting) {
this.rateLimiting = rateLimiting;
}
public String getTileId() {
return tileId;
}
public void setTileId(String tileId) {
this.tileId = tileId;
}
public double getRoadWidth() {
return roadWidth;
}
public void setRoadWidth(double roadWidth) {
this.roadWidth = roadWidth;
}
@Override
public String toString() {
return "CloudLocationInfo{" +
"lat=" + lat +
", lon=" + lon +
", heading=" + heading +
", systemTime=" + systemTime +
", satelliteTime=" + satelliteTime +
", alt=" + alt +
", speed=" + speed +
", vehicleType=" + vehicleType +
", roadId='" + roadId + '\'' +
", laneId='" + laneId + '\'' +
", laneNum=" + laneNum +
", rateLimiting=" + rateLimiting +
", tileId=" + tileId +
", roadWidth=" + roadWidth +
'}';
}
public String print() {
return "CloudLocation{ lon: " + lon + " lat: " + lat + " heading: " + heading + " speed: "
+ speed + " vehicleType: " + vehicleType + "}";
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
CloudLocationInfo that = (CloudLocationInfo) o;
return Double.compare(that.lat, lat) == 0 &&
Double.compare(that.lon, lon) == 0;
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public int hashCode() {
return Objects.hash(lat, lon);
}
}

View File

@@ -0,0 +1,25 @@
package com.mogo.service.locationinfo;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.map.location.MogoLocation;
public
/**
* @author congtaowang
* @since 2020/7/16
*
* 位置服务:上报位置信息和车机状态
*/
interface IMogoLocationInfoService extends IProvider {
/**
* 提供位置信息
*
* @param location
*/
void provideLocation( MogoLocation location );
void start();
void stop();
}

View File

@@ -0,0 +1,15 @@
package com.mogo.service.passport;
import com.alibaba.android.arouter.facade.template.IProvider;
public
/**
* @author congtaowang
* @since 2020/7/16
*
* 描述
*/
interface IMogoPassportManager extends IProvider {
void requestTicket( IMogoTicketCallback callback );
}

View File

@@ -0,0 +1,17 @@
package com.mogo.service.passport;
public
/**
* @author congtaowang
* @since 2020/7/16
* <p>
* ticket 回调
*/
interface IMogoTicketCallback {
void onTicketGot( String ticket );
void onError( int code, String msg );
void onLoginSuccess(String token, String sn);
}

View File

@@ -0,0 +1,17 @@
package com.mogo.service.cloud.socket;
/**
* @author congtaowang
* @since 2020-02-20
* <p>
* 长链接口数据接口
*/
public interface IMessageResponse {
/**
* 设置消息id
*
* @param msgId
*/
void setMsgId( long msgId );
}

View File

@@ -0,0 +1,9 @@
package com.mogo.service.cloud.socket;
public interface IMogoLifecycleListener {
void onConnectFailure();
void onConnectSuccess();
void onConnectLost();
}

View File

@@ -0,0 +1,15 @@
package com.mogo.service.cloud.socket;
/**
* @author congtaowang
* @since 2020-01-01
* <p>
* 消息回执监听
*/
public interface IMogoMsgAckListener {
/**
* 消息回执
*/
void onAck( long msgId );
}

View File

@@ -0,0 +1,14 @@
package com.mogo.service.cloud.socket;
/**
* @author congtaowang
* @since 2019-12-31
* <p>
* 消息回调
*/
public interface IMogoOnMessageListener< T > {
Class< T > target();
void onMsgReceived( T obj );
}

View File

@@ -0,0 +1,27 @@
package com.mogo.service.cloud.socket;
/**
* 消息回调
*/
public interface IMogoOnWebSocketMessageListener<T> {
default WebSocketMsgType getDownLinkType() {
return null;
}
default WebSocketMsgType getUpLinkType() {
return null;
}
default Class<T> target() {
return null;
}
default void onMsgReceived(T obj) {
}
default void onError(String errorMsg) {
}
}

View File

@@ -0,0 +1,65 @@
package com.mogo.service.cloud.socket;
import android.content.Context;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.cloud.socket.entity.MsgBody;
/**
* @author congtaowang
* @since 2019-12-31
* <p>
* socket 长链
*/
public interface IMogoSocketManager extends IProvider {
/**
* 初始化,各模块不用关心
*
* @param context 上下文
* @param appId 一般为包名,不参与通道的建立,一般用于发消息
*/
void init( Context context, String appId );
/**
* 注册消息监听
*
* @param msgType 消息类型
* @param listener 回调
*/
void registerOnMessageListener( int msgType, IMogoOnMessageListener listener );
/**
* 注销消息监听
*
* @param msgType 消息类型
* use {@link #unregisterOnMessageListener(int, IMogoOnMessageListener)} instead.
*/
@Deprecated
void unregisterOnMessageListener( int msgType );
/**
* 注销消息监听
*
* @param msgType 消息类型
*/
void unregisterOnMessageListener( int msgType, IMogoOnMessageListener listener );
void registerLifecycleListener(int msgType,IMogoLifecycleListener listener);
void unregisterLifecycleListener(int msgType);
/**
* 发送消息
*
* @param body 消息体
* @param listener 回执监听
*/
void sendMsg(MsgBody body, IMogoMsgAckListener listener );
/**
* 停止Socket服务
*/
void destroy();
}

View File

@@ -0,0 +1,46 @@
package com.mogo.service.cloud.socket;
import android.content.Context;
import com.alibaba.android.arouter.facade.template.IProvider;
public interface IMogoWebSocketManager<T> extends IProvider {
/**
* 初始化,各模块不用关心
*
* @param context 上下文
* @param appId 一般为包名,不参与通道的建立,一般用于发消息
*/
void init( Context context, String appId );
/**
* 注册消息监听
*
* @param listener 回调
*/
void registerOnWebSocketMessageListener(IMogoOnWebSocketMessageListener listener );
/**
* 注销消息监听
*
*/
void unregisterOnWebSocketMessageListener(IMogoOnWebSocketMessageListener listener );
/**
* 发送消息
*
* @param body 消息体
* @param listener 回执监听
*/
default void sendMsg( T body, IMogoOnWebSocketMessageListener listener ){
}
/**
* 停止socket服务
*/
default void stop(){
}
}

View File

@@ -0,0 +1,24 @@
package com.mogo.service.cloud.socket;
public enum WebSocketMsgType {
MSG_TYPE_UPLINK_CAR_DATA(0,"自车与ADAS数据"),
MSG_TYPE_DOWNLINK_CAR_DATA(1,"服务端下发车辆信息"),
MSG_TYPE_ACK(3, "ACK");
private int msgType;
private String msg;
WebSocketMsgType(int msgType, String msg) {
this.msgType = msgType;
this.msg = msg;
}
public int getMsgType() {
return msgType;
}
public void setMsgType(int msgType) {
this.msgType = msgType;
}
}