diff --git a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxDatapoint.java b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxDatapoint.java index bd7e4d801f1..8a32efb55af 100644 --- a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxDatapoint.java +++ b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxDatapoint.java @@ -791,145 +791,168 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Tempd)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Tempa)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Lux)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Wsp)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Pres)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Humidity)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_AirQuality)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_AirFlow)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Time1)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Time2)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Volt)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Curr)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_PowerDensity)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_KelvinPerPercent)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Power)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Volume_Flow)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Rain_Amount)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Temp_F)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Wsp_kmh)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Absolute_Humidity)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Concentration_ygm3)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Coefficient)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_TimeOfDay)) { // Struct Short reservedField0 = @@ -1658,14 +1681,16 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Volume_Flux_ls)) { // REAL Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float value = readSimpleField("value", readFloat(readBuffer, 16)); + float value = + readSimpleField("value", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); return new PlcREAL(value); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Access_Data)) { // Struct Short reservedField0 = @@ -3230,11 +3255,17 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float tempsetpcomf = readSimpleField("tempsetpcomf", readFloat(readBuffer, 16)); + float tempsetpcomf = + readSimpleField( + "tempsetpcomf", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); - float tempsetpstdby = readSimpleField("tempsetpstdby", readFloat(readBuffer, 16)); + float tempsetpstdby = + readSimpleField( + "tempsetpstdby", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); - float tempsetpeco = readSimpleField("tempsetpeco", readFloat(readBuffer, 16)); + float tempsetpeco = + readSimpleField( + "tempsetpeco", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); Map _map = new HashMap<>(); _map.put("tempsetpcomf", new PlcREAL(tempsetpcomf)); @@ -3246,11 +3277,17 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap Short reservedField0 = readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); - float tempsetpshiftcomf = readSimpleField("tempsetpshiftcomf", readFloat(readBuffer, 16)); + float tempsetpshiftcomf = + readSimpleField( + "tempsetpshiftcomf", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); - float tempsetpshiftstdby = readSimpleField("tempsetpshiftstdby", readFloat(readBuffer, 16)); + float tempsetpshiftstdby = + readSimpleField( + "tempsetpshiftstdby", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); - float tempsetpshifteco = readSimpleField("tempsetpshifteco", readFloat(readBuffer, 16)); + float tempsetpshifteco = + readSimpleField( + "tempsetpshifteco", readFloat(readBuffer, 16), WithOption.WithEncoding("KNXFloat")); Map _map = new HashMap<>(); _map.put("tempsetpshiftcomf", new PlcREAL(tempsetpshiftcomf)); @@ -3904,16 +3941,28 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); float roomTemperatureSetpointComfort = - readSimpleField("roomTemperatureSetpointComfort", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointComfort", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointStandby = - readSimpleField("roomTemperatureSetpointStandby", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointStandby", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointEconomy = - readSimpleField("roomTemperatureSetpointEconomy", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointEconomy", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointBuildingProtection = - readSimpleField("roomTemperatureSetpointBuildingProtection", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointBuildingProtection", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); Map _map = new HashMap<>(); _map.put("roomTemperatureSetpointComfort", new PlcREAL(roomTemperatureSetpointComfort)); @@ -3929,17 +3978,28 @@ public static PlcValue staticParse(ReadBuffer readBuffer, KnxDatapointType datap readReservedField("reserved", readUnsignedShort(readBuffer, 8), (short) 0x00); float roomTemperatureSetpointShiftComfort = - readSimpleField("roomTemperatureSetpointShiftComfort", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointShiftComfort", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointShiftStandby = - readSimpleField("roomTemperatureSetpointShiftStandby", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointShiftStandby", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointShiftEconomy = - readSimpleField("roomTemperatureSetpointShiftEconomy", readFloat(readBuffer, 16)); + readSimpleField( + "roomTemperatureSetpointShiftEconomy", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); float roomTemperatureSetpointShiftBuildingProtection = readSimpleField( - "roomTemperatureSetpointShiftBuildingProtection", readFloat(readBuffer, 16)); + "roomTemperatureSetpointShiftBuildingProtection", + readFloat(readBuffer, 16), + WithOption.WithEncoding("KNXFloat")); Map _map = new HashMap<>(); _map.put( @@ -8124,145 +8184,237 @@ public static void staticSerialize( writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Tempd)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Tempa)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Lux)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Wsp)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Pres)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Humidity)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_AirQuality)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_AirFlow)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Time1)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Time2)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Volt)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Curr)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_PowerDensity)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_KelvinPerPercent)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Power)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Volume_Flow)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Rain_Amount)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Temp_F)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Value_Wsp_kmh)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Value_Absolute_Humidity)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Concentration_ygm3)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals(datapointType, KnxDatapointType.DPT_Coefficient)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_TimeOfDay)) { // Struct // Output something here ... @@ -8949,14 +9101,22 @@ public static void staticSerialize( writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Volume_Flux_ls)) { // REAL // Reserved Field (reserved) writeReservedField("reserved", (short) 0x00, writeUnsignedShort(writeBuffer, 8)); // Simple Field (value) - writeSimpleField("value", (float) _value.getFloat(), writeFloat(writeBuffer, 16)); + writeSimpleField( + "value", + (float) _value.getFloat(), + writeFloat(writeBuffer, 16), + WithOption.WithEncoding("KNXFloat")); } else if (EvaluationHelper.equals( datapointType, KnxDatapointType.DPT_Access_Data)) { // Struct // Output something here ... diff --git a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java index 282a2eb0598..a0eb9184811 100644 --- a/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java +++ b/plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java @@ -497,6 +497,8 @@ protected void processCemiData(KnxAddress sourceAddress, byte[] destinationGroup ReadBuffer rawDataReader = new ReadBufferByteBased(payload); final PlcValue value = KnxDatapoint.staticParse(rawDataReader, groupAddress.getType()); + LOGGER.trace("Incoming message {} with payload {} decoded to {}", + groupAddress, Hex.encodeHexString(payload), (value != null) ? value.toString() : ""); // Assemble the plc4x return data-structure. Map dataPointMap = new HashMap<>(); diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ReadBufferByteBased.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ReadBufferByteBased.java index d39d18f99c2..f6dbffa3856 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ReadBufferByteBased.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ReadBufferByteBased.java @@ -452,9 +452,14 @@ public BigInteger readBigInteger(String logicalName, int bitLength, WithReaderAr @Override public float readFloat(String logicalName, int bitLength, WithReaderArgs... readerArgs) throws ParseException { + String encoding = extractEncoding(readerArgs).orElse("UTF-8"); try { if (bitLength == 16) { - return readFloat16(); + if("KNXFloat".equals(encoding)) { + return readKnxFloat16(); + } else { + return readFloat16(); + } } else if (bitLength == 32) { return readFloat32(logicalName); } else { @@ -465,37 +470,18 @@ public float readFloat(String logicalName, int bitLength, WithReaderArgs... read } } - private float readFloat16() throws IOException { + private float readKnxFloat16() throws IOException { // NOTE: KNX uses 4 bits as exponent and 11 as fraction final boolean sign = bi.readBoolean(); final byte exponent = bi.readByte(true, 4); short fraction = bi.readShort(true, 11); - // This is a 12-bit 2's complement notation ... the first bit belongs to the last 11 bits. - // If the first bit is set, then we need to also set the upper 5 bits of the fraction part. if (sign) { fraction = (short) (fraction | 0xF800); } - if ((exponent >= 1) && (exponent < 15)) { - return (float) (0.01 * fraction * Math.pow(2, exponent)); - } - if (exponent == 0) { - if (fraction == 0) { - return 0.0f; - } else { - return (2 ^ (-14)) * (fraction / 10f); - } - } - if (exponent == 15) { - if (fraction == 0) { - return sign ? Float.POSITIVE_INFINITY : Float.NEGATIVE_INFINITY; - } else { - return Float.NaN; - } - } - throw new NumberFormatException(); + return (float) (0.01 * fraction * Math.pow(2, exponent)); } - /*private float readFloat16() throws IOException { + private float readFloat16() throws IOException { // https://en.wikipedia.org/wiki/Half-precision_floating-point_format final boolean sign = bi.readBoolean(); final byte exponent = bi.readByte(true, 5); @@ -519,7 +505,7 @@ private float readFloat16() throws IOException { } } throw new NumberFormatException(); - }*/ + } private float readFloat32(String logicalName) throws ParseException { int intValue = readInt(logicalName, 32); diff --git a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec index f47454ead18..c9baec31fc2 100644 --- a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec +++ b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec @@ -1689,9 +1689,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit on] ] @@ -1700,9 +1700,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit valueTrue] ] @@ -1711,9 +1711,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit enable] ] @@ -1722,9 +1722,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit ramp] ] @@ -1733,9 +1733,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit alarm] ] @@ -1744,9 +1744,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit high] ] @@ -1755,9 +1755,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit increase] ] @@ -1766,9 +1766,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit down] ] @@ -1777,9 +1777,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit close] ] @@ -1788,9 +1788,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit start] ] @@ -1799,9 +1799,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit active] ] @@ -1810,9 +1810,9 @@ // Field Size 2 [reserved uint 6 '0x00'] - + [simple bit control] - + [simple bit inverted] ] @@ -1821,9 +1821,9 @@ // Field Size 4 [reserved uint 4 '0x00'] - + [simple bit increase] - + [simple uint 3 stepcode] ] @@ -1832,9 +1832,9 @@ // Field Size 4 [reserved uint 4 '0x00'] - + [simple bit down] - + [simple uint 3 stepcode] ] @@ -1918,17 +1918,17 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit statusA] - + [simple bit statusB] - + [simple bit statusC] - + [simple bit statusD] - + [simple bit statusE] - + [simple uint 3 mode] ] @@ -2090,161 +2090,161 @@ ['DPT_Value_Temp' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Tempd' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Tempa' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Lux' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Wsp' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Pres' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Humidity' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_AirQuality' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_AirFlow' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Time1' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Time2' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Volt' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Curr' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_PowerDensity' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_KelvinPerPercent' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Power' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Volume_Flow' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Rain_Amount' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Temp_F' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Wsp_kmh' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Value_Absolute_Humidity' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Concentration_ygm3' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Coefficient' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] @@ -2252,17 +2252,17 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 3 day] - + [simple uint 5 hour] - + [reserved uint 2 '0x00'] - + [simple uint 6 minutes] - + [reserved uint 2 '0x00'] - + [simple uint 6 seconds] ] @@ -2271,17 +2271,17 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [reserved uint 3 '0x00'] - + [simple uint 5 dayOfMonth] - + [reserved uint 4 '0x00'] - + [simple uint 4 month] - + [reserved uint 1 '0x00'] - + [simple uint 7 year] ] @@ -2982,14 +2982,14 @@ ['DPT_Volume_Flux_Meter' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] ['DPT_Volume_Flux_ls' REAL [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] ] @@ -2997,27 +2997,27 @@ // Field Size 32 [reserved uint 8 '0x00'] - + [simple uint 4 hurz] - + [simple uint 4 value1] - + [simple uint 4 value2] - + [simple uint 4 value3] - + [simple uint 4 value4] - + [simple uint 4 value5] - + [simple bit detectionError] - + [simple bit permission] - + [simple bit readDirection] - + [simple bit encryptionOfAccessInformation] - + [simple uint 4 indexOfAccessIdentificationCode] ] @@ -3045,11 +3045,11 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit learnTheSceneCorrespondingToTheFieldSceneNumber] - + [reserved uint 1 '0x00'] - + [simple uint 6 sceneNumber] ] @@ -3058,47 +3058,47 @@ // Field Size 64 [reserved uint 8 '0x00'] - + [simple uint 8 year] - + [reserved uint 4 '0x00'] - + [simple uint 4 month] - + [reserved uint 3 '0x00'] - + [simple uint 5 dayofmonth] - + [simple uint 3 dayofweek] - + [simple uint 5 hourofday] - + [reserved uint 2 '0x00'] - + [simple uint 6 minutes] - + [reserved uint 2 '0x00'] - + [simple uint 6 seconds] - + [simple bit fault] - + [simple bit workingDay] - + [simple bit noWd] - + [simple bit noYear] - + [simple bit noDate] - + [simple bit noDayOfWeek] - + [simple bit noTime] - + [simple bit standardSummerTime] - + [simple bit qualityOfClock] - + [reserved uint 7 '0x00'] ] @@ -3499,17 +3499,17 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 3 '0x00'] - + [simple bit alarmStatusOfCorrespondingDatapointIsNotAcknowledged] - + [simple bit correspondingDatapointIsInAlarm] - + [simple bit correspondingDatapointMainValueIsOverridden] - + [simple bit correspondingDatapointMainValueIsCorruptedDueToFailure] - + [simple bit correspondingDatapointValueIsOutOfService] ] @@ -3518,13 +3518,13 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit verifyModeIsOn] - + [simple bit aDatagramWithTheOwnIndividualAddressAsSourceAddressHasBeenReceived] - + [simple bit theUserApplicationIsStopped] ] @@ -3533,21 +3533,21 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit roomhmax] - + [simple bit roomhconf] - + [simple bit dhwlegio] - + [simple bit dhwnorm] - + [simple bit overrun] - + [simple bit oversupply] - + [simple bit protection] - + [simple bit forcerequest] ] @@ -3562,21 +3562,21 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit summermode] - + [simple bit statusstopoptim] - + [simple bit statusstartoptim] - + [simple bit statusmorningboost] - + [simple bit tempreturnlimit] - + [simple bit tempflowlimit] - + [simple bit satuseco] - + [simple bit fault] ] @@ -3585,13 +3585,13 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit solarloadsufficient] - + [simple bit sdhwloadactive] - + [simple bit fault] ] @@ -3600,13 +3600,13 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit solidstate] - + [simple bit gas] - + [simple bit oil] ] @@ -3621,15 +3621,15 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 4 '0x00'] - + [simple bit cool] - + [simple bit heat] - + [simple bit fanactive] - + [simple bit fault] ] @@ -3638,17 +3638,17 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 3 '0x00'] - + [simple bit statusOfHvacModeUser] - + [simple bit statusOfComfortProlongationUser] - + [simple bit effectiveValueOfTheComfortPushButton] - + [simple bit effectiveValueOfThePresenceStatus] - + [simple bit effectiveValueOfTheWindowStatus] ] @@ -3657,21 +3657,21 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 1 '0x00'] - + [simple bit overheat] - + [simple bit lampfailure] - + [simple bit defectiveload] - + [simple bit underload] - + [simple bit overcurrent] - + [simple bit undervoltage] - + [simple bit loaddetectionerror] ] @@ -3680,13 +3680,13 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit bibatSlave] - + [simple bit bibatMaster] - + [simple bit asynchronous] ] @@ -3695,13 +3695,13 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit doa] - + [simple bit knxSn] - + [simple bit doaAndKnxSn] ] @@ -3710,21 +3710,21 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit activationStateOfChannel1] - + [simple bit activationStateOfChannel2] - + [simple bit activationStateOfChannel3] - + [simple bit activationStateOfChannel4] - + [simple bit activationStateOfChannel5] - + [simple bit activationStateOfChannel6] - + [simple bit activationStateOfChannel7] - + [simple bit activationStateOfChannel8] ] @@ -3733,23 +3733,23 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 8 '0x00'] - + [simple bit tempoptimshiftactive] - + [simple bit solarenergysupport] - + [simple bit solarenergyonly] - + [simple bit otherenergysourceactive] - + [simple bit dhwpushactive] - + [simple bit legioprotactive] - + [simple bit dhwloadactive] - + [simple bit fault] ] @@ -3758,37 +3758,37 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 1 '0x00'] - + [simple bit overheatalarm] - + [simple bit frostalarm] - + [simple bit dewpointstatus] - + [simple bit coolingdisabled] - + [simple bit statusprecool] - + [simple bit statusecoc] - + [simple bit heatcoolmode] - + [simple bit heatingdiabled] - + [simple bit statusstopoptim] - + [simple bit statusstartoptim] - + [simple bit statusmorningboosth] - + [simple bit tempflowreturnlimit] - + [simple bit tempflowlimit] - + [simple bit statusecoh] - + [simple bit fault] ] @@ -3797,25 +3797,25 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 7 '0x00'] - + [simple bit calibrationMode] - + [simple bit lockedPosition] - + [simple bit forcedPosition] - + [simple bit manuaOperationOverridden] - + [simple bit serviceMode] - + [simple bit valveKick] - + [simple bit overload] - + [simple bit shortCircuit] - + [simple bit currentValvePosition] ] @@ -3824,25 +3824,25 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 7 '0x00'] - + [simple bit coolingModeEnabled] - + [simple bit heatingModeEnabled] - + [simple bit additionalHeatingCoolingStage2Stage] - + [simple bit controllerInactive] - + [simple bit overheatAlarm] - + [simple bit frostAlarm] - + [simple bit dewPointStatus] - + [simple bit activeMode] - + [simple bit generalFailureInformation] ] @@ -3851,19 +3851,19 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 10 '0x00'] - + [simple bit knxIp] - + [simple bit rf] - + [reserved uint 1 '0x00'] - + [simple bit pl110] - + [simple bit tp1] - + [reserved uint 1 '0x00'] ] @@ -3872,37 +3872,37 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [simple bit activationStateOfChannel1] - + [simple bit activationStateOfChannel2] - + [simple bit activationStateOfChannel3] - + [simple bit activationStateOfChannel4] - + [simple bit activationStateOfChannel5] - + [simple bit activationStateOfChannel6] - + [simple bit activationStateOfChannel7] - + [simple bit activationStateOfChannel8] - + [simple bit activationStateOfChannel9] - + [simple bit activationStateOfChannel10] - + [simple bit activationStateOfChannel11] - + [simple bit activationStateOfChannel12] - + [simple bit activationStateOfChannel13] - + [simple bit activationStateOfChannel14] - + [simple bit activationStateOfChannel15] - + [simple bit activationStateOfChannel16] ] @@ -3939,9 +3939,9 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple uint 4 busy] - + [simple uint 4 nak] ] @@ -3950,11 +3950,11 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [reserved uint 1 '0x00'] - + [simple bit sceneIsInactive] - + [simple uint 6 scenenumber] ] @@ -3963,69 +3963,69 @@ // Field Size 32 [reserved uint 8 '0x00'] - + [simple bit maskBitInfoOnOffOutput16] - + [simple bit maskBitInfoOnOffOutput15] - + [simple bit maskBitInfoOnOffOutput14] - + [simple bit maskBitInfoOnOffOutput13] - + [simple bit maskBitInfoOnOffOutput12] - + [simple bit maskBitInfoOnOffOutput11] - + [simple bit maskBitInfoOnOffOutput10] - + [simple bit maskBitInfoOnOffOutput9] - + [simple bit maskBitInfoOnOffOutput8] - + [simple bit maskBitInfoOnOffOutput7] - + [simple bit maskBitInfoOnOffOutput6] - + [simple bit maskBitInfoOnOffOutput5] - + [simple bit maskBitInfoOnOffOutput4] - + [simple bit maskBitInfoOnOffOutput3] - + [simple bit maskBitInfoOnOffOutput2] - + [simple bit maskBitInfoOnOffOutput1] - + [simple bit infoOnOffOutput16] - + [simple bit infoOnOffOutput15] - + [simple bit infoOnOffOutput14] - + [simple bit infoOnOffOutput13] - + [simple bit infoOnOffOutput12] - + [simple bit infoOnOffOutput11] - + [simple bit infoOnOffOutput10] - + [simple bit infoOnOffOutput9] - + [simple bit infoOnOffOutput8] - + [simple bit infoOnOffOutput7] - + [simple bit infoOnOffOutput6] - + [simple bit infoOnOffOutput5] - + [simple bit infoOnOffOutput4] - + [simple bit infoOnOffOutput3] - + [simple bit infoOnOffOutput2] - + [simple bit infoOnOffOutput1] ] @@ -4055,53 +4055,53 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple bit activationStateOfChannel1] - + [simple bit activationStateOfChannel2] - + [simple bit activationStateOfChannel3] - + [simple bit activationStateOfChannel4] - + [simple bit activationStateOfChannel5] - + [simple bit activationStateOfChannel6] - + [simple bit activationStateOfChannel7] - + [simple bit activationStateOfChannel8] - + [simple bit activationStateOfChannel9] - + [simple bit activationStateOfChannel10] - + [simple bit activationStateOfChannel11] - + [simple bit activationStateOfChannel12] - + [simple bit activationStateOfChannel13] - + [simple bit activationStateOfChannel14] - + [simple bit activationStateOfChannel15] - + [simple bit activationStateOfChannel16] - + [simple bit activationStateOfChannel17] - + [simple bit activationStateOfChannel18] - + [simple bit activationStateOfChannel19] - + [simple bit activationStateOfChannel20] - + [simple bit activationStateOfChannel21] - + [simple bit activationStateOfChannel22] - + [simple bit activationStateOfChannel23] - + [simple bit activationStateOfChannel24] ] @@ -4110,9 +4110,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 delayTimeMin] - + [simple uint 8 hvacMode] ] @@ -4121,9 +4121,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 delayTimeMin] - + [simple uint 8 dhwMode] ] @@ -4132,9 +4132,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 delayTimeMin] - + [simple uint 8 occupancyMode] ] @@ -4143,9 +4143,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 delayTimeMin] - + [simple uint 8 buildingMode] ] @@ -4154,23 +4154,23 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [simple bit validactualvalue] - + [simple bit locked] - + [simple bit forced] - + [simple bit nightmodeactive] - + [simple bit staircaselightingFunction] - + [simple bit dimming] - + [simple bit localoverride] - + [simple bit failure] - + [simple uint 8 actualvalue] ] @@ -4179,11 +4179,11 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [simple uint 5 magicNumber] - + [simple uint 5 versionNumber] - + [simple uint 6 revisionNumber] ] @@ -4192,31 +4192,31 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple uint 8 logNumber] - + [simple uint 8 alarmPriority] - + [simple uint 8 applicationArea] - + [simple uint 8 errorClass] - + [reserved uint 4 '0x00'] - + [simple bit errorcodeSup] - + [simple bit alarmtextSup] - + [simple bit timestampSup] - + [simple bit ackSup] - + [reserved uint 5 '0x00'] - + [simple bit locked] - + [simple bit alarmunack] - + [simple bit inalarm] ] @@ -4225,12 +4225,12 @@ // Field Size 48 [reserved uint 8 '0x00'] - - [simple float 16 tempsetpcomf] - - [simple float 16 tempsetpstdby] - - [simple float 16 tempsetpeco] + + [simple float 16 tempsetpcomf encoding='"KNXFloat"'] + + [simple float 16 tempsetpstdby encoding='"KNXFloat"'] + + [simple float 16 tempsetpeco encoding='"KNXFloat"'] ] @@ -4238,12 +4238,12 @@ // Field Size 48 [reserved uint 8 '0x00'] - - [simple float 16 tempsetpshiftcomf] - - [simple float 16 tempsetpshiftstdby] - - [simple float 16 tempsetpshifteco] + + [simple float 16 tempsetpshiftcomf encoding='"KNXFloat"'] + + [simple float 16 tempsetpshiftstdby encoding='"KNXFloat"'] + + [simple float 16 tempsetpshifteco encoding='"KNXFloat"'] ] @@ -4251,9 +4251,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 timePeriod] - + [simple uint 8 percent] ] @@ -4262,9 +4262,9 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 16 timePeriod] - + [simple uint 8 percent] ] @@ -4273,21 +4273,21 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple int 32 countval] - + [simple uint 8 valinffield] - + [reserved uint 3 '0x00'] - + [simple bit alarmunack] - + [simple bit inalarm] - + [simple bit overridden] - + [simple bit fault] - + [simple bit outofservice] ] @@ -4296,13 +4296,13 @@ // Field Size 64 [reserved uint 8 '0x00'] - + [simple uint 16 manufactid] - + [simple uint 32 identnumber] - + [simple uint 8 version] - + [simple uint 8 medium] ] @@ -4311,11 +4311,11 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 8 r] - + [simple uint 8 g] - + [simple uint 8 b] ] @@ -4330,15 +4330,15 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple int 32 activeelectricalenergy] - + [simple uint 8 tariff] - + [reserved uint 6 '0x00'] - + [simple bit electricalengergyvalidity] - + [simple bit tariffvalidity] ] @@ -4347,11 +4347,11 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit deactivationOfPriority] - + [simple uint 3 priorityLevel] - + [simple uint 4 modeLevel] ] @@ -4360,19 +4360,19 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit convertorError] - + [simple bit ballastFailure] - + [simple bit lampFailure] - + [simple bit readOrResponse] - + [simple bit addressIndicator] - + [simple uint 6 daliDeviceAddressOrDaliGroupAddress] ] @@ -4381,11 +4381,11 @@ // Field Size 8 [reserved uint 8 '0x00'] - + [simple bit ballastFailure] - + [simple bit lampFailure] - + [simple uint 6 deviceAddress] ] @@ -4394,15 +4394,15 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [simple uint 8 heightPosition] - + [simple uint 8 slatsPosition] - + [reserved uint 6 '0x00'] - + [simple bit validitySlatsPosition] - + [simple bit validityHeightPosition] ] @@ -4411,37 +4411,37 @@ // Field Size 32 [reserved uint 8 '0x00'] - + [simple uint 8 heightPosition] - + [simple uint 8 slatsPosition] - + [simple bit upperEndPosReached] - + [simple bit lowerEndPosReached] - + [simple bit lowerPredefPosReachedTypHeight100PercentSlatsAngle100Percent] - + [simple bit targetPosDrive] - + [simple bit restrictionOfTargetHeightPosPosCanNotBeReached] - + [simple bit restrictionOfSlatsHeightPosPosCanNotBeReached] - + [simple bit atLeastOneOfTheInputsWindRainFrostAlarmIsInAlarm] - + [simple bit upDownPositionIsForcedByMoveupdownforcedInput] - + [simple bit movementIsLockedEGByDevicelockedInput] - + [simple bit actuatorSetvalueIsLocallyOverriddenEGViaALocalUserInterface] - + [simple bit generalFailureOfTheActuatorOrTheDrive] - + [reserved uint 3 '0x00'] - + [simple bit validityHeightPos] - + [simple bit validitySlatsPos] ] @@ -4450,17 +4450,17 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple uint 16 xAxis] - + [simple uint 16 yAxis] - + [simple uint 8 brightness] - + [reserved uint 6 '0x00'] - + [simple bit validityXy] - + [simple bit validityBrightness] ] @@ -4469,21 +4469,21 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [simple uint 4 converterModeAccordingToTheDaliConverterStateMachine] - + [reserved uint 2 '0x00'] - + [simple bit hardwiredSwitchIsActive] - + [simple bit hardwiredInhibitIsActive] - + [simple uint 2 functionTestPending] - + [simple uint 2 durationTestPending] - + [simple uint 2 partialDurationTestPending] - + [simple uint 2 converterFailure] ] @@ -4492,25 +4492,25 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple uint 4 ltrf] - + [simple uint 4 ltrd] - + [simple uint 4 ltrp] - + [reserved uint 4 '0x00'] - + [simple uint 2 sf] - + [simple uint 2 sd] - + [simple uint 2 sp] - + [reserved uint 2 '0x00'] - + [simple uint 16 ldtr] - + [simple uint 8 lpdtr] ] @@ -4519,15 +4519,15 @@ // Field Size 16 [reserved uint 8 '0x00'] - + [reserved uint 5 '0x00'] - + [simple bit batteryFailure] - + [simple bit batteryDurationFailure] - + [simple bit batteryFullyCharged] - + [simple uint 8 batteryChargeLevel] ] @@ -4536,19 +4536,19 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple uint 16 ms] - + [simple uint 16 temperatureK] - + [simple uint 8 percent] - + [reserved uint 5 '0x00'] - + [simple bit validityOfTheTimePeriod] - + [simple bit validityOfTheAbsoluteColourTemperature] - + [simple bit validityOfTheAbsoluteBrightness] ] @@ -4557,23 +4557,23 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [reserved uint 4 '0x00'] - + [simple bit cct] - + [simple uint 3 stepCodeColourTemperature] - + [reserved uint 4 '0x00'] - + [simple bit cb] - + [simple uint 3 stepCodeBrightness] - + [reserved uint 6 '0x00'] - + [simple bit cctAndStepCodeColourValidity] - + [simple bit cbAndStepCodeBrightnessValidity] ] @@ -4582,25 +4582,25 @@ // Field Size 48 [reserved uint 8 '0x00'] - + [simple uint 8 colourLevelRed] - + [simple uint 8 colourLevelGreen] - + [simple uint 8 colourLevelBlue] - + [simple uint 8 colourLevelWhite] - + [reserved uint 8 '0x00'] - + [reserved uint 4 '0x00'] - + [simple bit mr] - + [simple bit mg] - + [simple bit mb] - + [simple bit mw] ] @@ -4609,39 +4609,39 @@ // Field Size 40 [reserved uint 8 '0x00'] - + [reserved uint 4 '0x00'] - + [simple bit maskcw] - + [simple bit maskcb] - + [simple bit maskcg] - + [simple bit maskcr] - + [reserved uint 4 '0x00'] - + [simple bit cw] - + [simple uint 3 stepCodeColourWhite] - + [reserved uint 4 '0x00'] - + [simple bit cb] - + [simple uint 3 stepCodeColourBlue] - + [reserved uint 4 '0x00'] - + [simple bit cg] - + [simple uint 3 stepCodeColourGreen] - + [reserved uint 4 '0x00'] - + [simple bit cr] - + [simple uint 3 stepCodeColourRed] ] @@ -4650,23 +4650,23 @@ // Field Size 24 [reserved uint 8 '0x00'] - + [reserved uint 4 '0x00'] - + [simple bit cb] - + [simple uint 3 stepCodeColourBlue] - + [reserved uint 4 '0x00'] - + [simple bit cg] - + [simple uint 3 stepCodeColourGreen] - + [reserved uint 4 '0x00'] - + [simple bit cr] - + [simple uint 3 stepCodeColourRed] ] @@ -4675,9 +4675,9 @@ // Field Size 64 [reserved uint 8 '0x00'] - + [simple float 32 longitude] - + [simple float 32 latitude] ] @@ -4686,14 +4686,14 @@ // Field Size 64 [reserved uint 8 '0x00'] - - [simple float 16 roomTemperatureSetpointComfort] - - [simple float 16 roomTemperatureSetpointStandby] - - [simple float 16 roomTemperatureSetpointEconomy] - - [simple float 16 roomTemperatureSetpointBuildingProtection] + + [simple float 16 roomTemperatureSetpointComfort encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointStandby encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointEconomy encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointBuildingProtection encoding='"KNXFloat"'] ] @@ -4701,14 +4701,14 @@ // Field Size 64 [reserved uint 8 '0x00'] - - [simple float 16 roomTemperatureSetpointShiftComfort] - - [simple float 16 roomTemperatureSetpointShiftStandby] - - [simple float 16 roomTemperatureSetpointShiftEconomy] - - [simple float 16 roomTemperatureSetpointShiftBuildingProtection] + + [simple float 16 roomTemperatureSetpointShiftComfort encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointShiftStandby encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointShiftEconomy encoding='"KNXFloat"'] + + [simple float 16 roomTemperatureSetpointShiftBuildingProtection encoding='"KNXFloat"'] ] diff --git a/protocols/knxnetip/src/main/xslt/knx-types.xsl b/protocols/knxnetip/src/main/xslt/knx-types.xsl index 5782afc0c50..233281a99b6 100644 --- a/protocols/knxnetip/src/main/xslt/knx-types.xsl +++ b/protocols/knxnetip/src/main/xslt/knx-types.xsl @@ -479,8 +479,13 @@ - - [ ] + + + + + + + [ ] @@ -517,7 +522,7 @@ [reserved uint 8 '0x00'] - [simple float 16 value] + [simple float 16 value encoding='"KNXFloat"'] [simple float 32 value] @@ -580,7 +585,18 @@ uint - + + + + + + + encoding='"KNXFloat"' + + + + +