Changeset 97446b8 in orbit for android


Ignore:
Timestamp:
07/27/13 22:23:04 (7 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master, RawEEG, Servo, Tab_Interface, pyramid
Children:
d69b7c0
Parents:
0e5d193
Message:

Orbit:

  • Raw EEG wave plotting correctly
File:
1 edited

Legend:

Unmodified
Added
Removed
  • android/src/info/puzzlebox/orbit/OrbitActivity.java

    r0e5d193 r97446b8  
    1414 *       all USB Serial support to OrbitUSBActivity. 
    1515 */ 
     16 
     17import java.text.DecimalFormat; 
     18import java.util.Arrays; 
     19import java.util.List; 
    1620 
    1721import android.media.AudioManager; 
     
    7276        boolean eegConnecting = false; 
    7377        boolean demoFlightMode = false; 
    74         //      int[]rawEEG = {}; 
     78        Number[] rawEEG = new Number[512]; 
     79        int arrayIndex = 0; 
    7580 
    7681 
     
    164169        int maximumPower = 100; // maximum power for the helicopter throttle 
    165170        String currentCommand = "neutral"; 
    166         final boolean rawEnabled = false; 
     171        //      final boolean rawEnabled = false; 
     172        final boolean rawEnabled = true; 
    167173 
    168174 
     
    239245 
    240246 
    241                 // setup the Raw EEG History plot: 
     247                // setup the Raw EEG History plot 
    242248                eegRawHistoryPlot = (XYPlot) findViewById(R.id.eegRawHistoryPlot); 
    243249                eegRawHistorySeries = new SimpleXYSeries("Raw EEG"); 
    244                 eegRawHistorySeries.useImplicitXVals(); 
     250 
     251                // Use index value as xVal, instead of explicit, user provided xVals. 
     252                //              eegRawHistorySeries.useImplicitXVals(); 
     253 
     254                // Setup the boundary mode, boundary values only applicable in FIXED mode. 
     255                eegRawHistoryPlot.setDomainBoundaries(0, EEG_RAW_HISTORY_SIZE, BoundaryMode.FIXED); 
    245256                eegRawHistoryPlot.setRangeBoundaries(-32767, 32767, BoundaryMode.FIXED); 
    246                 eegRawHistoryPlot.setDomainBoundaries(0, EEG_RAW_HISTORY_SIZE, BoundaryMode.FIXED); 
     257                //              eegRawHistoryPlot.setDomainBoundaries(0, EEG_RAW_HISTORY_SIZE, BoundaryMode.AUTO); 
     258                //              eegRawHistoryPlot.setRangeBoundaries(-32767, 32767, BoundaryMode.AUTO); 
     259 
    247260                eegRawHistoryPlot.addSeries(eegRawHistorySeries, new LineAndPointFormatter(Color.rgb(200, 100, 100), Color.BLACK, null, null)); 
     261 
     262                // Thin out domain and range tick values so they don't overlap 
    248263                eegRawHistoryPlot.setDomainStepValue(5); 
    249264                eegRawHistoryPlot.setTicksPerRangeLabel(3); 
     265 
     266                //              eegRawHistoryPlot.setRangeLabel("Amplitude"); 
     267 
     268                // Sets the dimensions of the widget to exactly contain the text contents 
    250269                eegRawHistoryPlot.getDomainLabelWidget().pack(); 
    251                 //              eegRawHistoryPlot.setRangeLabel("Amplitude"); 
    252270                eegRawHistoryPlot.getRangeLabelWidget().pack(); 
    253271 
    254                 final PlotStatistics histStats = new PlotStatistics(1000, false); 
    255  
    256                 eegRawHistoryPlot.addListener(histStats); 
     272                // Only display whole numbers in labels 
     273                eegRawHistoryPlot.getGraphWidget().setDomainValueFormat(new DecimalFormat("0")); 
     274                eegRawHistoryPlot.getGraphWidget().setRangeValueFormat(new DecimalFormat("0")); 
     275 
     276                // Hide domain and range labels 
     277                eegRawHistoryPlot.getGraphWidget().setDomainLabelWidth(0); 
     278                eegRawHistoryPlot.getGraphWidget().setRangeLabelWidth(0); 
     279 
     280                // setGridPadding(float left, float top, float right, float bottom)  
     281                eegRawHistoryPlot.getGraphWidget().setGridPadding(0, 0, 0, 0);  
     282 
     283                //              eegRawHistoryPlot.getGraphWidget().setDrawMarkersEnabled(false); 
     284 
     285                //              final PlotStatistics histStats = new PlotStatistics(1000, false); 
     286                //              eegRawHistoryPlot.addListener(histStats); 
    257287 
    258288 
     
    718748                                break; 
    719749                        case TGDevice.MSG_RAW_DATA: 
    720                                 //raw1 = msg.arg1; 
    721                                 //tv.append("Got raw: " + msg.arg1 + "\n"); 
     750                                //                              if (DEBUG) 
     751                                //                                      Log.v(TAG, "Raw: " + msg.arg1); 
     752 
     753                                //                              eegRawHistorySeries.addLast(null, msg.arg1); 
     754                                //                              eegRawHistorySeries.addLast(msg.arg1, null); 
     755                                //                              eegRawHistorySeries.addLast(msg.arg1, msg.arg1); 
     756                                //                              eegRawHistorySeries.addLast(eegRawHistorySeries.size(), msg.arg1); 
     757 
     758                                //                              eegRawHistorySeries.setY(eegRawHistorySeries.size(), msg.arg1); 
    722759 
    723760                                //                              rawEEG[rawEEG.length] = msg.arg1; 
    724  
    725                                 eegRawHistorySeries.addLast(null, msg.arg1); 
    726  
    727                                 if (eegRawHistorySeries.size() == EEG_RAW_HISTORY_SIZE) { 
     761                                Log.v(TAG, "Index: " + arrayIndex); 
     762                                rawEEG[arrayIndex] = msg.arg1; 
     763                                arrayIndex = arrayIndex + 1; 
     764 
     765                                //                              if (eegRawHistorySeries.size() == EEG_RAW_HISTORY_SIZE) { 
     766//                              if (rawEEG.length == EEG_RAW_HISTORY_SIZE) { 
     767                                        if (arrayIndex == EEG_RAW_HISTORY_SIZE - 1) { 
     768                                        //                                      Log.v(TAG, "Raw:" + eegRawHistorySeries.toString()); 
    728769                                        updateEEGRawHistory(); 
    729770                                } 
     
    10261067                //        eegRawHistorySeries.setModel(eegRawHistory, SimpleXYSeries.ArrayFormat.Y_VALS_ONLY); 
    10271068 
     1069                 
     1070//              private static final int EEG_RAW_HISTORY_SIZE = 512;            // number of points to plot in EEG history 
     1071//              private XYPlot eegRawHistoryPlot = null; 
     1072//              private SimpleXYSeries eegRawHistorySeries = null; 
     1073                 
     1074                 
     1075        // Turn the above arrays into XYSeries': 
     1076//        XYSeries series1 = new SimpleXYSeries( 
     1077//                Arrays.asList(rawEEG),          // SimpleXYSeries takes a List so turn our array into a List 
     1078//                SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the element index as the x value 
     1079//                "Series1");                             // Set the display title of the series 
     1080  
     1081        // same as above 
     1082//             XYSeries series2 = new SimpleXYSeries(Arrays.asList(rawEEG), SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Raw EEG"); 
     1083             
     1084                List list = Arrays.asList(rawEEG); 
     1085                 
     1086                eegRawHistoryPlot.removeSeries(eegRawHistorySeries); 
     1087                eegRawHistorySeries = new SimpleXYSeries(list, SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Raw EEG"); 
     1088                eegRawHistoryPlot.addSeries(eegRawHistorySeries, new LineAndPointFormatter(Color.rgb(200, 100, 100), Color.BLACK, null, null)); 
     1089 
     1090                 
    10281091                // redraw the Plots: 
    10291092                eegRawHistoryPlot.redraw(); 
    10301093 
     1094                //              Log.v(TAG, "updateEEGRawHistory (pre): " + eegRawHistorySeries.size()); 
     1095 
    10311096                // get rid the oldest sample in history: 
    1032                 if (eegRawHistorySeries.size() > EEG_RAW_HISTORY_SIZE) { 
    1033                         //                      eegRawHistorySeries.removeFirst(); 
    1034                         eegRawHistorySeries = new SimpleXYSeries("Raw EEG"); 
    1035                         eegRawHistorySeries.useImplicitXVals(); 
    1036                 } 
    1037  
     1097                //                      while (eegRawHistorySeries.size () > 0) 
     1098                //                              eegRawHistorySeries.removeLast(); 
     1099                rawEEG = new Number[512]; 
     1100                arrayIndex = 0; 
     1101 
     1102                //              Log.v(TAG, "updateEEGRawHistory (post): " + eegRawHistorySeries.size()); 
    10381103 
    10391104        } 
Note: See TracChangeset for help on using the changeset viewer.