114 lines
5.0 KiB
Java
114 lines
5.0 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.HSliderConfig;
|
|
import com.ubt.jimu.controller.manager.CommandManager;
|
|
import com.ubt.jimu.controller.manager.MoveConfigManager;
|
|
import com.ubt.jimu.controller.view.IAngleSettingView;
|
|
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 AngleSettingPresenter extends SuperControllerPresenter<IAngleSettingView> {
|
|
public AngleSettingPresenter(Context context, RobotLite robotLite) {
|
|
super(context, robotLite);
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
public String a(int i, ServoMode servoMode) {
|
|
IAngleSettingView iAngleSettingView;
|
|
String a = super.a(i, servoMode);
|
|
if (TextUtils.isEmpty(a) || (iAngleSettingView = (IAngleSettingView) b()) == null) {
|
|
return "";
|
|
}
|
|
iAngleSettingView.d(String.format(this.c.getResources().getString(R.string.control_servo_mode_set), a));
|
|
return "";
|
|
}
|
|
|
|
@Override // com.ubt.jimu.controller.presenter.SuperControllerPresenter
|
|
void b(List<? extends Engine> list) {
|
|
if (list == null || list.size() <= 0) {
|
|
return;
|
|
}
|
|
XLog.a("woo", "servolist: %s", list.toString());
|
|
List<HSliderConfig> c = MoveConfigManager.a(this.c.getApplicationContext()).c();
|
|
if (c == null || c.size() <= 0) {
|
|
return;
|
|
}
|
|
Iterator<HSliderConfig> it = c.iterator();
|
|
while (it.hasNext()) {
|
|
int servoID = it.next().getServoID();
|
|
for (Engine engine : list) {
|
|
if (servoID == engine.getId()) {
|
|
engine.setConfigged(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void a(HSliderConfig hSliderConfig) {
|
|
MoveConfigManager a = MoveConfigManager.a(this.c.getApplicationContext());
|
|
a.b(hSliderConfig);
|
|
a.a(true);
|
|
}
|
|
|
|
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.AngleSettingPresenter.1
|
|
@Override // io.reactivex.ObservableOnSubscribe
|
|
public void subscribe(ObservableEmitter<List<ServoAngleReadInfo>> observableEmitter) throws Exception {
|
|
if (AngleSettingPresenter.this.d() != null) {
|
|
long elapsedRealtime = SystemClock.elapsedRealtime();
|
|
List<ServoAngleReadInfo> a = AngleSettingPresenter.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.AngleSettingPresenter.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());
|
|
IAngleSettingView iAngleSettingView = (IAngleSettingView) AngleSettingPresenter.this.b();
|
|
if (iAngleSettingView != null) {
|
|
iAngleSettingView.g(list);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|