aboutsummaryrefslogtreecommitdiff
path: root/app/src/com/google/android/DemoKit/ServoController.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/com/google/android/DemoKit/ServoController.java')
-rw-r--r--app/src/com/google/android/DemoKit/ServoController.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/src/com/google/android/DemoKit/ServoController.java b/app/src/com/google/android/DemoKit/ServoController.java
new file mode 100644
index 0000000..4584a9f
--- /dev/null
+++ b/app/src/com/google/android/DemoKit/ServoController.java
@@ -0,0 +1,39 @@
+package com.google.android.DemoKit;
+
+import android.text.SpannableStringBuilder;
+import android.text.style.RelativeSizeSpan;
+import android.text.style.SubscriptSpan;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class ServoController implements Slider.SliderPositionListener {
+ private final int mServoNumber;
+ private final byte mCommandTarget;
+ private TextView mLabel;
+ private Slider mSlider;
+ private DemoKitActivity mActivity;
+
+ public ServoController(DemoKitActivity activity, int servoNumber) {
+ mActivity = activity;
+ mServoNumber = servoNumber;
+ mCommandTarget = (byte) (servoNumber - 1 + 0x10);
+ }
+
+ public void attachToView(ViewGroup targetView) {
+ mLabel = (TextView) targetView.getChildAt(0);
+ SpannableStringBuilder ssb = new SpannableStringBuilder("Servo");
+ ssb.append(String.valueOf(mServoNumber));
+ ssb.setSpan(new SubscriptSpan(), 5, 6, 0);
+ ssb.setSpan(new RelativeSizeSpan(0.7f), 5, 6, 0);
+ mLabel.setText(ssb);
+ mSlider = (Slider) targetView.getChildAt(1);
+ mSlider.setPositionListener(this);
+ }
+
+ public void onPositionChange(double value) {
+ byte v = (byte) (value * 255);
+ mActivity.sendCommand(DemoKitActivity.LED_SERVO_COMMAND,
+ mCommandTarget, v);
+ }
+
+}