Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Block-Types Count (Boolean Inputs) and Aggregation (Sum, Mean, Min, Max, Range) #3

Draft
wants to merge 40 commits into
base: v1dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
22aa336
Fix: Set ComObject Size to Maximum Size of all Ref-Usages
cornelius-koepp Oct 26, 2024
753e1a4
ETS-App: Remove H-Ruler after Channel Type Headline
cornelius-koepp Oct 26, 2024
114cd22
ETS-App: Add Comment-Field (to AND/OR/Prio)
cornelius-koepp Oct 26, 2024
4314687
ETS-App: Cleanup FunctionBlock Definition Blocks Comments
cornelius-koepp Oct 28, 2024
90e6dc9
Fix: Remove Dependency `bblanchon/ArduinoJson`
cornelius-koepp Oct 30, 2024
cca469b
Fix/Cleanup: Unique Block ParamBlock-Name
cornelius-koepp Oct 30, 2024
02f41cb
Fix/Update library.json: Use OpenKNX GitHUB Repo Url
cornelius-koepp Nov 4, 2024
58a4c2e
Cleanup Function Block Creation
cornelius-koepp Oct 27, 2024
b15f524
Set Version to 0.2.0-DEV
cornelius-koepp Nov 4, 2024
e5105fb
Simplify: `valueCompare` will Always Send for NOT initialized
cornelius-koepp Oct 26, 2024
478a3db
Prepare Additional LogicFunctionBlocks
cornelius-koepp Oct 26, 2024
a515fbb
Expicitly Use Type bool
cornelius-koepp Oct 26, 2024
b6222a7
Draft: New Block Type for Count of Bool Value
cornelius-koepp Oct 26, 2024
b3b6e82
ETS-App (Count): Remove H-Ruler after Channel Type Headline
cornelius-koepp Oct 26, 2024
ca50fad
ETS-App (Count): Add Comment-Field
cornelius-koepp Oct 26, 2024
fbd30b0
ETS-App (Count): Cleanup FunctionBlock Definition Blocks Comments
cornelius-koepp Oct 28, 2024
ec13639
Add Missing Headline-Comment for Count
cornelius-koepp Oct 28, 2024
242342f
Draft: New Block Type for Simple Statistic Aggregation (with Subtypes)
cornelius-koepp Oct 28, 2024
2a29f9c
Include Debug Logging
cornelius-koepp Oct 31, 2024
a6b6c99
Rounding Config for Int-Output, Overflow-Handling, UI Improvements on…
cornelius-koepp Oct 31, 2024
d00dba8
Cleanup: DPT-Handling
cornelius-koepp Nov 4, 2024
8c76d81
Cleanup Statistic Calculation - Calc All Values
cornelius-koepp Nov 4, 2024
4cc6259
Fix/Cleanup Value Definition of `%AID%_PT-FCBChannelType`
cornelius-koepp Nov 6, 2024
7e7f686
Add Task for OpenKNX ContextHelp Build
cornelius-koepp Nov 4, 2024
87b56a5
Documentation: Cleanup/Improve Applikationsbeschreibung
cornelius-koepp Nov 4, 2024
6efdef2
Documentation: Include Block-Type Anzahl
cornelius-koepp Nov 4, 2024
fbd1d82
Documentation: Multi-Line-Comment
cornelius-koepp Nov 4, 2024
ad805c0
Documentation: Sendeverhalten - Describe Once Only
cornelius-koepp Nov 5, 2024
14cfc9c
Documentation: Include Block-Type Aggregation
cornelius-koepp Nov 5, 2024
6d615d3
Cleanup ComObject Definitions
cornelius-koepp Nov 5, 2024
078c102
Aggregation Memory Layout Cleanup
cornelius-koepp Nov 5, 2024
ac66349
Documentation: "Kanalauswahl" + Anzahl + Aggregation
cornelius-koepp Nov 5, 2024
9b68392
Draft/WIP: Weighted Aggregation Support for Sum/Avg
cornelius-koepp Nov 5, 2024
500c96d
Cleanup / Refactor / Extract Methods
cornelius-koepp Nov 6, 2024
8d0dad3
Add Block-Types Count + Aggregation to Readme
cornelius-koepp Nov 6, 2024
35ebe26
Fix: Links in Applikationsbeschreibung
cornelius-koepp Nov 6, 2024
a91af10
Cleanup ETS-XML
cornelius-koepp Nov 6, 2024
7b7716e
Fix: Use Channel Label "Range"
cornelius-koepp Nov 6, 2024
186af3a
Fix Doc: Invertiert
cornelius-koepp Nov 14, 2024
0025144
Fix: FunctionText is Required in ComObject
cornelius-koepp Nov 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions library.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
{
"name": "OFM-FunctionBlocks",
"version": "0.1.0",
"dependencies": {
"bblanchon/ArduinoJson": "^7.0.4"
},
"version": "0.2.0-DEV",
"description": "Function Blocks",
"homepage": "https://openknx.de",
"authors": {
Expand All @@ -14,6 +11,6 @@
},
"repository": {
"type": "git",
"url": "https://github.com/mgeramb/OFM-FunctionBlocks"
"url": "https://github.com/OpenKNX/OFM-FunctionBlocks"
}
}
17 changes: 17 additions & 0 deletions src/Baggages/Icons/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Icons with "openknx" in filename were designed individually for this project.

Others were created as custom export from Pictogrammers Material Design Icons Collection:

> Pictogrammers Free License
> --------------------------
>
> Last Updated: February 1st, 2023
>
> This package is released as free, open-source, and GPL friendly by
> the [Pictogrammers](https://pictogrammers.com/). You may use it
> for commercial projects, open-source projects, or anything really.
>
> # Icons: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
> Some of the icons are redistributed under the Apache 2.0 license. All other
> icons are either redistributed under their respective licenses or are
> distributed under the Apache 2.0 license.
Binary file added src/Baggages/Icons/set-merge.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Baggages/Icons/tally-mark-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
96 changes: 96 additions & 0 deletions src/FunctionBlocks.share.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,82 @@
<ParameterType Id="%AID%_PT-FCBNumChannels" Name="FCBNumChannels">
<TypeNumber SizeInBit="8" Type="unsignedInt" minInclusive="0" maxInclusive="%N%" />
</ParameterType>

<ParameterType Id="%AID%_PT-FCBChannelType" Name="FCBChannelType" >
<TypeRestriction Base="Value" SizeInBit="8" >
<Enumeration Text="Deaktiviert" Value="0" Id="%ENID%" />
<Enumeration Text="UND" Value="1" Id="%ENID%" />
<Enumeration Text="ODER" Value="2" Id="%ENID%" />
<Enumeration Text="Prioritätsschalter" Value="3" Id="%ENID%" />
<Enumeration Text="Anzahl" Value="4" Id="%ENID%" />
<Enumeration Text="Statistische Aggregation" Value="5" Id="%ENID%" />
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBNumericDpt" Name="FCBNumericDpt" >
<TypeRestriction Base="Value" SizeInBit="8" >
<!-- align for visibility in ETS -->
<!--
<Enumeration Text="inaktiv" Value="0" Id="%ENID%" />
<Enumeration Text="1.* 1-Bit (0/1)" Value="10" Id="%ENID%" />
<Enumeration Text="2.* 1-Bit gesteuert (Zwangsführung)" Value="20" Id="%ENID%" />
-->
<Enumeration Text="5.* 8-Bit vorzeichenlos" Value="50" Id="%ENID%" />
<Enumeration Text="5.001 Prozent (0..100%)" Value="51" Id="%ENID%" />
<Enumeration Text="6.* 8-Bit vorzeichenbehaftet" Value="61" Id="%ENID%" />
<Enumeration Text="7.* 2-Byte vorzeichenlos" Value="70" Id="%ENID%" />
<Enumeration Text="8.* 2-Byte vorzeichenbehaftet" Value="80" Id="%ENID%" />
<Enumeration Text="9.* 2-Byte Gleitkommawert" Value="90" Id="%ENID%" />
<Enumeration Text="12.* 4-Byte vorzeichenlos" Value="120" Id="%ENID%" />
<Enumeration Text="13.* 4-Byte vorzeichenbehaftet" Value="130" Id="%ENID%" />
<Enumeration Text="14.* 4-Byte Gleitkommawert" Value="140" Id="%ENID%" />
<!--
<Enumeration Text="16.001 Zeichen (ISO 8859-1)" Value="161" Id="%ENID%" />
<Enumeration Text="17.001 Szenen Nummer" Value="171" Id="%ENID%" />
<Enumeration Text="232.600 RGB Wert 3x(0..255)" Value="232" Id="%ENID%" />
-->
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBNumericOutputDpt" Name="FCBNumericOutputDpt" >
<TypeRestriction Base="Value" SizeInBit="8" >
<Enumeration Text="identisch mit Eingängen" Value="255" Id="%ENID%" />
<!-- align for visibility in ETS -->
<!--
<Enumeration Text="1.* 1-Bit (0/1)" Value="10" Id="%ENID%" />
<Enumeration Text="2.* 1-Bit gesteuert (Zwangsführung)" Value="20" Id="%ENID%" />
-->
<Enumeration Text="5.* 8-Bit vorzeichenlos" Value="50" Id="%ENID%" />
<Enumeration Text="5.001 Prozent (0..100%)" Value="51" Id="%ENID%" />
<Enumeration Text="6.* 8-Bit vorzeichenbehaftet" Value="61" Id="%ENID%" />
<Enumeration Text="7.* 2-Byte vorzeichenlos" Value="70" Id="%ENID%" />
<Enumeration Text="8.* 2-Byte vorzeichenbehaftet" Value="80" Id="%ENID%" />
<Enumeration Text="9.* 2-Byte Gleitkommawert" Value="90" Id="%ENID%" />
<Enumeration Text="12.* 4-Byte vorzeichenlos" Value="120" Id="%ENID%" />
<Enumeration Text="13.* 4-Byte vorzeichenbehaftet" Value="130" Id="%ENID%" />
<Enumeration Text="14.* 4-Byte Gleitkommawert" Value="140" Id="%ENID%" />
<!--
<Enumeration Text="16.001 Zeichen (ISO 8859-1)" Value="161" Id="%ENID%" />
<Enumeration Text="17.001 Szenen Nummer" Value="171" Id="%ENID%" />
<Enumeration Text="232.600 RGB Wert 3x(0..255)" Value="232" Id="%ENID%" />
-->
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBOutputRounding" Name="FCBOutputRounding" >
<TypeRestriction Base="Value" SizeInBit="1" >
<Enumeration Id="%ENID%" Value="0" Text="Nachkommastellen verwerfen" />
<Enumeration Id="%ENID%" Value="1" Text="Runden (ab 0,5 aufrunden)" />
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBOutputOverflow" Name="FCBOutputOverflow" >
<TypeRestriction Base="Value" SizeInBit="2" >
<Enumeration Id="%ENID%" Value="0" Text="KO nicht aktualisieren / nicht senden" />
<Enumeration Id="%ENID%" Value="1" Text="Auf Bereichsrand setzen" />
<!--
<Enumeration Id="%ENID%" Value="2" Text="überlauf" />
-->
</TypeRestriction>
</ParameterType>

Expand Down Expand Up @@ -59,6 +129,32 @@
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBNumericInputKoUsage" Name="FCBNumericInputKoUsage" >
<TypeRestriction Base="Value" SizeInBit="2" >
<Enumeration Id="%ENID%" Value="0" Text="Deaktiviert" />
<Enumeration Id="%ENID%" Value="1" Text="Aktiv" />
<!--
<Enumeration Id="%ENID%" Value="2" Text="Invertiert" />
-->
</TypeRestriction>
</ParameterType>

<ParameterType Id="%AID%_PT-FCBSimpleStatAggTyp" Name="FCBSimpleStatAggTyp" >
<TypeRestriction Base="Value" SizeInBit="8" >
<Enumeration Id="%ENID%" Value="0" Text="Summe" />
<Enumeration Id="%ENID%" Value="1" Text="Mittelwert" />
<Enumeration Id="%ENID%" Value="2" Text="Minimum" />
<Enumeration Id="%ENID%" Value="3" Text="Maximum" />
<Enumeration Id="%ENID%" Value="4" Text="Spannbreite (Maximum - Minimum)" />
<!--
<Enumeration Id="%ENID%" Value="5" Text="Median" />
<Enumeration Id="%ENID%" Value="6" Text="Q25" />
<Enumeration Id="%ENID%" Value="7" Text="Q75" />
<Enumeration Id="%ENID%" Value="8" Text="STD" />
-->
</TypeRestriction>
</ParameterType>

</ParameterTypes>
<Parameters>
<!-- Base Settings -->
Expand Down
Loading