summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sensor_test_app/src/sensor/test/com/android/sensor/Main.java')
-rw-r--r--sensor_test_app/src/sensor/test/com/android/sensor/Main.java500
1 files changed, 0 insertions, 500 deletions
diff --git a/sensor_test_app/src/sensor/test/com/android/sensor/Main.java b/sensor_test_app/src/sensor/test/com/android/sensor/Main.java
deleted file mode 100644
index 0dca112..0000000
--- a/sensor_test_app/src/sensor/test/com/android/sensor/Main.java
+++ /dev/null
@@ -1,500 +0,0 @@
1/*
2 * Android Sensor Test Application
3 *
4 * Copyright 2010 Texas Instruments, Inc. - http://www.ti.com/
5 *
6 * Written by Dan Murphy <dmurphy@ti.com>
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20
21package sensor.test.com.android.sensor;
22
23import java.text.DecimalFormat;
24import java.util.List;
25
26import sensor.test.R;
27
28import android.app.Activity;
29import android.app.AlertDialog;
30import android.content.DialogInterface;
31import android.hardware.Sensor;
32import android.hardware.SensorManager;
33import android.os.Bundle;
34import android.util.Log;
35import android.view.ContextMenu;
36import android.view.ContextMenu.ContextMenuInfo;
37import android.view.Menu;
38import android.view.MenuItem;
39import android.view.View;
40import android.view.View.OnClickListener;
41import android.widget.Button;
42import android.widget.CheckBox;
43import android.widget.TextView;
44import android.widget.Toast;
45
46
47public class Main extends Activity {
48 private static final String TESTING_TAG = "SensorTestOutput";
49 private static final String FAIL_TAG = "FAILIED: ";
50 private static final String WARN_TAG = "WARNING: ";
51 private static final String INFO_TAG = "Information: ";
52 private static final String VER_NUM = "1.0";
53 static Sensor_data data = new Sensor_data(new DecimalFormat("0.000000"));
54 static Sensor_management manage = new Sensor_management();
55 public List<Sensor> all;
56
57
58 public void onCreate(Bundle savedInstanceState) {
59 super.onCreate(savedInstanceState);
60 setContentView(R.layout.main);
61
62 this.setTitle(R.string.app_title);
63 Log.d(TESTING_TAG, "Texas Instruments Sensor Test Application: " + VER_NUM);
64 //Acquire SensorManager
65 data.sensmang = (SensorManager) getSystemService(SENSOR_SERVICE);
66 all = data.sensmang.getSensorList(Sensor.TYPE_ALL);
67 for (int i = 0; i < all.size(); i++) {
68 Sensor s = all.get(i);
69 Log.d(TESTING_TAG, "Found Sensor: " + s.getName());
70 Log.d(TESTING_TAG, " Vendor: " + s.getVendor());
71 Log.d(TESTING_TAG, " Max: " + s.getMaximumRange());
72 Log.d(TESTING_TAG, " Resolution: " + s.getResolution());
73 Log.d(TESTING_TAG, " Version: " + s.getVersion());
74 };
75
76 //Proximity initialisation
77 data.proximity = data.sensmang.getDefaultSensor(Sensor.TYPE_PROXIMITY);
78 data.prox_lbl = (TextView) findViewById(R.id.prox_lbl_id);
79 data.prox = (TextView) findViewById(R.id.proximity);
80 data.prox_check = (CheckBox) findViewById(R.id.prox_check_box);
81 data.prox_state = false;
82
83 if (data.proximity == null) {
84 Log.d(TESTING_TAG, WARN_TAG + "No proximity sensor avaliable.");
85 data.prox_lbl.setText("No Proximity Sensor available");
86 data.prox.setText("Proximity State: N/A");
87 data.prox_check.setClickable(false);
88 } else {
89 data.prox_lbl.setText(data.proximity.getName());
90 data.prox_check.setChecked(data.prox_state);
91 data.prox_check.setClickable(true);
92 manage.set_sensor_state(Sensor.TYPE_PROXIMITY, data.prox_state, SensorManager.SENSOR_DELAY_FASTEST);
93
94 data.prox_check.setOnClickListener(new OnClickListener() {
95 public void onClick(View arg0) {
96 if (data.prox_check.isChecked())
97 data.prox_state = true;
98 else
99 data.prox_state = false;
100
101 manage.set_sensor_state(Sensor.TYPE_PROXIMITY, data.prox_state, data.sensor_delay);
102 }
103 });
104 }
105
106 //Ambient Light sensor initialisation
107 data.alsensor = data.sensmang.getDefaultSensor(Sensor.TYPE_LIGHT);
108 data.als_lbl = (TextView) findViewById(R.id.als_lbl_id);
109 data.als = (TextView) findViewById(R.id.light);
110 data.accel_lbl = (TextView) findViewById(R.id.accel_lbl_id);
111
112 if (data.alsensor == null) {
113 Log.d(TESTING_TAG, WARN_TAG + "No ALS sensor avaliable.");
114 data.als_lbl.setText("No ALS Sensor available");
115 } else {
116 data.als_lbl.setText(data.alsensor.getName());
117 manage.set_sensor_state(Sensor.TYPE_LIGHT, true, data.sensor_delay);
118 }
119
120 //Pressure Sensor initialisation
121 data.pressure = data.sensmang.getDefaultSensor(Sensor.TYPE_PRESSURE);
122 data.press_lbl = (TextView) findViewById(R.id.pressure_lbl_id);
123 data.press = (TextView) findViewById(R.id.pressure);
124 data.pressure_check = (CheckBox) findViewById(R.id.pressure_check_box);
125 data.press_unit_butt = (Button) findViewById(R.id.press_unit);
126 data.pressure_state = false;
127
128 if (data.pressure == null) {
129 Log.d(TESTING_TAG, WARN_TAG + "No pressure sensor avaliable.");
130 data.press_lbl.setText("No Pressure Sensor available");
131 data.press.setText("Pressure Reading: N/A");
132 data.press_unit_butt.setText("N/A");
133 data.pressure_check.setClickable(false);
134 data.press_unit_butt.setEnabled(false);
135 } else {
136 data.press_lbl.setText(data.pressure.getName());
137 data.pressure_check.setChecked(data.pressure_state);
138 data.pressure_check.setClickable(true);
139 manage.set_sensor_state(Sensor.TYPE_PRESSURE, data.pressure_state, data.sensor_delay);
140 registerForContextMenu(findViewById(R.id.press_unit));
141 data.pressure_check.setOnClickListener(new OnClickListener() {
142 public void onClick(View arg0) {
143 if (data.pressure_check.isChecked())
144 data.pressure_state = true;
145 else
146 data.pressure_state = false;
147 manage.set_sensor_state(Sensor.TYPE_PRESSURE, data.pressure_state, data.sensor_delay);
148 }
149 });
150 }
151 //Temperature Sensor initialisation
152 data.temperature = data.sensmang.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
153 data.temp_lbl = (TextView) findViewById(R.id.temp_lbl_id);
154 data.temp = (TextView) findViewById(R.id.temperature);
155 data.temperature_check = (CheckBox) findViewById(R.id.temp_check_box);
156 data.temp_unit_butt = (Button) findViewById(R.id.temp_unit);
157 data.temperature_state = false;
158
159 if ( data.temperature == null) {
160 Log.d(TESTING_TAG, WARN_TAG + "No temperature sensor avaliable.");
161 data.temp_lbl.setText("No temperature Sensor available");
162 data.temp.setText("Temperature Reading: N/A");
163 data.temp_unit_butt.setText("N/A");
164 data.temperature_check.setClickable(false);
165 data.temp_unit_butt.setEnabled(false);
166 } else {
167 data.temp_lbl.setText(data.temperature.getName());
168 data.temperature_check.setChecked(data.temperature_state);
169 data.temperature_check.setClickable(true);
170 manage.set_sensor_state(Sensor.TYPE_TEMPERATURE, data.temperature_state, data.sensor_delay);
171 registerForContextMenu(findViewById(R.id.temp_unit));
172 data.temperature_check.setOnClickListener(new OnClickListener() {
173 public void onClick(View arg0) {
174 if (data.temperature_check.isChecked())
175 data.temperature_state = true;
176 else
177 data.temperature_state = false;
178 manage.set_sensor_state(Sensor.TYPE_TEMPERATURE, data.temperature_state, data.sensor_delay);
179 }
180 });
181 }
182 //Accelerometer sensor initialisation
183 data.accelerometer = data.sensmang.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
184 data.accel_lbl = (TextView) findViewById(R.id.accel_lbl_id);
185 data.accel_x = (TextView) findViewById(R.id.accel_x);
186 data.accel_y = (TextView) findViewById(R.id.accel_y);
187 data.accel_z = (TextView) findViewById(R.id.accel_z);
188 data.accel_delay_butt = (Button) findViewById(R.id.acc_delay);
189 data.accel_check = (CheckBox) findViewById(R.id.accel_check_box);
190
191 if (data.accelerometer == null) {
192 Log.d(TESTING_TAG, WARN_TAG + "No Accelerometer sensor avaliable.");
193 data.accel_lbl.setText("No Accelerometer Sensor available");
194 data.accel_check.setClickable(false);
195 data.accel_delay_butt.setEnabled(false);
196 data.accel_delay_butt.setText("N/A");
197 data.accel_x.setText("X Data: N/A");
198 data.accel_y.setText("Y Data: N/A");
199 data.accel_z.setText("Z Data: N/A");
200
201 } else {
202 data.accel_lbl.setText(data.accelerometer.getName());
203 registerForContextMenu(findViewById(R.id.acc_delay));
204 data.accel_state = false;
205 data.accel_check.setChecked(data.accel_state);
206 manage.set_sensor_state(Sensor.TYPE_ACCELEROMETER, data.accel_state, data.sensor_delay);
207 data.accel_check.setOnClickListener(new OnClickListener() {
208 public void onClick(View arg0) {
209 if (data.accel_check.isChecked())
210 data.accel_state = true;
211 else
212 data.accel_state = false;
213 manage.set_sensor_state(Sensor.TYPE_ACCELEROMETER, data.accel_state, data.sensor_delay);
214 }
215 });
216 }
217
218 //Magnetometer sensor initialisation
219 data.magnetometer = data.sensmang.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
220 data.mag_lbl = (TextView) findViewById(R.id.mag_lbl_id);
221 data.mag_x = (TextView) findViewById(R.id.mag_x);
222 data.mag_y = (TextView) findViewById(R.id.mag_y);
223 data.mag_z = (TextView) findViewById(R.id.mag_z);
224 data.mag_delay_butt = (Button) findViewById(R.id.mag_delay);
225 data.mag_check = (CheckBox) findViewById(R.id.mag_check_box);
226
227 if (data.magnetometer == null) {
228 Log.d(TESTING_TAG, WARN_TAG + "No Magnetometer sensor avaliable.");
229 data.mag_lbl.setText("No Magnetometer Sensor available");
230 data.mag_check.setClickable(false);
231 data.mag_delay_butt.setEnabled(false);
232 data.mag_delay_butt.setText("N/A");
233 data.mag_x.setText("X Data: N/A");
234 data.mag_y.setText("Y Data: N/A");
235 data.mag_z.setText("Z Data: N/A");
236
237 } else {
238 data.mag_lbl.setText(data.magnetometer.getName());
239 registerForContextMenu(findViewById(R.id.mag_delay));
240 data.mag_state = false;
241 data.mag_check.setChecked(data.accel_state);
242 manage.set_sensor_state(Sensor.TYPE_MAGNETIC_FIELD, data.mag_state, data.sensor_delay);
243 data.mag_check.setOnClickListener(new OnClickListener() {
244 public void onClick(View arg0) {
245 if (data.mag_check.isChecked())
246 data.mag_state = true;
247 else
248 data.mag_state = false;
249 manage.set_sensor_state(Sensor.TYPE_MAGNETIC_FIELD, data.mag_state, data.sensor_delay);
250 }
251 });
252 }
253 //Gyroscope sensor initialisation
254 data.gyroscope = data.sensmang.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
255 data.gyro_lbl = (TextView) findViewById(R.id.gyro_lbl_id);
256 data.gyro_x = (TextView) findViewById(R.id.gyro_x);
257 data.gyro_y = (TextView) findViewById(R.id.gyro_y);
258 data.gyro_z = (TextView) findViewById(R.id.gyro_z);
259 data.gyro_delay_butt = (Button) findViewById(R.id.gyro_delay);
260 data.gyro_check = (CheckBox) findViewById(R.id.gyro_check_box);
261
262 if (data.gyroscope == null) {
263 Log.d(TESTING_TAG, WARN_TAG + "No Gyroscope sensor avaliable.");
264 data.gyro_lbl.setText("No Gyroscope Sensor available");
265 data.gyro_check.setClickable(false);
266 data.gyro_delay_butt.setEnabled(false);
267 data.gyro_delay_butt.setText("N/A");
268 data.gyro_x.setText("X Data: N/A");
269 data.gyro_y.setText("Y Data: N/A");
270 data.gyro_z.setText("Z Data: N/A");
271
272 } else {
273 data.gyro_lbl.setText(data.gyroscope.getName());
274 registerForContextMenu(findViewById(R.id.gyro_delay));
275 data.gyro_state = false;
276 data.gyro_check.setChecked(data.gyro_state);
277 manage.set_sensor_state(Sensor.TYPE_GYROSCOPE, data.gyro_state, data.sensor_delay);
278 data.gyro_check.setOnClickListener(new OnClickListener() {
279 public void onClick(View arg0) {
280 if (data.gyro_check.isChecked())
281 data.gyro_state = true;
282 else
283 data.gyro_state = false;
284 manage.set_sensor_state(Sensor.TYPE_GYROSCOPE, data.gyro_state, data.sensor_delay);
285 }
286 });
287 }
288 }
289
290 @Override
291 protected void onResume() {
292 data.accel_state = data.accel_check.isChecked();
293 data.prox_state = data.prox_check.isChecked();
294 data.mag_state = data.mag_check.isChecked();
295 data.pressure_state = data.pressure_check.isChecked();
296 data.temperature_state = data.temperature_check.isChecked();
297 data.gyro_state = data.gyro_check.isChecked();
298
299 manage.set_sensor_state(Sensor.TYPE_PROXIMITY, data.prox_state, data.sensor_delay);
300 manage.set_sensor_state(Sensor.TYPE_LIGHT, true, data.sensor_delay);
301 manage.set_sensor_state(Sensor.TYPE_ACCELEROMETER, data.accel_state, data.sensor_delay);
302 manage.set_sensor_state(Sensor.TYPE_MAGNETIC_FIELD, data.mag_state, data.sensor_delay);
303 manage.set_sensor_state(Sensor.TYPE_PRESSURE, data.pressure_state, data.sensor_delay);
304 manage.set_sensor_state(Sensor.TYPE_TEMPERATURE, data.temperature_state, data.sensor_delay);
305 manage.set_sensor_state(Sensor.TYPE_GYROSCOPE, data.gyro_state, data.sensor_delay);
306 manage.ok_to_toast = false;
307 super.onResume();
308 }
309
310 @Override
311 protected void onStop() {
312 manage.set_sensor_state(Sensor.TYPE_PROXIMITY, false, data.sensor_delay);
313 manage.set_sensor_state(Sensor.TYPE_LIGHT, false, data.sensor_delay);
314 manage.set_sensor_state(Sensor.TYPE_ACCELEROMETER, false, data.sensor_delay);
315 manage.set_sensor_state(Sensor.TYPE_MAGNETIC_FIELD, false, data.sensor_delay);
316 manage.set_sensor_state(Sensor.TYPE_PRESSURE, false, data.sensor_delay);
317 manage.set_sensor_state(Sensor.TYPE_TEMPERATURE, false, data.sensor_delay);
318 manage.set_sensor_state(Sensor.TYPE_GYROSCOPE, false, data.sensor_delay);
319 manage.ok_to_toast = false;
320 super.onStop();
321 }
322 @Override
323 public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
324
325 super.onCreateContextMenu(menu, v, menuInfo);
326 if (v.getId() == R.id.acc_delay) {
327 if (data.accel_state == true) {
328 menu.setHeaderTitle("Accelerometer Delay Menu");
329 Main.manage.sensor_to_manage = Sensor.TYPE_ACCELEROMETER;
330 menu.add(0, 0, 0, "Fastest");
331 menu.add(0, 1, 0, "Gamer");
332 menu.add(0, 2, 0, "UI");
333 menu.add(0, 3, 0, "Normal");
334 } else {
335 Log.e(TESTING_TAG, WARN_TAG + "Accelerometer not enabled");
336 return;
337 }
338 } else if (v.getId() == R.id.mag_delay) {
339 if (data.mag_state == true) {
340 menu.setHeaderTitle("Magnetometer Delay Menu");
341 Main.manage.sensor_to_manage = Sensor.TYPE_MAGNETIC_FIELD;
342 menu.add(0, 0, 0, "Fastest");
343 menu.add(0, 1, 0, "Gamer");
344 menu.add(0, 2, 0, "UI");
345 menu.add(0, 3, 0, "Normal");
346 } else {
347 Log.e(TESTING_TAG, WARN_TAG + "Magnetometer not enabled");
348 return;
349 }
350 } else if (v.getId() == R.id.gyro_delay) {
351 if (data.gyro_state == true) {
352 menu.setHeaderTitle("Gyroscope Delay Menu");
353 Main.manage.sensor_to_manage = Sensor.TYPE_GYROSCOPE;
354 menu.add(0, 0, 0, "Fastest");
355 menu.add(0, 1, 0, "Gamer");
356 menu.add(0, 2, 0, "UI");
357 menu.add(0, 3, 0, "Normal");
358 } else {
359 Log.e(TESTING_TAG, WARN_TAG + "Gyroscope not enabled");
360 return;
361 }
362 } else if (v.getId() == R.id.press_unit) {
363 if (data.pressure_state == true) {
364 Main.manage.sensor_to_manage = Sensor.TYPE_PRESSURE;
365 menu.setHeaderTitle("Pressure Unit Menu");
366 menu.add(0, 0, 0, "Pascals");
367 menu.add(0, 1, 0, "mmHg");
368 menu.add(0, 2, 0, "inHg");
369 } else {
370 Log.e(TESTING_TAG, WARN_TAG + "Pressure Sensor not enabled");
371 return;
372 }
373 } else if (v.getId() == R.id.temp_unit) {
374 if (data.temperature_state == true) {
375 Main.manage.sensor_to_manage = Sensor.TYPE_TEMPERATURE;
376 menu.setHeaderTitle("Temperature Unit Menu");
377 menu.add(0, 0, 0, "Celcius");
378 menu.add(0, 1, 0, "Farenheit");
379 } else {
380 Log.e(TESTING_TAG, WARN_TAG + "Temperature Sensor not enabled");
381 return;
382 }
383 }else {
384 return;
385 }
386 }
387
388 @Override
389 public boolean onContextItemSelected(MenuItem item) {
390 boolean err = false;
391 int delay = SensorManager.SENSOR_DELAY_NORMAL;
392
393 if (Main.manage.sensor_to_manage == Sensor.TYPE_PRESSURE) {
394 if(item.getItemId() == 0) {
395 data.pressure_measurement = 0;
396 Log.d(TESTING_TAG, INFO_TAG + "Setting Pressure data to Pascals");
397 } else if(item.getItemId() == 1){
398 data.pressure_measurement = 1;
399 Log.d(TESTING_TAG, INFO_TAG + "Setting Pressure data to mmHg");
400 } else if(item.getItemId() == 2){
401 data.pressure_measurement = 2;
402 Log.d(TESTING_TAG, INFO_TAG + "Setting Pressure data to inHg");
403 } else {
404 Log.e(TESTING_TAG, FAIL_TAG + "Unknown Pressure scale requested");
405 return false;
406 }
407 } else if (Main.manage.sensor_to_manage == Sensor.TYPE_TEMPERATURE) {
408 if(item.getItemId() == 0) {
409 if (data.temperature_units == 1)
410 data.temp.setText("Temperature Reading: " + data.temperature_measurement + " C");
411
412 data.temperature_units = 0;
413 Log.d(TESTING_TAG, INFO_TAG + "Setting Temperature data to Celcius");
414 } else if(item.getItemId() == 1){
415 if (data.temperature_units == 0)
416 data.temp.setText("Temperature Reading: " + (data.temperature_measurement * 1.8f + 32) + " F");
417
418 data.temperature_units = 1;
419 Log.d(TESTING_TAG, INFO_TAG + "Setting Temperature to Farenheit");
420 } else {
421 Log.e(TESTING_TAG, FAIL_TAG + "Unknown Pressure scale requested");
422 return false;
423 }
424 } else {
425 if(item.getItemId() == 0) {
426 Toast.makeText(getBaseContext(), "Setting to Fastest Speed",
427 Toast.LENGTH_SHORT).show();
428 delay = SensorManager.SENSOR_DELAY_FASTEST;
429 Log.d(TESTING_TAG, INFO_TAG + "Fastest data rate requested");
430 } else if(item.getItemId() == 1){
431 Toast.makeText(getBaseContext(), "Setting to Gaming Speed",
432 Toast.LENGTH_SHORT).show();
433 delay = SensorManager.SENSOR_DELAY_GAME;
434 Log.d(TESTING_TAG, INFO_TAG + "Gaming data rate requested");
435 } else if(item.getItemId() == 2){
436 Toast.makeText(getBaseContext(), "Setting to UI Speed",
437 Toast.LENGTH_SHORT).show();
438 delay = SensorManager.SENSOR_DELAY_UI;
439 Log.d(TESTING_TAG, INFO_TAG + "UI data rate requested");
440 } else if(item.getItemId() == 3){
441 Toast.makeText(getBaseContext(), "Setting to Normal Speed",
442 Toast.LENGTH_SHORT).show();
443 delay = SensorManager.SENSOR_DELAY_NORMAL;
444 Log.d(TESTING_TAG, INFO_TAG + "Normal data rate requested");
445 } else {
446 Log.e(TESTING_TAG, FAIL_TAG + "Unknown data rate requested");
447 return false;
448 }
449
450 data.sensor_delay = delay;
451
452 err = manage.set_sensor_delay(Main.manage.sensor_to_manage, delay);
453 if (err != true) {
454 Toast.makeText(getBaseContext(), "Delay was not set",
455 Toast.LENGTH_SHORT).show();
456 Log.e(TESTING_TAG, FAIL_TAG + "Sensor delay was not set");
457 return err;
458 }
459 }
460
461 return true;
462 }
463 @Override
464 public boolean onCreateOptionsMenu(Menu menu) {
465 super.onCreateOptionsMenu(menu);
466 int groupId = 0;
467 int menuItemOrder = Menu.NONE;
468 MenuItem quitmenuItem = menu.add(groupId, 0, menuItemOrder, "Quit");
469 quitmenuItem.setIcon(R.drawable.exit);
470 MenuItem aboutmenuItem = menu.add(groupId, 1, menuItemOrder, "About This Application");
471 aboutmenuItem.setIcon(R.drawable.about);
472
473 return true;
474 }
475 @Override
476 public boolean onOptionsItemSelected(MenuItem item) {
477 // Handle item selection
478 switch (item.getItemId()) {
479 //Quit
480 case 0:
481 this.onStop();
482 finish();
483 break;
484 //Help
485 case 1:
486 AlertDialog.Builder helpbox = new AlertDialog.Builder(this);
487 helpbox.setMessage("Texas Instruments Sensor Test Application Version: " + VER_NUM);
488 helpbox.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
489 public void onClick(DialogInterface arg0, int arg1) {
490 // Do nothing as there is nothing to do
491 }
492 });
493 helpbox.show();
494 return true;
495 default:
496 return super.onOptionsItemSelected(item);
497 }
498 return true;
499 }
500}