2016-10-19 2 views
0

Во-первых, прошу прощения за недостаток информации, поскольку я очень новичок в программировании. Ниже приведены мои коды для открытия Physicaloid для подключения моего устройства Android к Arduino посредством последовательной связи. Прямо сейчас я получаю аналоговые сигналы, поступающие от моего arduino и появляющиеся на tVread из массива «buf». Однако я потерпел неудачу и застрял, пытаясь построить его массив «buf» с помощью Android Plot. Пожалуйста, любезно совет. Спасибо!Задание байта [] массива в граф в Android

if (mPhysicaloid.open()) { 
     setEnabledUi(true); 

     if (cbAutoscroll.isChecked()) { 
      tvRead.setMovementMethod(new ScrollingMovementMethod()); 
     } 
     mPhysicaloid.addReadListener(new ReadLisener() { 
      @Override 
      public void onRead(int size) { 
       byte[] buf = new byte[size]; 
       Number[] numarray = new Number[size]; 

       mPhysicaloid.read(buf,size); 
       //convert buf to int array 
       for(int i=0;i<size;i++) { 
        numarray[i]= buf[i]; 
       } 
       tvAppend(tvRead, Html.fromHtml("<font color=blue>" + new String (buf) + "</font>")); 
       XYSeries series1 = new SimpleXYSeries(
         Arrays.asList(numarray),SimpleXYSeries.ArrayFormat.Y_VALS_ONLY,"Series1"); 
       LineAndPointFormatter series1Format = new LineAndPointFormatter(
         Color.rgb(0, 200, 0),     // line color 
         Color.rgb(0, 100, 0),     // point color 
         null,         // fill color (none) 
         new PointLabelFormatter(Color.WHITE)); 

       mySimpleXYPlot.addSeries(series1, series1Format); 

      } 


     }); 
    } else { 
     Toast.makeText(this, "Cannot open", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

какое сообщение об ошибке/ошибке или неожиданный результат, который вы получаете при попытке запустить код? – Nick

+0

График не заполняется при запуске кода выше. Нет сообщения об ошибке. –

ответ

0

Это не видно из фрагмента кода, при котором точке в жизненном цикле активности этого вызывается, но вполне вероятно, что это произойдет после того, как хорошо OnCreate с помощью фонового потока.

Возможно, вам нужно добавить звонок в plot.redraw() в конце вашей реализации onRead(). Кроме того, в зависимости от того, сколько раз этот метод вызывается, то, что у вас в настоящее время, приведет к добавлению дополнительной серии к сюжету для каждого вызова, чего вы, вероятно, не хотите.

Вместо этого вы, вероятно, захотите создать свой XYSeries вне обратного вызова и просто обновить его с onRead().

+0

Большое спасибо Нику! Ваша рекомендация работает! Сюжет заполняется, когда я добавляю mySimpleXYPlot.redraw() в конце моего onRead(). Однако я столкнулся с проблемой, которую вы ожидали, когда она воссоздала многочисленные серии сюжета, и я не смог решить проблему. Возможно ли вам ввести некоторые примеры кодов для меня, чтобы попробовать? Большое спасибо! –

+0

Считаете ли вы, что можете помочь, если я предоставляю файл .java? –

Смежные вопросы