RtdeSetupOutputs.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package at.acdp.urweb.rtde.packets;
  2. import java.io.DataInputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import static at.acdp.urweb.rtde.CommandType.RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS;
  8. public class RtdeSetupOutputs implements IRtdeData {
  9. public int recipe;
  10. private List<String> variables=new ArrayList<>();
  11. public String typesText;
  12. public RtdeSetupOutputs() {
  13. }
  14. public RtdeSetupOutputs addVariable(String name) {
  15. variables.add(name);
  16. return this;
  17. }
  18. @Override
  19. public int getType() {
  20. return RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS;
  21. }
  22. @Override
  23. public RtdeSetupOutputs read(DataInputStream d, int length) throws IOException {
  24. recipe = d.readByte();
  25. byte[] text=new byte[length-1];
  26. d.readFully(text);
  27. typesText=new String(text);
  28. return this;
  29. }
  30. @Override
  31. public RtdeSetupOutputs send(DataOutputStream dos) throws IOException {
  32. var payload = String.join(",", variables).getBytes();
  33. sendHeader(dos, payload.length+8);
  34. dos.writeDouble(1); //output frequency [1..125]
  35. dos.write(payload);
  36. dos.flush();
  37. return this;
  38. }
  39. }