Changeset 0ab8242 in orbit for android


Ignore:
Timestamp:
08/01/13 08:33:40 (8 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master, RawEEG, Servo, Tab_Interface, pyramid
Children:
c1c6a1d
Parents:
4da9757 (diff), ce0a7ee (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'RawEEG', remote-tracking branch 'origin' into RawEEG

Location:
android
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • android/.classpath

    rd6fbdfb r4f3fd92  
    88        <classpathentry kind="src" path="src"/> 
    99        <classpathentry kind="src" path="gen"/> 
     10        <classpathentry exported="true" kind="lib" path="libs/androidplot-core-0.6.0.jar"/> 
    1011        <classpathentry kind="output" path="bin/classes"/> 
    1112</classpath> 
  • android/AndroidManifest.xml

    rc298bcb r81fb7d8  
    22<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    33    package="info.puzzlebox.orbit" 
    4     android:versionCode="2" 
    5     android:versionName="1.2.0" > 
     4    android:versionCode="3" 
     5    android:versionName="1.2.2" > 
    66 
    77    <uses-sdk 
    88        android:minSdkVersion="8" 
    9         android:targetSdkVersion="15" /> 
     9        android:targetSdkVersion="17" /> 
    1010 
    1111    <uses-permission android:name="android.permission.BLUETOOTH" /> 
     
    1717        android:icon="@drawable/ic_launcher" 
    1818        android:label="@string/app_name" 
    19         android:theme="@style/AppTheme" > 
     19        android:theme="@style/AppTheme" 
     20        android:allowBackup="true" > 
     21         
    2022        <activity 
    2123            android:name=".OrbitActivity" 
  • android/res/layout-large/activity_main.xml

    r5c11ea9 r81fb7d8  
    4545        android:layout_height="wrap_content" 
    4646        android:max="100" 
    47         android:progress="82" 
     47        android:progress="0" 
    4848        android:progressDrawable="@xml/progress_drawable" 
    4949        android:thumb="@xml/thumb_drawable" /> 
     
    124124            android:text="@string/checkbox_advanced_options" /> 
    125125    </LinearLayout> 
     126 
     127    <com.androidplot.xy.XYPlot 
     128        android:id="@+id/eegRawHistoryPlot" 
     129        android:layout_width="fill_parent" 
     130        android:layout_height="200dp" 
     131        android:layout_marginLeft="0dp" 
     132        android:layout_marginRight="0dp" 
     133        android:layout_marginTop="0dp" 
     134        android:layout_weight="1" 
     135        title="EEG Raw Wave" /> 
    126136 
    127137    <LinearLayout 
  • android/res/layout-small/activity_main.xml

    r8358488 r81fb7d8  
    4545        android:layout_height="wrap_content" 
    4646        android:max="100" 
    47         android:progress="82" 
     47        android:progress="0" 
    4848        android:progressDrawable="@xml/progress_drawable" 
    4949        android:thumb="@xml/thumb_drawable" /> 
     
    127127            android:text="@string/checkbox_advanced_options" /> 
    128128    </LinearLayout> 
     129 
     130    <com.androidplot.xy.XYPlot 
     131        android:id="@+id/eegRawHistoryPlot" 
     132        android:layout_width="fill_parent" 
     133        android:layout_height="100dp" 
     134        android:layout_marginLeft="0dp" 
     135        android:layout_marginRight="0dp" 
     136        android:layout_marginTop="0dp" 
     137        android:layout_weight="1" 
     138        title="EEG Raw Wave" /> 
    129139 
    130140    <LinearLayout 
  • android/res/layout-xlarge/activity_main.xml

    r8358488 r81fb7d8  
    4545        android:layout_height="wrap_content" 
    4646        android:max="100" 
    47         android:progress="82" 
     47        android:progress="0" 
    4848        android:progressDrawable="@xml/progress_drawable" 
    4949        android:thumb="@xml/thumb_drawable" /> 
     
    124124            android:text="@string/checkbox_advanced_options" /> 
    125125    </LinearLayout> 
     126 
     127    <com.androidplot.xy.XYPlot 
     128        android:id="@+id/eegRawHistoryPlot" 
     129        android:layout_width="fill_parent" 
     130        android:layout_height="200dp" 
     131        android:layout_marginLeft="0dp" 
     132        android:layout_marginRight="0dp" 
     133        android:layout_marginTop="0dp" 
     134        android:layout_weight="1" 
     135        title="EEG Raw Wave" /> 
    126136 
    127137    <LinearLayout 
  • android/res/layout/activity_main.xml

    r5c11ea9 r81fb7d8  
    4545        android:layout_height="wrap_content" 
    4646        android:max="100" 
    47         android:progress="82" 
     47        android:progress="0" 
    4848        android:progressDrawable="@xml/progress_drawable" 
    4949        android:thumb="@xml/thumb_drawable" /> 
     
    127127            android:text="@string/checkbox_advanced_options" /> 
    128128    </LinearLayout> 
     129 
     130    <com.androidplot.xy.XYPlot 
     131        android:id="@+id/eegRawHistoryPlot" 
     132        android:layout_width="fill_parent" 
     133        android:layout_height="100dp" 
     134        android:layout_marginLeft="0dp" 
     135        android:layout_marginRight="0dp" 
     136        android:layout_marginTop="0dp" 
     137        android:layout_weight="1" 
     138        title="EEG Raw Wave" /> 
    129139 
    130140    <LinearLayout 
  • android/src/info/puzzlebox/orbit/OrbitActivity.java

    rd6fbdfb r4da9757  
    1414 *       all USB Serial support to OrbitUSBActivity. 
    1515 */ 
     16 
     17import java.text.DecimalFormat; 
     18import java.util.Arrays; 
    1619 
    1720import android.media.AudioManager; 
     
    5558import com.neurosky.thinkgear.TGDevice; 
    5659 
     60import com.androidplot.xy.*; 
     61 
    5762 
    5863public class OrbitActivity extends Activity implements SeekBar.OnSeekBarChangeListener { 
     
    6873        boolean eegConnecting = false; 
    6974        boolean demoFlightMode = false; 
     75        Number[] rawEEG = new Number[512]; 
     76        int arrayIndex = 0; 
    7077 
    7178 
     
    97104        int viewSpaceGenerateAudioWidth = 120; 
    98105 
     106        private static final int EEG_RAW_HISTORY_SIZE = 512;            // number of points to plot in EEG history 
     107        private XYPlot eegRawHistoryPlot = null; 
     108        private SimpleXYSeries eegRawHistorySeries = null; 
     109 
     110 
    99111        LinearLayout layoutControl; 
    100112        LinearLayout layoutAudioService; 
     
    154166        int maximumPower = 100; // maximum power for the helicopter throttle 
    155167        String currentCommand = "neutral"; 
    156         final boolean rawEnabled = false; 
     168        //      final boolean rawEnabled = false; 
     169        final boolean rawEnabled = true; 
    157170 
    158171 
     
    228241                progressBarPower.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal)); 
    229242 
     243 
     244                // setup the Raw EEG History plot 
     245                eegRawHistoryPlot = (XYPlot) findViewById(R.id.eegRawHistoryPlot); 
     246                eegRawHistorySeries = new SimpleXYSeries("Raw EEG"); 
     247 
     248                // Use index value as xVal, instead of explicit, user provided xVals. 
     249                //              eegRawHistorySeries.useImplicitXVals(); 
     250 
     251                // Setup the boundary mode, boundary values only applicable in FIXED mode. 
     252                eegRawHistoryPlot.setDomainBoundaries(0, EEG_RAW_HISTORY_SIZE, BoundaryMode.FIXED); 
     253                //              eegRawHistoryPlot.setDomainBoundaries(0, EEG_RAW_HISTORY_SIZE, BoundaryMode.AUTO); 
     254                //              eegRawHistoryPlot.setRangeBoundaries(-32767, 32767, BoundaryMode.FIXED); 
     255                //              eegRawHistoryPlot.setRangeBoundaries(-32767, 32767, BoundaryMode.AUTO); 
     256                eegRawHistoryPlot.setRangeBoundaries(-256, 256, BoundaryMode.GROW); 
     257 
     258                eegRawHistoryPlot.addSeries(eegRawHistorySeries, new LineAndPointFormatter(Color.rgb(200, 100, 100), Color.BLACK, null, null)); 
     259 
     260                // Thin out domain and range tick values so they don't overlap 
     261                eegRawHistoryPlot.setDomainStepValue(5); 
     262                eegRawHistoryPlot.setTicksPerRangeLabel(3); 
     263 
     264                //              eegRawHistoryPlot.setRangeLabel("Amplitude"); 
     265 
     266                // Sets the dimensions of the widget to exactly contain the text contents 
     267                eegRawHistoryPlot.getDomainLabelWidget().pack(); 
     268                eegRawHistoryPlot.getRangeLabelWidget().pack(); 
     269 
     270                // Only display whole numbers in labels 
     271                eegRawHistoryPlot.getGraphWidget().setDomainValueFormat(new DecimalFormat("0")); 
     272                eegRawHistoryPlot.getGraphWidget().setRangeValueFormat(new DecimalFormat("0")); 
     273 
     274                // Hide domain and range labels 
     275                eegRawHistoryPlot.getGraphWidget().setDomainLabelWidth(0); 
     276                eegRawHistoryPlot.getGraphWidget().setRangeLabelWidth(0); 
     277 
     278                // Hide legend 
     279                eegRawHistoryPlot.getLegendWidget().setVisible(false); 
     280 
     281                // setGridPadding(float left, float top, float right, float bottom)  
     282                eegRawHistoryPlot.getGraphWidget().setGridPadding(0, 0, 0, 0);  
     283 
     284                //              eegRawHistoryPlot.getGraphWidget().setDrawMarkersEnabled(false); 
     285 
     286                //              final PlotStatistics histStats = new PlotStatistics(1000, false); 
     287                //              eegRawHistoryPlot.addListener(histStats); 
     288 
     289 
    230290                seekBarAttention = (SeekBar)findViewById(R.id.seekBarAttention); 
    231291                seekBarAttention.setOnSeekBarChangeListener(this); 
     
    266326                tv.setMovementMethod(new ScrollingMovementMethod()); 
    267327                tv.setText(""); 
    268                 appendTextAndScroll("Android version: " + Integer.valueOf(android.os.Build.VERSION.SDK) + "\n" ); 
     328                appendTextAndScroll("Android version: " + Integer.valueOf(android.os.Build.VERSION.SDK_INT) + "\n" ); 
    269329                appendTextAndScroll("Remember to set volume at maximum!\n"); 
    270330 
     
    445505                //              viewSpaceGenerateAudioWidth = LayoutParams.MATCH_PARENT; 
    446506 
     507                @SuppressWarnings("deprecation") 
    447508                int width = getWindowManager().getDefaultDisplay().getWidth(); 
    448                 int height = getWindowManager().getDefaultDisplay().getHeight(); 
     509                //              int height = getWindowManager().getDefaultDisplay().getHeight(); 
    449510 
    450511                viewSpaceGenerateAudioWidth = width / 4; // approximate center of screen 
     
    487548 
    488549                        if (checkBoxGenerateAudio.isChecked()) { 
     550 
    489551                                layoutAudioService.setVisibility(View.VISIBLE); 
    490552                                layoutInvertControlSignal.setVisibility(View.VISIBLE); 
     
    496558 
    497559                        } else { 
     560 
    498561                                layoutAudioService.setVisibility(View.GONE); 
    499562                                layoutInvertControlSignal.setVisibility(View.GONE); 
     
    506569                        } 
    507570 
     571                        eegRawHistoryPlot.setVisibility(View.VISIBLE); 
    508572                        layoutAdvancedOptions.setVisibility(View.VISIBLE); 
     573                        imageViewStatus.setVisibility(View.GONE); 
    509574                        tv.setVisibility(View.VISIBLE); 
    510575 
    511576                } else { 
    512577 
     578                        eegRawHistoryPlot.setVisibility(View.GONE); 
    513579                        layoutAudioService.setVisibility(View.GONE); 
    514580                        layoutAdvancedOptions.setVisibility(View.GONE); 
     581                        imageViewStatus.setVisibility(View.VISIBLE); 
    515582                        tv.setVisibility(View.GONE); 
    516583 
     
    689756                                break; 
    690757                        case TGDevice.MSG_RAW_DATA: 
    691                                 //raw1 = msg.arg1; 
    692                                 //tv.append("Got raw: " + msg.arg1 + "\n"); 
     758 
     759                                rawEEG[arrayIndex] = msg.arg1; 
     760                                arrayIndex = arrayIndex + 1; 
     761 
     762                                if (arrayIndex == EEG_RAW_HISTORY_SIZE - 1) 
     763                                        updateEEGRawHistory(); 
     764 
    693765                                break; 
    694766                        case TGDevice.MSG_HEART_RATE: 
     
    9381010                 * which is used to fly the helicopter 
    9391011                 */ 
    940                  
    941         // Set Attention and Meditation to zero if we've lost signal 
    942         if (eegSignal < 100) { 
    943                 eegAttention = 0; 
    944                 eegMeditation = 0; 
    945                 progressBarAttention.setProgress(eegAttention); 
    946                 progressBarMeditation.setProgress(eegMeditation); 
    947         } 
     1012 
     1013                // Set Attention and Meditation to zero if we've lost signal 
     1014                if (eegSignal < 100) { 
     1015                        eegAttention = 0; 
     1016                        eegMeditation = 0; 
     1017                        progressBarAttention.setProgress(eegAttention); 
     1018                        progressBarMeditation.setProgress(eegMeditation); 
     1019                } 
    9481020 
    9491021                eegPower = calculateSpeed(); 
     
    9761048 
    9771049        } // updatePower 
     1050 
     1051 
     1052        // ################################################################ 
     1053 
     1054        public void updateEEGRawHistory() { 
     1055 
     1056                eegRawHistoryPlot.removeSeries(eegRawHistorySeries); 
     1057 
     1058                eegRawHistorySeries = new SimpleXYSeries(Arrays.asList(rawEEG), SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Raw EEG"); 
     1059 
     1060                //              LineAndPointFormatter format = new LineAndPointFormatter(Color.rgb(200, 100, 100), Color.BLACK, null, null); 
     1061                //              LineAndPointFormatter format = new LineAndPointFormatter(Color.rgb(200, 100, 100), Color.TRANSPARENT, null, null); 
     1062                LineAndPointFormatter format = new LineAndPointFormatter(Color.rgb(0, 0, 0), Color.TRANSPARENT, null, null); 
     1063 
     1064                //              format.getFillPaint().setAlpha(220); 
     1065 
     1066                eegRawHistoryPlot.addSeries(eegRawHistorySeries, format); 
     1067 
     1068 
     1069                // redraw the Plots: 
     1070                eegRawHistoryPlot.redraw(); 
     1071 
     1072                rawEEG = new Number[512]; 
     1073                arrayIndex = 0; 
     1074 
     1075        } 
    9781076 
    9791077 
Note: See TracChangeset for help on using the changeset viewer.