125 lines
5.6 KiB
Java
125 lines
5.6 KiB
Java
package com.ubt.jimu.controller.presenter;
|
|
|
|
import android.content.Context;
|
|
import android.os.SystemClock;
|
|
import android.text.TextUtils;
|
|
import com.ubt.jimu.R;
|
|
import com.ubt.jimu.base.data.Engine;
|
|
import com.ubt.jimu.base.data.ServoMode;
|
|
import com.ubt.jimu.base.entities.RobotLite;
|
|
import com.ubt.jimu.controller.data.command.AngleCommand;
|
|
import com.ubt.jimu.controller.data.command.MoveCommand;
|
|
import com.ubt.jimu.controller.data.config.AccumulatorConfig;
|
|
import com.ubt.jimu.controller.manager.CommandManager;
|
|
import com.ubt.jimu.controller.manager.MoveConfigManager;
|
|
import com.ubt.jimu.controller.view.IAccumulatorSettingView;
|
|
import com.ubtech.utils.XLog;
|
|
import com.ubtrobot.jimu.robotapi.ServoAngleReadInfo;
|
|
import io.reactivex.Observable;
|
|
import io.reactivex.ObservableEmitter;
|
|
import io.reactivex.ObservableOnSubscribe;
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
import io.reactivex.functions.Consumer;
|
|
import io.reactivex.schedulers.Schedulers;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class AccumulatorSettingPresenter extends SuperControllerPresenter<IAccumulatorSettingView> {
|
|
public AccumulatorSettingPresenter(Context context, RobotLite robotLite) {
|
|
super(context, robotLite);
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
public boolean a(RobotLite robotLite) {
|
|
IAccumulatorSettingView iAccumulatorSettingView;
|
|
boolean a = super.a(robotLite);
|
|
if (!a && (iAccumulatorSettingView = (IAccumulatorSettingView) b()) != null) {
|
|
iAccumulatorSettingView.Y();
|
|
}
|
|
return a;
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
protected void b(List<? extends Engine> list) {
|
|
List<AccumulatorConfig> a;
|
|
if (list == null || list.size() <= 0 || (a = MoveConfigManager.a(this.c.getApplicationContext()).a()) == null || a.size() <= 0) {
|
|
return;
|
|
}
|
|
Iterator<AccumulatorConfig> it = a.iterator();
|
|
while (it.hasNext()) {
|
|
int servoID = it.next().getServoID();
|
|
for (Engine engine : list) {
|
|
if (servoID == engine.getId()) {
|
|
engine.setConfigged(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
public boolean c(RobotLite robotLite) {
|
|
return super.c(robotLite);
|
|
}
|
|
|
|
public void a(AccumulatorConfig accumulatorConfig) {
|
|
MoveConfigManager a = MoveConfigManager.a(this.c.getApplicationContext());
|
|
a.b(accumulatorConfig);
|
|
a.a(true);
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
public String a(int i, ServoMode servoMode) {
|
|
IAccumulatorSettingView iAccumulatorSettingView;
|
|
String a = super.a(i, servoMode);
|
|
if (TextUtils.isEmpty(a) || (iAccumulatorSettingView = (IAccumulatorSettingView) b()) == null) {
|
|
return "";
|
|
}
|
|
iAccumulatorSettingView.d(String.format(this.c.getResources().getString(R.string.control_servo_mode_set), a));
|
|
return "";
|
|
}
|
|
|
|
public void a(RobotLite robotLite, int i, int i2) {
|
|
if (!c(robotLite) || super.e()) {
|
|
return;
|
|
}
|
|
HashMap hashMap = new HashMap(1);
|
|
hashMap.put(Integer.valueOf(i), Integer.valueOf(i2 + 120));
|
|
CommandManager.a(this.c.getApplicationContext()).a((MoveCommand) new AngleCommand(hashMap, 200, 0), false);
|
|
}
|
|
|
|
public void a(final int i) {
|
|
if (c(this.d)) {
|
|
Observable.create(new ObservableOnSubscribe<List<ServoAngleReadInfo>>() { // from class: com.ubt.jimu.controller.presenter.AccumulatorSettingPresenter.1
|
|
@Override // io.reactivex.ObservableOnSubscribe
|
|
public void subscribe(ObservableEmitter<List<ServoAngleReadInfo>> observableEmitter) throws Exception {
|
|
if (AccumulatorSettingPresenter.this.d() != null) {
|
|
long elapsedRealtime = SystemClock.elapsedRealtime();
|
|
List<ServoAngleReadInfo> a = AccumulatorSettingPresenter.this.d().a(i, true);
|
|
if (a == null || a.size() <= 0) {
|
|
observableEmitter.onError(new Throwable("read servo angle failed"));
|
|
return;
|
|
}
|
|
for (ServoAngleReadInfo servoAngleReadInfo : a) {
|
|
servoAngleReadInfo.a(servoAngleReadInfo.a() - 120.0f);
|
|
}
|
|
XLog.a("Controller", "readAllServoAngle cost time: %d", Long.valueOf(SystemClock.elapsedRealtime() - elapsedRealtime));
|
|
observableEmitter.onNext(a);
|
|
}
|
|
}
|
|
}).subscribeOn(Schedulers.b()).observeOn(AndroidSchedulers.a()).subscribe(new Consumer<List<ServoAngleReadInfo>>() { // from class: com.ubt.jimu.controller.presenter.AccumulatorSettingPresenter.2
|
|
@Override // io.reactivex.functions.Consumer
|
|
/* renamed from: a, reason: merged with bridge method [inline-methods] */
|
|
public void accept(List<ServoAngleReadInfo> list) throws Exception {
|
|
XLog.a("Controller", "servoAngle: %s", list.toString());
|
|
IAccumulatorSettingView iAccumulatorSettingView = (IAccumulatorSettingView) AccumulatorSettingPresenter.this.b();
|
|
if (iAccumulatorSettingView != null) {
|
|
iAccumulatorSettingView.g(list);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|