diff --git a/androidgcs/res/drawable-hdpi/icon.png b/androidgcs/res/drawable-hdpi/icon.png
index 8074c4c57..eab1fc68f 100644
Binary files a/androidgcs/res/drawable-hdpi/icon.png and b/androidgcs/res/drawable-hdpi/icon.png differ
diff --git a/androidgcs/res/drawable-ldpi/icon.png b/androidgcs/res/drawable-ldpi/icon.png
index 1095584ec..eab1fc68f 100644
Binary files a/androidgcs/res/drawable-ldpi/icon.png and b/androidgcs/res/drawable-ldpi/icon.png differ
diff --git a/androidgcs/res/drawable-mdpi/icon.png b/androidgcs/res/drawable-mdpi/icon.png
index a07c69fa5..eab1fc68f 100644
Binary files a/androidgcs/res/drawable-mdpi/icon.png and b/androidgcs/res/drawable-mdpi/icon.png differ
diff --git a/androidgcs/res/layout/main.xml b/androidgcs/res/layout/main.xml
index 7e4a852bf..9e5f90add 100644
--- a/androidgcs/res/layout/main.xml
+++ b/androidgcs/res/layout/main.xml
@@ -8,4 +8,6 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
+
+
diff --git a/androidgcs/src/org/openpilot/androidgcs/ObjectBrowser.java b/androidgcs/src/org/openpilot/androidgcs/ObjectBrowser.java
index 3c6231258..a8c58d58d 100644
--- a/androidgcs/src/org/openpilot/androidgcs/ObjectBrowser.java
+++ b/androidgcs/src/org/openpilot/androidgcs/ObjectBrowser.java
@@ -1,6 +1,8 @@
package org.openpilot.androidgcs;
import java.io.IOException;
+import java.util.Observable;
+import java.util.Observer;
import java.util.Set;
import java.util.UUID;
@@ -10,11 +12,15 @@ import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
+import android.os.Handler;
import android.util.Log;
+import android.widget.TextView;
+import android.widget.ToggleButton;
import org.openpilot.androidgcs.*;
import org.openpilot.uavtalk.Telemetry;
import org.openpilot.uavtalk.TelemetryMonitor;
+import org.openpilot.uavtalk.UAVObject;
import org.openpilot.uavtalk.UAVObjectManager;
import org.openpilot.uavtalk.UAVTalk;
import org.openpilot.uavtalk.uavobjects.UAVObjectsInitialize;
@@ -26,9 +32,35 @@ public class ObjectBrowser extends Activity {
private final int REQUEST_ENABLE_BT = 0;
private UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BluetoothAdapter mBluetoothAdapter;
+ BluetoothSocket socket;
+ boolean connected;
UAVObjectManager objMngr;
UAVTalk uavTalk;
+ final Handler uavobjHandler = new Handler();
+ final Runnable updateText = new Runnable() {
+ public void run() {
+ ToggleButton button = (ToggleButton) findViewById(R.id.toggleButton1);
+ button.setChecked(!connected);
+
+ Log.d(TAG,"HERE" + connected);
+
+ TextView text = (TextView) findViewById(R.id.textView1);
+
+ UAVObject obj1 = objMngr.getObject("SystemStats");
+ UAVObject obj2 = objMngr.getObject("AttitudeRaw");
+ UAVObject obj3 = objMngr.getObject("AttitudeActual");
+ UAVObject obj4 = objMngr.getObject("SystemAlarms");
+
+ if(obj1 == null || obj2 == null || obj3 == null || obj4 == null)
+ return;
+
+ Log.d(TAG,"And here");
+ text.setText(obj1.toString() + "\n" + obj2.toString() + "\n" + obj3.toString() + "\n" + obj4.toString() );
+
+ }
+ };
+
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -36,11 +68,16 @@ public class ObjectBrowser extends Activity {
setContentView(R.layout.main);
Log.d(TAG, "Launching Object Browser");
+
+ connected = false;
+ objMngr = new UAVObjectManager();
+ UAVObjectsInitialize.register(objMngr);
+
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
// Device does not support Bluetooth
- Log.d(TAG, "Device does not support Bluetooth");
+ Log.e(TAG, "Device does not support Bluetooth");
return;
}
@@ -50,16 +87,49 @@ public class ObjectBrowser extends Activity {
} else {
queryDevices();
}
+
+
+ UAVObject obj = objMngr.getObject("SystemStats");
+ if(obj != null)
+ obj.addUpdatedObserver(new Observer() {
+ public void update(Observable observable, Object data) {
+ uavobjHandler.post(updateText);
+ }
+ });
+ obj = objMngr.getObject("AttitudeRaw");
+ if(obj != null)
+ obj.addUpdatedObserver(new Observer() {
+ public void update(Observable observable, Object data) {
+ uavobjHandler.post(updateText);
+ }
+ });
+ obj = objMngr.getObject("AttitudeActual");
+ if(obj != null)
+ obj.addUpdatedObserver(new Observer() {
+ public void update(Observable observable, Object data) {
+ uavobjHandler.post(updateText);
+ }
+ });
+ obj = objMngr.getObject("SystemAlarms");
+ if(obj != null)
+ obj.addUpdatedObserver(new Observer() {
+ public void update(Observable observable, Object data) {
+ uavobjHandler.post(updateText);
+ }
+ });
+
+
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_ENABLE_BT && resultCode == RESULT_OK) {
- Log.d(TAG, "Bluetooth started succesfully");
+ //Log.d(TAG, "Bluetooth started succesfully");
queryDevices();
}
- if(requestCode == REQUEST_ENABLE_BT && resultCode != RESULT_OK)
- Log.d(TAG, "Bluetooth could not be started");
+ if(requestCode == REQUEST_ENABLE_BT && resultCode != RESULT_OK) {
+ //Log.d(TAG, "Bluetooth could not be started");
+ }
}
@@ -84,12 +154,13 @@ public class ObjectBrowser extends Activity {
private void openTelmetryBluetooth(BluetoothDevice device) {
Log.d(TAG, "Opening conncetion to " + device.getName());
- BluetoothSocket socket = null;
+ socket = null;
+ connected = false;
try {
socket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
Log.e(TAG,"Unable to create Rfcomm socket");
- e.printStackTrace();
+ //e.printStackTrace();
}
mBluetoothAdapter.cancelDiscovery();
@@ -102,20 +173,19 @@ public class ObjectBrowser extends Activity {
try {
socket.close();
} catch (IOException e2) {
- Log.e(TAG, "unable to close() socket during connection failure", e2);
+ //Log.e(TAG, "unable to close() socket during connection failure", e2);
}
return;
}
- objMngr = new UAVObjectManager();
- UAVObjectsInitialize.register(objMngr);
-
+ connected = true;
+
try {
uavTalk = new UAVTalk(socket.getInputStream(), socket.getOutputStream(), objMngr);
} catch (IOException e) {
Log.e(TAG,"Error starting UAVTalk");
// TODO Auto-generated catch block
- e.printStackTrace();
+ //e.printStackTrace();
return;
}