package fr.utc.leapband.sma.user; import jade.core.behaviours.OneShotBehaviour; import jade.lang.acl.ACLMessage; import java.io.StringWriter; import javax.vecmath.Point3d; import com.fasterxml.jackson.databind.ObjectMapper; import fr.utc.leapband.utilities.Cordinates; import fr.utc.leapband.utilities.MoveInformData; import fr.utc.leapband.utilities.Movement; @SuppressWarnings("serial") public class SendMoveBehaviour extends OneShotBehaviour{ UserAgent myAgent; Cordinates position; MoveInformData my_data = new MoveInformData(); Movement move = new Movement(); Point3d pos = new Point3d(); float velocity; public SendMoveBehaviour(UserAgent agent, Cordinates pos, float vel) { myAgent = agent; position = pos; velocity = vel; } @Override public void action() { ACLMessage message = new ACLMessage(ACLMessage.REQUEST); message.addReceiver(myAgent.getNoteAgentName()); move.setSpeed(position.speed); pos.x = position.x; pos.y = position.y; pos.z = position.z; move.setPos(pos); my_data.setMove(move); my_data.setVelocity_multiplier(velocity); message.clearAllReplyTo(); message.addReplyTo(myAgent.getSoundAgentName()); my_data.setInstrumentType(myAgent.getSelectedInstrument()); my_data.setTimestamp(System.currentTimeMillis()); ObjectMapper mapper = new ObjectMapper(); StringWriter sw = new StringWriter(); try { mapper.writeValue(sw, my_data); message.setContent(sw.toString()); } catch (Exception e) { e.printStackTrace(); } myAgent.send(message); } }