ZoRaC Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 Hei! Noen som har erfaring med leJOS og kommunikasjon mellom to RCX-enheter via IR? Pseudokode ("master): while (true) { Motor.A.forward(); if (lyssensor1) IR.send(1); else if (lyssensor2) IR.send(2); else if (lyssensor3) IR.send(3); Motor.A.stop(); } Pseudokode ("slave): while (true) { if (IR.mottatt == 1) Motor.A.forward(); else if (IR.mottatt == 2) Motor.B.forward(); else if (IR.mottatt ==3) Motor.C.forward(); } Dette er et grovt utdrag av koden, men det er dette som har med sending/mottak av IR å gjøre. Noen som har tips? Har prøvd dette i "master": public void sendOpenDoorIR(int floorNo) { try { RCXPort port = new RCXPort(); // Set timout port.setTimeOut(200); OutputStream os = port.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); // Send floorNo as an int dos.writeInt(floorNo); // Send IR dos.flush(); } catch (IOException ioe) { } Og dette i "slave": // Endless-loop while(true) { try { if (is.available() > 0) lastFloor = is.read(); } catch (Exception ioe) { } LCD.showNumber(lastFloor); if (lastFloor > 0) { // Open the door objElevator.openDoor(lastFloor, 400); // Sleep while the door is open. for (int i = 0; i < 40; i++) { try { Thread.sleep(4000/40); } catch (Exception e) { } } // Close the door objElevator.closeDoor(lastFloor, 400); lastFloor = 0; } Men, "master"-programmet oppfører seg litt merkelig, lange ventetider, gjør ting den ikke skal, osv. Riktig nok ser det ut til at "slave" mottar tall-verdiene og gjør det den skal, men innimellom starter den også motorer, uten at "master" har sendt noe til den. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå