diff --git a/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java index 9ad590dcf5aa8ce44262517192c88a56abd85938..5b7f8bc7093ad0d77ba5b0f9400eb4a5960ae8f4 100644 --- a/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java +++ b/src/main/java/com/ardublock/translator/block/arrays/MemcpyBlock.java @@ -38,7 +38,7 @@ public class MemcpyBlock extends TranslatorBlock throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot")); } - String ret = "memcpy("+destinationArray+", " + sourceArray + ", "+lengthOfData+")"; + String ret = "memcpy("+destinationArray+", " + sourceArray + ", "+lengthOfData+");"; return ret; } diff --git a/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java b/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java index 715e8ac84a4564352a6dbe767b5745b2346ae3b0..a2b5217ea2debbd38bfbf7a10a4e93885e935e6f 100644 --- a/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java +++ b/src/main/java/com/ardublock/translator/block/arrays/MemsetBlock.java @@ -37,7 +37,7 @@ public class MemsetBlock extends TranslatorBlock throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot")); } - String ret = "memset("+destinationArray+", " + insertChar + ", "+numOfReplacedChars+")"; + String ret = "memset("+destinationArray+", " + insertChar + ", "+numOfReplacedChars+");"; return ret; } diff --git a/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java index d233fbef0210f5fd51fda9234d3323b9bef761de..0e1ef57589b8fde01ec2da2fe5396c4432a25a64 100644 --- a/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java +++ b/src/main/java/com/ardublock/translator/block/arrays/StrcpyBlock.java @@ -36,7 +36,7 @@ public class StrcpyBlock extends TranslatorBlock throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot")); } - String ret = "strcpy("+destinationArray+", " + sourceArray + ")"; + String ret = "strcpy("+destinationArray+", " + sourceArray + ");"; return ret; } diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index d620c117ea996d7db531dfcd877cd91714105712..b1364cb0600d0eac8016d07f32304ee3da7345bf 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -686,6 +686,12 @@ bg.create_variable_analog=create analog variable bg.create_variable_analog.description= bg.create_array_analog=set analog array bg.create_array_analog.description= +bg.memcpy_string=memcpy +bg.memcpy_string.description=copy a block of memory from a location to another +bg.memset_string=memset +bg.memset_string.description=copies a single character for a specified number of times to an object +bg.strcpy_string=strcpy +bg.strcpy_string.description=copy one string to another #ARRAYS #**************************** @@ -693,6 +699,7 @@ bd.array=Arrays bg.arrayDivider1=| analog | bg.arrayDivider2=| string | +bg.arrayDivider3=| copy/replace | bg.create_char_array=create char[] bg.read_char_array=read character @@ -714,6 +721,7 @@ bg.create_number_long_array.description=Create an array of long bg.create_number_float_array.description=Create an array of float bg.setter_number_array.description=Set the value of an array member +bc.string=char array bc.position=position bc.array=Name the array bc.vecsize=size diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index cda0a1a9a7915ec8db5bb8b9333970bd9f93301a..979ca2c9c0bfc97ffe1404ca3d19511c4055e0f4 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -2084,6 +2084,7 @@ <!-- ******************** Arrays *************** --> <BlockGenus name="arrayDivider1" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider1" color="150 150 150" /> <BlockGenus name="arrayDivider2" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider2" color="150 150 150" /> + <BlockGenus name="arrayDivider3" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.arrayDivider3" color="150 150 150" /> <BlockGenus name="create_char_array" kind="command" color="200 0 0" initlabel="bg.create_char_array"> <description> @@ -2107,7 +2108,7 @@ </description> <BlockConnectors> <BlockConnector connector-type="string-list" connector-kind="plug" /> - <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.string"> <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" /> </BlockConnector> <BlockConnector connector-type="number" connector-kind="socket" label="bc.position"> @@ -2120,7 +2121,7 @@ <text>Set a array value</text> </description> <BlockConnectors> - <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.string"> <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" /> </BlockConnector> <BlockConnector connector-type="number" connector-kind="socket" label="bc.position"> @@ -2215,6 +2216,50 @@ </BlockConnector> </BlockConnectors> </BlockGenus> + + <BlockGenus name="memcpy_string" kind="command" color="200 0 0" initlabel="memcpy_string"> + <description> + <text>memcpy</text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" /> + </BlockConnector> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette2" /> + </BlockConnector> + <BlockConnector connector-type="number" connector-kind="socket" label="bc.vecsize"> + </BlockConnector> + </BlockConnectors> + </BlockGenus> + <BlockGenus name="memset_string" kind="command" color="200 0 0" initlabel="memset_string"> + <description> + <text>memset</text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.string"> + <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" /> + </BlockConnector> + <BlockConnector connector-type="string-list" connector-kind="socket" label="bc.char"> + <DefaultArg genus-name="variable_char" label="X" /> + </BlockConnector> + <BlockConnector connector-type="number" connector-kind="socket" label="bc.vecsize"> + </BlockConnector> + </BlockConnectors> + </BlockGenus> + <BlockGenus name="strcpy_string" kind="command" color="200 0 0" initlabel="strcpy_string"> + <description> + <text>strcpy</text> + </description> + <BlockConnectors> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette" /> + </BlockConnector> + <BlockConnector connector-type="string" connector-kind="socket" label="bc.array"> + <DefaultArg genus-name="variable_string" label="Name_der_Zeichenkette2" /> + </BlockConnector> + </BlockConnectors> + </BlockGenus> <!-- ******************** Communication *************** --> <BlockGenus name="communicationDivider1" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.communicationDivider1" color="150 150 150" /> @@ -3400,6 +3445,11 @@ <BlockGenusMember>create_char_array</BlockGenusMember> <BlockGenusMember>setter_char_array</BlockGenusMember> <BlockGenusMember>read_char_array</BlockGenusMember> + + <BlockGenusMember>arrayDivider3</BlockGenusMember> + <BlockGenusMember>memcpy_string</BlockGenusMember> + <BlockGenusMember>memset_string</BlockGenusMember> + <BlockGenusMember>strcpy_string</BlockGenusMember> </BlockDrawer> <BlockDrawer button-color="165 42 42" name="bd.communication" type="default"> diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index abc3a6092fe44a6b3271d0fc467f5d3588ebdcbc..ae404af96eb9d4691ac4536c23540f2824f1613f 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -670,7 +670,6 @@ bg.local_variable_file.description=lokale Datei Variable bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool) -bc.string=Zeichenkette bc.num=# bc.position=Position bc.variable_digital=digitale_Variable @@ -692,6 +691,7 @@ bd.array=Tabellen bg.arrayDivider1=| analoge Tabellen | bg.arrayDivider2=| Zeichenketten | +bg.arrayDivider3=| kopieren/ersetzen | bg.create_char_array=Erstelle Zeichenkette bg.read_char_array=lese Zeichen @@ -713,6 +713,14 @@ bg.create_number_float_array.description=Erzeuge ein Array f bg.setter_number_array.description=Setze den Wert eines Array-Feldes bg.read_number_array.description=Lese den Wert eines\nTabellen-Feldes +bg.memcpy_string=kopiere Tabelle +bg.memcpy_string.description=copy a block of memory from a location to another +bg.memset_string=setze Wert in Tabelle +bg.memset_string.description=kopiere ein Zeichen/Wert wiederholt in einer Zeichenkette oder Tabelle +bg.strcpy_string=kopiere Zeichenkette +bg.strcpy_string.description=kopiere eine Zeichenkette in eine andere + +bc.string=Zeichenkette bc.position=Stelle bc.array=Tabellen-Name bc.vecsize=Anzahl Werte 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 e25ecd6f54b52506edec55b54f055fac5ac32b80..58c032b12d494bc7288ca84ec57e22cd4443beb2 100644 --- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties +++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties @@ -669,7 +669,6 @@ bg.local_variable_file.description=lokale Datei Variable bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool) -bc.string=char-Array bc.num=# bc.position=Position bc.variable_digital=bool_Variable @@ -691,6 +690,7 @@ bd.array=Tabellen bg.arrayDivider1=| analoge Tabellen | bg.arrayDivider2=| Zeichenketten | +bg.arrayDivider3=| kopieren/ersetzen | bg.create_char_array=Erstelle char-Array bg.read_char_array=lese char-Zeichen @@ -712,6 +712,14 @@ bg.create_number_float_array.description=Erzeuge ein Array f bg.setter_number_array.description=Setze den Wert eines Array-Feldes bg.read_number_array.description=Lese den Wert eines Array-Feldes +bg.memcpy_string=memcpy +bg.memcpy_string.description=copy a block of memory from a location to another +bg.memset_string=memset +bg.memset_string.description=kopiere ein Zeichen/Wert wiederholt in einer Zeichenkette oder Tabelle +bg.strcpy_string=strcpy +bg.strcpy_string.description=kopiere eine Zeichenkette in eine andere + +bc.string=char-Array bc.position=Stelle bc.array=Array-Name bc.vecsize=Anzahl Werte diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties index a09aed523ab6ffac0e2800f7a190370eda5a2b77..cf5ef858ed6aa667fb7054c14e8d6f8b28bb0536 100644 --- a/src/main/resources/com/ardublock/block/block-mapping.properties +++ b/src/main/resources/com/ardublock/block/block-mapping.properties @@ -238,6 +238,10 @@ create_char_array=com.ardublock.translator.block.arrays.CreateCharArrayBlock read_char_array=com.ardublock.translator.block.arrays.ReadCharArrayBlock setter_char_array=com.ardublock.translator.block.arrays.SetterCharArrayBlock +memcpy_string=com.ardublock.translator.block.arrays.MemcpyBlock +memset_string=com.ardublock.translator.block.arrays.MemsetBlock +strcpy_string=com.ardublock.translator.block.arrays.StrcpyBlock + #COMMUNICATION #**************************** serial_read=com.ardublock.translator.block.communication.SerialReadBlock