|
@@ -29,13 +29,43 @@ public class RtdeInDataPackage implements IRtdeData {
|
|
|
|
|
|
@Override
|
|
|
public RtdeInDataPackage read(DataInputStream di, int length) throws IOException {
|
|
|
- int recipeID=di.readByte();
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
+ private int calcSize() {
|
|
|
+ int size = 0;
|
|
|
+ for (int i = 0; i < inputs.variables.size(); i++) {
|
|
|
+ String output = inputs.variables.get(i);
|
|
|
+ String type = inputs.types.get(i);
|
|
|
+ switch (type) {
|
|
|
+ case "BOOL":
|
|
|
+ case "UINT8":
|
|
|
+ size+=1;
|
|
|
+ break;
|
|
|
+ case "UINT32":
|
|
|
+ case "INT32":
|
|
|
+ size+=4;
|
|
|
+ break;
|
|
|
+ case "UINT64":
|
|
|
+ case "DOUBLE":
|
|
|
+ size+=8;
|
|
|
+ break;
|
|
|
+ case "VECTOR3D":
|
|
|
+ case "VECTOR6INT32":
|
|
|
+ case "VECTOR6UINT32":
|
|
|
+ size+=24;
|
|
|
+ break;
|
|
|
+ case "VECTOR6D":
|
|
|
+ size+=48;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return size;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public RtdeInDataPackage send(DataOutputStream dos) throws IOException {
|
|
|
- sendHeader(dos,0);
|
|
|
+ sendHeader(dos,calcSize()+1);
|
|
|
dos.writeByte(inputs.recipe);
|
|
|
for(int i=0; i<inputs.variables.size(); i++) {
|
|
|
String output = inputs.variables.get(i);
|
|
@@ -92,4 +122,13 @@ public class RtdeInDataPackage implements IRtdeData {
|
|
|
}
|
|
|
return this;
|
|
|
}
|
|
|
+
|
|
|
+ public void put(String key, String value) {
|
|
|
+ pdata.put(key, value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean hasReply() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|