Changeset 5c11ea9 in orbit for android


Ignore:
Timestamp:
03/05/13 16:59:51 (7 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master, RawEEG, Raw_EEG_Plot, Servo, Tab_Interface, pyramid
Children:
8358488
Parents:
136014a
Message:
  • moved all USB communications to OrbitUSBActivity
  • fixed issues when auto-rotating display (although currently disabled by default)
Location:
android
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • android/res/layout-large/activity_main.xml

    r136014a r5c11ea9  
    254254    <ImageView 
    255255        android:id="@+id/imageViewStatus" 
    256         android:layout_width="wrap_content" 
     256        android:layout_width="match_parent" 
    257257        android:layout_height="wrap_content" 
    258258        android:contentDescription="@string/image_description_status" 
  • android/res/layout/activity_main.xml

    r136014a r5c11ea9  
    257257    <ImageView 
    258258        android:id="@+id/imageViewStatus" 
    259         android:layout_width="wrap_content" 
     259        android:layout_width="match_parent" 
    260260        android:layout_height="wrap_content" 
    261261        android:contentDescription="@string/image_description_status" 
  • android/src/info/puzzlebox/orbit/OrbitActivity.java

    r136014a r5c11ea9  
    1111 * NOTE: USB Serial support is necessary for communicating with 
    1212 *       an Arduino UNO, however requires Android 3.2 or later. 
    13  *       For compatibility with earlier handsets we have left USB Serial 
    14  *       support commented out by default throughout this source file. 
     13 *       For compatibility with earlier handsets we have moved  
     14 *       all USB Serial support to OrbitUSBActivity 
    1515 */ 
    1616 
    17 import android.media.AudioFormat; 
    1817import android.media.AudioManager; 
    19 import android.media.AudioTrack; 
    2018import android.media.SoundPool; 
    2119import android.media.SoundPool.OnLoadCompleteListener; 
     
    3836import android.graphics.drawable.ShapeDrawable; 
    3937import android.graphics.drawable.shapes.RoundRectShape; 
    40 import android.util.DisplayMetrics; 
    41 //import android.hardware.usb.UsbManager; 
    4238import android.util.Log; 
    43 import android.view.Display; 
    4439import android.view.Gravity; 
    4540import android.view.View; 
     
    5954 
    6055import com.neurosky.thinkgear.TGDevice; 
    61  
    62 //import com.hoho.android.usbserial.driver.UsbSerialDriver; 
    63 //import com.hoho.android.usbserial.driver.UsbSerialProber; 
    64 //import com.hoho.android.usbserial.util.SerialInputOutputManager; 
    6556 
    6657 
     
    166157 
    167158 
    168         /** 
    169          * USB Serial 
    170          */ 
    171         //      SerialDevice serial; 
    172         //      int serialBaudRate = 9600; 
    173  
    174         /** The device currently in use, or {@code null}. */ 
    175         //      private UsbSerialDriver mSerialDevice; 
    176  
    177         /** The system's USB service. */ 
    178         //      private UsbManager mUsbManager; 
    179  
    180         /** Thread Service */ 
    181         //      private final ExecutorService mExecutor = Executors.newSingleThreadExecutor(); 
    182  
    183         //      private SerialInputOutputManager mSerialIoManager; 
    184  
    185         //      private final SerialInputOutputManager.Listener mListener = 
    186         //                      new SerialInputOutputManager.Listener() { 
    187         // 
    188         //              public void onRunError(Exception e) { 
    189         //                      //            Log.d(TAG, "Runner stopped."); 
    190         //              } 
    191         // 
    192         //              public void onNewData(final byte[] data) { 
    193         //                      //              PuzzleboxBrainstormsHelicopter.this.runOnUiThread(new Runnable() { 
    194         //                      //                @Override 
    195         //                      //                public void run() { 
    196         //                      //                      PuzzleboxBrainstormsHelicopter.this.updateReceivedData(data); 
    197         //                      //                } 
    198         //                      //            }); 
    199         //              } 
    200         //      }; 
    201  
    202  
    203159        @Override 
    204160        public void onCreate(Bundle savedInstanceState) { 
     
    218174                config = getResources().getConfiguration(); 
    219175 
    220                 //              Log.v(TAG, "screenLayout: " + config.screenLayout); 
    221  
    222176                switch(config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK){ 
    223177                case Configuration.SCREENLAYOUT_SIZE_SMALL: 
    224                         //                      Log.v(TAG, "screenLayout: small"); 
    225178                        requestWindowFeature(Window.FEATURE_NO_TITLE); 
    226179                        break; 
    227180                case Configuration.SCREENLAYOUT_SIZE_NORMAL: 
    228                         //                      Log.v(TAG, "screenLayout: normal"); 
    229181                        requestWindowFeature(Window.FEATURE_NO_TITLE); 
    230182                        break; 
    231183                case Configuration.SCREENLAYOUT_SIZE_LARGE: 
    232                         //                      Log.v(TAG, "screenLayout: large"); 
    233184                        break; 
    234185                case Configuration.SCREENLAYOUT_SIZE_XLARGE: 
    235                         //                      Log.v(TAG, "screenLayout: xlarge"); 
    236186                        break; 
    237187                case Configuration.SCREENLAYOUT_SIZE_UNDEFINED: 
    238                         //                      Log.v(TAG, "screenLayout: undefined"); 
    239188                        requestWindowFeature(Window.FEATURE_NO_TITLE); 
    240189                        break; 
     
    332281                updateScreenLayout(); 
    333282                updateAdvancedOptions(); 
    334                  
     283 
    335284                updatePowerThresholds(); 
    336285                updatePower(); 
     
    388337 
    389338 
    390                 /** 
    391                  * Prepare USB Serial 
    392                  */ 
    393                 //              mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE); 
    394                 //              serial = new SerialDevice(); 
    395                 //              serial.setSerialDevice(mSerialDevice); 
    396  
    397  
    398339        } // onCreate 
    399340 
     
    409350                 */ 
    410351 
     352                updateAdvancedOptions(); 
    411353                super.onResume(); 
    412354 
    413                 /** This section handles the USB Serial device when the program is resumed */ 
    414                 //              mSerialDevice = UsbSerialProber.acquire(mUsbManager); 
    415                 //              //        Log.d(TAG, "Resumed, mSerialDevice=" + mSerialDevice); 
    416                 //              if (mSerialDevice == null) { 
    417                 //                      Log.d(TAG, "No Serial device found"); 
    418                 //                      //                      appendTextAndScroll("No serial device found\n"); 
    419                 //              } else { 
    420                 //                      try { 
    421                 //                              mSerialDevice.open(); 
    422                 //                              mSerialDevice.setBaudRate(serialBaudRate); 
    423                 //                              serial.setSerialDevice(mSerialDevice); 
    424                 //                              serial.execute(new String[] {""} ); 
    425                 //                      } catch (IOException e) { 
    426                 //                              Log.e(TAG, "Error opening device: " + e.getMessage(), e); 
    427                 //                              //                              appendTextAndScroll("Error opening device: " + e.getMessage() + "\n"); 
    428                 // 
    429                 //                              try { 
    430                 //                                      mSerialDevice.close(); 
    431                 //                              } catch (IOException e2) { 
    432                 //                                      // Ignore. 
    433                 //                              } 
    434                 //                              mSerialDevice = null; 
    435                 //                              serial.setSerialDevice(null); 
    436                 //                              return; 
    437                 //                      } 
    438                 //                      appendTextAndScroll("Serial device: " + mSerialDevice + "\n"); 
    439                 //              } 
    440                 // 
    441                 //              onDeviceStateChange(); 
    442         } 
     355        } // onResume 
    443356 
    444357 
     
    454367                tgDevice.close(); 
    455368 
    456                 /** Handle USB Serial */ 
    457                 //              if (mSerialDevice != null) { 
    458                 //                      try { 
    459                 //                              mSerialDevice.close(); 
    460                 //                      } catch (IOException e) { 
    461                 //                              // TODO Auto-generated catch block 
    462                 //                              e.printStackTrace(); 
    463                 //                      } 
    464                 //              } 
    465  
    466369                super.onDestroy(); 
    467         } 
    468  
    469  
    470         // ################################################################ 
    471  
    472         //      @Override 
    473         //      public boolean onCreateOptionsMenu(Menu menu) { 
    474         //              getMenuInflater().inflate(R.menu.activity_main, menu); 
    475         //              return true; 
    476         //      } 
    477         // 
    478         // 
    479         //      @Override 
    480         //      public boolean onOptionsItemSelected(MenuItem item) { 
    481         //              switch (item.getItemId()) { 
    482         //              case android.R.id.home: 
    483         //                      NavUtils.navigateUpFromSameTask(this); 
    484         //                      return true; 
    485         //              } 
    486         //              return super.onOptionsItemSelected(item); 
    487         //      } 
    488  
    489  
    490         // ################################################################ 
    491  
    492         private void appendTextAndScroll(String text) { 
     370                 
     371        } // onDestroy 
     372 
     373 
     374        // ################################################################ 
     375 
     376        protected void appendTextAndScroll(String text) { 
    493377 
    494378                /**  
     
    548432                } 
    549433        } // updateScreenLayout 
    550          
    551          
    552         // ################################################################ 
    553          
     434 
     435 
     436        // ################################################################ 
     437 
    554438        public void updateScreenLayoutSmall() { 
    555                  
     439 
    556440                setButtonText(R.id.buttonTestFly, "Test"); 
    557441                radioGroupChannel.setVisibility(View.GONE); 
     
    559443                checkBoxGenerateAudio.setText("Generate Signal"); 
    560444                checkBoxInvertControlSignal.setText("Invert Signal"); 
    561 //              viewSpaceGenerateAudioWidth = LayoutParams.MATCH_PARENT; 
    562                  
     445                //              viewSpaceGenerateAudioWidth = LayoutParams.MATCH_PARENT; 
     446 
    563447                int width = getWindowManager().getDefaultDisplay().getWidth(); 
    564448                int height = getWindowManager().getDefaultDisplay().getHeight(); 
    565                  
     449 
    566450                viewSpaceGenerateAudioWidth = width / 4; // approximate center of screen 
    567                  
     451 
    568452        } // updateScreenLayoutSmall 
    569          
     453 
    570454 
    571455        // ################################################################ 
     
    692576 
    693577        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) { 
    694                 //appendTextAndScroll(progress + " " +  
    695                 //getString(R.string.seekbar_from_touch) + "=" + fromTouch); 
    696578 
    697579                updatePowerThresholds(); 
     
    709591                 */ 
    710592 
    711                 //appendTextAndScroll(getString(R.string.seekbar_tracking_on)); 
    712593 
    713594        } // onStartTrackingTouch 
     
    728609 
    729610 
    730                 //appendTextAndScroll(getString(R.string.seekbar_tracking_off)); 
    731  
    732611        } // onStopTrackingTouch 
    733  
    734  
    735         //      private void stopIoManager() { 
    736         //               
    737         //              /** 
    738         //               * Method required by USB Serial 
    739         //               */ 
    740         //               
    741         //              if (mSerialIoManager != null) { 
    742         //                      //            Log.i(TAG, "Stopping io manager .."); 
    743         //                      mSerialIoManager.stop(); 
    744         //                      mSerialIoManager = null; 
    745         //              } 
    746         //      } // stopIoManager 
    747  
    748  
    749         //      private void startIoManager() { 
    750         //       
    751         //              /** 
    752         //               * Method required by USB Serial 
    753         //               */ 
    754         //       
    755         //              if (mSerialDevice != null) { 
    756         //                      //            Log.i(TAG, "Starting io manager .."); 
    757         //                      mSerialIoManager = new SerialInputOutputManager(mSerialDevice, mListener); 
    758         //                      mExecutor.submit(mSerialIoManager); 
    759         //              } 
    760         //      } // startIoManager 
    761  
    762  
    763         //      private void onDeviceStateChange() { 
    764         //               
    765         //              /** 
    766         //               * Called by onResume() to manage USB Serial 
    767         //               */ 
    768         //               
    769         //                              stopIoManager(); 
    770         //                              startIoManager(); 
    771         //      } // onDeviceStateChange 
    772612 
    773613 
     
    1125965                } 
    1126966 
    1127                 /** This sequence is used for managing the USB Serial control */ 
    1128                 //              command = getPowerCommand(new_speed); 
    1129                 // 
    1130                 //              if (mSerialDevice != null) { 
    1131                 //                      serial.setCommand(command); 
    1132                 //              } 
    1133  
    1134967                currentCommand = command; 
    1135968 
    1136969        } // updatePower 
    1137  
    1138  
    1139         //      public String getPowerCommand(int speed) { 
    1140         // 
    1141         //              /** 
    1142         //               * This method is used to set the throttle 
    1143         //               * level using USB Serial to communicate 
    1144         //               * with an Arduino device 
    1145         //               */ 
    1146         // 
    1147         //              String command = "%"; 
    1148         // 
    1149         //              if (speed >= 100) 
    1150         //                      command = "%100"; 
    1151         //              else if (speed >= 10) 
    1152         //                      command = "%0" + speed; 
    1153         //              else if (speed >= 0) 
    1154         //                      command = "%00" + speed; 
    1155         //              else 
    1156         //                      command = "%000"; 
    1157         // 
    1158         //              if (DEBUG) { 
    1159         //                      Log.v(TAG, "Command for serial device: " + command); 
    1160         ////                    appendTextAndScroll("Command for serial device: " + command + "\n"); 
    1161         //              } 
    1162         // 
    1163         //              return(command); 
    1164         // 
    1165         //      } // getPowerCommand 
    1166970 
    1167971 
     
    12691073                demoFlightMode = false; 
    12701074 
    1271                 //              playTone(); 
    1272  
    1273  
    1274                 /** The following demo mode, when used with an Arduino-controlled infrared circuit, 
    1275                  *  should cause the helicopter to briefly hover, then return to the ground 
    1276                  */ 
    1277                 //  
    1278                 //              String command = "neutral"; 
    1279                 //               
    1280                 //              appendTextAndScroll("Command for serial device: " + command + "\n"); 
    1281                 //              serial.setCommand(command); 
    1282                 // 
    1283                 //              try { 
    1284                 //                      Thread.sleep(5000); 
    1285                 //              } catch (InterruptedException e) { 
    1286                 //                      // TODO Auto-generated catch block 
    1287                 //                      e.printStackTrace(); 
    1288                 //              } 
    1289                 // 
    1290                 //              command = "hover"; 
    1291                 //              appendTextAndScroll("Command for serial device: " + command + "\n"); 
    1292                 //              serial.setCommand(command); 
    1293                 // 
    1294                 //              try { 
    1295                 //                      Thread.sleep(2500); 
    1296                 //              } catch (InterruptedException e) { 
    1297                 //                      // TODO Auto-generated catch block 
    1298                 //                      e.printStackTrace(); 
    1299                 //              }                
    1300                 // 
    1301                 // 
    1302                 //              command = "neutral"; 
    1303                 //              appendTextAndScroll("Command for serial device: " + command + "\n"); 
    1304                 //              serial.setCommand(command); 
    1305  
    13061075 
    13071076        } // demoMode 
     
    13171086 
    13181087        } // demoStop 
    1319  
    1320  
    1321         // ################################################################ 
    1322  
    1323         //      public void testFly(View view) { 
    1324         ////            if (serviceBinder != null) { 
    1325         ////                    serviceBinder.ifFlip = checkBoxInvertControlSignal.isChecked(); // if checked then flip 
    1326         ////                    int channel = radioGroupChannel.getCheckedRadioButtonId(); 
    1327         ////                    serviceBinder.channel = channel; 
    1328         ////                    serviceBinder.loopNumberWhileMindControl = 20; 
    1329         ////                    startService(new Intent (OrbitActivity.this, AudioService.class)); 
    1330         ////            } 
    1331         //               
    1332         //              demoMode(view); 
    1333         //               
    1334         //      } // testFly 
    1335  
    1336  
    1337         // ################################################################ 
    1338  
    1339         //      public void stopTest(View view) { 
    1340         // 
    1341         //              stopControl(); 
    1342         // 
    1343         //      } //stopTest 
    13441088 
    13451089 
     
    13581102                        serviceBinder = ((AudioService.OrbitBinder)service).getService(); 
    13591103                } 
    1360         }; 
    1361  
    1362  
    1363 } // MainActivity 
     1104                 
     1105        }; // ServiceConnection 
     1106 
     1107 
     1108} // OrbitActivity 
Note: See TracChangeset for help on using the changeset viewer.