diff --git a/src/main/java/com/ardublock/ArduBlockTool.java b/src/main/java/com/ardublock/ArduBlockTool.java index 6fa4f8efe376b2bfbfca9e55092c2ac53a39063f..c98ea3dc3d541dcd5b5208de0b5417f5cfb260c8 100644 --- a/src/main/java/com/ardublock/ArduBlockTool.java +++ b/src/main/java/com/ardublock/ArduBlockTool.java @@ -33,7 +33,7 @@ public class ArduBlockTool implements Tool, OpenblocksFrameListener context.setInArduino(true); context.setArduinoVersionString(arduinoVersion); context.setEditor(editor); - System.out.println("Arduino Version: " + arduinoVersion); + //System.out.println("Arduino Version: " + arduinoVersion); } } @@ -100,6 +100,7 @@ public class ArduBlockTool implements Tool, OpenblocksFrameListener { Context context = Context.getContext(); File versionFile = context.getArduinoFile("lib/version.txt"); + System.out.println(versionFile); if (versionFile.exists()) { try diff --git a/src/main/java/com/ardublock/core/Context.java b/src/main/java/com/ardublock/core/Context.java index 048d51460bbe174773a2630e671b0ab7a939cc31..2b11994cfe8a33cc5c8bf3e2db8207e01fcb23b3 100644 --- a/src/main/java/com/ardublock/core/Context.java +++ b/src/main/java/com/ardublock/core/Context.java @@ -187,8 +187,20 @@ public class Context public File getArduinoFile(String name) { - String path = System.getProperty("user.dir"); - + //String path = System.getProperty("user.dir"); + String path = null; + + try { + path = new File(URLDecoder.decode(getClass().getProtectionDomain().getCodeSource().getLocation().getFile(), "UTF-8")).getParentFile().getPath(); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + path = path + "/../../../"; //from tools/ArduBlockTool/tool/ to Arduino-root + + //TODO: check on MAC and WIN + /* if (osType.equals(OsType.MAC)) { String javaroot = System.getProperty("javaroot"); @@ -196,7 +208,7 @@ public class Context { path = javaroot; } - } + }*/ File workingDir = new File(path); return new File(workingDir, name); } diff --git a/src/main/java/com/ardublock/translator/block/storage/EEPROMGetBlock.java b/src/main/java/com/ardublock/translator/block/storage/EEPROMGetBlock.java index f0fa97de87771f9693c67cfdc506f11db5614ea2..4c09fac1b0b8812fb34c8c708bff84233d0898c3 100644 --- a/src/main/java/com/ardublock/translator/block/storage/EEPROMGetBlock.java +++ b/src/main/java/com/ardublock/translator/block/storage/EEPROMGetBlock.java @@ -1,13 +1,22 @@ package com.ardublock.translator.block.storage; +import java.util.ResourceBundle; + //import com.ardublock.core.Context; import com.ardublock.translator.Translator; import com.ardublock.translator.block.TranslatorBlock; +import com.ardublock.translator.block.exception.BlockException; import com.ardublock.translator.block.exception.SocketNullException; import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; +import com.ardublock.translator.block.numbers.ConstantNumberBlock; +import com.ardublock.translator.block.numbers.LocalVariableNumberBlock; +import com.ardublock.translator.block.numbers.VariableNumberBlock; public class EEPROMGetBlock extends TranslatorBlock { + + private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock"); + public EEPROMGetBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { super(blockId, translator, codePrefix, codeSuffix, label); @@ -17,10 +26,13 @@ public class EEPROMGetBlock extends TranslatorBlock public String toCode() throws SocketNullException, SubroutineNotDeclaredException { translator.addHeaderFile("EEPROM.h"); - - String ret = "EEPROM.get("; + TranslatorBlock tb = this.getRequiredTranslatorBlockAtSocket(0); - ret += tb.toCode().replaceAll("\\s*_.new\\b\\s*", "") + ")"; + TranslatorBlock tb2 = this.getRequiredTranslatorBlockAtSocket(1); + if (!(tb2 instanceof VariableNumberBlock) && !(tb2 instanceof LocalVariableNumberBlock)) { + throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.number_var_slot")); + } + String ret = "EEPROM.get(" +tb.toCode().replaceAll("\\s*_.new\\b\\s*", "") + ", " + tb2.toCode().replaceAll("\\s*_.new\\b\\s*", "") + ");\n"; return codePrefix + ret + codeSuffix; } diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 7d8140d63b1e6a47dc22b18c63d802e42e5add1b..3025d584aafcb67379459daee246e62d5eba2d5c 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -2457,15 +2457,15 @@ </BlockConnector> </BlockConnectors> </BlockGenus> - <BlockGenus name="eeprom_get" kind="data" color="0 32 96" initlabel="bg.eeprom_get"> + <BlockGenus name="eeprom_get" kind="command" color="0 32 96" initlabel="bg.eeprom_get"> <description> <text>EEPROM GET</text> </description> <BlockConnectors> - <BlockConnector connector-type="number" connector-kind="plug" /> <BlockConnector connector-type="number" connector-kind="socket" label="bc.eeprom_address"> <DefaultArg genus-name="number" label="0" /> </BlockConnector> + <BlockConnector connector-type="number" connector-kind="socket" label="bc.variable"></BlockConnector> </BlockConnectors> </BlockGenus> <BlockGenus name="eeprom_put" kind="command" color="0 32 96" initlabel="bg.eeprom_put"> @@ -2549,7 +2549,7 @@ <text>Read from SD card</text> </description> <BlockConnectors> - <BlockConnector connector-type="string-inv" connector-kind="plug" /> + <BlockConnector connector-type="string-list" connector-kind="plug" /> <BlockConnector connector-type="string-inv" connector-kind="socket" label="bc.sdFileVar"> <DefaultArg genus-name="local_variable_file" label="datei_Variable" /> </BlockConnector> diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties index 80a2c1d7b8782d5ed8985042b7f7cc11bdc0e384..82e146e309d07ca46c563f65332f380efde9d068 100644 --- a/src/main/resources/com/ardublock/block/ardublock_de.properties +++ b/src/main/resources/com/ardublock/block/ardublock_de.properties @@ -85,7 +85,7 @@ ardublock.ui.simulatorHelp.tooltip=Infos zum letsgoING-Simulator ardublock.ui.simulatorHelp.title=Infos zum letsgoING-Simulator ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste -> Taster-Funktion\nrechte oder mittlere Maustaste -> Schalterfunktion (bleibt aktiv)\n\n\n\nPOTI\n**********************\nSlider ziehen oder mit Mausrad verstellen (Mauszeiger über Slider)\n\n\nSERIALMONITOR\n**********************\nHier werden die Nachrichten vom "Serial.Print"-Block ausgegeben\nAutoscroll:\n an -> neueste Nachrichten werden angezeigt\n aus -> Ausgabe kann manuell ausgewählt werden\nReset SerialMonitor: bisherige Ausgabe wird gelöscht\n\n\n\RESET ARDUINO\n**********************\nTaster startet das Programm neu\n\n\n\ONBOARD LED\n**********************\nLED kann über Pin13 angesteuert werden -ardublock.ui.version=v2.2 beta3 nBF +ardublock.ui.version=v2.2 beta3 ardublock.ui.appprefix.standard=Basic ardublock.ui.appprefix.pro=Pro @@ -160,6 +160,7 @@ bc.variable=Variable bc.digital=digital bc.analog=analog bc.char=Zeichen +bc.message=Zeichenkette #CONTROL #**************************** @@ -216,7 +217,7 @@ bg.wait.description=Die Bloecke innerhalb dieses Blocks werden ausgef bc.head= bc.setup=Setup bc.loop=Loop -bc.loop.description=Liste mit Befehlen die fotlaufen wiederholt wird. +bc.loop.description=Liste mit Befehlen die fortlaufen wiederholt wird. bc.do=mache bc.var=Name der Iterationsvariable @@ -259,7 +260,7 @@ bg.param_ref_number = verbinde bg.param_ref_char = verbinde bg.interrupt=interrupt -bg.subroutine_param.description = Unterpraogramm +bg.subroutine_param.description = Unterprogramm bg.subroutine_ref.description = Aufruf Unterprogramm bg.subroutine_ref_digital = Aufruf Unterprogramm bg.subroutine_ref_number = Aufruf Unterprogramm @@ -595,35 +596,35 @@ bg.local_variable_file=lokale_Datei_Variable bg.local_variable_number=lokale_analoge_Variable bg.local_variable_digital=lokale_digitale_Variable -bg.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert) +g.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert) bg.true.description=digitaler Wert WAHR (true) bg.false.description=digitaler Wert FALSCH (false) bg.digital-high.description=Pin HIGH bg.digital-low.description=Pin LOW -bg.char.description=Ein Zeichen -bg.number.description=Analoger Wert -bg.variable_number.description=Name der analogen Variable\nDatentyp hängt vom \"Setze-Block\" ab -bg.constant_number.description=Name der analogen Konstante\nDie Konstante kann nur einmal gesetzt werden\nDatentyp hängt vom \"Setze-Block\" ab -bg.variable_digital.description=Name der digitalen Variable -bg.constant_digital.description=Name der digitalen Konstante\nDie Konstante kann nur einmal gesetzt werden -bg.variable_string.description=Name der Zeichenketten Variable -bg.local_variable_string.description=Name der Zeichenketten Variable +bg.char.description=Ein ASCII-Zeichen +bg.number.description=analoger Ganzzahlwert (int)-Wert (-32,768 bis +32,767) +bg.variable_number.description=Name der analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab +bg.constant_number.description=Name der analogen Konstante (int)\nDie Konstante kann nur einmal gesetzt werden\nDatentyp hängt vom \"Setze-Block\" ab +bg.variable_digital.description=Name der digitalen Variable (bool) +bg.constant_digital.description=Name der digitalen Konstante (bool)\nDie Konstante kann nur einmal gesetzt werden +bg.variable_string.description=Name der Zeichenketten Variable (char[]-Array) +bg.local_variable_string.description=Name der lokalen Zeichenketten Variable (char[]-Array) bg.setter_variable_number.description=Setze eine analoge Variable (int).\n-32,768 bis +32,767 bg.setter_variable_number_byte.description=Setze eine kurze analoge Variable (byte).\n 0 bis 255 bg.setter_variable_number_long.description=Setze eine lange analoge Variable (long). \n-2,147,483,648 bis 2,147,483,647 bg.setter_variable_number_float.description=Setze eine dezimale Variable (float).\n +/- 3.4028235E+38 bg.setter_variable_digital.description=Setze eine digitale Variable (bool).\nHIGH or LOW -bg.setter_variable_string.description=Setze eine Zeichenkette Variable (String) -bg.setter_variable_char.description=Setze Zeichen Variable (char) -bg.variable_char.description=Zeichen Variable (char) +bg.setter_variable_string.description=Setze eine Zeichenkette Variable (char[]-Array) +bg.setter_variable_char.description=Setze ASCII-Zeichen Variable (char) +bg.variable_char.description=ASCII-Zeichen Variable (char) bg.local_variable_char.description=lokale Zeichen Variable (char) -bg.string.description=Zeichenkette (String) +bg.string.description=Zeichenkette (char[]-Array) bg.variable_file.description=Datei Variable bg.local_variable_file.description=lokale Datei Variable -bg.local_variable_number.description=Name der lokalen analogen Variable\nDatentyp hängt vom \"Setze-Block\" ab -bg.local_variable_digital.descriptionName der lokalen digitalen Variable (bool) +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=String +bc.string=Zeichenkette bc.num=# bc.position=Position bc.variable_digital=digitale_Variable @@ -659,7 +660,7 @@ bg.read_number_array=Lese Tabellenelement bg.create_char_array.description=Erstelle Zeichenkette (char[]) bg.read_char_array.description=lese Zeichen (char) an Position bg.setter_char_array.description=setze Zeichen (char) an Position -bg.create_number_aray.description=Erzeuge ein Array für analoge Werte (int)\n-32,768 bis +32,767 +bg.create_number_array.description=Erzeuge ein Array für analoge Werte (int)\n-32,768 bis +32,767 bg.create_number_byte_array.description=Erzeuge ein Array für kurze analoge Werte (byte)\n 0-255 bg.create_number_long_array.description=Erzeuge ein Array für lange analoge Werte (long) bg.create_number_float_array.description=Erzeuge ein Array für dezimale Werte (float) diff --git a/src/main/resources/com/ardublock/block/ardublock_en.properties b/src/main/resources/com/ardublock/block/ardublock_en.properties new file mode 100644 index 0000000000000000000000000000000000000000..6010e18bfba12065516df8b45faedb08906be80e --- /dev/null +++ b/src/main/resources/com/ardublock/block/ardublock_en.properties @@ -0,0 +1,850 @@ + +############### +# ARDUBLOCK # +############### + +#FILE +#**************************** +ardublock.file.suffix=Ardublock Program File(*.abp) + +#UI +#**************************** +ardublock.ui.menu.file=File +ardublock.ui.menu.program=Program +ardublock.ui.menu.tools=Tools +ardublock.ui.menu.blocks=Blocks +ardublock.ui.menu.about=About +ardublock.ui.menu.help=? + +ardublock.ui.new=New +ardublock.ui.new.tooltip=new program +ardublock.ui.save=Save +ardublock.ui.save.tooltip=save program +ardublock.ui.saveAs=Save As +ardublock.ui.saveAs.tooltip=save program as +ardublock.ui.load=Open +ardublock.ui.load.tooltip=open program +ardublock.ui.upload=Upload +ardublock.ui.upload.tooltip=Upload to Arduino +ardublock.ui.clone=Clone (rightclick-Ctrl) +ardublock.ui.clone_all=Clone following (rightclick-Shift-Ctrl) +ardublock.ui.add_comment=Add Comment +ardublock.ui.delete_comment=Delete Comment +ardublock.ui.organize_blocks=Organize all blocks +ardublock.ui.create_refer=create reference +ardublock.ui.website=letsgoING +ardublock.ui.website.domain=https://letsgoing.org +ardublock.ui.website.tooltip=goto letsgoING project-page +ardublock.ui.lmssite=Online LMS +ardublock.ui.lmssite.domain=moodle.letsgoing.org +ardublock.ui.lmssite.tooltip=go to letsgoING online-LMS +ardublock.ui.reference=open block reference +ardublock.ui.blockreference=open block reference +ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/ +ardublock.ui.blockreference.tooltip=open block reference +ardublock.ui.website.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock +ardublock.ui.website.repository.tooltip=go to ArduBlock Repository +ardublock.ui.mode.expert=Pro +ardublock.ui.mode.expert.tooltip=Mehr Blöcke und komplexere Funktionen fuer Fortgeschrittene +ardublock.ui.mode.standard=Basic +ardublock.ui.mode.standard.tooltip=Die wichtigsten Blöcke für den Einstieg +ardublock.ui.mode.sim=Sim +ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware" +ardublock.ui.search=search block +ardublock.ui.search.tooltip=Search for blocks in the drawers and workspace +ardublock.ui.serialMonitor=Serial Monitor +ardublock.ui.serialMonitor.tooltip=open Serial Monitor +ardublock.ui.serialPlotter=Serial Plotter +ardublock.ui.serialPlotter.tooltip=open Serial Plotter +ardublock.ui.undo=Undo +ardublock.ui.undo.tooltip=undo +ardublock.ui.redo=Redo +ardublock.ui.redo.tooltip=redo +ardublock.ui.saveImage=Save as image +ardublock.ui.saveImage.tooltip=save current program as image... +ardublock.ui.saveDefaultProgram=save as default +ardublock.ui.saveDefaultProgram.tooltip=saves current program as default program +ardublock.ui.zoomIn=+ +ardublock.ui.zoomIn.tooltip=zoom in Ctrl-Plus +ardublock.ui.zoomOut=- +ardublock.ui.zoomOut.tooltip=zoom out Ctrl-Minus +ardublock.ui.zoomReset=0 +ardublock.ui.zoomReset.tooltip=reset zoom +ardublock.ui.copy=copy +ardublock.ui.copy.tooltip=copy program to clipboard +ardublock.ui.paste=paste +ardublock.ui.paste.tooltip=paste program from +ardublock.ui.help=Help ArduBlock +ardublock.ui.help.tooltip=Help ArduBlock +ardublock.ui.simulation=simulate +ardublock.ui.simulation.tooltip=start simulation with basic block-set and letsgoING modules +ardublock.ui.simulatorHelp=Help Simulator +ardublock.ui.simulatorHelp.tooltip=About the letsgoING-simulator +ardublock.ui.simulatorHelp.title=About the letsgoING-simulator +ardublock.ui.simulatorHelp.text= + +ardublock.ui.version=v2.2 beta3 nBF + +ardublock.ui.appprefix.standard=Basic +ardublock.ui.appprefix.pro=Pro +ardublock.ui.appprefix.sim=Simulator + +#ERROR +#**************************** +ardublock.error_msg.unset_variable=The variable is undefined. Before the variable can be read, a value must be assigned to it. +ardublock.error_msg.digital_var_slot=Digital variable slot must take a 'digital variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_var_slot=Standard variable slot must take a standard 'analog variable name'.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_local_var_slot=Variable slot must take a standard 'local analog variable name'.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_slot=This slot must take a standard 'analog variable name' or "analog value".\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.long_number_var_slot=Large integer variable slot must take a 'Large Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.double_number_var_slot=variable slot must take a 'Decimal' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.char_var_slot=Char variable slot must take a char variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_const_write=Constants can be written only once. Don\'t use the setter-block twice! +ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant +ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.string_slot=String slot must take a String variable or a String variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board +ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board +ardublock.error_msg.local_var_slot=Variable slot must take a standard 'local X variable name'.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.var_value_slot=The slot must take a 'variable' or 'value' block.\nHint: Look at the highlighted block +ardublock.error_msg.return_var_slot=Only one return-parameter is valid +ardublock.error_msg.Serial_Read_slot=This Block needs an 'Serial read'- or 'softSerial read'-block +ardublock.error_msg.wrong_block_header=This Block cannot be used in head-section +ardublock.error_msg.stepper_duplicated=There is already a stepper with this name +ardublock.error_msg.stepper_not_existing=There is no stepper with this name +ardublock.error_msg.paste.invalid=clipboard contains no blocks +ardublock.error_msg.paste.notpossible=Past not possible without Blocks + +ardublock.error_msg.no_sim_for_block=This Block is not suitable for simulation + +#TRANSLATOR +#**************************** +ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name! +ardublock.translator.exception.noLoopFound=No loop found! +ardublock.translator.exception.multipleLoopFound=multiple loop block found! +ardublock.translator.exception.socketNull=A required Value, Variable Name or 'Test' is missing.\nHint:: Look for an empty 'socket' in the highlighted block. +ardublock.translator.exception.socketNull.consolePrint=Name of the block: +ardublock.translator.exception.subroutineNotDeclared=subroutine not declared +ardublock.translator.exception.subroutineNotDeclared.consolePrint=Name of the subroutine: + +#MESSAGE +#**************************** +message.title.error=Error +message.title.question=Question +message.content.open_unsaved=Ardublock program has changed, do you want to save? +message.content.overwrite=Do you want to overwrite existing file? +message.content.overwriteDefault=Do you want to overwrite default file? +message.file_not_found=File not found or permission denied +message.file_not_found_new_file=File Not Found or permission denied.\nCreate new file? +message.content.overwriteImage=Do you want to overwrite existing image? + +message.question.newfile_on_workspace_changed=The program has changed, do you want to create a new Ardublock file? + +################## +# BLOCK CONFIG # +################## + +#COMMON +#**************************** +bg.dummy=dummy +bg.dummy.description= + +bc.commands=Commands +bc.pin_number=pin +bc.pin_number_analog=pin A +bc.pwm_pin_number=~pin +bc.value=value +bc.variable=variable +bc.digital=digital +bc.analog=analog +bc.char=character + + +#CONTROL +#**************************** +bd.control=Control + +bg.controlDivider1=| main loops | +bg.controlDivider2=| branches | +bg.controlDivider3=| loops | +bg.controlDivider4=| delays | + +bg.loop=loop +#legacy support +bg.loop1=loop +bg.loop1.description=loop +bg.loop2=loop +bg.loop2.description=loop +bg.loop3=loop +bg.loop3.description=loop +#End of legacy support +bg.program=program +bg.sketch=program +bg.setup=setup +bg.if=if +bg.elseif=else if +bg.else=else +bg.ifelse=if/else +bg.repeat_times=for +bg.repeat=for (count var) +bg.repeat_control= +bg.break=break +bg.delay=delay MILLIS +bg.delay_microseconds=delay MICROS +bg.while=while +bg.do_while=do while + +bg.wait=wait millis + +bg.program.description=Main program with loop and setup +bg.sketch.description=program with head, setup and loop +bg.loop.description=Main Program loop without setup +bg.delay.description=Delay for "milliseconds" indicated.\nNOTE: 1000 millis = 1 second +bg.if.description=Run the commands if the "test" is true +bg.elseif.description=Run the commands if "if-block" is false and "test" ist true \n-> if-block is needed!! +bg.else.description=Run the commands if "if-block (and "else if") is false \n-> if-block is needed!! +bg.ifelse.description=Run the first set of commands if the "test" is true, otherwise it will do the second set of commands. +bg.while.description=Run the commands as long as the "test" is true +bg.do_while.description=Run the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' +bg.repeat_times.description=Repeat a list of commands a number of times. +bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. +bg.repeat_control.description= +bg.break.description=break +bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second +bg.wait.description=wait millis + + +bc.head= +bc.setup=setup +bc.loop=loop +bc.loop.description= + +bc.do=loop +bc.var=iteration variable name +bc.microseconds=microseconds +bc.milliseconds=milliseconds +bc.transmit=transmit +bc.repeat_times=times +bc.test=test +bc.then=then +bc.else=else +bc.condition=test +bc.start=start +bc.end=stop +bc.increment=steps of +bc.time=Second +bc.sub_var = subroutine return value +bc.sub_return = return val +bc.irName = isr name +bc.irNumber = number +bc.irType = type +bc.fcn_description=function description + + +#SUBROUTINES +#**************************** +bd.subroutines = Subroutines + +bg.subroutineDivider1=| without parameters | +bg.subroutineDivider2=| with parameters | +bg.subroutineDivider3=| interrupt | + +bg.subroutine_param = subroutine +bg.subroutine_ref = subroutine +bg.subroutine_ref_digital = subroutine +bg.subroutine_ref_number = subroutine +bg.param_digital = connect +bg.param_number = connect +bg.param_char = connect +bg.param_ref_digital = connect +bg.param_ref_number = connect +bg.param_ref_char = connect +bg.interrupt=interrupt + +bg.subroutine_param.description = sub +bg.subroutine_ref.description = sub +bg.subroutine_ref_digital.description = subroutine +bg.subroutine_ref_number.description = subroutine +bg.param_digital.description = bool parameter connector +bg.param_number.description = int parameter connector +bg.param_char.description = char parameter connector +bg.param_ref_digital.description = bool parameter connector +bg.param_ref_number.description = int parameter connector +bg.param_ref_char.description = char parameter connector +bg.interrupt.description=interrupt block\nIR-Nr.0 = Pin2\nIR-Nr.1 = Pin3\n\nIR-Mode\n0: LOW\n1: HIGH\n2: RISING\n3: FALLING\n4: CHANGE\n + +bc.param_connector=next parameter + + + +#legacy support +bg.subroutine_com=subroutine +bg.subroutine-ref=subroutine +bg.subroutine_var_com=subroutine_with_send +bg.subroutine-ref_var=subroutine_with_send +bg.subroutine_varret_com=subroutine_with_return +bg.subroutine-ref_varret=subroutine_with_return +bg.ref_var=variable_transmitted + +bg.subroutine_com.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine-ref.description=Run the list of commands in the subroutine called... +bg.subroutine_var_com.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine-ref_var.description=Run the list of commands in the subroutine called... +bg.subroutine_varret_com.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine-ref_varret.description=Run the list of commands in the subroutine called... +bg.subroutine_varret=subroutine_with_return +bg.subroutine_var=subroutine_with_send +bg.subroutine=subroutine +bg.subroutine.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine_var.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine_varret.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. + +#OUTPUT +#**************************** +bd.output=Output + +bg.outputDivider1=| pins | +bg.outputDivider2=| NeoPixel LEDs | +bg.outputDivider3=| Toene | +bg.outputDivider4=| servomotors | +bg.outputDivider5=| steppermotors | + +bg.pin-write-analog=analogWrite +bg.pin-write-digital=digitalWrite +bg.pin-mode-output= pinMode OUTPUT +bg.servo_default=Servo +bg.tone=tone +bg.tone_time=tone +bg.no_tone=no tone +bg.attach_servo_default=attach servo +bg.detach_servo_default=detach Servo + +bg.neopixel_init=Neopixel Init +bg.neopixel_pixel_color=Neopixel Pixel Color +bg.neopixel_show=Neopixel Show +bg.neopixel_brightness=Neopixel Brightness +bg.stepper_2pin=Setup for Stepper +bg.stepper_4pin=Setup for Stepper +bg.stepper_set_rpm=Stepper set rpm +bg.stepper_steps=Stepper steps + +bg.attach_servo_default.description=attach servo +bg.detach_servo_default.description=detach servo +bg.servo_default.description=Control a servo +bg.stepper_2pin.description=Setup for stepper motor with 2-pin-wiring +bg.stepper_4pin.description=Setup for stepper motor with 4-pin-wiring +bg.stepper_set_rpm.description=Set stepper speed in rotation per minute +bg.stepper_steps.description=Move stepper x steps +bg.tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.tone_time.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.no_tone.description=Stops the generation of a square wave triggered by tone(). +bg.pin-write-digital.description=Set digital pin to HIGH or LOW +bg.pin-write-analog.description=Write analog voltage to pin. Eg \n 0 = Zero volts. 255 = five volts. +bg.pin-mode-output.description= set pinMode to OUTPUT +bg.neopixel_pixel_color.description=Pixel Color between 0 and 255 for each color +bg.neopixel_brightness.description=Brightness between 0 and 255 +bg.neopixel_init.description=Init Neopixel\nBus: NEO_KHZ800 / NEO_KHZ400\nColor: NEO_GRB / NEO_RGB +bg.neopixel_show.description= Push the color data to the strip + +bc.steps=Steps/r +bc.speed=rpm +bc.red=Red Start +bc.blue=Blue Start +bc.green=Green Start +bc.brightness=Brightness +bc.Nb_of_Led=how many pixel +bc.Nb_of_Led.description=how many pixel +bc.Pixel_Nb=number of the pixel +bc.Pixel_Nb.description=which pixel to program +bc.schnittstelle=Bus +bc.farbfolge=Color +bc.angle=angle +bc.frequency =frequency + +#INPUT +#**************************** +bd.input=Input + +bg.inputDivider1=| pins | +bg.inputDivider2=| touch | +bg.inputDivider3=| sensors | + +bg.pin-read-analog=analog input +bg.pin-read-digital=digital pin +bg.pin-read-digital-pullup=input pullup +bg.pin-mode-input=pinMode INPUT +bg.LGI_Ultrasonic=ultrasonic + +bg.LGI_Qtouch_Init1=LGI_Qtouch_Init1 +bg.LGI_Qtouch_Init2=LGI_Qtouch_Init2 +bg.LGI_Qtouch_Init3=LGI_Qtouch_Init3 +bg.LGI_Qtouch_Button1_getOffset=getOffset1 +bg.LGI_Qtouch_Button2_getOffset=getOffset2 +bg.LGI_Qtouch_Button3_getOffset=getOffset3 +bg.LGI_Qtouch_Button1_getRaw=Raw-Value Q-Touch-Button1 +bg.LGI_Qtouch_Button2_getRaw=Raw-Valuen Q-Touch-Button2 +bg.LGI_Qtouch_Button3_getRaw=Raw-Value Q-Touch-Button3 +bg.LGI_Qtouch_Button1_isTouched=Q-Button1 is touched +bg.LGI_Qtouch_Button2_isTouched=Q-Button2 is touched +bg.LGI_Qtouch_Button3_isTouched=Q-Button3 is touched +bg.LGI_Qtouch_Slider_Init=Slider Init +bg.LGI_Qtouch_Slider_getTouchPosition=get touch position +bg.LGI_Qtouch_Slider_getOffset1=getOffset1 +bg.LGI_Qtouch_Slider_getOffset2=getOffset2 +bg.LGI_Qtouch_Slider_getOffset3=getOffset3 +bg.dht_sensor_setup=Setup DHT Sensor +bg.dht_sensor_read_temp=DHT read temperature +bg.dht_sensor_read_humid=DHT read humidity +bg.dht_sensor_calc_index=DHT calc heatindex + +bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 +bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. +bg.pin-read-digital-pullup.description=Set pin to digital input\nPin will report HIGH if unconnected. +bg.pin-mode-input.description= Set Pin-Mode to INPUT +bg.LGI_Ultrasonic.description=ultrasonic sensor +bg.LGI_Qtouch_Init1.description=LGI_Qtouch_Init1 +bg.LGI_Qtouch_Init2.description=LGI_Qtouch_Init2 +bg.LGI_Qtouch_Init3.description=LGI_Qtouch_Init3 +bg.LGI_Qtouch_Button1_getOffset.description=getOffset1 +bg.LGI_Qtouch_Button2_getOffset.description=getOffset2 +bg.LGI_Qtouch_Button3_getOffset.description=getOffset3 +bg.LGI_Qtouch_Button1_getRaw.description=get raw value +bg.LGI_Qtouch_Button2_getRaw.description=get raw value +bg.LGI_Qtouch_Button3_getRaw.description=get raw value +bg.LGI_Qtouch_Button1_isTouched.description=Button1 is touched +bg.LGI_Qtouch_Button2_isTouched.description=Button2 is touched +bg.LGI_Qtouch_Button3_isTouched.description=Button3 is touched +bg.LGI_Qtouch_Slider_Init.description=Slider Init +bg.LGI_Qtouch_Slider_getTouchPosition.description=get touch position +bg.LGI_Qtouch_Slider_getOffset1.description=getOffset1 +bg.LGI_Qtouch_Slider_getOffset2.description=getOffset2 +bg.LGI_Qtouch_Slider_getOffset3.description=getOffset3 +bg.dht_sensor_setup.description=Setup for DHT sensor\nPin Nr.\nsensor-type\nDHT11, DHT21, DHT22 +bg.dht_sensor_read_temp.description=read temperature in °C +bg.dht_sensor_read_humid.description=read humidity in % +bg.dht_sensor_calc_index.description=calculate heatindex in °C\n(felt temperature) + +bc.analogpin_number=#AnalogPin +bc.dhtType=DHT +bc.DHTtemp=temperature +bc.DHThumid=humidity + +#LOGIC +#**************************** +bd.logic=Logical Operators +#bd.logic=Tests + +bg.logicDivider1=| logic operators | +bg.logicDivider2=| compare | +bg.logicDivider3=| bit operations | + +bg.not_equal_poly= != +bg.equal_poly= == +bg.equal_digital=== +bg.not_equal_digital=!= +bg.greater=> +bg.greater_equal=>= +bg.less=< +bg.less_equal=<= +bg.not=not +bg.not_equal=!= +bg.and=and +bg.or=or +bg.equal_digital=== +bg.not_equal_digital=!= +bg.bit_and=& +bg.bit_or=| +bg.bit_xor=^ +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 +bg.equal_digital.description=True if the first number equals to the second number +bg.greater_equal.description=True if the first number is greater or equal to the second number +bg.less_equal.description=True if the first number is less or equal to the second number +bg.not_equal.description=True if the first number is not equal to the second number +bg.not_equal_digital.description=True if the first number is not equal to the second number +bg.and.description=True if both of the two conditions are true. +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.description=bitwise AND +bg.bit_or.description=bitwise OR +bg.bit_xor.description=bitwise XOR +bg.bit_not.description=bitwise NOT +bg.bit_shift_left.description=shift bits to the left +bg.bit_shift_right.description=shift bits to the right + +#OPERATORS +#**************************** +bd.operators=Math Operators + +bg.mathDivider1=| operators | +bg.mathDivider2=| signal attributes | +bg.mathDivider3=| random | + +bg.constrain=constrain +bg.abs=abs +bg.addition=+ +bg.cos=cos +bg.division=\u00f7 +bg.equal=== +bg.map=map +bg.map_common=map [0, 1023] to [0, 255] +bg.max=max +bg.min=min +bg.modulo=% +bg.multiplication=x +bg.pow=power +bg.random=random +bg.random_range=random +bg.sin=sin +bg.sqrt=sqrt +bg.subtraction=- +bg.tan=tan + +bg.addition.description=Sum of two numbers +bg.subtraction.description=Difference of two numbers +bg.multiplication.description=Product of two numbers +bg.division.description=Quotient of two numbers +bg.random.description=Generate a random number less than the number +bg.map_common.description=map value from [0, 1023] to [0, 255] +bg.map.description=Map value from "from" range to "to" range +bg.constrain.description=Constrain a number between two values +bg.random_range.description=Generate random number between min and (max - 1) + +bc.max=max +bc.min=min +bc.to=to +bc.fromLow= from Low +bc.fromHigh=from High +bc.toLow=to Low +bc.toHigh=to High +bc.from=from +bc.base=base +bc.exponent=exponent +bc.low=lower +bc.high=higher +bc.element = element + +#CAST +#**************************** +bd.cast=type cast + +bg.cast_number=cast analog +bg.cast_number_byte=cast short analog +bg.cast_number_long=cast long analog +bg.cast_number_float=cast decimal +bg.cast_byte_char=cast byte to char +bg.cast_char_byte=cast char to byte +bg.cast_low_int_char=cast lower byte of int to char +bg.cast_up_int_char=cast upper byte of int to char +bg.cast_char_int=cast int from two char +bg.cast_byte_int=cast int from two byte + +bg.cast_number.description=cast int +bg.cast_number_byte.description=cast byte +bg.cast_number_long.description=cast long +bg.cast_number_float.description=cast float +bg.cast_byte_char.description=cast byte to char +bg.cast_char_byte.description=cast char to byte +bg.cast_low_int_char.description=cast lower byte of int to char +bg.cast_up_int_char.description=cast upper byte of int to char +bg.cast_char_int.description=cast integer from two char +bg.cast_byte_int.description=cast integer from two byte + +bc.lowerByte=lower Byte +bc.upperByte=upper Byte + +#NUMBERS +#**************************** +bd.number=Variables/Constants + +bg.numberDivider1=| system time | +bg.numberDivider2=| digital | +bg.numberDivider3=| analog | +bg.numberDivider4=| character/text | + +bg.millis=Milliseconds +bg.digital-high=HIGH +bg.digital-low=LOW +bg.true=true +bg.false=false + +bg.string=ABCD +bg.char=A +bg.number=1 +bg.setter_variable_digital=set digital variable +bg.setter_variable_number=set analog variable +bg.setter_variable_number_byte=set short analog variable +bg.setter_variable_number_long=set long analog variable +bg.setter_variable_number_float=set decimal variable +bg.setter_variable_char=set character variable +bg.setter_variable_string=set string variable +bg.variable_digital=digital variable +bg.constant_digital=digital constant +bg.variable_number=analog variable +bg.constant_number=analog constant +bg.variable_char=character_variable +bg.local_variable_char=local_character_variable +bg.variable_string=string variable +bg.local_variable_string=local string variable +bg.variable_file=fileVariable +bg.local_variable_file=lokalFileVariable +bg.local_variable_number=localAnalogVariable +bg.local_variable_digital= local digital variable + +bg.millis.description=Returns milliseconds since last power-up or reset.\nNote: Use to set a 'Large Integer' variable. +bg.true.description=Boolean True. +bg.false.description=Boolean False. +bg.digital-high.description=Pin HIGH +bg.digital-low.description=Pin LOW +bg.char.description=character variable +bg.number.description=analog variable +bg.variable_number.description=analog variable.\nType depends on setter block +bg.constant_number.description= analog constant\nEvery constant can be written only once\nType depends on setter block +bg.variable_digital.description=Digital variable +bg.constant_digital.description=digital constant +bg.variable_string.description=string variable +bg.local_variable_string.description=local string variable +bg.setter_variable_number.description=Set standard integer variable.\n-32,768 to +32,767 +bg.setter_variable_number_byte.description=Set standard byte (uint8_t) variable.\n0 to 255 +bg.setter_variable_number_long.description=Set large integer variable. \n-2,147,483,648 to 2,147,483,647 +bg.setter_variable_number_float.description=Set 'Decimal' variable.\n +/- 3.4028235E+38 +bg.setter_variable_digital.description=Set digital variable.\nHIGH or LOW +bg.setter_variable_string.description=set string variable +bg.setter_variable_char.description=Set a character variable +bg.variable_char.description=Character variable name +bg.local_variable_char.description=local character variable name +bg.string.description=Edit message text +bg.variable_file.description=file variable +bg.local_variable_file.description=local file variable +bg.local_variable_number.description=local Variable\nType depends on setter block +bg.local_variable_digital.description=local digital Var + +bc.message=String +bc.num=# +bc.variable_digital=Bool +bc.variable_number=Integer +bc.variable_number_unsigned_long=Unsigned_long +bc.variable_number_long = Long +bc.variable_number_float=float + +#TEST NEW BLOCKDESIGN +bg.setter_variable_analog== +bg.setter_variable_analog.description= +bg.create_variable_analog== +bg.create_variable_analog.description= +bg.create_array_analog== +bg.create_array_analog.description= + +#ARRAYS +#**************************** +bd.array=Arrays + +bg.arrayDivider1=| analog | +bg.arrayDivider2=| string | + +bg.create_char_array=create char[] +bg.read_char_array=read character +bg.setter_char_array=set character +bg.read_number_array=read element +bg.create_number_array=create an int array +bg.create_number_byte_array=create an byte array +bg.create_number_long_array=create an long array +bg.create_number_float_array=create an float array +bg.setter_number_array=set an array member + +bg.create_char_array.description=create char[]-Array +bg.read_char_array.description=read character at position +bg.setter_char_array.description=set character at psition +bg.read_number_array.description=Get the value of an array member +bg.create_number_array.description=Create an array of standard integers.\n-32,768 to +32,767 +bg.create_number_byte_array.description=Create an array of byte values +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.position=position +bc.array=Name the array +bc.vecsize=size +bc.number_chars=number of characters + +#COMMUNICATION +#**************************** +bd.communication=Communication + +bg.communicationDivider1=| serial | +bg.communicationDivider2=| software serial | +bg.communicationDivider3=| serial connectors | +bg.communicationDivider4=| PubSub Network | + +bg.glue_poly=connect +bg.glue_msg=connect +bg.glue_sb=connect +bg.glue_sn=connect +bg.serial_parseInt=Serial.parseInt +bg.serial_available=Serial.available +bg.serial_read=Serial.read +bg.serial_print=Serial.print +bg.serial_begin=Serial.begin +bg.soft_serial_begin=softSerial.begin +bg.soft_serial_print=softSerial.print +bg.soft_serial_read=softSerial.read +bg.soft_serial_available=softSerial.available +#bg.serial_println=serial println +bg.serial_write=serial.write() +bg.serialEvent=serialEvent +bg.glue_digital=glue +bg.glue_number=glue +bg.glue_char=glue +bg.glue_string=glue +bg.tele_set_frame=set Frame +bg.tele_read_frame=read serial data Frame +bg.tele_read_data_frame=read from Frame +bg.mqtt_set_frame=set MQTT Frame +bg.mqtt_read_frame=read MQTT Frame + +bg.psn_broker=PubSub Broker +bg.psn_client=PubSub Client +bg.psn_callback=psnClientCallback +bg.psn_handle_network=PubSub handleNetwork +bg.psn_data_to_send=PubSub isDataToSend? +bg.psn_publish=PubSub publish +bg.psn_subscribe=PubSub subscribe +bg.psn_unsubscribe=PubSub unsubscribe + + +bg.serial_write.description=Send message via Serial +bg.serial_print.description=Send message via Serial port +bg.serial_read.description=read char via Serial port as byte +bg.serial_available.description=Data available at Serial port +#bg.serial_println.description=Send message via Serial port with a return +bg.serial_begin.description=start Serial with baudrate +bg.soft_serial_begin.description=start SoftwareSerial with baudrate +bg.soft_serial_print.description=Send message via Software Serial port +bg.soft_serial_read.description=Read message via Software Serial port +bg.soft_serial_available.description=Data available at Software Serial port +bg.serial_parseInt.description=read next int value via Serial +bg.glue_sn.description=connector number/char-Array +bg.glue_sb.description=connector digital/char-Array +bg.glue_poly.description=connector char/char-Array +bg.glue_msg.description=connector char-Array/char-Array +bg.serialEvent.description=Unterprogramm serialEvent z.B. read Remote +bg.glue_digital.description=Glue boolean to string +bg.glue_number.description=Glue number to string +bg.glue_char.description=Glue char to string +bg.glue_string.description=Glue string to string +bg.tele_set_frame.description=write data to telegram-frame +bg.tele_read_frame.description=read serial data in telegram-frame-format +bg.tele_read_data_frame.description=read data from telegram-frame \n receiver-address 0 reads data from all sender-addresses +bg.mqtt_set_frame.description=write data to MQTT-frame\n(letsgoING-IOT-module) +bg.mqtt_read_frame.description=read data from MQTT-frame\n(letsgoING-IOT-module) + +bg.psn_broker.description=PubSub Server +bg.psn_client.description=PubSub Client +bg.psn_callback.description=PubSub_Callback +bg.psn_handle_network.description=PubSub handleNetwork +bg.psn_data_to_send.description=PubSub isDataToSend? +bg.psn_publish.description=PubSub publish +bg.psn_subscribe.description=PubSub subscribe +bg.psn_unsubscribe.description=PubSub unsubscribe + +bc.ps_name=name +bc.callback=callback +bc.payloadVar=payload var +bc.payloadLengthVar=payload length var +bc.topicVar=topic var +bc.topicLengthVar=topic length var +bc.print=print +bc.ln=new line +bc.rx_pin_number=Rx Pin +bc.tx_pin_number=Tx Pin +bc.baudrate=baud +bc.sendAddress=sender address +bc.recAddress=receiver address +bc.dataLength=data length +bc.sendBuffer=send Buffer +bc.recBuffer=receive Buffer +bc.recFrame=received Frame +bc.recChars=received characters +bc.payload=payload +bc.payloadLength=payload length +bc.topic=topic +bc.topicLength=topic length +bc.command=command type +bc.nextChar=next char +bc.dataComplete=data complete + +#STORAGE +#**************************** +bd.storage=Storage + +bg.storageDivider1=| EEPROM | +bg.storageDivider2=| SD Card | + +bg.eeprom_read=read 'byte' EEPROM +bg.eeprom_write=write 'byte' EEPROM +bg.eeprom_get=read custom Datatype EEPROM +bg.eeprom_put=write custom Datatype EEPROM +bg.eeprom_length=size of EEPROM +bg.sd_begin=start SD card +bg.sd_open=open file on SD +bg.sd_close=close file on SD +bg.sd_write=write to SD +bg.sd_read=read from SD +bg.sd_data_available=data available SD +bg.sd_file_available=file available SD + +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_write.description=Write a byte (0-255) to EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_get.description=Read a custom datatype from EEPROM. Each byte consumes one EEPROM address. Check length of your datatype. +bg.eeprom_put.description=Write a custom datatype to EEPROM. Each byte consumes one EEPROM address. Check length of your datatype. +bg.eeprom_length.description=Returns the size of EEPROM +bg.sd_begin.description=start SD card +bg.sd_open.description=open file on SD +bg.sd_close.description=close file on SD +bg.sd_write.description=write to SD +bg.sd_read.description=read from SD +bg.sd_data_available.description=unread data available on SD +bg.sd_file_available.description=file available + +bc.eeprom_address=address +bc.eeprom_data=data +bc.File=File +bc.sdFileVar = File Variable +bc.sdFileName = File Name +bc.sdFileMode = Mode +bc.sdWriteData= Data +bc.sdCSPin = CS + +#CODE +#**************************** +bd.code=Comments/Code + +bg.codeDivider1=| comments | +bg.codeDivider2=| c-code insert | + +bg.program_comment=program description +bg.code_head=add code on Head +bg.code_comment_head=//add comment to program head +bg.code_loop=add code +bg.code_comment= //add comment + +bg.program_comment.description=Add information about the program +bg.code_loop.description=Add custom code +bg.code_head.description=Add custom code to head +bg.code_comment_head.description=Add comment to program head +bg.code_comment.description=add custom command + +bc.prog_name=program name +bc.prog_author= author +bc.prog_description=program description +bc.prog_date=date +bc.prog_version=version +#**************************** \ No newline at end of file diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties new file mode 100644 index 0000000000000000000000000000000000000000..a867dd0abc0030f5dc3e0d16a9c53c916ce7bc5a --- /dev/null +++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties @@ -0,0 +1,846 @@ + +############### +# ARDUBLOCK # +############### + +#FILE +#**************************** +ardublock.file.suffix=Ardublock Programmdatei (*.abp) + +#UI +#**************************** +ardublock.ui.menu.file=Datei +ardublock.ui.menu.program=Programm +ardublock.ui.menu.tools=Werkzeuge +ardublock.ui.menu.blocks=Blöcke +ardublock.ui.menu.about=Über +ardublock.ui.menu.help=? + +ardublock.ui.new=Neu +ardublock.ui.new.tooltip=Neues Programm erstellen +ardublock.ui.save=Speichern +ardublock.ui.save.tooltip=ArduBlock-Programm speichern +ardublock.ui.saveAs=Speichern unter +ardublock.ui.saveAs.tooltip=ArduBlock-Programm unter neuem Namen speichern +ardublock.ui.load=Öffnen +ardublock.ui.load.tooltip=ArduBlock-Programm öffnen +ardublock.ui.upload=Hochladen auf den Arduino +ardublock.ui.upload.tooltip=Programm auf Arduino laden +ardublock.ui.clone=klonen (Strg-Rechtsklick) +ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick) +ardublock.ui.add_comment=Kommentar hinzufügen +ardublock.ui.delete_comment=Kommentar löschen +ardublock.ui.organize_blocks=Alle Blöcke neu anordnen +ardublock.ui.create_refer=Verweis erstellen +ardublock.ui.website=letsgoING (Web) +ardublock.ui.website.domain=https://letsgoing.org +ardublock.ui.website.tooltip=öffnet die letsgoING-Homepage +ardublock.ui.lmssite=Online Lernen (Web) +ardublock.ui.lmssite.domain=moodle.letsgoing.org +ardublock.ui.lmssite.tooltip=öffnet die letsgoING-Lernseiten +ardublock.ui.reference=Block-Referenz öffnen +ardublock.ui.blockreference=Übersicht Block-Referenz öffnen (Web) +ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/ +ardublock.ui.blockreference.tooltip=öffnet die Blockreferenz +ardublock.ui.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock +ardublock.ui.repository.tooltip=gehe zur ArduBlock Repository +ardublock.ui.mode.expert=Pro +ardublock.ui.mode.expert.tooltip=Mehr Blöcke und komplexere Funktionen fuer Fortgeschrittene +ardublock.ui.mode.standard=Basic +ardublock.ui.mode.standard.tooltip=Die wichtigsten Blöcke für den Einstieg +ardublock.ui.mode.sim=Sim +ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware" +ardublock.ui.search=suche Blöcke +ardublock.ui.search.tooltip=Suche im Arbeitsfenster und den Menüs nach Blöcken + +#ardublock.ui.modeButton.mode.tooltip=umschalten zwischen Grundlagen- und Projektblöcken +ardublock.ui.serialMonitor=Serieller Monitor +ardublock.ui.serialMonitor.tooltip=öffnet den seriellen Monitor +ardublock.ui.serialPlotter=Serieller Plotter +ardublock.ui.serialPlotter.tooltip=öffnet den seriellen Plotter +ardublock.ui.undo=Undo +ardublock.ui.undo.tooltip=Rückgängig +ardublock.ui.redo=Redo +ardublock.ui.redo.tooltip=Wiederherstellen +ardublock.ui.saveImage=Als Bild speichern +ardublock.ui.saveImage.tooltip=Speichert ein Bild des aktuellen Programms +ardublock.ui.saveDefaultProgram=Als Vorlage speichern +ardublock.ui.saveDefaultProgram.tooltip=Speichert aktuelles Programm als Vorlage für neue Programme +ardublock.ui.zoomIn=+ +ardublock.ui.zoomIn.tooltip=vergrößere Programm +ardublock.ui.zoomOut=- +ardublock.ui.zoomOut.tooltip=verkleinere Programm +ardublock.ui.zoomReset=0 +ardublock.ui.zoomReset.tooltip=zurücksetzen +ardublock.ui.copy=Programm kopieren +ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage +ardublock.ui.paste=Programm einfügen +ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein +ardublock.ui.help=Hilfe zu ArduBlock +ardublock.ui.help.tooltip=Hilfe zu ArduBlock +ardublock.ui.simulation=Hochladen auf den Simulator +ardublock.ui.simulation.tooltip=Starte den Simulator und lade das Programm hoch +ardublock.ui.simulatorHelp=Hilfe zum Simulator +ardublock.ui.simulatorHelp.tooltip=Infos zum letsgoING-Simulator +ardublock.ui.simulatorHelp.title=Infos zum letsgoING-Simulator +ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste -> Taster-Funktion\nrechte oder mittlere Maustaste -> Schalterfunktion (bleibt aktiv)\n\n\n\nPOTI\n**********************\nSlider ziehen oder mit Mausrad verstellen (Mauszeiger über Slider)\n\n\nSERIALMONITOR\n**********************\nHier werden die Nachrichten vom "Serial.Print"-Block ausgegeben\nAutoscroll:\n an -> neueste Nachrichten werden angezeigt\n aus -> Ausgabe kann manuell ausgewählt werden\nReset SerialMonitor: bisherige Ausgabe wird gelöscht\n\n\n\RESET ARDUINO\n**********************\nTaster startet das Programm neu\n\n\n\ONBOARD LED\n**********************\nLED kann über Pin13 angesteuert werden + +ardublock.ui.version=v2.2 beta3 C-Names + +ardublock.ui.appprefix.standard=Basic +ardublock.ui.appprefix.pro=Pro +ardublock.ui.appprefix.sim=Simulator + +#ERROR +#**************************** +ardublock.error_msg.unset_variable=Die Variable ist unbestimmt. Bevor die Variable lesend verwendet werden kann, muss ihr ein Wert zugewiesen werden. +ardublock.error_msg.digital_var_slot=Der 'Variable'-Sockel benötigt einen 'digitale_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.number_local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.number_var_slot= Der 'Variable'-Sockel benötigt einen 'analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.number_slot= Der Sockel benötigt einen 'analoge_Variable'-Block oder einen "Analoger Wert"-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.long_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_langen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.double_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_dezimalen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.char_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Zeichen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.array_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Tabelle'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.number_const_write=Eine Konstante kann nicht mit einem neuen Wert beschrieben werden. Verwende den \"Setze Variable"-Block nur einmal für jede Konstante! +ardublock.error_msg.array_size_slot=Der 'Größe' Slot muss einen analogen Wert enthalten +ardublock.error_msg.string_var_slot=Der 'Variable'-Slot benötigt einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.string_slot= Der 'Wert'-Slot benötigt einen 'String_Variable'-Block oder einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_X_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block! +ardublock.error_msg.var_value_slot=Der Sockel benötigt einen 'Variable' oder 'Wert'-Block.\nTIPP: Schaue an dem hervorgehobenen Block! +ardublock.error_msg.var_value_slot=Es ist nur ein Rueckgabeparameter pro Unterprogramm erlaubt! +ardublock.error_msg.Digital_pin_slot=Pin# muss einer Pin-Nummer des Arduino-Boards entsprechen +ardublock.error_msg.Analog_pin_slot=Pin# muss einer analogen Pin-Nummer des Arduino-Boards entsprechen +ardublock.error_msg.Serial_Read_slot=Der 'nächstes Zeichen' Sockel benötigt einen 'Serial read'- oder 'softSerial read'-Block +ardublock.error_msg.wrong_block_header=Dieser Block kann nicht im Kopfteil des Programms verwendet werden +ardublock.error_msg.stepper_duplicated=Es gibt schon einen Stepper mit diesem Namen +ardublock.error_msg.stepper_not_existing=Es gibt keinen Stepper mit diesem Namen +ardublock.error_msg.paste.invalid=Zwischenablage enthält keine ArduBlock-Blöcke +ardublock.error_msg.paste.notpossible=Einfügen ohne Blöcke nicht möglich. + +ardublock.error_msg.no_sim_for_block=Dieser Block ist für die Simulation nicht geeignet. + +#TRANSLATOR +#**************************** +ardublock.translator.exception.subroutineNameDuplicated=Zwei oder mehr Unterprogramme haben den selben Namen! +ardublock.translator.exception.noLoopFound=Keine Hauptschleife gefunden\! +ardublock.translator.exception.multipleLoopFound=Mehrere Hauptschleifen gefunden\! +ardublock.translator.exception.socketNull=Ein benötigter Wert, Variablenname oder eine Bedingung fehlt!\nTIPP: Suche nach einem leeren Sockel an dem hervorgehobenen Block! +ardublock.translator.exception.socketNull.consolePrint=Der Name des Blocks: +ardublock.translator.exception.subroutineNotDeclared=Unterprogramm nicht deklariert! +ardublock.translator.exception.subroutineNotDeclared.consolePrint=Der Name des Unterprogramms: + +#MESSAGE +#**************************** +message.title.error=Fehler +message.title.question=Frage +message.content.open_unsaved=Das Ardublock-Programm hat sich geändert, soll es gespeichert werden? +message.content.overwrite=Soll das vorhandene Programm überschrieben werden? +message.content.overwriteDefault=Soll die Programmvorlage überschrieben werden? +message.file_not_found=Datei wurde nicht gefunden oder der Zugriff wurde verweigert. +message.file_not_found_new_file=Datei wurde nicht gefunden oder der Zugriff wurde verweigert.\nSoll eine neue Datei erstellt werden? +message.question.newfile_on_workspace_changed=Das Programm hat sich geändert, soll eine neue Ardublock-Datei erstellt werden? +message.content.overwriteImage=Soll das vorhandene Bild überschrieben werden? + +################## +# BLOCK CONFIG # +################## + +#COMMON +#**************************** +bg.dummy=Dummy +bg.dummy.description=Dummy Beschreibung + +bc.commands=Befehle +bc.pin_number=Pin +bc.pin_number_analog=Pin A +bc.pwm_pin_number=~Pin +bc.value=Wert +bc.variable=Variable +bc.digital=digital +bc.analog=analog +bc.char=char +bc.message=string + +#CONTROL +#**************************** +bd.control=Steuerung + +bg.controlDivider1=| Hauptschleifen | +bg.controlDivider2=| Verzweigungen | +bg.controlDivider3=| Schleifen | +bg.controlDivider4=| Warten | + +bg.loop=loop +#legacy support +bg.loop1=loop +bg.loop1.description=Hauptschleife loop() +bg.loop2=loop +bg.loop2.description=Hauptschleife loop() +bg.loop3=loop +bg.loop3.description=Hauptschleife loop() +#End of legacy support +bg.program=Programm +bg.sketch=Programm +bg.setup=Setup +bg.if=if +bg.elseif=else if +bg.else=else +bg.ifelse=if/else +bg.repeat_times=for +bg.repeat=for +bg.repeat_control= +bg.break=break +bg.delay=delay +bg.delay_microseconds=delayMicroseconds +bg.while=while +bg.do_while=do while +bg.wait=while (millis) + +bg.program.description=Schleife und Setup +bg.sketch.description=Programm mit global-Teil, setup() und loop() +bg.loop.description=Schleife mit automatischem Setup +bg.delay.description=Warte Millisekunden. Solange tut das Programm nichts +bg.if.description=Führe Befehle aus, wenn die Bedingung WAHR ist +bg.elseif.description=Führe die Befehle aus wenn "falls-Block" FALSCH ist und Bedingung WAHR \n->falls-Block wird benoetigt!! +bg.else.description=Führe die Befehle aus wenn "falls-Block" (und evtl. "sonst-falls") FALSCH ist \n->falls-Block wird benoetigt!! +bg.ifelse.description=Führe die ersten Befehle aus wenn die Bedingung WAHR ist, sonst die zweiten +bg.while.description=Führe Befehle aus, solange die Bedingung WAHR ist +bg.do_while.description=Führe Befehle aus, solange die Bedingung WAHR ist +bg.repeat_times.description=Wiederhole die Befehle x-mal +bg.repeat.description=Wiederhole die Befehle x-mal. Die Wiederholungen werden in der Variable gespeichert +bg.repeat_control.description= +bg.break.description=Beende die aktuelle Schleife\nACHTUNG: Nicht in der Hauptschleife verwenden! +bg.delay_microseconds.description=Warte Mikrosekunden. Solange tut das Programm nichts +bg.wait.description=Die Bloecke innerhalb dieses Blocks werden ausgeführt x Millisekunden ausgeführt. + +bc.head= +bc.setup=setup +bc.loop=loop +bc.loop.description=Liste mit Befehlen die fortlaufen wiederholt wird. + +bc.do=mache +bc.var=Name der Iterationsvariable +bc.microseconds=Microsekunden +bc.milliseconds=Millisekunden +bc.transmit=uebertrage +bc.repeat_times=mal +bc.test=teste +bc.then=dann +bc.else=sonst +bc.condition=teste +bc.start=start +bc.end=stop +bc.increment=Schritte von +bc.time=Millisekunden +bc.sub_var = Uebergabewert +bc.sub_return = Rückgabewert +bc.irName = ISR Name +bc.irNumber = IR Nummer +bc.irType = IR Modus +bc.fcn_description=Beschreibung + +#SUBROUTINES +#**************************** +bd.subroutines = Unterprogramme + +bg.subroutineDivider1=| Ohne Uebergabewerte | +bg.subroutineDivider2=| Mit Uebergabewerten | +bg.subroutineDivider3=| Unterbrechungsprogramm | + +bg.subroutine_param = up_Unterprogramm +bg.subroutine_ref = up_Unterprogramm +bg.subroutine_ref_digital = up_Unterprogramm +bg.subroutine_ref_number = up_Unterprogramm +bg.param_digital = verbinde +bg.param_number = verbinde +bg.param_char = verbinde +bg.param_ref_digital = verbinde +bg.param_ref_number = verbinde +bg.param_ref_char = verbinde +bg.interrupt=interrupt + +bg.subroutine_param.description = Unterprogramm +bg.subroutine_ref.description = Aufruf Unterprogramm +bg.subroutine_ref_digital = Aufruf Unterprogramm +bg.subroutine_ref_number = Aufruf Unterprogramm +bg.param_digital.description = Verbinder für digitalen Parameter +bg.param_number.description = Verbinder für analogen Parameter +bg.param_char.description = Verbinder für Zeichen als Parameter +bg.param_ref_digital.description = Verbinder für digitalen Uebergabewert +bg.param_ref_number.description = Verbinder für analogen Uebergabewert +bg.param_ref_char.description = Verbinder für Zeichen als Uebergabewert +bg.interrupt.description=Interrupt-Block\nIR-Nr.0 = Pin2\nIR-Nr.1 = Pin3\n\nIR-Mode\n0: LOW\n1: HIGH\n2: RISING\n3: FALLING\n4: CHANGE\n + +bc.param_connector=naechster Uebergabewert + +#legacy support +bg.subroutine_com=Unterprogramm +bg.subroutine-ref=Unterprogramm +bg.subroutine_var_com=UP_mit_Uebergabe +bg.subroutine-ref_var=UP_mit_Uebergabe +bg.subroutine_varret_com=UP_mit_Rueckgabe +bg.subroutine-ref_varret=UP_mit_Rueckgabe +bg.ref_var=Uebergabe_Variable + +bg.subroutine_com.description=Erstellt ein Unterprogramm.\nDas Unterprogramm muss im Hauptprogramm aufgerufen werden +bg.subroutine-ref.description=Ruft das Unterprogramm mit gleichem Namen auf +bg.subroutine_varret_com.description=Erstellt ein Unterprogramm mit Übergabe- und Rückgabewert +bg.subroutine-ref_varret.description=Ruft das Unterprogramm mit gleichem Namen auf.\n Gibt den Rückgabewert vom Unterprogramm aus und übergibt den Übergabewert +bg.subroutine_var_com.description=Erstellt ein Unterprogramm mit Übergabewert +bg.subroutine-ref_var.description=Ruft das Unterprogramm mit gleichem Namen auf und übergibt den Übergabewert + +bg.subroutine_varret=UP_mit_Rueckgabe +bg.subroutine_var=UP_mit_Uebergabe +bg.subroutine=Unterprogramm +bg.subroutine_varret.description=Erstellt ein Unterprogramm mit Übergabe- und Rückgabewert +bg.subroutine_var.description=Erstellt ein Unterprogramm mit Übergabewert +bg.subroutine.description=Erstellt ein Unterprogramm.\nDas Unterprogramm muss im Hauptprogramm aufgerufen werden + +#OUTPUT +#**************************** +bd.output=Output + +bg.outputDivider1=| Pins | +bg.outputDivider2=| NeoPixel LEDs | +bg.outputDivider3=| Toene | +bg.outputDivider4=| Servomotoren | +bg.outputDivider5=| Schrittmotoren | + +bg.pin-write-analog=analogWrite +bg.pin-write-digital=digitalWrite +bg.pin-mode-output= pinMode OUTPUT +bg.servo_default=Servo +bg.tone=tone +bg.tone_time=tone +bg.no_tone=noTone +bg.attach_servo_default=attachServo +bg.detach_servo_default=detachServo + +bg.neopixel_init=Pixel Setup +bg.neopixel_pixel_color=Pixel setPixelColor +bg.neopixel_show= Pixel show +bg.neopixel_brightness=Pixel setBrightness +bg.stepper_2pin=Stepper Setup +bg.stepper_4pin=Stepper Setup +bg.stepper_set_rpm=Stepper setSpeed +bg.stepper_steps=Stepper step + +bg.attach_servo_default.description=Servo verbinden +bg.detach_servo_default.description=Servo trennen +bg.servo_default.description=Steuere einen Servo an +bg.stepper_2pin.description=Setup für einen Schrittmotor mit 2-Pin-Ansteuerung +bg.stepper_4pin.description=Setup für einen Schrittmotor mit 4-Pin-Ansteuerung +bg.stepper_set_rpm.description=Setze Geschwindigkeit für Schrittmotor (Umdrehungen pro Minute) +bg.stepper_steps.description=Bewege Schrittmotor X Schritte +bg.tone.description=Generiert ein Rechtecksignal mit der angegebenen Frequenz(und 50 % Tastverhältnis) auf dem Pin. +bg.tone_time.description=Generiert ein Rechtecksignal für eine bestimmte Zeit mit der angegebenen Frequenz(und 50 % Tastverhältnis) auf dem Pin. +bg.no_tone.description=Beendet das Rechtecksignals das durch tone() ausgelöst wurde. +bg.pin-write-digital.description=Ausgangwert für digitalen Pin festlegen [HIGH / LOW] +bg.pin-write-analog.description=PWM-Ausgang erhält Wert [0-255] +bg.pin-mode-output.description= Setze Pin als Ausgang (OUTPUT) +bg.neopixel_brightness.description=Stellt die Helligkeit der gesamten Kette ein [0...255] +bg.neopixel_pixel_color.description=Farbewerte fuer einen bestimmten Pixel festlegen (RGB [0...255]) +bg.neopixel_init.description=Initialisiert die RGB-Pixel\nSchnittstelle: NEO_KHZ800 / NEO_KHZ400\nFarbfolge: NEO_GRB / NEO_RGB +bg.neopixel_show.description=Daten werden erst mit diesem Befehl an die Pixel übertragen + +bc.steps=Schritte/U +bc.speed=U/min +bc.red=Rot +bc.blue=Blau +bc.green=Gruen +bc.brightness=Helligkeit +bc.Nb_of_Led=Wie viele Pixel +bc.Nb_of_Led.description=Wie viele Pixel hat die Kette +bc.Pixel_Nb=Nummer Pixel +bc.Pixel_Nb.description=Welches Pixel soll programmiert werden (beginnend mit 0) +bc.schnittstelle=Schnittstelle +bc.farbfolge=Farbfolge +bc.angle=Winkel +bc.frequency =Frequenz + +#INPUT +#**************************** +bd.input=Input + +bg.inputDivider1=| Pins | +bg.inputDivider2=| Touch | +bg.inputDivider3=| Sensoren | + +bg.pin-read-analog=analogRead +bg.pin-read-digital=digitalRead +bg.pin-read-digital-pullup=inputPullup +bg.pin-mode-input=pinMode INPUT +bg.LGI_Ultrasonic=lese Ultraschall-Sensor + +bg.LGI_Qtouch_Init1=Setup fuer Q-Touch-Button1 +bg.LGI_Qtouch_Init2=Setup fuer Q-Touch-Button2 +bg.LGI_Qtouch_Init3=Setup fuer Q-Touch-Button3 +bg.LGI_Qtouch_Button1_getOffset=Offset von Q-Touch-Button1 +bg.LGI_Qtouch_Button2_getOffset=Offset von Q-Touch-Button2 +bg.LGI_Qtouch_Button3_getOffset=Offset von Q-Touch-Button3 +bg.LGI_Qtouch_Button1_getRaw=Raw-Wert von Q-Touch-Button1 +bg.LGI_Qtouch_Button2_getRaw=Raw-Wert von Q-Touch-Button2 +bg.LGI_Qtouch_Button3_getRaw=Raw-Wert von Q-Touch-Button3 +bg.LGI_Qtouch_Button1_isTouched=Q-Touch-Button1 beruehrt? +bg.LGI_Qtouch_Button2_isTouched=Q-Touch-Button2 beruehrt? +bg.LGI_Qtouch_Button3_isTouched=Q-Touch-Button3 beruehrt? +bg.LGI_Qtouch_Slider_Init=Q-Touch-Slider Setup +bg.LGI_Qtouch_Slider_getTouchPosition=Wert von Q-Touch-Slider +bg.LGI_Qtouch_Slider_getOffset1=Offset1 von Q-Touch-Slider +bg.LGI_Qtouch_Slider_getOffset2=Offset2 von Q-Touch-Slider +bg.LGI_Qtouch_Slider_getOffset3=Offset3 von Q-Touch-Slider +bg.dht_sensor_setup=DHT begin +bg.dht_sensor_read_temp=DHT readTemperature +bg.dht_sensor_read_humid=DHT readHumidity +bg.dht_sensor_calc_index=DHT computeHeatIndex + +bg.pin-read-analog.description=Liest den analogen Wert vom Pin. 0V = 0. 5V = 1023 +bg.pin-read-digital.description=Liest den digitalen Wert vom Pin ein (HIGH or LOW) +bg.pin-read-digital-pullup.description=Setzt den Pin auf Eingang mit einem Pullup-Widerstand\n Gibt HIGH zurück, wenn nichts angeschlossen ist +bg.pin-mode-input.description= Setze Pin als Eingang (INPUT) +bg.LGI_Ultrasonic.description=Lese Messwert vom Unltraschallsensor +bg.LGI_Qtouch_Init1.description=Setup fuer Q-Touch-Button1 +bg.LGI_Qtouch_Init2.description=Setup fuer Q-Touch-Button2 +bg.LGI_Qtouch_Init3.description=Setup fuer Q-Touch-Button3 +bg.LGI_Qtouch_Button1_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück +bg.LGI_Qtouch_Button2_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück +bg.LGI_Qtouch_Button3_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück +bg.LGI_Qtouch_Button1_getRaw.description=Gibt den gemessenen, analogen Wert zurück +bg.LGI_Qtouch_Button2_getRaw.description=Gibt den gemessenen, analogen Wert zurück +bg.LGI_Qtouch_Button3_getRaw.description=Gibt den gemessenen, analogen Wert zurück +bg.LGI_Qtouch_Button1_isTouched.description=Gibt WAHR zurück, wenn Button1 berührt wird +bg.LGI_Qtouch_Button2_isTouched.description=Gibt WAHR zurück, wenn Button2 berührt wird +bg.LGI_Qtouch_Button3_isTouched.description=Gibt WAHR zurück, wenn Button3 berührt wird +bg.LGI_Qtouch_Slider_Init.description=QTouch-Slider initialisieren +bg.LGI_Qtouch_Slider_getTouchPosition.description=Gibt die Position vom Q-Touch-Slider zurük [0...100] +bg.LGI_Qtouch_Slider_getOffset1.description=Ermittelt den Offset vom ersten Slider-Element +bg.LGI_Qtouch_Slider_getOffset2.description=Ermittelt den Offset vom zweiten Slider-Element +bg.LGI_Qtouch_Slider_getOffset3.description=Ermittelt den Offset vom dritten Slider-Element +bg.dht_sensor_setup.description=Setup fuer DHT Sensor\nFestlegen des Anschlusspins\nFestlegen des Sensor-Typs\nDHT11, DHT21, DHT22 +bg.dht_sensor_read_temp.description=Lese Temperatur in °C +bg.dht_sensor_read_humid.description=Lese Luftfeuchtigkeit in % +bg.dht_sensor_calc_index.description=berechne Hitzeindex in °C\n(gefuehlte Temperatur) + +bc.analogpin_number=#AnalogPin +bc.dhtType=DHT +bc.DHTtemp=Temperatur +bc.DHThumid=Luftfeuchtigkeit + +#LOGIC +#**************************** +bd.logic=Log. Operatoren +#bd.logic=Tests + +bg.logicDivider1=| Logische Verknuepfungen | +bg.logicDivider2=| Vergleiche | +bg.logicDivider3=| Bit Operationen | + +bg.not_equal_poly= != +bg.equal_poly= == +bg.equal_digital=== +bg.not_equal_digital=!= +bg.greater=> +bg.greater_equal=>= +bg.less=< +bg.less_equal=<= +bg.not=! (NOT) +bg.not_equal=!= +bg.and=&& (AND) +bg.or=|| (OR) +bg.equal_digital=== +bg.not_equal_digital=!= +bg.bit_and=& +bg.bit_or=| +bg.bit_xor=^ +bg.bit_not=~ +bg.bit_shift_left=<< +bg.bit_shift_right=>> + +bg.greater.description=WAHR, wenn der erste Wert größer als der Zweite ist +bg.less.description=WAHR, wenn der erste Wert kleiner als der Zweite ist +bg.equal.description=WAHR, wenn beide analogen Werte identisch sind +bg.equal_digital.description=WAHR, wenn beide digitalen Werte identisch sind +bg.greater_equal.description=WAHR, wenn der erste Wert größer oder gleich dem Zweiten ist +bg.less_equal.description=WAHR, wenn der erste Wert kleiner oder gleich dem Zweiten ist +bg.not_equal.description=WAHR, wenn NICHT beide analogen Werte identisch sind +bg.not_equal_digital.description=WAHR, wenn NICHT beide digitalen Werte identisch sind +bg.and.description=UND - WAHR, wenn beide beide Bedingungen erfüllt sind. +bg.or.description=ODER - WAHR, wenn eine oder beide Bedingungen erfüllt sind. +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.description=bitweises UND +bg.bit_or.description=bitweises ODER +bg.bit_xor.description=bitweises EXCLUSIV-ODER +bg.bit_not.description=bitweises NICHT +bg.bit_shift_left.description=verschiebe Bits nach links +bg.bit_shift_right.description=verschiebe Bits nach rechts + +#OPERATORS +#**************************** +bd.operators=Math. Operatoren + +bg.mathDivider1=| Operatoren | +bg.mathDivider2=| Signalanpassung | +bg.mathDivider3=| Zufallszahl | + +bg.constrain=constrain +bg.abs=abs +bg.addition=+ +bg.cos=cos +bg.division=/ +bg.equal=== +bg.map=map +bg.map_common=map [0, 1023] to [0, 255] +bg.max=max +bg.min=min +bg.modulo=% +bg.multiplication=x +bg.pow=pow +bg.random=random +bg.random_range=random +bg.sin=sin +bg.sqrt=sqrt +bg.subtraction=- +bg.tan=tan + +bg.addition.description=Summe zweier Zahlen +bg.subtraction.description=Differenz zweier Zahlen +bg.multiplication.description=Produkt zweier Zahlen +bg.division.description=Quotient zweier Zahlen +bg.random.description=Erzeuge Zufallszahl zwischen "0" und "max-1" +bg.map_common.description=Ordne die Werte von [0, 1023] zu den Werten von [0, 255] +bg.map.description=Ordne Werte vom Bereich "von" zum Bereich "zu" +bg.constrain.description=Beschränke eine analoge Zahl auf einen Bereich +bg.random_range.description=Erzeuge Zufallszahl zwischen "min" und "max-1" + +bc.max=max +bc.min=min +bc.to=bis +bc.fromLow= in Low +bc.fromHigh=in High +bc.toLow=out Low +bc.toHigh=out High +bc.from=von +bc.base=Basis +bc.exponent=Exponent +bc.low=unterer +bc.high=oberer +bc.element = Element + +#CAST +#**************************** +bd.cast=Typ Konvertierung + +bg.cast_number=(int) +bg.cast_number_byte=(byte) +bg.cast_number_long=(long) +bg.cast_number_float=(float) +bg.cast_byte_char=(char) +bg.cast_char_byte=char zu byte +bg.cast_low_int_char=int zu char +bg.cast_up_int_char=(int >> 8) zu char +bg.cast_char_int=char zu int +bg.cast_byte_int=byte zu int + +bg.cast_number.description=wandle zu int +bg.cast_number_byte.description=wandle zu byte +bg.cast_number_long.description=wandle zu long +bg.cast_number_float.description=wandle zu float +bg.cast_byte_char.description=wandle byte zu char +bg.cast_char_byte.description=wandle char zu byte +bg.cast_low_int_char.description=wandle unteren Teil von int Wert zu char +bg.cast_up_int_char.description=wandle oberen Teil von int Wert zu char +bg.cast_char_int.description=erzeuge int Wert aus zwei char-Zeichen +bg.cast_byte_int.description=erzeuge int Wert aus zwei byte + +bc.lowerByte=unteres byte +bc.upperByte=oberes byte + +#NUMBERS +#**************************** +bd.number=Variablen/Konstanten + +bg.numberDivider1=| Zeit ab Start | +bg.numberDivider2=| Digital | +bg.numberDivider3=| Analog | +bg.numberDivider4=| Zeichen/Text | + +bg.millis=millis +bg.digital-high=HIGH +bg.digital-low=LOW +bg.true=true +bg.false=false + +bg.string=ABCD +bg.char=A +bg.number=1 +bg.setter_variable_digital=Setze bool Variable +bg.setter_variable_number=Setze int Variable +bg.setter_variable_number_byte=Setze byte Variable +bg.setter_variable_number_long=Setze long Variable +bg.setter_variable_number_float=Setze float Variable +bg.setter_variable_char=Setze char Variable +bg.setter_variable_string=Setze char-Array +bg.variable_digital=bool_Variable +bg.constant_digital=bool_Konstante +bg.variable_number=int_Variable +bg.constant_number=int_Konstante +bg.variable_char=char_Variable +bg.local_variable_char=lokale_char_Variable +bg.variable_string=char_Array +bg.local_variable_string=lokales_char_Array +bg.variable_file=File_Variable +bg.local_variable_file=lokale_File_Variable +bg.local_variable_number=lokale_int_Variable +bg.local_variable_digital=lokale_bool_Variable + +bg.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert) +bg.true.description=digitaler Wert WAHR (true) +bg.false.description=digitaler Wert FALSCH (false) +bg.digital-high.description=Pin HIGH +bg.digital-low.description=Pin LOW +bg.char.description=Ein ASCII-Zeichen +bg.number.description=analoger Ganzzahlwert (int)-Wert (-32,768 bis +32,767) +bg.variable_number.description=Name der analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab +bg.constant_number.description=Name der analogen Konstante (int)\nDie Konstante kann nur einmal gesetzt werden\nDatentyp hängt vom \"Setze-Block\" ab +bg.variable_digital.description=Name der digitalen Variable (bool) +bg.constant_digital.description=Name der digitalen Konstante (bool)\nDie Konstante kann nur einmal gesetzt werden +bg.variable_string.description=Name der Zeichenketten Variable (char-Array) +bg.local_variable_string.description=Name der lokalen Zeichenketten Variable (char-Array) +bg.setter_variable_number.description=Setze eine analoge Variable (int).\n-32,768 bis +32,767 +bg.setter_variable_number_byte.description=Setze eine kurze analoge Variable (byte).\n 0 bis 255 +bg.setter_variable_number_long.description=Setze eine lange analoge Variable (long). \n-2,147,483,648 bis 2,147,483,647 +bg.setter_variable_number_float.description=Setze eine dezimale Variable (float).\n +/- 3.4028235E+38 +bg.setter_variable_digital.description=Setze eine digitale Variable (bool).\nHIGH or LOW +bg.setter_variable_string.description=Setze eine Zeichenkette Variable (char-Array) +bg.setter_variable_char.description=Setze ASCII-Zeichen Variable (char) +bg.variable_char.description=ASCII-Zeichen Variable (char) +bg.local_variable_char.description=lokale Zeichen Variable (char) +bg.string.description=Zeichenkette (char-Array) +bg.variable_file.description=Datei Variable +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 +bc.variable_number=int_Variable +bc.variable_number_long =long_Variable +bc.variable_number_float=float_Variable + +#TEST NEW BLOCKDESIGN +bg.setter_variable_analog== +bg.setter_variable_analog.description=Schreibe neuen Wert in int Variable +bg.create_variable_analog== +bg.create_variable_analog.description=Erstelle neue int Variable\nOptional mit Startwert +bg.create_array_analog== +bg.create_array_analog.description=Erstelle neues int Array\nOptional mit Startwert + +#ARRAYS +#**************************** +bd.array=Tabellen + +bg.arrayDivider1=| analoge Tabellen | +bg.arrayDivider2=| Zeichenketten | + +bg.create_char_array=Erstelle char-Array +bg.read_char_array=lese char-Zeichen +bg.setter_char_array=setze char-Zeichen +bg.create_number_array=Erstelle int-Array +bg.create_number_byte_array=Erstelle byte-Array +bg.create_number_long_array=Erstelle long-Array +bg.create_number_float_array=Erstelle float-Array +bg.setter_number_array=setze Array-Feld +bg.read_number_array=lese Array-Feld + +bg.create_char_array.description=Erstelle char-Array +bg.read_char_array.description=lese Zeichen (char) an Position +bg.setter_char_array.description=setze Zeichen (char) an Position +bg.create_number_array.description=Erzeuge ein Array für analoge Werte (int)\n-32,768 bis +32,767 +bg.create_number_byte_array.description=Erzeuge ein Array für kurze analoge Werte (byte)\n 0-255 +bg.create_number_long_array.description=Erzeuge ein Array für lange analoge Werte (long)\n-2,147,483,648 bis 2,147,483,647 +bg.create_number_float_array.description=Erzeuge ein Array für dezimale Werte (float)\n +/- 3.4028235E+38 +bg.setter_number_array.description=Setze den Wert eines Array-Feldes +bg.read_number_array.description=Lese den Wert eines Array-Feldes + +bc.position=Stelle +bc.array=Array-Name +bc.vecsize=Anzahl Werte +bc.number_chars=Anzahl Zeichen + +#COMMUNICATION +#**************************** +bd.communication=Kommunikation + +bg.communicationDivider1=| Seriell | +bg.communicationDivider2=| Software Seriell | +bg.communicationDivider3=| Verbinder | +bg.communicationDivider4=| PubSub Netzwerk | + +bg.glue_poly=verbinde +bg.glue_msg=verbinde +bg.glue_sb=verbinde +bg.glue_sn=verbinde +bg.serial_parseInt=Serial parseAnalog +bg.serial_available=Serial available +bg.serial_read=Serial read +bg.serial_print=Serial print +bg.serial_begin=Serial begin +bg.soft_serial_begin=softSerial begin +bg.soft_serial_print=softSerial print +bg.soft_serial_read=softSerial read +bg.soft_serial_available=softSerial available +#bg.serial_println=serial println +bg.serial_write=serial write +bg.serialEvent=serialEvent +bg.glue_digital=verbinde +bg.glue_number=verbinde +bg.glue_char=verbinde +bg.glue_string=verbinde +bg.tele_set_frame=schreibe Daten in Frame +bg.tele_read_frame=lese Frame seriell ein +bg.tele_read_data_frame=lese Daten aus Frame +bg.mqtt_set_frame=erstelle MQTT Frame +bg.mqtt_read_frame=lese aus MQTT Frame + +bg.psn_broker=Broker psnName +bg.psn_client=Client psnName +bg.psn_callback=psnClientCallback +bg.psn_handle_network=psnName handleNetwork +bg.psn_data_to_send=psnName isDataToSend? +bg.psn_publish=psnName publish +bg.psn_subscribe=psnName subscribe +bg.psn_unsubscribe=psnName unsubscribe + +bg.serial_write.description=Sende Nachricht via Serial +bg.serial_print.description=Sende Nachricht via Serial +bg.serial_read.description=Lese Zeichen via Serial als kurze analoge Variable ein\n(siehe ASCII-Tabelle) +bg.serial_available.description=Daten verfügbar an Serial +#bg.serial_println.description=Send message via Serial port with a return +bg.serial_begin.description=Starte Serial Schnittstelle mit bestimmter Baudrate +bg.soft_serial_begin.description=Starte SoftwareSerial Schnittstelle mit bestimmter Baudrate +bg.soft_serial_print.description=Sende Nachricht via Software Serial +bg.soft_serial_read.description=Lese Nachricht via Software Serial +bg.soft_serial_available.description=Daten verfügbar an Software Serial +bg.serial_parseInt.description=Lese den nächsten analogen Wert via Serial +bg.glue_sn.description=Verbindet Zahlen mit einer Zeichenkette +bg.glue_sb.description=Verbindet digitale Werte mit einer Zeichenkette +bg.glue_poly.description=Verbindet Zeichen mit einer Zeichenkette +bg.glue_msg.description=Verbinde Zeichenketten miteinander +bg.serialEvent.description=Unterprogramm serialEvent, wird ausgeführt wenn Daten an Serial +bg.glue_digital.description=Verbinde digitalen Wert mit Zeichenkette +bg.glue_number.description=Verbinde analogen Wert mit Zeichenkette +bg.glue_char.description=Verbinde Zeichen mit Zeichenkette +bg.glue_string.description=Verbinde Zeichenkette mit Zeichenkette +bg.tele_set_frame.description=schreibe Daten in den Telegramm-Rahmen +bg.tele_read_frame.description=lese Daten von der seriellen Schnittstelle im letsgoING-Telegramm-Format +bg.tele_read_data_frame.description=lese Daten aus dem Telegramm-Rahmen\n HINWEIS: Senderadresse 0 erhält Daten von allen Sendern +bg.mqtt_set_frame.description=schreibe Daten in MQTT-Rahmen\n(letsgoING-IOT-Modul) +bg.mqtt_read_frame.description=lese Daten aus MQTT-Rahmen\n(letsgoING-IOT-Modul) + +bg.psn_broker.description=Broker fuer PubSub Netzwerk erzeugen +bg.psn_client.description=Client fuer PubSub Netzwerk erzeugen +bg.psn_callback.description=Funktion wird automatisch aufgefufen wenn neue Daten empfangen werden +bg.psn_handle_network.description=Empfaengt Daten, ueberprueft ob gesendet werden kann und versendet Daten +bg.psn_data_to_send.description=Gibt zurück ob Daten zum Versenden bereit sind +bg.psn_publish.description=Daten zu Topic veroeffentlichen +bg.psn_subscribe.description=Topic abonnieren +bg.psn_unsubscribe.description=Topic nicht mehr abonnieren + +bc.ps_name=Name +bc.callback=Uebergabefunktion +bc.payloadVar=Nutzdaten-Variable +bc.payloadLengthVar=Nutzdaten-Laenge-Variable +bc.topicVar=Topic Variable +bc.topicLengthVar=Topic-Laenge-Variable +bc.print=print +bc.ln=neue Zeile +bc.rx_pin_number=Rx Pin +bc.tx_pin_number=Tx Pin +bc.baudrate=Baud +bc.sendAddress= Adr. Sender +bc.recAddress=Adr. Empfänger +bc.dataLength=Länge Daten [0-9] +bc.sendBuffer=zu sendender Frame +bc.recFrame=empfangener Frame +bc.recBuffer=Empfangspuffer +bc.recChars=Anz. empfangene Zeichen +bc.payload=Nutzdaten +bc.payloadLength=Länge Nutzdaten +bc.topic=Topic +bc.topicLength=Länge Topic +bc.command=Befehlsart +bc.nextChar=nächstes Zeichen +bc.dataComplete=Daten komplett + +#STORAGE +#**************************** +bd.storage=Speicher + +bg.storageDivider1=| EEPROM | +bg.storageDivider2=| SD Card | + +bg.eeprom_read=EEPROM read (byte) +bg.eeprom_write=EEPROM write (byte) +bg.eeprom_get=EEPROM get +bg.eeprom_put=EEPROM put +bg.eeprom_length=EEPROM +bg.sd_begin=SD begin +bg.sd_open=SD open +bg.sd_close=SD close +bg.sd_write=SD println +bg.sd_read=SD read +bg.sd_data_available=SD available +bg.sd_file_available=SD File exists + +bg.eeprom_read.description=lese einen kurzen analogen Wert (byte, 0-255) vom EEPROM. Jedes Byte entspicht einer EEPROM Adresse. +bg.eeprom_write.description=schreibe einen kurzen analogen Wert (byte, 0-255) auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse. +bg.eeprom_get.description=lese beliebigen Datentyp von EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen! +bg.eeprom_put.description=schreibe beliebigen Datentyp auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen! +bg.eeprom_length.description=länge des EEPROM +bg.sd_begin.description=starte SD Karte +bg.sd_open.description=\u00d6ffne Datei auf SD Karte\nmax. Laenge des Dateinamens 8 Zeichen \n+ 3 Zeichen Datentyp\nBsp.: datei1.txt +bg.sd_close.description=schließe Datei auf SD Karte +bg.sd_write.description=schreibe in Datei auf SD Karte +bg.sd_read.description=lese aus Datei auf SD Karte +bg.sd_data_available.description=Ungelesene Daten in Datei verfuegbar (SD Karte) +bg.sd_file_available.description=Datei verfuegbar (SD Karte) + +bc.eeprom_address=Adresse +bc.eeprom_data=Daten +bc.File=Datei +bc.sdFileVar = Datei-Variable +bc.sdFileName = Datei Name +bc.sdFileMode = Starte am Anfang +bc.sdWriteData= Daten +bc.sdCSPin = CS + +#CODE +#**************************** +bd.code=Kommentare/Code + +bg.codeDivider1=| Kommentare | +bg.codeDivider2=| C-Code einfuegen | + +bg.program_comment=Programmkopf +bg.code_head=Code im globalen Bereich +bg.code_comment_head=//Kommentar im globalen Bereich einfuegen +bg.code_loop=Code einfuegen +bg.code_comment=//Kommentar einfuegen + +bg.program_comment.description=Programmbeschreibung und Informationen als Kommentar anfügen +bg.code_loop.description=Code an dieser Stelle einfügen +bg.code_head.description=Code im globalen Bereich einfügen +bg.code_comment_head.description=Kommentar im globalen Bereich einfügen +bg.code_comment.description=Kommentar im Programm einfügen + +bc.prog_name=Dateiname +bc.prog_author=Autor +bc.prog_description=Beschreibung +bc.prog_date=Datum +bc.prog_version=Version +#**************************** \ No newline at end of file