package at.acdp.urweb.rtde.packets; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import static at.acdp.urweb.rtde.CommandType.RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS; public class RtdeSetupOutputs implements IRtdeData { public int recipe; private List variables=new ArrayList<>(); public String typesText; public RtdeSetupOutputs() { } public RtdeSetupOutputs addVariable(String name) { variables.add(name); return this; } @Override public int getType() { return RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS; } @Override public RtdeSetupOutputs read(DataInputStream d, int length) throws IOException { recipe = d.readByte(); byte[] text=new byte[length-1]; d.readFully(text); typesText=new String(text); return this; } @Override public RtdeSetupOutputs send(DataOutputStream dos) throws IOException { var payload = String.join(",", variables).getBytes(); sendHeader(dos, payload.length+8); dos.writeDouble(1); //output frequency [1..125] dos.write(payload); dos.flush(); return this; } }