/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package robotinterface.robot.device;
import java.nio.ByteBuffer;
import robotinterface.robot.Robot;
import robotinterface.robot.simulation.VirtualConnection;
import robotinterface.robot.simulation.VirtualDevice;
/**
*
* @author antunes
*/
public class Compass extends Device implements VirtualDevice {
private int alpha = 0;
@Override
public void setState(ByteBuffer data) {
alpha = data.getChar();
// System.out.println("Angulo:" + alpha);
}
@Override
public void getState(ByteBuffer buffer, Robot robot) {
buffer.put((byte) 2);
char d = (char) Math.toDegrees(robot.getTheta());
buffer.putChar(d);
}
@Override
public void setState(ByteBuffer data, Robot robot) {
int tmpAlpha = alpha;
setState(data);
if (tmpAlpha == alpha) {
alpha = (int) Math.toDegrees(robot.getTheta());
}
}
@Override
public void updateRobot(Robot robot) {
if (robot.getMainConnection() instanceof VirtualConnection) {
if (((VirtualConnection) robot.getMainConnection()).serial()) {
robot.setTheta(Math.toRadians(alpha));
}
}
}
@Override
public String stateToString() {
return "" + alpha;
}
@Override
public int getClassID() {
return 3;
}
public int getAlpha() {
return alpha;
}
@Override
public String getName() {
return "Bussola";
}
@Override
public void resetState() {
alpha = 0;
}
}