MainActivity.java
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2013 OSRF.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
00005  * use this file except in compliance with the License. You may obtain a copy of
00006  * the License at
00007  *
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00012  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
00013  * License for the specific language governing permissions and limitations under
00014  * the License.
00015  */
00016 
00017 package com.github.rosjava.android_apps.teleop;
00018 
00019 import android.os.Bundle;
00020 import android.view.Menu;
00021 import android.view.MenuItem;
00022 import android.view.View;
00023 import android.widget.Button;
00024 
00025 import com.github.rosjava.android_apps.application_management.RosAppActivity;
00026 import org.ros.android.view.RosImageView;
00027 import org.ros.namespace.NameResolver;
00028 import org.ros.node.NodeConfiguration;
00029 import org.ros.node.NodeMainExecutor;
00030 import org.ros.address.InetAddressFactory;
00031 import org.ros.android.BitmapFromCompressedImage;
00032 import org.ros.android.view.VirtualJoystickView;
00033 
00037 public class MainActivity extends RosAppActivity {
00038 
00039         private RosImageView<sensor_msgs.CompressedImage> cameraView;
00040         private VirtualJoystickView virtualJoystickView;
00041         private Button backButton;
00042     private static final String virtualJoystickTopic = "android/virtual_joystick/cmd_vel";
00043         private static final String cameraTopic = "camera/rgb/image_color/compressed_throttle";
00044 
00045 
00046         public MainActivity() {
00047                 // The RosActivity constructor configures the notification title and
00048                 // ticker
00049                 // messages.
00050                 super("android teleop", "android teleop");
00051         }
00052 
00053         @SuppressWarnings("unchecked")
00054         @Override
00055         public void onCreate(Bundle savedInstanceState) {
00056                 
00057                 String defaultRobotName = getString(R.string.default_robot);
00058                 String defaultAppName = getString(R.string.default_app);
00059                 setDefaultRobotName(defaultRobotName);
00060                 setDefaultAppName(defaultAppName);
00061                 setDashboardResource(R.id.top_bar);
00062                 setMainWindowResource(R.layout.main);
00063                 super.onCreate(savedInstanceState);
00064 
00065                 
00066                 cameraView = (RosImageView<sensor_msgs.CompressedImage>) findViewById(R.id.image);
00067                 cameraView.setMessageType(sensor_msgs.CompressedImage._TYPE);
00068                 cameraView.setMessageToBitmapCallable(new BitmapFromCompressedImage());
00069                 virtualJoystickView = (VirtualJoystickView) findViewById(R.id.virtual_joystick);
00070                 backButton = (Button) findViewById(R.id.back_button);
00071                 backButton.setOnClickListener(new View.OnClickListener() {
00072                         @Override
00073                         public void onClick(View view) {
00074                                 onBackPressed();
00075                         }
00076                 });
00077         }
00078 
00079         @Override
00080         protected void init(NodeMainExecutor nodeMainExecutor) {
00081                 
00082                 super.init(nodeMainExecutor);
00083 
00084                 NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic(
00085                                 InetAddressFactory.newNonLoopback().getHostAddress(),
00086                                 getMasterUri());
00087 
00088                 NameResolver appNameSpace = getAppNameSpace();
00089                 cameraView.setTopicName(appNameSpace.resolve(cameraTopic).toString());
00090         virtualJoystickView.setTopicName(appNameSpace.resolve(virtualJoystickTopic).toString());
00091                 
00092                 nodeMainExecutor.execute(cameraView, nodeConfiguration
00093                                 .setNodeName("android/camera_view"));
00094                 nodeMainExecutor.execute(virtualJoystickView,
00095                                 nodeConfiguration.setNodeName("android/virtual_joystick"));
00096 
00097                 nodeConfiguration = NodeConfiguration.newPublic(InetAddressFactory
00098                                 .newNonLoopback().getHostAddress(), getMasterUri());
00099         }
00100         
00101           @Override
00102           public boolean onCreateOptionsMenu(Menu menu){
00103                   menu.add(0,0,0,R.string.stop_app);
00104 
00105                   return super.onCreateOptionsMenu(menu);
00106           }
00107           
00108           @Override
00109           public boolean onOptionsItemSelected(MenuItem item){
00110                   super.onOptionsItemSelected(item);
00111                   switch (item.getItemId()){
00112                   case 0:
00113                           onDestroy();
00114                           break;
00115                   }
00116                   return true;
00117           }
00118         
00119 }


android_apps
Author(s): Daniel Stonier , Kazuto Murase
autogenerated on Fri Aug 28 2015 10:04:40