Aus Oxoscript wird NanoPy - mehr Infos

Klassen

logValue

Die logValue Klasse besteht aus einem Zeitstempel (dateTime) und einem Sensordaten-Wert (float).
Sie dient als Rückgabetyp der Funktion “logRead()”.

logData(C_TEMP)
lv = logRead(C_TEMP, 0)
lv.timeStamp.getEpoch() # => 1651765847
lv.data # => 23.251343

dateTime

Die dateTime Klasse besteht aus einem Epoch-Zeitwert (long) und einem Millisekunden-Wert (int).
Analog der Zeit-Funktionen können Uhrzeit-Funktionen wie z.B. dateTime.getHour() oder dateTime.getMillis() angewendet werden.
Sie wird bespielsweise für Zeitstempel beim Loggen von Sensorwerten verwendet.

dt:dateTime
dt.setTime(22, 33, 44)
dt.getHour()   # => 22
dt.getMinute() # => 33
dt.getSecond() # => 44

vector

Diese Klasse repräsentiert einen zweidimensionalen Kartesischen Vektor mit den Objekt-Variablen x und y (floats).

Folgende Funktionen sind implementiert:

normalize()
add(v:vector)
sub(v:vector)
addScalar(s:float)
subScalar(s:float)
mulScalar(s:float)
fromAngle(angle:float)
random()
magnitude()->float
distance(v:vector)->float
angle()->float
dot(v:vector)->float
limitToScreen(offset:float)
limit(xMin:float, xMax:float, yMin:float, yMax:float)
toString()->byte[30]

buttons

Die Buttons-Klasse hat für jeden Button eine booleschen Variable: up, down, left, right und middle.

Diese Klasse hat keine weiteren Funktionen und dient einzig als Rückgabetyp der Funktion “getButtons()”.

Muster:

def onDraw()
    b = getButtons()
    if b.up:
        # ...
    if b.down:
        # ...
    if b.left:
        # ...
    if b.right:
        # ...
    if b.middle:
        # ...

vector3D

Diese Klasse repräsentiert einen dreidimensionalen Vektor mit den Objekt-Variablen x,y, und z (floats).

Folgende Funktionen sind implementiert:

normalize()
add(v:vector3D)
sub(v:vector3D)
addScalar(s:float)
subScalar(s:float)
mulScalar(s:float)
fromAngle(alpha:float, theta:float)
random()
magnitude()->float
distance(v:vector3D)->float
dot(v:vector3D)->float
cross(v:vector3D)->vector3D
toString()->byte[40]