bit[] frame; import processing.serial.*; Serial mp; char value; int k = 0; void setup() { size ( 1000, 700 ); mp = new Serial (this, Serial.list()[1], 9600); mp.bufferUntil ('\n'); frame = new bit[11]; // bit (int pnumber, int py , int px , color pxroma ) for (int i =0; i<11; i++) { if (i <=3) frame[i] = new bit(' ', 100, 400+ i*50, 50, 255, 0); else if ( i ==4 || i == 5 || i ==7) frame[i] = new bit(' ', 100, 400+ i*50, 50, #FF0000, i-3); else frame[i] = new bit(' ', 100, 400+ i*50, 50, #00FF00, i-3); } } void draw() { displayAll(); } void displayAll() { background(0); for (int i =0; i< 11; i++) frame[i].display(); //Frame text fill(255); textSize(50); text("FRAME", 150, 145); //Message text //fill(255); //textSize(50); //text("MESSAGE", 150, 350); //Labels //Preample bits text: fill(255); textSize(20); text("4 preample bits", 430, 70); //Control bits text: fill(#FF0000); textSize(20); text("3 control bits", 630, 70); //Data bits text: fill(#00FF00); textSize(20); text("4 data bits", 800, 70); } void getData() { String data; // Στο string data θα πάρουμε τα δεδομένα που ήρθαν στη σειριακή θύρα // μέχρι το newline. data = mp.readStringUntil('\n'); if (data != null) // Ελέγχουμε αν όντως πήραμε κάτι. { data = data.trim(); // Κόβουμε κενούς χαρακτήρες από το τέλος της συμβολοσειράς. println("DATA ", data); try { value = data.charAt(0); println("VALUE ", value); //for (int k=0; k < 11; k++) //{ //frame[k].setnumber(value.charAt(k)); frame[k].setnumber(value); k++; if (k==11) k = 0; //delay(500); //} } catch(Exception e) { value = ' '; } } // Καθαρίζουμε τη θύρα, καλού κακού mp.clear(); } // Η function serialEvent() εκτελείται κάθε φορά που έρχεται κάτι στην σειριακή θύρα. // Εμείς εδώ, απλά παίρνουμε τα δεδομένα, καλώντας την function getData(). // Tα δεδομένα η getData() τα τοποθετεί στον πίνακα val, ο οποίος είναι ένας πίνακας // που χωράει 2 πραγματικούς αριθμούς. (δείτε πάνω πάνω στη δήλωση των μεταβλητών) void serialEvent(Serial mp) { if (mp.available() > 0 ) { println("getDATA"); getData(); //println(value); } }