package com.cellbots;
/*
* Robot control console. Copyright (C) 2010 Darrell Taylor & Eric Hokanson
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import com.cellbots.R;
import android.app.Activity;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ToggleButton;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class ServoTester extends Activity implements OnSeekBarChangeListener
{
public static SensorManager sensorManager;
private LinearLayout main;
PulseGenerator noise;
GestureDetector nGestures;
SeekBar lPulseBar;
SeekBar rPulseBar;
TextView rPulseText;
TextView lPulseText;
SeekBar lPulseBar2;
SeekBar rPulseBar2;
TextView rPulseText2;
TextView lPulseText2;
Thread noiseThread;
ToggleButton soundToggleButton;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensorManager = (SensorManager) this.getSystemService(this.SENSOR_SERVICE);
// set up the noise thread
noise = new PulseGenerator();
noiseThread = new Thread(noise);
lPulseBar = (SeekBar) findViewById(R.id.LeftServo);
// lPulseBar.setProgress(noise.getLeftPulsePercent());
lPulseBar.setOnSeekBarChangeListener(this);
lPulseText = (TextView) findViewById(R.id.LeftServoValue);
lPulseText.setText("0 Left Pos Pulse width =" + noise.getPulsePercent(0));
lPulseBar2 = (SeekBar) findViewById(R.id.LeftServo2);
// lPulseBar.setProgress(noise.getLeftPulsePercent());
lPulseBar2.setOnSeekBarChangeListener(this);
lPulseText2 = (TextView) findViewById(R.id.LeftServoValue2);
lPulseText2.setText("1 Left Neg Pulse width =" + noise.getPulsePercent(1));
rPulseBar = (SeekBar) findViewById(R.id.RightServo);
// rPulseBar.setProgress(noise.getRightPulsePercent());
rPulseBar.setOnSeekBarChangeListener(this);
rPulseText = (TextView) findViewById(R.id.RightServoValue);
rPulseText.setText("2 Right Pos Pulse width =" + noise.getPulsePercent(2));
rPulseBar2 = (SeekBar) findViewById(R.id.RightServo2);
// rPulseBar.setProgress(noise.getRightPulsePercent());
rPulseBar2.setOnSeekBarChangeListener(this);
rPulseText2 = (TextView) findViewById(R.id.RightServoValue2);
rPulseText2.setText("3 Right Neg Pulse width =" + noise.getPulsePercent(3));
}
@Override
protected void onStart()
{
if (!noiseThread.isAlive())
noiseThread.start();
super.onStart();
}
@Override
protected void onDestroy()
{
noise.stop();
// soundToggleButton.setChecked(false);
// TODO Auto-generated method stub
super.onDestroy();
}
public void onToggleSound(View v)
{
noise.togglePlayback();
}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch)
{
if (seekBar.getId() == lPulseBar.getId())
{
noise.setPulsePercent(progress, 0);
lPulseText.setText("Servo 1(L Pos) pulse width = " + noise.getPulseMs(0) + "ms (" + noise.getPulseSamples(0) + " samples)");
}
if (seekBar.getId() == lPulseBar2.getId())
{
noise.setPulsePercent(progress, 1);
lPulseText2.setText("Servo 2(L Neg) pulse width = " + noise.getPulseMs(1) + "ms (" + noise.getPulseSamples(1) + " samples)");
}
if (seekBar.getId() == rPulseBar.getId())
{
noise.setPulsePercent(progress, 2);
rPulseText.setText("Servo 3(R Pos) pulse width = " + noise.getPulseMs(2) + "ms (" + noise.getPulseSamples(2) + " samples)");
}
if (seekBar.getId() == rPulseBar2.getId())
{
noise.setPulsePercent(progress, 3);
rPulseText2.setText("Servo 4(R Neg) Pulse width = " + noise.getPulseMs(3) + "ms (" + noise.getPulseSamples(3) + " samples)");
}
}
public void onStartTrackingTouch(SeekBar seekBar)
{
// mTrackingText.setText(getString(R.string.seekbar_tracking_on));
}
public void onStopTrackingTouch(SeekBar seekBar)
{
// mTrackingText.setText(getString(R.string.seekbar_tracking_off));
}
}