Add recording capability to simple controller.
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package org.vato.carcontroller;
|
package org.vato.carcontroller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.google.protobuf.Empty;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
@@ -68,4 +70,15 @@ public class PiLoader implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveRecording() {
|
||||||
|
// Ideally don't want to use a blocking stub here, android may complain.
|
||||||
|
Empty done = stub.saveRecordedData(SaveRequest.newBuilder().setFile("Test").build());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void record(boolean record) {
|
||||||
|
// Ideally don't want to use a blocking stub here, android may complain.
|
||||||
|
Empty done = stub.record(RecordingReqeust.newBuilder().setRecord(record).build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,19 @@ package org.vato.carcontroller;
|
|||||||
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
|
import android.widget.Switch;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
public class SimpleController extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {
|
public class SimpleController extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {
|
||||||
|
|
||||||
SeekBar steeringSlider;
|
private SeekBar steeringSlider;
|
||||||
SeekBar throttleSlider;
|
private SeekBar throttleSlider;
|
||||||
|
private Switch recordSwitch;
|
||||||
|
|
||||||
private static PiLoader grpcController;
|
private static PiLoader grpcController;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -26,6 +30,8 @@ public class SimpleController extends AppCompatActivity implements SeekBar.OnSee
|
|||||||
if (throttleSlider != null) {
|
if (throttleSlider != null) {
|
||||||
throttleSlider.setOnSeekBarChangeListener(this);
|
throttleSlider.setOnSeekBarChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
recordSwitch = findViewById(R.id.recordSwitch);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -83,4 +89,12 @@ public class SimpleController extends AppCompatActivity implements SeekBar.OnSee
|
|||||||
steeringSlider.setProgress(50);
|
steeringSlider.setProgress(50);
|
||||||
throttleSlider.setProgress(50);
|
throttleSlider.setProgress(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveRecording(View view) {
|
||||||
|
grpcController.saveRecording();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void record(View view) {
|
||||||
|
grpcController.record(recordSwitch.isSelected());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,4 +28,35 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<Switch
|
||||||
|
android:id="@+id/recordSwitch"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:text="Switch"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/textView3" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textView3"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:text="TextView"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="Recording" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/saveButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:text="Save"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Reference in New Issue
Block a user