package safeluck.drive.evaluation.routecollect.impl;
|
|
import android.util.Log;
|
|
import com.anyun.exam.lib.IRemoteInterface;
|
import com.google.gson.Gson;
|
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import safeluck.drive.evaluation.Constant;
|
import safeluck.drive.evaluation.bean.ExamPlatformData;
|
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
|
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
|
import safeluck.drive.evaluation.routecollect.CollectPointResult;
|
import safeluck.drive.evaluation.routecollect.ILoadListener;
|
import safeluck.drive.evaluation.routecollect.IRouteCollectInterface;
|
import safeluck.drive.evaluation.routecollect.bean.RoadCrossInfo;
|
import safeluck.drive.evaluation.routecollect.bean.RoadInfo;
|
import safeluck.drive.evaluation.util.Utils;
|
|
/**
|
* DriveJudge
|
* Created by lzw on 2020/9/16. 10:38:39
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class RouteModel implements IRouteCollectInterface{
|
|
ILoadListener iLoadListener;
|
private Gson gson = new Gson();
|
private static final String TAG = "RouteModel";
|
|
private ICEventListener icEventListener1= new ICEventListener() {
|
@Override
|
public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
|
|
if (msgCode == Constant.ENTER_OR_EXIT_ROAD_ID){
|
|
if (iLoadListener != null){
|
Log.i(TAG,"道路消息"+(String)obj);
|
RoadInfo roadInfo = gson.fromJson((String)obj,RoadInfo.class);
|
ExamPlatformData.getInstance().setRouteCollectRoadInfo(roadInfo);
|
iLoadListener.roadInfo(roadInfo);
|
}
|
}
|
|
if (msgCode == Constant.ENTER_OR_EXIT_ROADCROSS_ID){
|
Log.i(TAG,"路口消息"+(String)obj);
|
if (iLoadListener != null){
|
RoadCrossInfo roadCrossInfo = gson.fromJson((String) obj,RoadCrossInfo.class);
|
iLoadListener.roadCrossInfo(roadCrossInfo);
|
}
|
}
|
}
|
};
|
private ICEventListener icEventListener= new ICEventListener() {
|
@Override
|
public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {
|
//,"coord_x":0.974,"coord_x_dir":"N","coord_y":-0.191,"c
|
if (msgCode==Constant.RTK_INFO){
|
if (iLoadListener != null){
|
CollectPointResult collectPointResult = new CollectPointResult();
|
try {
|
JSONObject jsonObject = new JSONObject((String)obj);
|
double y = jsonObject.getDouble("coord_x");
|
double x = jsonObject.getDouble("coord_y");
|
|
Log.i(TAG,String.format("采集到的点【x=%f,y=%f]",x,y));
|
collectPointResult.setX(Utils.getdouble(x,4));
|
collectPointResult.setY(Utils.getdouble(y,4));
|
iLoadListener.finishCollectItem(collectPointResult);
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
|
}
|
}
|
|
|
}
|
};
|
|
@Override
|
public void startCollect() {
|
//如果采用application的callback ,可能需要注册一个CEventLisntener
|
CEventCenter.onBindEvent(true,icEventListener, Constant.BIND_RTK_INFO_MAP);
|
}
|
|
/**
|
* 停止采点
|
*/
|
@Override
|
public void endCollect() {
|
//如果采用application的callback ,可能需要反注册一个CEventLisntener 解绑
|
CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_RTK_INFO_MAP);
|
|
}
|
|
@Override
|
public void startRoadListener() {
|
Log.i(TAG,"线路采集,开始路监听");
|
CEventCenter.onBindEvent(true,icEventListener1, Constant.BIND_ROUTE_COLLECT_TOPIC);
|
}
|
|
|
|
@Override
|
public void endRoadListener() {
|
CEventCenter.onBindEvent(false,icEventListener1, Constant.BIND_ROUTE_COLLECT_TOPIC);
|
}
|
|
@Override
|
public void setLoadListener(ILoadListener routeCollectController) {
|
iLoadListener = routeCollectController;
|
}
|
|
|
}
|