This commit is contained in:
Thomas Peterson 2026-02-10 17:15:53 +01:00
parent f9aea2f8a0
commit 85b769d033
11 changed files with 263 additions and 33 deletions

View File

@ -39,6 +39,9 @@
<Enumeration Text="10" Value="10" Id="%ENID%" /> <Enumeration Text="10" Value="10" Id="%ENID%" />
</TypeRestriction> </TypeRestriction>
</ParameterType> </ParameterType>
<ParameterType Id="%AID%_PT-ArcRange" Name="ArcRange">
<TypeNumber SizeInBit="16" Type="signedInt" minInclusive="-1000" maxInclusive="10000" />
</ParameterType>
<ParameterType Id="%AID%_PT-Checkbox" Name="Checkbox"> <ParameterType Id="%AID%_PT-Checkbox" Name="Checkbox">
<TypeRestriction Base="Value" SizeInBit="1"> <TypeRestriction Base="Value" SizeInBit="1">
<Enumeration Text="Deaktiviert" Value="0" Id="%ENID%" /> <Enumeration Text="Deaktiviert" Value="0" Id="%ENID%" />

View File

@ -7,7 +7,7 @@
<ApplicationPrograms> <ApplicationPrograms>
<ApplicationProgram Id="%AID%" ApplicationNumber="621"> <ApplicationProgram Id="%AID%" ApplicationNumber="621">
<op:part href="Function.parts.xml" name="FN" instances="10"> <op:part href="Function.parts.xml" name="FN" instances="10">
<op:param name="%ParamOffset%" value="62" increment="20" /> <op:param name="%ParamOffset%" value="102" increment="20" />
<op:param name="%Pl%" value="0" asLetter="true" increment="1" /> <op:param name="%Pl%" value="0" asLetter="true" increment="1" />
<op:param name="%Pn%" value="50" increment="2" digits="3" /> <op:param name="%Pn%" value="50" increment="2" digits="3" />
<op:param name="%PPP%" value="100" increment="100" digits="3" /> <op:param name="%PPP%" value="100" increment="100" digits="3" />
@ -79,6 +79,81 @@
Text="Szene" Value="0" /> Text="Szene" Value="0" />
</Union> </Union>
<!-- Arc Min/Max Parameter für analoge KOs (40 Bytes Union) -->
<Union SizeInBit="320">
<Memory CodeSegment="%AID%_RS-04-00000" Offset="62" BitOffset="0" />
<!-- Temperatur -->
<Parameter Id="%AID%_UP-%TT%%CC%030" Name="p%C%ArcMinTemp"
ParameterType="%AID%_PT-ArcRange" Offset="0" BitOffset="0"
Text=" Arc Min" Value="-20" />
<Parameter Id="%AID%_UP-%TT%%CC%031" Name="p%C%ArcMaxTemp"
ParameterType="%AID%_PT-ArcRange" Offset="2" BitOffset="0"
Text=" Arc Max" Value="50" />
<!-- Luftfeuchtigkeit -->
<Parameter Id="%AID%_UP-%TT%%CC%032" Name="p%C%ArcMinHum"
ParameterType="%AID%_PT-ArcRange" Offset="4" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%033" Name="p%C%ArcMaxHum"
ParameterType="%AID%_PT-ArcRange" Offset="6" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- Solltemperatur -->
<Parameter Id="%AID%_UP-%TT%%CC%034" Name="p%C%ArcMinSetTemp"
ParameterType="%AID%_PT-ArcRange" Offset="8" BitOffset="0"
Text=" Arc Min" Value="15" />
<Parameter Id="%AID%_UP-%TT%%CC%035" Name="p%C%ArcMaxSetTemp"
ParameterType="%AID%_PT-ArcRange" Offset="10" BitOffset="0"
Text=" Arc Max" Value="30" />
<!-- Heizungsventil -->
<Parameter Id="%AID%_UP-%TT%%CC%036" Name="p%C%ArcMinValve"
ParameterType="%AID%_PT-ArcRange" Offset="12" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%037" Name="p%C%ArcMaxValve"
ParameterType="%AID%_PT-ArcRange" Offset="14" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- Dimmen 1 -->
<Parameter Id="%AID%_UP-%TT%%CC%038" Name="p%C%ArcMinDim1"
ParameterType="%AID%_PT-ArcRange" Offset="16" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%039" Name="p%C%ArcMaxDim1"
ParameterType="%AID%_PT-ArcRange" Offset="18" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- Dimmen 2 -->
<Parameter Id="%AID%_UP-%TT%%CC%040" Name="p%C%ArcMinDim2"
ParameterType="%AID%_PT-ArcRange" Offset="20" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%041" Name="p%C%ArcMaxDim2"
ParameterType="%AID%_PT-ArcRange" Offset="22" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- Jalousie 1 -->
<Parameter Id="%AID%_UP-%TT%%CC%042" Name="p%C%ArcMinJal1"
ParameterType="%AID%_PT-ArcRange" Offset="24" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%043" Name="p%C%ArcMaxJal1"
ParameterType="%AID%_PT-ArcRange" Offset="26" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- Jalousie 2 -->
<Parameter Id="%AID%_UP-%TT%%CC%044" Name="p%C%ArcMinJal2"
ParameterType="%AID%_PT-ArcRange" Offset="28" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%045" Name="p%C%ArcMaxJal2"
ParameterType="%AID%_PT-ArcRange" Offset="30" BitOffset="0"
Text=" Arc Max" Value="100" />
<!-- CO2 -->
<Parameter Id="%AID%_UP-%TT%%CC%046" Name="p%C%ArcMinCO2"
ParameterType="%AID%_PT-ArcRange" Offset="32" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%047" Name="p%C%ArcMaxCO2"
ParameterType="%AID%_PT-ArcRange" Offset="34" BitOffset="0"
Text=" Arc Max" Value="3000" />
<!-- Helligkeit -->
<Parameter Id="%AID%_UP-%TT%%CC%048" Name="p%C%ArcMinLux"
ParameterType="%AID%_PT-ArcRange" Offset="36" BitOffset="0"
Text=" Arc Min" Value="0" />
<Parameter Id="%AID%_UP-%TT%%CC%049" Name="p%C%ArcMaxLux"
ParameterType="%AID%_PT-ArcRange" Offset="38" BitOffset="0"
Text=" Arc Max" Value="1000" />
</Union>
<Parameter Id="%AID%_P-%TT%%CC%005" Name="p%C%FunctionCount" Offset="0" <Parameter Id="%AID%_P-%TT%%CC%005" Name="p%C%FunctionCount" Offset="0"
BitOffset="8" ParameterType="%AID%_PT-FunctionCount" BitOffset="8" ParameterType="%AID%_PT-FunctionCount"
Text="Anzahl der Funktionen" Value="0" /> Text="Anzahl der Funktionen" Value="0" />
@ -125,6 +200,48 @@
<ParameterRef Id="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601" <ParameterRef Id="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601"
RefId="%AID%_UP-%TT%%CC%026" /> RefId="%AID%_UP-%TT%%CC%026" />
<!-- Arc Min/Max ParameterRefs -->
<ParameterRef Id="%AID%_UP-%TT%%CC%030_R-%TT%%CC%03001"
RefId="%AID%_UP-%TT%%CC%030" />
<ParameterRef Id="%AID%_UP-%TT%%CC%031_R-%TT%%CC%03101"
RefId="%AID%_UP-%TT%%CC%031" />
<ParameterRef Id="%AID%_UP-%TT%%CC%032_R-%TT%%CC%03201"
RefId="%AID%_UP-%TT%%CC%032" />
<ParameterRef Id="%AID%_UP-%TT%%CC%033_R-%TT%%CC%03301"
RefId="%AID%_UP-%TT%%CC%033" />
<ParameterRef Id="%AID%_UP-%TT%%CC%034_R-%TT%%CC%03401"
RefId="%AID%_UP-%TT%%CC%034" />
<ParameterRef Id="%AID%_UP-%TT%%CC%035_R-%TT%%CC%03501"
RefId="%AID%_UP-%TT%%CC%035" />
<ParameterRef Id="%AID%_UP-%TT%%CC%036_R-%TT%%CC%03601"
RefId="%AID%_UP-%TT%%CC%036" />
<ParameterRef Id="%AID%_UP-%TT%%CC%037_R-%TT%%CC%03701"
RefId="%AID%_UP-%TT%%CC%037" />
<ParameterRef Id="%AID%_UP-%TT%%CC%038_R-%TT%%CC%03801"
RefId="%AID%_UP-%TT%%CC%038" />
<ParameterRef Id="%AID%_UP-%TT%%CC%039_R-%TT%%CC%03901"
RefId="%AID%_UP-%TT%%CC%039" />
<ParameterRef Id="%AID%_UP-%TT%%CC%040_R-%TT%%CC%04001"
RefId="%AID%_UP-%TT%%CC%040" />
<ParameterRef Id="%AID%_UP-%TT%%CC%041_R-%TT%%CC%04101"
RefId="%AID%_UP-%TT%%CC%041" />
<ParameterRef Id="%AID%_UP-%TT%%CC%042_R-%TT%%CC%04201"
RefId="%AID%_UP-%TT%%CC%042" />
<ParameterRef Id="%AID%_UP-%TT%%CC%043_R-%TT%%CC%04301"
RefId="%AID%_UP-%TT%%CC%043" />
<ParameterRef Id="%AID%_UP-%TT%%CC%044_R-%TT%%CC%04401"
RefId="%AID%_UP-%TT%%CC%044" />
<ParameterRef Id="%AID%_UP-%TT%%CC%045_R-%TT%%CC%04501"
RefId="%AID%_UP-%TT%%CC%045" />
<ParameterRef Id="%AID%_UP-%TT%%CC%046_R-%TT%%CC%04601"
RefId="%AID%_UP-%TT%%CC%046" />
<ParameterRef Id="%AID%_UP-%TT%%CC%047_R-%TT%%CC%04701"
RefId="%AID%_UP-%TT%%CC%047" />
<ParameterRef Id="%AID%_UP-%TT%%CC%048_R-%TT%%CC%04801"
RefId="%AID%_UP-%TT%%CC%048" />
<ParameterRef Id="%AID%_UP-%TT%%CC%049_R-%TT%%CC%04901"
RefId="%AID%_UP-%TT%%CC%049" />
<ParameterRef Id="%AID%_UP-%TT%%CC%005_R-%TT%%CC%00501" <ParameterRef Id="%AID%_UP-%TT%%CC%005_R-%TT%%CC%00501"
RefId="%AID%_P-%TT%%CC%005" /> RefId="%AID%_P-%TT%%CC%005" />
@ -336,8 +453,78 @@
ReadFlag="Enabled" WriteFlag="Enabled" CommunicationFlag="Enabled" ReadFlag="Enabled" WriteFlag="Enabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Enabled"
ReadOnInitFlag="Disabled" /> ReadOnInitFlag="Disabled" />
<!-- 29: Temperatur Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%079" Name="KoS%CC%029"
Text="Temperatur Ausgang" Number="%CCC%29"
FunctionText="Bereich %CC%, Temperatur Ausgang" ObjectSize="2 Bytes"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 30: Luftfeuchtigkeit Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%080" Name="KoS%CC%030"
Text="Luftfeuchtigkeit Ausgang" Number="%CCC%30"
FunctionText="Bereich %CC%, Luftfeuchtigkeit Ausgang" ObjectSize="2 Bytes"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 31: Heizungsventil Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%081" Name="KoS%CC%031"
Text="Heizungsventil Ausgang" Number="%CCC%31"
FunctionText="Bereich %CC%, Heizungsventil Ausgang" ObjectSize="1 Byte"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 32: CO2 Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%082" Name="KoS%CC%032"
Text="CO2 Ausgang" Number="%CCC%32"
FunctionText="Bereich %CC%, CO2 Ausgang" ObjectSize="2 Bytes"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 33: Helligkeit Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%083" Name="KoS%CC%033"
Text="Helligkeit Ausgang" Number="%CCC%33"
FunctionText="Bereich %CC%, Helligkeit Ausgang" ObjectSize="2 Bytes"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 34: Solltemperatur Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%084" Name="KoS%CC%034"
Text="Solltemperatur Ausgang" Number="%CCC%34"
FunctionText="Bereich %CC%, Solltemperatur Ausgang" ObjectSize="2 Bytes"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 35: Dimmen 1 Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%085" Name="KoS%CC%035"
Text="Dimmen 1 Ausgang" Number="%CCC%35"
FunctionText="Bereich %CC%, Dimmen 1 Ausgang" ObjectSize="1 Byte"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 36: Dimmen 2 Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%086" Name="KoS%CC%036"
Text="Dimmen 2 Ausgang" Number="%CCC%36"
FunctionText="Bereich %CC%, Dimmen 2 Ausgang" ObjectSize="1 Byte"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 37: Jalousie 1 Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%087" Name="KoS%CC%037"
Text="Jalousie 1 Ausgang" Number="%CCC%37"
FunctionText="Bereich %CC%, Jalousie 1 Ausgang" ObjectSize="1 Byte"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- 38: Jalousie 2 Ausgang -->
<ComObject Id="%AID%_O-%TT%%CC%088" Name="KoS%CC%038"
Text="Jalousie 2 Ausgang" Number="%CCC%38"
FunctionText="Bereich %CC%, Jalousie 2 Ausgang" ObjectSize="1 Byte"
ReadFlag="Disabled" WriteFlag="Disabled" CommunicationFlag="Enabled"
TransmitFlag="Enabled" UpdateFlag="Disabled"
ReadOnInitFlag="Disabled" />
<!-- Benutzerdefinierte Funktions-KOs (ab Index 30) --> <!-- Benutzerdefinierte Funktions-KOs (ab Index 50) -->
<op:usePart name="FN" xpath="//ComObjectTable/*" /> <op:usePart name="FN" xpath="//ComObjectTable/*" />
</ComObjectTable> </ComObjectTable>
<ComObjectRefs> <ComObjectRefs>
@ -400,6 +587,27 @@
RefId="%AID%_O-%TT%%CC%077" DatapointType="DPST-9-4" /> RefId="%AID%_O-%TT%%CC%077" DatapointType="DPST-9-4" />
<ComObjectRef Id="%AID%_O-%TT%%CC%078_R-%TT%%CC%07801" <ComObjectRef Id="%AID%_O-%TT%%CC%078_R-%TT%%CC%07801"
RefId="%AID%_O-%TT%%CC%078" DatapointType="DPST-17-1" /> RefId="%AID%_O-%TT%%CC%078" DatapointType="DPST-17-1" />
<!-- Ausgangs-KO Refs -->
<ComObjectRef Id="%AID%_O-%TT%%CC%079_R-%TT%%CC%07901"
RefId="%AID%_O-%TT%%CC%079" DatapointType="DPST-9-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%080_R-%TT%%CC%08001"
RefId="%AID%_O-%TT%%CC%080" DatapointType="DPST-9-7" />
<ComObjectRef Id="%AID%_O-%TT%%CC%081_R-%TT%%CC%08101"
RefId="%AID%_O-%TT%%CC%081" DatapointType="DPST-5-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%082_R-%TT%%CC%08201"
RefId="%AID%_O-%TT%%CC%082" DatapointType="DPST-9-8" />
<ComObjectRef Id="%AID%_O-%TT%%CC%083_R-%TT%%CC%08301"
RefId="%AID%_O-%TT%%CC%083" DatapointType="DPST-9-4" />
<ComObjectRef Id="%AID%_O-%TT%%CC%084_R-%TT%%CC%08401"
RefId="%AID%_O-%TT%%CC%084" DatapointType="DPST-9-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%085_R-%TT%%CC%08501"
RefId="%AID%_O-%TT%%CC%085" DatapointType="DPST-5-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%086_R-%TT%%CC%08601"
RefId="%AID%_O-%TT%%CC%086" DatapointType="DPST-5-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%087_R-%TT%%CC%08701"
RefId="%AID%_O-%TT%%CC%087" DatapointType="DPST-5-1" />
<ComObjectRef Id="%AID%_O-%TT%%CC%088_R-%TT%%CC%08801"
RefId="%AID%_O-%TT%%CC%088" DatapointType="DPST-5-1" />
<!-- Benutzerdefinierte Funktions-KO Refs --> <!-- Benutzerdefinierte Funktions-KO Refs -->
<op:usePart name="FN" xpath="//ComObjectRefs/*" /> <op:usePart name="FN" xpath="//ComObjectRefs/*" />
@ -462,115 +670,146 @@
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601" <ParameterRefRef RefId="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601"
IndentLevel="1" /> IndentLevel="1" />
<!-- Bedingte KO-Anzeige per Checkbox: Temperatur --> <!-- Bedingte KO-Anzeige + Arc-Parameter per Checkbox -->
<!-- Temperatur (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%010_R-%TT%%CC%01001"> <choose ParamRefId="%AID%_UP-%TT%%CC%010_R-%TT%%CC%01001">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%030_R-%TT%%CC%03001" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%031_R-%TT%%CC%03101" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%050_R-%TT%%CC%05001" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%050_R-%TT%%CC%05001" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%079_R-%TT%%CC%07901" />
</when> </when>
</choose> </choose>
<!-- Luftfeuchtigkeit --> <!-- Luftfeuchtigkeit (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%011_R-%TT%%CC%01101"> <choose ParamRefId="%AID%_UP-%TT%%CC%011_R-%TT%%CC%01101">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%032_R-%TT%%CC%03201" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%033_R-%TT%%CC%03301" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%051_R-%TT%%CC%05101" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%051_R-%TT%%CC%05101" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%080_R-%TT%%CC%08001" />
</when> </when>
</choose> </choose>
<!-- Präsenz --> <!-- Präsenz (kein Arc) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%012_R-%TT%%CC%01201"> <choose ParamRefId="%AID%_UP-%TT%%CC%012_R-%TT%%CC%01201">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%052_R-%TT%%CC%05201" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%052_R-%TT%%CC%05201" />
</when> </when>
</choose> </choose>
<!-- Fensterkontakt --> <!-- Fensterkontakt (kein Arc) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%013_R-%TT%%CC%01301"> <choose ParamRefId="%AID%_UP-%TT%%CC%013_R-%TT%%CC%01301">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%053_R-%TT%%CC%05301" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%053_R-%TT%%CC%05301" />
</when> </when>
</choose> </choose>
<!-- Solltemperatur --> <!-- Solltemperatur (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%014_R-%TT%%CC%01401"> <choose ParamRefId="%AID%_UP-%TT%%CC%014_R-%TT%%CC%01401">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%034_R-%TT%%CC%03401" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%035_R-%TT%%CC%03501" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%054_R-%TT%%CC%05401" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%054_R-%TT%%CC%05401" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%084_R-%TT%%CC%08401" />
</when> </when>
</choose> </choose>
<!-- Heizungsventil --> <!-- Heizungsventil (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%015_R-%TT%%CC%01501"> <choose ParamRefId="%AID%_UP-%TT%%CC%015_R-%TT%%CC%01501">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%036_R-%TT%%CC%03601" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%037_R-%TT%%CC%03701" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%055_R-%TT%%CC%05501" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%055_R-%TT%%CC%05501" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%081_R-%TT%%CC%08101" />
</when> </when>
</choose> </choose>
<!-- Steckdose 1 (2 KOs) --> <!-- Steckdose 1 (kein Arc, 2 KOs) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%016_R-%TT%%CC%01601"> <choose ParamRefId="%AID%_UP-%TT%%CC%016_R-%TT%%CC%01601">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%056_R-%TT%%CC%05601" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%056_R-%TT%%CC%05601" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%057_R-%TT%%CC%05701" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%057_R-%TT%%CC%05701" />
</when> </when>
</choose> </choose>
<!-- Steckdose 2 (2 KOs) --> <!-- Steckdose 2 (kein Arc, 2 KOs) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%017_R-%TT%%CC%01701"> <choose ParamRefId="%AID%_UP-%TT%%CC%017_R-%TT%%CC%01701">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%058_R-%TT%%CC%05801" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%058_R-%TT%%CC%05801" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%059_R-%TT%%CC%05901" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%059_R-%TT%%CC%05901" />
</when> </when>
</choose> </choose>
<!-- Licht 1 (2 KOs) --> <!-- Licht 1 (kein Arc, 2 KOs) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%018_R-%TT%%CC%01801"> <choose ParamRefId="%AID%_UP-%TT%%CC%018_R-%TT%%CC%01801">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%060_R-%TT%%CC%06001" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%060_R-%TT%%CC%06001" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%061_R-%TT%%CC%06101" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%061_R-%TT%%CC%06101" />
</when> </when>
</choose> </choose>
<!-- Licht 2 (2 KOs) --> <!-- Licht 2 (kein Arc, 2 KOs) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%019_R-%TT%%CC%01901"> <choose ParamRefId="%AID%_UP-%TT%%CC%019_R-%TT%%CC%01901">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%062_R-%TT%%CC%06201" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%062_R-%TT%%CC%06201" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%063_R-%TT%%CC%06301" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%063_R-%TT%%CC%06301" />
</when> </when>
</choose> </choose>
<!-- Dimmen 1 (3 KOs) --> <!-- Dimmen 1 (Arc Min/Max, 3 KOs + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%020_R-%TT%%CC%02001"> <choose ParamRefId="%AID%_UP-%TT%%CC%020_R-%TT%%CC%02001">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%038_R-%TT%%CC%03801" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%039_R-%TT%%CC%03901" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%064_R-%TT%%CC%06401" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%064_R-%TT%%CC%06401" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%065_R-%TT%%CC%06501" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%065_R-%TT%%CC%06501" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%066_R-%TT%%CC%06601" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%066_R-%TT%%CC%06601" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%085_R-%TT%%CC%08501" />
</when> </when>
</choose> </choose>
<!-- Dimmen 2 (3 KOs) --> <!-- Dimmen 2 (Arc Min/Max, 3 KOs + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%021_R-%TT%%CC%02101"> <choose ParamRefId="%AID%_UP-%TT%%CC%021_R-%TT%%CC%02101">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%040_R-%TT%%CC%04001" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%041_R-%TT%%CC%04101" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%067_R-%TT%%CC%06701" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%067_R-%TT%%CC%06701" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%068_R-%TT%%CC%06801" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%068_R-%TT%%CC%06801" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%069_R-%TT%%CC%06901" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%069_R-%TT%%CC%06901" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%086_R-%TT%%CC%08601" />
</when> </when>
</choose> </choose>
<!-- Jalousie 1 (3 KOs) --> <!-- Jalousie 1 (Arc Min/Max, 3 KOs + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%022_R-%TT%%CC%02201"> <choose ParamRefId="%AID%_UP-%TT%%CC%022_R-%TT%%CC%02201">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%042_R-%TT%%CC%04201" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%043_R-%TT%%CC%04301" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%070_R-%TT%%CC%07001" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%070_R-%TT%%CC%07001" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%071_R-%TT%%CC%07101" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%071_R-%TT%%CC%07101" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%072_R-%TT%%CC%07201" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%072_R-%TT%%CC%07201" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%087_R-%TT%%CC%08701" />
</when> </when>
</choose> </choose>
<!-- Jalousie 2 (3 KOs) --> <!-- Jalousie 2 (Arc Min/Max, 3 KOs + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%023_R-%TT%%CC%02301"> <choose ParamRefId="%AID%_UP-%TT%%CC%023_R-%TT%%CC%02301">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%044_R-%TT%%CC%04401" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%045_R-%TT%%CC%04501" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%073_R-%TT%%CC%07301" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%073_R-%TT%%CC%07301" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%074_R-%TT%%CC%07401" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%074_R-%TT%%CC%07401" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%075_R-%TT%%CC%07501" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%075_R-%TT%%CC%07501" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%088_R-%TT%%CC%08801" />
</when> </when>
</choose> </choose>
<!-- CO2 --> <!-- CO2 (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%024_R-%TT%%CC%02401"> <choose ParamRefId="%AID%_UP-%TT%%CC%024_R-%TT%%CC%02401">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%046_R-%TT%%CC%04601" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%047_R-%TT%%CC%04701" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%076_R-%TT%%CC%07601" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%076_R-%TT%%CC%07601" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%082_R-%TT%%CC%08201" />
</when> </when>
</choose> </choose>
<!-- Helligkeit --> <!-- Helligkeit (Arc Min/Max + Ausgang) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%025_R-%TT%%CC%02501"> <choose ParamRefId="%AID%_UP-%TT%%CC%025_R-%TT%%CC%02501">
<when test="1"> <when test="1">
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%048_R-%TT%%CC%04801" IndentLevel="2" />
<ParameterRefRef RefId="%AID%_UP-%TT%%CC%049_R-%TT%%CC%04901" IndentLevel="2" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%077_R-%TT%%CC%07701" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%077_R-%TT%%CC%07701" />
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%083_R-%TT%%CC%08301" />
</when> </when>
</choose> </choose>
<!-- Szene --> <!-- Szene (kein Arc) -->
<choose ParamRefId="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601"> <choose ParamRefId="%AID%_UP-%TT%%CC%026_R-%TT%%CC%02601">
<when test="1"> <when test="1">
<ComObjectRefRef RefId="%AID%_O-%TT%%CC%078_R-%TT%%CC%07801" /> <ComObjectRefRef RefId="%AID%_O-%TT%%CC%078_R-%TT%%CC%07801" />

View File

@ -3,7 +3,6 @@
#include <algorithm> #include <algorithm>
#include <cmath> #include <cmath>
#include <cstdio> #include <cstdio>
#include <cstdlib>
ArcWidget::ArcWidget(const WidgetConfig& config) ArcWidget::ArcWidget(const WidgetConfig& config)
: Widget(config) : Widget(config)
@ -17,16 +16,6 @@ static int32_t clampToRange(float value, int32_t minValue, int32_t maxValue) {
return static_cast<int32_t>(std::lround(value)); return static_cast<int32_t>(std::lround(value));
} }
int32_t ArcWidget::initialValueFromText() const {
if (config_.text[0] == '\0') return 75;
char* end = nullptr;
long parsed = strtol(config_.text, &end, 10);
if (end == config_.text) return 75;
return static_cast<int32_t>(parsed);
}
lv_obj_t* ArcWidget::create(lv_obj_t* parent) { lv_obj_t* ArcWidget::create(lv_obj_t* parent) {
obj_ = lv_arc_create(parent); obj_ = lv_arc_create(parent);
if (!obj_) return nullptr; if (!obj_) return nullptr;
@ -52,8 +41,8 @@ lv_obj_t* ArcWidget::create(lv_obj_t* parent) {
} }
lv_arc_set_range(obj_, minValue, maxValue); lv_arc_set_range(obj_, minValue, maxValue);
lastValue_ = static_cast<float>(initialValueFromText()); lastValue_ = static_cast<float>(minValue);
lv_arc_set_value(obj_, clampToRange(lastValue_, minValue, maxValue)); lv_arc_set_value(obj_, minValue);
// Create scale as child of arc // Create scale as child of arc
scale_ = lv_scale_create(obj_); scale_ = lv_scale_create(obj_);

View File

@ -13,7 +13,6 @@ public:
void onKnxSwitch(bool value) override; void onKnxSwitch(bool value) override;
private: private:
int32_t initialValueFromText() const;
void updateValueLabel(float value); void updateValueLabel(float value);
static const char* unitSuffix(uint8_t unit); static const char* unitSuffix(uint8_t unit);