2 byte pin index #4097

fixing what was just broken
This commit is contained in:
rusefillc 2022-04-24 23:49:29 -04:00
parent 7e40edbebc
commit 388a4d238c
4 changed files with 12 additions and 17 deletions

Binary file not shown.

View File

@ -291,7 +291,8 @@ public class ReaderState {
if (log.debugEnabled())
log.debug("Need to align before " + cf.getName());
structure.addAlignmentFill(state, getPrimitiveSize);
} else {
} else if (getPrimitiveSize == null) {
// we are here for struct members
structure.addAlignmentFill(state, 4);
}

View File

@ -8,7 +8,6 @@ import com.rusefi.output.BaseCHeaderConsumer;
import com.rusefi.output.ConfigStructure;
import com.rusefi.output.JavaFieldsConsumer;
import com.rusefi.output.TSProjectConsumer;
import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException;
@ -79,16 +78,18 @@ public class ConfigFieldParserTest {
@Test
public void testCustomEnum() throws IOException {
String test = "struct pid_s\n" +
"#define ego_sensor_e_size 4\n" +
"#define ego_sensor_e_enum \"BPSX\", \"Innovate\", \"14Point7\"\n" +
"custom ego_sensor_e @@ego_sensor_e_size@@ bits, S32, @OFFSET@, [0:1], @@ego_sensor_e_enum@@\n" +
"custom ego_sensor_e 1 bits, S32, @OFFSET@, [0:1], @@ego_sensor_e_enum@@\n" +
"ego_sensor_e afr_type;\n" +
"int8_t int\n" +
"end_struct\n";
ReaderState state = new ReaderState();
TestTSProjectConsumer tsProjectConsumer = new TestTSProjectConsumer("", state);
state.readBufferedReader(test, (tsProjectConsumer));
assertEquals("afr_type = bits, S32, 0, [0:1], \"BPSX\", \"Innovate\", \"14Point7\", \"INVALID\"\n" +
"int = scalar, S08, 1, \"\", 1, 0, 0, 100, 0\n" +
"alignmentFill_at_2 = array, U08, 2, [2], \"units\", 1, 0, -20, 100, 0\n" +
"; total TS size = 4\n", tsProjectConsumer.getContent());
}
@ -544,23 +545,17 @@ public class ConfigFieldParserTest {
"\t */\n" +
"\tint8_t byte1 = (int8_t)0;\n" +
"\t/**\n" +
"\t * need 4 byte alignment\n" +
"\tunits\n" +
"\t * offset 1\n" +
"\t */\n" +
"\tuint8_t alignmentFill_at_1[3];\n" +
"\t/**\n" +
"\t * offset 4\n" +
"\t */\n" +
"\tint8_t byte2 = (int8_t)0;\n" +
"\t/**\n" +
"\t * need 4 byte alignment\n" +
"\tunits\n" +
"\t * offset 5\n" +
"\t * offset 2\n" +
"\t */\n" +
"\tuint8_t alignmentFill_at_5[3];\n" +
"\tuint8_t alignmentFill_at_2[2];\n" +
"};\n" +
"static_assert(sizeof(pid_s) == 8);\n" +
"static_assert(sizeof(pid_s) == 4);\n" +
"\n",
consumer.getContent());
}

View File

@ -37,11 +37,10 @@ public class JavaSensorsConsumerTest {
"alignmentFill_at_10(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 10, 1.0, -20.0, 100.0, \"units\"),\n" +
"luaTimingMult(\"luaTimingMult\", SensorCategory.SENSOR_INPUTS, FieldType.INT, 12, 1.0, -1.0, -1.0, \"\"),\n" +
"vehicleSpeedKph(\"vehicleSpeedKph\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 16, 1.0, -1.0, -1.0, \"\"),\n" +
"alignmentFill_at_17(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 17, 1.0, -20.0, 100.0, \"units\"),\n" +
"internalMcuTemperature(\"mcu\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 20, 1.0, 0.0, 0.0, \"deg C\"),\n" +
"alignmentFill_at_21(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 21, 1.0, -20.0, 100.0, \"units\"),\n",
"internalMcuTemperature(\"mcu\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 17, 1.0, 0.0, 0.0, \"deg C\"),\n" +
"alignmentFill_at_18(\"need 4 byte alignment\", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 18, 1.0, -20.0, 100.0, \"units\"),\n",
javaSensorsConsumer.getContent());
assertEquals(24, javaSensorsConsumer.sensorTsPosition);
assertEquals(20, javaSensorsConsumer.sensorTsPosition);
}
@Test