bufferuntil('\n) не будет запускать обработку последовательного события с помощью eclipse

Я хочу сделать самое простое, чтобы построить график из последовательного порта Arduino с программным обеспечением для обработки. Я использую затмение.

Я сделал, как говорится в учебниках о плагинах. Я также копирую код с сайта arduino, который выглядит следующим образом:

import processing.serial.*;

Serial myPort;        // The serial port
int xPos = 1;         // horizontal position of the graph

void setup () {

  // set the window size:
  size(400, 300);        

  // List all the available serial ports
  println(Serial.list());

  // I know that the first port in the serial list on my mac
  // is always my  Arduino, so I open Serial.list()[0].
  // Open whatever port is the one you're using.
  myPort = new Serial(this, Serial.list()[0], 9600);

  // don't generate a serialEvent() unless you get a newline character:
  myPort.bufferUntil('\n');

  // set inital background:
   background(0);

}

 void draw () {
   // everything happens in the serialEvent()
 }

void serialEvent (Serial myPort) {

  // get the ASCII string:
  String inString = myPort.readStringUntil('\n');

  if (inString != null) {

    // trim off any whitespace:
    inString = trim(inString);

    // convert to an int and map to the screen height:
    float inByte = float(inString);
    inByte = map(inByte, 0, 1023, 0, height);

    // draw the line:
    stroke(127,34,255);
    line(xPos, height, xPos, height - inByte);

    // at the edge of the screen, go back to the beginning:
    if (xPos >= width) {

      xPos = 0;
      background(0);

    }
    else {

       // increment the horizontal position:
       xPos++;

    }

  }

}

Есть проблема, что bufferUntil('\n') не запускает серийное событие.

Я знаю, что была ошибка, когда вы пытаетесь установить 8-битное целое на 32-битное целое, и оно идет к черту.

Обработка ide отлично работает, хотя Eclipse вообще не запускается. Есть ли какое-либо решение?


person kyrpav    schedule 25.04.2013    source источник


Ответы (1)


Обратите внимание, что bufferUntil('\n') принимает целочисленное значение. Вы даете ему char. По крайней мере, попробуйте bufferUntil(10) просто, чтобы увидеть, есть ли там какая-то странность, но, возможно, стоит просто распечатать значения, которые вы видите в myPort, и посмотреть, что происходит, когда вы отправляете новую строку.

person Mike 'Pomax' Kamermans    schedule 25.04.2013
comment
хорошо, я знаю, что также я пытался бросить, и ничего я не дал 10 также и ничего. Проблема в том, что последовательное событие никогда не запускается, оно никогда не запускается. Оно отправляет новые строки, потому что, когда я проверяю форму монитора arduinos arduino ide, он печатает значения правильно. обработка ide, как я уже сказал, работает нормально. - person kyrpav; 25.04.2013
comment
println(myPort.readStringUntil('\n')); также это после того, как буфер до() печатает ноль - person kyrpav; 26.04.2013
comment
но какие данные вы видите, когда вы их регистрируете? - person Mike 'Pomax' Kamermans; 26.04.2013