package lejos.nxt.addon; import lejos.nxt.BasicMotorPort; import lejos.util.Delay; /* * WARNING: THIS CLASS IS SHARED BETWEEN THE classes AND pccomms PROJECTS. * DO NOT EDIT THE VERSION IN pccomms AS IT WILL BE OVERWRITTEN WHEN THE PROJECT IS BUILT. */ /** * Supports a motor connected to a remote RCX via a mindsensord NRLink adapter * * @author Lawrie Griffiths * */ public class RCXRemoteMotorPort implements BasicMotorPort { private RCXLink link; private int id; private boolean started = false; private int oldPower = -1; public RCXRemoteMotorPort(RCXLink link, int id) { this.link = link; this.id = id; } public void controlMotor(int power, int mode) { //LCD.drawInt(id, 0, 0); //LCD.drawInt(power,4,0,1); //LCD.drawInt(mode,0,2); //LCD.refresh(); int power7 = (int) (power/12.5); if (power7 > 7) power7 = 7; if ((mode == 1 || mode == 2) && !started) { link.startMotor(id); started = true; sleep(); } else started = false; if (power != oldPower) { link.setMotorPower(id, power7); sleep(); } if (mode == 1) link.forward(id); else if (mode == 2) link.backward(id); else if (mode == 3) link.stopMotor(id); else if (mode == 4) link.fltMotor(id); oldPower = power; } private void sleep() { Delay.msDelay(50); } public void setPWMMode(int mode) { } }