Neben vielen weiteren interessanten Möglichkeiten bietet die Extension AdvancedArduino auch die Möglichkeit, beliebigen C++-Code über eine include-Anweisung in das Skript aufzunehmen.
Dieser Code muss als einfache Textdatei irgendwo auf der lokalen Festplatte vorhanden sein.
Im folgenden Beispiel heißt die Datei get_key(AA).inc
void getKey(){
Taste = -1;
if(ir.keyPressed(22)){Taste = 0;}
if(ir.keyPressed(12)){Taste = 1;}
if(ir.keyPressed(24)){Taste = 2;}
if(ir.keyPressed(94)){Taste = 3;}
if(ir.keyPressed(8)){Taste = 4;}
if(ir.keyPressed(28)){Taste = 5;}
if(ir.keyPressed(90)){Taste = 6;}
if(ir.keyPressed(66)){Taste = 7;}
if(ir.keyPressed(82)){Taste = 8;}
if(ir.keyPressed(74)){Taste = 9;}
if(ir.keyPressed(64)){Taste = 10;}
if(ir.keyPressed(7)){Taste = 11;}
if(ir.keyPressed(21)){Taste = 12;}
if(ir.keyPressed(9)){Taste = 13;}
if(ir.keyPressed(25)){Taste = 14;}
if(ir.keyPressed(69)){Taste = 65;}
if(ir.keyPressed(70)){Taste = 66;}
if(ir.keyPressed(71)){Taste = 67;}
if(ir.keyPressed(68)){Taste = 68;}
if(ir.keyPressed(67)){Taste = 69;}
if(ir.keyPressed(13)){Taste = 70;}
}
Sie kann hier herunter geladen werden: getKey(AA).inc (0.9 KB)
Das zugehörige Programm liegt hier: Standard-Eingabe_IR.sb2 (304.4 KB)
Der wesentliche Unterschied liegt darin, dass die Eingaberoutine durch die def-Anweisung in das Programm übernommen wird. Der Aufruf erfolgt dann über einen code-Block aus der Extension AdvancedArduino.
Der Vorteil ist folgender: Die für viele Programme erforderliche Eingaberoutine braucht nur einmal erstellt zu werden. Das Problem, dass unter mBlock3 die eigenen Blöcke nicht zwischen verschiedenen Projekten kopiert werden können, ist damit umgangen.
Der Code für die include-Datei kann übrigens sehr einfach erzeugt werden: Es wird ein normales Skript erzeugt, das dann in die Arduino-IDE übernommen wird. Diese wird dann als .ino-Datei gespeichert und kann dann dort mit einem einfachen Texteditor extrahiert und eventuell nachbearbeitet werden.