Aus Oxoscript wird NanoPy - mehr Infos

System-Funktionen

returnToMenu

  returnToMenu()->bool

Mit dieser Funktion springt man wieder zurück ins Menü.
Der Rückgabewert gibt an, ob der Benutzer das Programm wirklich verlassen hat.

    if getButton():
        if returnToMenu():
            return

exit

  exit()

Beendet das aktuelle Script und springt zurück in das Menü.

restart

  restart()

Startet die Oxocard neu.

setPrecision

  setPrecision(val:byte)

Formatiert beim Ausgeben von Float-Werten die Nachkommastellen:

f = 1.23931
setPrecision(2)
print(f)  # "1.24"
setPrecision(4)
print(f)  # "1.2393"

Es kann auch 0 angegeben werden. In dem Fall wird der ganzzahlige Wert angezeigt (gerundet, ohne Dezimalpunkt):

a = 1.2345
setPrecision(1)
print a  # 1.2
setPrecision(0)
print a  # 1

print

  print(str:byte[])

Sendet den definierten String-Parameter ans Terminal im NanoPy-Editor.

print("Hallo Welt!")

Wird der print()-Funktion eine Zahl oder eine Variabel übergeben, wird diese automatisch in einen String (bzw. byte[]) umgewandelt:

print(123)  # "123"
a = 1.23
print(a)    # "1.23"

Es ist sogar möglich Texte und Zahlen oder Variablen zu mischen:

v = vector(x=5,y=10)
print("x = " + v.x + "; y = " + v.y)  # "x = 5.0; y = 10.0"

setAutostart

  setAutostart()

Wenn die Autostartfunktion eingeschaltet wurde, wird bei einem Neustart der Oxocard (nach dem Verbinden mit dem Internet) direkt ins Startprogram gewechselt.

setAutostart(true)
setAutostart(false)

turnOff

  turnOff()

Schaltet die Oxocard aus.

sleep

  sleep(sec:long)

Schaltet die Oxocard aus und lässt sie nach x Sekunden wieder neustarten.

isConnected

  isConnected()->bool

Gibt true zurück, wenn die Karte mit dem Internet verbunden ist.

ipAddress

  ipAddress()->byte[16]

Gibt die aktuelle IP-Adresse als String (byte-Array) zurück.
Wenn die Karte nicht mit dem Internet verbunden ist, wird “0.0.0.0” zurückgegeben.

ipAddress() # => "192.168.42.164"

backlight

  backlight(value:float)

Schaltet das Hintergrundlicht des TFT-Displays ein (value=1) oder aus (value=0).

Mit Werten zwischen 0 und 1 (z.B. 0.1) kann das TFT-Display auch gedimmt werden.

Beachte:
Da das menschliche Auge Licht nicht linear (sondern logarithmisch) wahrnimmt, wird man erst bei kleineren Werten einen markanten Unterschied bemerken.

background(0, 255, 0)
drawText(60, 80, "Test123")
update()
for i in 20:
    backlight(1.0 - 0.05*i)
    delay(500)

runScript

  runScript(path:byte[])

Startet ein zuvor heruntergeladenes oder ein als Datei gespeichertes Script.

Das aktuelle Script wird beendet und mit dem neue Script ersetzt.

Falls das Script nicht vorhanden ist, wird ein “Datei nicht gefunden”-Laufzeitfehler ausgegeben.

Heruntergeladene Scripts werden im Ordner “user_scripts” abgelegt. Der Dateiname entspricht dem Namen im Editor, z.B. “My downloaded script” plus “.npy”-Dateiendung.

runScript("user_scripts/My downloaded script.npy")

Datei Beispiel:

if fileExists("hello.npy"):
    deleteFile("hello.npy")

open(C_WRITE, "hello.npy")
code = "drawText(35, 10, \"Hello World!\")\nupdate()"
i = 0
ch = code[i]
while ch != 0:
    writeByte(ch)
    i++
    ch = code[i]
close()

runScript("hello.npy")

textInput

  textInput(title:byte[], text:byte[])->byte[120]

Öffnet ein Text-Eingabefeld und gibt den eingegebenen Text zurück, sobald das OK-Symbol ausgewählt und bestätigt wurde.

str = textInput("Test", "123")
print(str)

getHardwareType

  getHardwareType()->byte

Gibt den Typ der aktuell verwendeten Oxocard zurück.

C_HW_GALAXY = 0
C_HW_ARTWORK = 1
C_HW_SCIENCE = 2
C_HW_SCIENCE_PLUS = 3
C_HW_CONNECT = 4

getLanguage

  getLanguage()->byte

Gibt die aktuell eingestellte Systemsprache zurück.

Verfügbare Sprachen:

C_LANGUAGE_EN
C_LANGUAGE_DE
C_LANGUAGE_FR

setLanguage

  setLanguage(lang:byte)

Setzt die Systemsprache des Geräts.

Verfügbare Sprachen:

C_LANGUAGE_EN
C_LANGUAGE_DE
C_LANGUAGE_FR

isCartridgeConnected

  isCartridgeConnected()

Nur Oxocard Connect

Gibt true zurück, wenn eine Cartridge angeschlossen ist, sonst false

isCartridgeEmpty

  isCartridgeEmpty()

Nur Oxocard Connect

Gibt true zurück, wenn auf der angeschlossenen Cartridge kein Skript gespeichert ist, false, wenn ein Skript gesetzt ist.

pauseCartridgeDetection

  pauseCartridgeDetection()

Nur Oxocard Connect

Pausieren Sie die automatische Erkennung von Cartridges. Wenn die Cartridge-Erkennung deaktiviert ist, wird das Autostart-Skript nicht gestartet.

resumeCartridgeDetection

  resumeCartridgeDetection()

Nur Oxocard Connect

Setzt die Erkennung fort, wenn eine Cartridge angeschlossen ist. Wenn die Erkennung aktiviert ist, wird das Autostart-Skript ausgeführt, wenn eines auf der Cartridge eingestellt ist.

getSystemTime

  getSystemTime()

Gibt die Zeit in Mikrosekunden seit dem Systemstart zurück. Diese Funktion ist nützlich, um die Zeit zwischen zwei Messungen zu messen.

t1 = getSystemTime()
# Code
t2 = getSystemTime()
delta = t2 - t1

wifiPause

  wifiPause()

Die Funktion unterbricht die WiFi-Kommunikation, bis wifiResume() aufgerufen wird.

Vorsicht: nach dem Aufruf wird die Verbindung zum Server unterbrochen. Es ist also nicht mehr möglich, Scripts zu übertragen.

wifiResume

  wifiResume()

Die Funktion stellt die Wifi-Verbindung wieder her, nachdem man sie mit wifiPause() unterbrochen hat.

storeDisplay

  storeDisplay()

Mit den neuen Funktionen storeDisplay() und resumeDisplay() kann man den aktuellen Bildschirminhalt zwischen speichern. storeDisplay() speichert hierbei den aktuellen Stand. Mit resumeDisplay() wird der Inhalt wieder in den Bildschirmspeicher übertragen.

Mit dieser Funktion kann man beispielsweise ein Overlay-Menü bauen, ohne dass der Hintergrund immer wieder neu gezeichnet werden muss.

resumeDisplay

  resumeDisplay()

Mit den neuen Funktionen storeDisplay() und resumeDisplay() kann man den aktuellen Bildschirminhalt zwischen speichern. storeDisplay() speichert hierbei den aktuellen Stand. Mit resumeDisplay() wird der Inhalt wieder in den Bildschirmspeicher übertragen.

Mit dieser Funktion kann man beispielsweise ein Overlay-Menü bauen, ohne dass der Hintergrund immer wieder neu gezeichnet werden muss.