From 3926e84126805e0386f3b4a7432f1e0f3023df74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anian=20B=C3=BChler?= <anian.buehler@reutlingen-university.de> Date: Wed, 15 Dec 2021 12:34:30 +0100 Subject: [PATCH] added bitwise operators for char --- .../translator/block/operators/PidBlock.java | 2 +- .../com/ardublock/block/ardublock.properties | 9 ++++ .../com/ardublock/block/ardublock.xml | 53 +++++++++++++++++++ .../ardublock/block/ardublock_de.properties | 8 +++ .../block/ardublock_en_GB.properties | 8 +++ .../ardublock/block/block-mapping.properties | 4 ++ 6 files changed, 83 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ardublock/translator/block/operators/PidBlock.java b/src/main/java/com/ardublock/translator/block/operators/PidBlock.java index 8fce63b..a306296 100644 --- a/src/main/java/com/ardublock/translator/block/operators/PidBlock.java +++ b/src/main/java/com/ardublock/translator/block/operators/PidBlock.java @@ -1,7 +1,6 @@ package com.ardublock.translator.block.operators; import java.util.ResourceBundle; -import java.util.function.ToIntFunction; import com.ardublock.translator.Translator; import com.ardublock.translator.block.TranslatorBlock; @@ -34,6 +33,7 @@ public class PidBlock extends TranslatorBlock boolean derivative = tb_kd != null; boolean limited = (tb_limitL != null) && (tb_limitH != null); + //TODO: TEST CONTROLLER FUNCTIONALITY!!!!!!! //FUNCTION CODE ASSEMBLY String functionCode = "int computePID(int input, int setpoint, long interval, int kp"; diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 27c9c3b..4649738 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -457,6 +457,10 @@ bg.and=and bg.or=or bg.equal_digital=== bg.not_equal_digital=!= +bg.bit_and_poly=& +bg.bit_or_poly=| +bg.bit_xor_poly=^ +bg.bit_not_poly=~ bg.bit_and=& bg.bit_or=| bg.bit_xor=^ @@ -464,6 +468,7 @@ bg.bit_not=~ bg.bit_shift_left=<< bg.bit_shift_right=>> + bg.greater.description=True if the first number is greater the second number bg.less.description=True if the first number is less then the second number bg.equal.description=True if the first number equals to the second number @@ -477,6 +482,10 @@ bg.or.description=True if one or both of the two conditions are true. bg.not.description=The opposite of bg.equal_poly.description=True if first character is equal to the second character bg.not_equal_poly.description=True if first character is not equal to the second character +bg.bit_and_poly.description=bitwise AND +bg.bit_or_poly.description=bitwise OR +bg.bit_xor_poly.description=bitwise XOR +bg.bit_not_poly.description=bitwise NOT bg.bit_and.description=bitwise AND bg.bit_or.description=bitwise OR bg.bit_xor.description=bitwise XOR diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 6be7bd5..339c3d5 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -1179,6 +1179,54 @@ <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> </BlockConnectors> </BlockGenus> + <BlockGenus name="bit_and_poly" kind="function" color="255 20 147" initlabel="bg.bit_and_poly"> + <description> + <text></text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string-list" connector-kind="plug" position-type="mirror" > + <DefaultArg genus-name="dummy" label="" /> + </BlockConnector> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + </BlockConnectors> + </BlockGenus> + <BlockGenus name="bit_or_poly" kind="function" color="255 20 147" initlabel="bg.bit_or_poly"> + <description> + <text></text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string-list" connector-kind="plug" position-type="mirror" > + <DefaultArg genus-name="dummy" label="" /> + </BlockConnector> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + </BlockConnectors> + </BlockGenus> + <BlockGenus name="bit_xor_poly" kind="function" color="255 20 147" initlabel="bg.bit_xor_poly"> + <description> + <text></text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string-list" connector-kind="plug" position-type="mirror" > + <DefaultArg genus-name="dummy" label="" /> + </BlockConnector> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + </BlockConnectors> + </BlockGenus> + <BlockGenus name="bit_not_poly" kind="function" color="255 20 147" initlabel="bg.bit_not_poly"> + <description> + <text></text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string-list" connector-kind="plug" position-type="mirror" > + <DefaultArg genus-name="dummy" label="" /> + </BlockConnector> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + <BlockConnector connector-type="string-list" connector-kind="socket" position-type="bottom" /> + </BlockConnectors> + </BlockGenus> <BlockGenus name="bit_and" kind="function" color="255 20 147" initlabel="bg.bit_and"> <description> <text></text> @@ -3116,6 +3164,11 @@ <BlockGenusMember>bit_shift_left</BlockGenusMember> <BlockGenusMember>bit_shift_right</BlockGenusMember> + + <BlockGenusMember>bit_and_poly</BlockGenusMember> + <BlockGenusMember>bit_or_poly</BlockGenusMember> + <BlockGenusMember>bit_xor_poly</BlockGenusMember> + <BlockGenusMember>bit_not_poly</BlockGenusMember> </BlockDrawer> <BlockDrawer button-color="255 20 147" name="bd.logic" type="page"> <BlockGenusMember>logicDivider1</BlockGenusMember> diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index c74aa13..33bbb79 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -455,6 +455,10 @@ bg.and=UND bg.or=ODER bg.equal_digital=== bg.not_equal_digital=!= +bg.bit_and_poly=& +bg.bit_or_poly=| +bg.bit_xor_poly=^ +bg.bit_not_poly=~ bg.bit_and=& bg.bit_or=| bg.bit_xor=^ @@ -475,6 +479,10 @@ bg.or.description=WAHR, wenn eine oder beide Bedingungen erf bg.not.description= Das Gegenteil von (z.B. WAHR wird zu FALSCH) bg.equal_poly.description=WAHR wenn die zwei Zeichen identisch sind bg.not_equal_poly.description=WAHR wenn die zwei Zeichen NICHT identisch sind +bg.bit_and_poly.description=bitweises UND +bg.bit_or_poly.description=bitweises ODER +bg.bit_xor_poly.description=bitweises XOR +bg.bit_not_poly.description=bitweises NICHT bg.bit_and.description=bitweises UND bg.bit_or.description=bitweises ODER bg.bit_xor.description=bitweises EXCLUSIV-ODER diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties index b403f41..80189ec 100644 --- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties +++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties @@ -456,6 +456,10 @@ bg.and=&& (AND) bg.or=|| (OR) bg.equal_digital=== bg.not_equal_digital=!= +bg.bit_and_poly=& +bg.bit_or_poly=| +bg.bit_xor_poly=^ +bg.bit_not_poly=~ bg.bit_and=& bg.bit_or=| bg.bit_xor=^ @@ -476,6 +480,10 @@ bg.or.description=ODER - WAHR, wenn eine oder beide Bedingungen erf bg.not.description=NICHT - Das Gegenteil von (z.B. WAHR wird zu FALSCH) bg.equal_poly.description=WAHR wenn die zwei Zeichen identisch sind bg.not_equal_poly.description=WAHR wenn die zwei Zeichen NICHT identisch sind +bg.bit_and_poly.description=bitweises UND +bg.bit_or_poly.description=bitweises ODER +bg.bit_xor_poly.description=bitweises XOR +bg.bit_not_poly.description=bitweises NICHT bg.bit_and.description=bitweises UND bg.bit_or.description=bitweises ODER bg.bit_xor.description=bitweises EXCLUSIV-ODER diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties index 3707487..a09aed5 100644 --- a/src/main/resources/com/ardublock/block/block-mapping.properties +++ b/src/main/resources/com/ardublock/block/block-mapping.properties @@ -138,6 +138,10 @@ greater_equal=com.ardublock.translator.block.logic.GreaterEqualBlock less_equal=com.ardublock.translator.block.logic.LessEqualBlock not_equal=com.ardublock.translator.block.logic.NotEqualBlock equal=com.ardublock.translator.block.logic.EqualBlock +bit_and_poly=com.ardublock.translator.block.logic.BitAndBlock +bit_or_poly=com.ardublock.translator.block.logic.BitOrBlock +bit_xor_poly=com.ardublock.translator.block.logic.BitXorBlock +bit_not_poly=com.ardublock.translator.block.logic.BitNotBlock bit_and=com.ardublock.translator.block.logic.BitAndBlock bit_or=com.ardublock.translator.block.logic.BitOrBlock bit_xor=com.ardublock.translator.block.logic.BitXorBlock -- GitLab