]> rtime.felk.cvut.cz Git - orte.git/commitdiff
ROBOT_DEMO: add Dialog to set-up fellow managers
authorMartin Vajnar <martin.vajnar@gmail.com>
Mon, 26 Aug 2013 20:26:58 +0000 (22:26 +0200)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Mon, 23 Sep 2013 09:06:28 +0000 (11:06 +0200)
orte/Robot_Demo/AndroidManifest.xml
orte/Robot_Demo/gen/org/ocera/orte/demo/R.java
orte/Robot_Demo/res/layout/managers_view.xml [new file with mode: 0644]
orte/Robot_Demo/src/org/ocera/orte/demo/MainActivity.java

index b05cae2a344f79e61a085b8b030794d1a2509e8b..eab91fa2253eb668d1884afcf47462a85a9ece2a 100644 (file)
@@ -9,6 +9,7 @@
         android:targetSdkVersion="15" />
     
     <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
     <uses-permission android:name="android.permission.WAKE_LOCK"/>
 
 
index 359d7f8d745f997e6eb08f1cd65c4cbe55305097..e78a6f20e7e6eaa11756f3dde423cbc9e45ab972 100644 (file)
@@ -16,35 +16,38 @@ public final class R {
         public static final int logo_flamingos=0x7f020002;
     }
     public static final class id {
-        public static final int about=0x7f070016;
-        public static final int crane=0x7f070013;
-        public static final int editText1=0x7f070006;
-        public static final int editText2=0x7f070009;
-        public static final int editText3=0x7f07000c;
-        public static final int editText4=0x7f07000f;
-        public static final int exit=0x7f070017;
-        public static final int hokuyo=0x7f070012;
+        public static final int about=0x7f070018;
+        public static final int crane=0x7f070015;
+        public static final int editText1=0x7f070008;
+        public static final int editText2=0x7f07000b;
+        public static final int editText3=0x7f07000e;
+        public static final int editText4=0x7f070011;
+        public static final int exit=0x7f070019;
+        public static final int hokuyo=0x7f070014;
         public static final int hokuyo_view=0x7f070004;
         public static final int hokuyo_view_bg=0x7f070003;
         public static final int imageView1=0x7f070000;
-        public static final int magnet=0x7f070014;
+        public static final int magnet=0x7f070016;
+        public static final int managers=0x7f070005;
+        public static final int ownIP=0x7f070006;
         public static final int scrollView1=0x7f070001;
-        public static final int speed=0x7f070010;
-        public static final int speed_mon=0x7f070011;
-        public static final int tableRow1=0x7f070005;
-        public static final int tableRow2=0x7f070007;
-        public static final int tableRow3=0x7f07000a;
-        public static final int tableRow4=0x7f07000d;
+        public static final int speed=0x7f070012;
+        public static final int speed_mon=0x7f070013;
+        public static final int tableRow1=0x7f070007;
+        public static final int tableRow2=0x7f070009;
+        public static final int tableRow3=0x7f07000c;
+        public static final int tableRow4=0x7f07000f;
         public static final int textView1=0x7f070002;
-        public static final int textView2=0x7f070008;
-        public static final int textView3=0x7f07000b;
-        public static final int textView4=0x7f07000e;
-        public static final int voltage=0x7f070015;
+        public static final int textView2=0x7f07000a;
+        public static final int textView3=0x7f07000d;
+        public static final int textView4=0x7f070010;
+        public static final int voltage=0x7f070017;
     }
     public static final class layout {
         public static final int about_dialog=0x7f030000;
         public static final int hokuyo_view=0x7f030001;
-        public static final int status_dialog=0x7f030002;
+        public static final int managers_view=0x7f030002;
+        public static final int status_dialog=0x7f030003;
     }
     public static final class menu {
         public static final int activity_main=0x7f060000;
diff --git a/orte/Robot_Demo/res/layout/managers_view.xml b/orte/Robot_Demo/res/layout/managers_view.xml
new file mode 100644 (file)
index 0000000..8eab0a7
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:orientation="vertical" >
+
+    <EditText
+        android:id="@+id/managers"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:ems="10"
+        android:inputType="textMultiLine" >
+
+        <requestFocus />
+    </EditText>
+
+    <TextView
+        android:id="@+id/ownIP"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+</LinearLayout>
index ea0d43b5b193314ab5dbf9796cbcfded2a52078e..1866bb13129ad4171729c713f0b2b6585888ee52 100644 (file)
@@ -5,14 +5,15 @@ import org.ocera.orte.Manager;
 
 import android.app.Activity;
 import android.app.AlertDialog;
-import android.app.Dialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.SharedPreferences;
 import android.content.pm.ActivityInfo;
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
+import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.net.wifi.WifiManager.WifiLock;
 import android.os.Bundle;
@@ -20,17 +21,19 @@ import android.os.Handler;
 import android.os.Message;
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
+import android.text.format.Formatter;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
 import android.widget.EditText;
+import android.widget.TextView;
  
 public class MainActivity extends Activity {
-       private Dialog voltageDialog = null;
+       private AlertDialog voltageDialog = null;
        private AlertDialog aboutDialog = null;
+       private AlertDialog managersDialog = null;
+       private EditText managersField = null;
        static EditText voltage33 = null;
        static EditText voltage50 = null;
        static EditText voltage80 = null;
@@ -57,9 +60,7 @@ public class MainActivity extends Activity {
     };
        
        private Manager manager = null;
-    private String[] mgrs = {"192.168.1.5","192.168.1.8","192.168.1.29",
-               "10.1.1.1","10.1.1.2","10.1.1.3","10.1.1.4","10.1.1.5","10.1.1.6","10.1.1.7","10.1.1.8","10.1.1.9","10.1.1.10",
-               "10.1.1.11","10.1.1.12","10.1.1.13","10.1.1.14","10.1.1.15","10.1.1.16","10.1.1.17","10.1.1.18","10.1.1.19","10.1.1.20"};
+    private String mgrs = null;
        private MotionSpeedPublish motion_speed_publ = null;
        private MotionSpeedSubscribe motion_speed_subs = null;
        private HokuyoScanSubscribe hokuyo_scan = null;
@@ -78,6 +79,7 @@ public class MainActivity extends Activity {
     private MenuItem speed_publ_item = null;
     private MenuItem speed_subs_item = null;
     private MenuItem hokuyo_item = null;
+    private SharedPreferences prefs = null;
 
     static {
        System.loadLibrary("jorte");     
@@ -155,6 +157,22 @@ public class MainActivity extends Activity {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.hokuyo_view);
         
+        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
+        mWakeLock = mPowerManager.newWakeLock(
+                       PowerManager.SCREEN_BRIGHT_WAKE_LOCK
+                       | PowerManager.ACQUIRE_CAUSES_WAKEUP
+                       | PowerManager.ON_AFTER_RELEASE,
+                       getClass().getName());
+
+        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+        mWifiLock = mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, getClass().getName());
+        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
+        int ip = wifiInfo.getIpAddress();
+        String ipAddress = Formatter.formatIpAddress(ip);
+        
+        prefs = getSharedPreferences("prefs", 0);
+        mgrs = prefs.getString("managers", "10.1.1.1");
+        
                AlertDialog.Builder voltageBuilder = new AlertDialog.Builder(this);
                LayoutInflater inflater = getLayoutInflater();
                View voltageView = inflater.inflate(R.layout.status_dialog, null);
@@ -180,28 +198,42 @@ public class MainActivity extends Activity {
                builder.setPositiveButton("OK", null);
                aboutDialog = builder.create();
                
+               AlertDialog.Builder managersBuilder = new AlertDialog.Builder(this);
+               View managersView = inflater.inflate(R.layout.managers_view, null);
+               TextView ownIP = (TextView)managersView.findViewById(R.id.ownIP);
+               ownIP.setText("\nOwn IP Address: " + ipAddress);
+               managersField = (EditText)managersView.findViewById(R.id.managers);
+               managersField.setText(mgrs);
+               managersBuilder.setCancelable(false);
+               managersBuilder.setView(managersView);
+               managersBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+                       @Override
+                       public void onClick(DialogInterface dialog, int which) {
+                               SharedPreferences.Editor editor = prefs.edit();
+                               mgrs = managersField.getText().toString();
+                               System.out.println(mgrs);
+                               editor.putString("managers", mgrs);
+                               editor.commit();
+                               
+                       manager = new Manager(mgrs);
+
+                       appDomain = new DomainApp();
+                       magnet_cmd = new MagnetCmdPublish(appDomain);
+                       magnet_cmd.start();
+                       crane_cmd = new CraneCmdPublish(appDomain);
+                       crane_cmd.start();
+                               managersDialog.dismiss();
+                       }
+               });
+               managersBuilder.setTitle("Set fellow managers");
+               managersDialog = managersBuilder.create();
+               
         mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
         mGravity = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
         
-        mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
-        mWakeLock = mPowerManager.newWakeLock(
-                       PowerManager.SCREEN_BRIGHT_WAKE_LOCK
-                       | PowerManager.ACQUIRE_CAUSES_WAKEUP
-                       | PowerManager.ON_AFTER_RELEASE,
-                       getClass().getName());
-        
-        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
-        mWifiLock = mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, getClass().getName());
-        
         hokuyo_view = (HokuyoView) findViewById(R.id.hokuyo_view);
         
-        manager = new Manager(mgrs);
-
-        appDomain = new DomainApp();
-        magnet_cmd = new MagnetCmdPublish(appDomain);
-        magnet_cmd.start();
-        crane_cmd = new CraneCmdPublish(appDomain);
-        crane_cmd.start();
+        managersDialog.show();
     }
     
        @Override