Gå til innhold

leJOS programmering (IR-com)


Anbefalte innlegg

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...