2016-10-19 4 views
0

처음에는 프로그래밍에 익숙치 않아 정보 부족으로 실례합니다. 아래는 내 안드로이드 장치를 직렬 통신을 통해 Arduino에 연결하기 위해 Physicaloid를 여는 코드입니다. 지금 당장 arduino에서 나오는 아날로그 신호를 받고 "buf"라는 배열의 tVread에 나타납니다. 그러나 나는 실패하고 안드로이드 플롯을 사용하여 배열 "buf"를 그려 내려고 노력했습니다. 제발 친절하게 조언. 고맙습니다!안드로이드에서 바이트 배열을 그래프로 그리기

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 후에 잘 발생하는 것으로 보인다.

onRead() 구현의 마지막 부분에 plot.redraw()에 대한 호출을 추가해야 할 수 있습니다. 또한이 메소드가 호출 된 횟수에 따라 현재 가지고있는 콜은 각 호출의 플롯에 추가 시리즈를 추가하게 될 것이며 이는 원치 않을 것입니다.

대신 콜백 외부에서 XYSeries를 만들고 간단하게 onRead()에서 업데이트하려고합니다.

+0

고맙습니다. 닉! 당신의 추천은 작동합니다! 내 onRead() 끝에 mySimpleXYPlot.redraw()를 추가하면 플롯이 채워집니다. 그러나 나는 당신이 그 계획에 수많은 시리즈를 재현하고 내가 그 문제를 해결하려고 시도하지 못한 것으로 예상했던 문제에 직면 해있다. 시도해 볼 수있는 몇 가지 예제 코드를 입력 할 수 있습니까? 고마워요! –

+0

.java 파일을 제공하면 도움이 될 것이라고 생각하십니까? –