In der Entwicklungsphase ist es oftmals hilfreich, Daten von Uhr oder Emulator zurück zum Terminalbereich der Espruino-IDE zu schicken.
Für diesen Zweck stehen zwei Verfahren zur Auswahl:
print
-Funktion oderDie globale Funktion print
akzeptiert ein oder mehrere Argumente
print('1st Argument','2nd Argument','3rd Argument');
wobei die einzelnen Argumente nacheinander und jeweils durch ein Leerzeichen voneinander getrennt an den Rechner geschickt werden. Zum Schluss wird auch noch ein Zeilenvorschub angehängt.
print
funktioniert sowohl im Emulator als auch auf einer echten Uhr.
Die Verwendung einer seriellen Schnittstelle lässt dem Programmierer mehr Kontrolle über die Art der Übertragung - z.B. kann man das automatische Anhängen eines Zeilenvorschubes verhindern.
Allerdings muss man verschiedene Schnittstellen nutzen, je nachdem ob man im Emulator oder mit einer echten Uhr arbeitet:
Serial1.print('Hello, World!');
Bluetooth.print('Hello, World!');
Sucht man eine Lösung, die in beiden Umgebungen funktioniert, bietet sich folgende Vorgehensweise an:
let ReturnChannel = (typeof Bluetooth === 'undefined' ? Serial1 : Bluetooth);
ReturnChannel.println('Hello, World!');
im Emulator ausführen auf Uhr ausführen
Plant man viele solcher Aufrufe, so stellt man besser eine passende Funktion bereit, die die Textausgabe vereinfacht:
let ReturnChannel = (typeof Bluetooth === 'undefined' ? Serial1 : Bluetooth);
function say () {
for (let i = 0, l = arguments.length; i < l; i++) {
ReturnChannel.print(arguments[i]);
}
}
function sayln () {
if (arguments.length === 0) {
ReturnChannel.println(' ');
} else {
for (let i = 0, l = arguments.length; i < l; i++) {
ReturnChannel.println(arguments[i]);
}
}
}
(die naheliegendere Lösung ReturnChannel.print.apply(this,arguments)
funktioniert leider nicht)