This commit is contained in:
wangcongtao
2021-01-29 18:20:36 +08:00
9 changed files with 70 additions and 9 deletions

1
.idea/gradle.xml generated
View File

@@ -89,7 +89,6 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>

View File

@@ -163,7 +163,10 @@ public class OchBusFragment extends BaseOchFragment<OchBusFragment, OchBusPresen
@Override
public void restartAutopilot() {
mPresenter.restartAutopilot();
// 如果能自动驾驶,就自动驾驶,不能就提示
if (MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE) {
mPresenter.restartAutopilot();
}
}
@Override

View File

@@ -43,6 +43,11 @@ class MogoOCHTaxiModel {
private static final String TAG = "MogoOCHTaxiModel";
/**
* 到达起始点围栏
*/
public static final int ARRIVE_AT_START_STATION_DISTANCE = 10;
private static volatile MogoOCHTaxiModel sInstance;
private MogoOCHTaxiModel() {
@@ -332,12 +337,12 @@ class MogoOCHTaxiModel {
private void judgeStationStation( Location location ) {
OCHTaxiOrderResponse.OCHTaxiStation station = mCurrentOCHOrder.drivingRoutes.get( 0 );//起点
double distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat, location.getLongitude(), location.getLatitude() );
if ( distance > 5 ) {
if ( distance > ARRIVE_AT_START_STATION_DISTANCE ) {
distance = CoordinateUtils.calculateLineDistance( station.lon, station.lat,
MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(),
MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat() );
}
if ( distance <= 5 ) {
if ( distance <= ARRIVE_AT_START_STATION_DISTANCE ) {
mIsArriveAtStartStation = true;
unregisterCarLocationListener();
OCHTaxiUiController.getInstance().onArriveAtStartStation();
@@ -360,6 +365,7 @@ class MogoOCHTaxiModel {
} );
return;
}
Logger.d( TAG, "distance = %s", distance );
}
/**
@@ -417,6 +423,7 @@ class MogoOCHTaxiModel {
@Override
public void onMsgReceived( OCHTaxiOrderResponse obj ) {
Logger.d( TAG, "收到新订单" );
mCurrentOCHOrder = obj;
cacheOrderInfo2Native( mCurrentOCHOrder );
Location location = MogoApisHandler.getInstance()
@@ -522,6 +529,7 @@ class MogoOCHTaxiModel {
@Override
public void onStateChanged( int state, String reason ) {
Logger.d( TAG, "state = %s", state );
OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( state, reason );
}
}
@@ -661,4 +669,20 @@ class MogoOCHTaxiModel {
public OCHTaxiOrderResponse getCurrentOCHOrder() {
return mCurrentOCHOrder;
}
/**
* 结束自动驾驶
*/
public void cancelAutopilot(){
try {
Logger.d( TAG, "结束自动驾驶" );
MogoApisHandler.getInstance()
.getApis()
.getAdasControllerApi()
.cancelAutopilot();
Logger.d( TAG, "结束自动驾驶" );
} catch ( Exception e ) {
e.printStackTrace();
}
}
}

View File

@@ -266,6 +266,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
public void onSuccess( Object data ) {
Logger.d( TAG, "更新状态成功" );
MogoOCHTaxiModel.getInstance().clearCurrentOCHOrder();
MogoOCHTaxiModel.getInstance().cancelAutopilot();
OCHTaxiUiController.getInstance().removeFragment();
}

View File

@@ -61,9 +61,9 @@ public abstract class BaseOchFragment<V extends IView, P extends Presenter<V>> e
@Override
public void onClickImpl(View v) {
// 如果能自动驾驶,就自动驾驶,不能就提示
if (MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE) {
restartAutopilot();
}
// if (MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE) {
// }
restartAutopilot();
}
});

View File

@@ -67,7 +67,7 @@ dependencies {
implementation project(':foudations:mogo-commons')
}
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.0.5'
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.0.7'
// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4'
}

View File

@@ -481,7 +481,8 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
return;
}
mMarker.startSmooth( newPoints, ( int ) duration );
// mMarker.startSmooth( newPoints, ( int ) duration );
mMarker.addDynamicAnchorPostion( newPoints.get( newPoints.size() - 1 ), ( int ) duration );
}
@Override

View File

@@ -28,6 +28,7 @@ import com.mogo.module.common.dialog.WMDialog;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.R;
import com.mogo.module.service.uploadintime.SnapshotUploadInTime;
import com.mogo.service.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.adas.entity.ADASCarStateInfo;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.utils.CoordinateUtils;
@@ -524,6 +525,16 @@ public class MockIntentHandler implements IntentHandler {
.getAdasControllerApi()
.onAutopilotArriveLike( intent.getIntExtra( "type", 8 ) );
break;
case 44:
RemoteControlAutoPilotParameters parameters = new RemoteControlAutoPilotParameters();
parameters.vehicleType = 9;
parameters.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 40.1690522746, 116.567374558 );
parameters.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 40.1651999405, 116.567217441 );
MogoApisHandler.getInstance()
.getApis()
.getAdasControllerApi()
.aiCloudToAdasData( parameters );
break;
}
}

View File

@@ -136,19 +136,41 @@ public interface IMogoADASController extends IProvider {
*/
void setAdasCarDataCallback( IMogoAdasCarDataCallback carDataCallback );
/**
* 自动驾驶状态通知
* @param callback
*/
void addAdasOCHCallback( IMogoAdasOCHCallback callback );
/**
* 移除自动驾驶通知
*/
void removeAdasOCHCallback();
void onAutopilotArriveLike( int type );
/**
* 获取车辆自动驾驶状态
* @return
*/
int getAutopilotStatus();
void mockOchStatus( int state, String reason );
/**
* 获取车身的定位纬度
* @return
*/
double getLastLat();
/**
* 获取车身定位经度
* @return
*/
double getLastLon();
/**
* 结束自动驾驶
*/
void cancelAutopilot();
}