Fix field updating issue

This commit is contained in:
Michael Mikovsky
2025-04-07 21:41:34 -06:00
parent eaa14adbd9
commit 72921a7c11
8 changed files with 49 additions and 52 deletions
@@ -28,15 +28,15 @@ public class ScoutingDataWriter {
switch (data[i].getValueType()){
case NUM:
bb.addInt((int) data[i].forceGetValue());
System.out.println("Saved INT: " + data[i].getName() + ", ("+ data[i].get() +")");
System.out.println("Saved INT: " + data[i].getUUID() + ", ("+ data[i].get() +")");
break;
case STRING:
bb.addString((String) data[i].forceGetValue());
System.out.println("Saved STR: " + data[i].getName() + ", ("+ data[i].get() +")");
System.out.println("Saved STR: " + data[i].getUUID() + ", ("+ data[i].get() +")");
break;
case NUMARR:
bb.addIntArray((int[]) data[i].forceGetValue());
System.out.println("Saved INT Array: " + data[i].getName() + ", ("+ Arrays.toString((int[]) data[i].get()) +")");
System.out.println("Saved INT Array: " + data[i].getUUID() + ", ("+ Arrays.toString((int[]) data[i].get()) +")");
}
}
byte[] bytes = bb.build();
@@ -69,19 +69,19 @@ public class ScoutingDataWriter {
for(int i = 0; i < values[version].length; i++){
switch (objects.get(i+2).getType()){
case 1: // Int
dataTypes[i] = IntType.newNull(values[version][i].name);
dataTypes[i] = IntType.newNull(values[version][i].UUID);
dataTypes[i].forceSetValue(objects.get(i+2).get());
System.out.println("Loaded INT: " + values[version][i].name + ", ("+ dataTypes[i].get() +")");
System.out.println("Loaded INT: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ dataTypes[i].get() +")");
break;
case 2: // String
dataTypes[i] = StringType.newNull(values[version][i].name);
dataTypes[i] = StringType.newNull(values[version][i].UUID);
dataTypes[i].forceSetValue(objects.get(i+2).get());
System.out.println("Loaded STR: " + values[version][i].name + ", ("+ dataTypes[i].get() +")");
System.out.println("Loaded STR: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ dataTypes[i].get() +")");
break;
case 3: // Int array
dataTypes[i] = IntArrType.newNull(values[version][i].name);
dataTypes[i] = IntArrType.newNull(values[version][i].UUID);
dataTypes[i].forceSetValue(objects.get(i+2).get());
System.out.println("Loaded intARR: " + values[version][i].name + ", ("+ Arrays.toString((int[])dataTypes[i].get()) +")");
System.out.println("Loaded intARR: " + values[version][i].name + " (" + values[version][i].UUID + ") " + ", ("+ Arrays.toString((int[])dataTypes[i].get()) +")");
break;
}
}
@@ -2,7 +2,7 @@ package com.ridgebotics.ridgescout.scoutingData.transfer;
public class CreateTransferType extends TransferType {
public transferValue getType() {return transferValue.CREATE;}
public CreateTransferType(String name){
super(name);
public CreateTransferType(String UUID){
super(UUID);
}
}
@@ -2,7 +2,7 @@ package com.ridgebotics.ridgescout.scoutingData.transfer;
public class DirectTransferType extends TransferType {
public transferValue getType() {return transferValue.DIRECT;}
public DirectTransferType(String name){
super(name);
public DirectTransferType(String UUID){
super(UUID);
}
}
@@ -7,15 +7,15 @@ public abstract class TransferType {
DIRECT,
CREATE
}
public String name;
public String UUID;
public abstract transferValue getType();
public TransferType(String name){
this.name = name;
public TransferType(String UUID){
this.UUID = UUID;
}
private static FieldType get_input_type_by_name(FieldType[] values, String name){
private static FieldType get_input_type_by_UUID(FieldType[] values, String UUID){
for(FieldType it : values){
if(it.name.equals(name)){
if(it.UUID.equals(UUID)){
return it;
}
}
@@ -25,13 +25,15 @@ public abstract class TransferType {
public static TransferType[][] get_transfer_values(FieldType[][] values) {
TransferType[][] output = new TransferType[values.length][];
for(int a = 1; a < values.length; a++){
TransferType[] v = new TransferType[values[a].length];
for(int b = 0; b < values[a].length; b++){
String name = values[a][b].name;
if(get_input_type_by_name(values[a-1], name) != null){
v[b] = new DirectTransferType(name);
String UUID = values[a][b].UUID;
if(get_input_type_by_UUID(values[a-1], UUID) != null){
v[b] = new DirectTransferType(UUID);
}else{
v[b] = new CreateTransferType(name);
v[b] = new CreateTransferType(UUID);
}
}
output[a-1] = v;