ZoRaC Skrevet 25. oktober 2006 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.
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å