Balíček brian.sensors

Podbalíčky

modul brian.sensors.BrianBrianComm

class brian.sensors.BrianBrianComm.BrianBrianComm(port: SensorPort, is_master: bool)

Základ: Sensor

Třída zajišťující komunikaci mezi dvěma zařízeními Brian připojenými přes senzorový port.

Senzor (druhý Brian) je automaticky registrován v konstruktoru základní třídy a odregistrován v jejím destruktoru.

V celém programu může být v daném okamžiku maximálně jedna instance libovolné třídy senzoru na port.

__init__(port: SensorPort, is_master: bool) None

Inicializuje nového obslužného komunikátoru pro přenos dat mezi Brian zařízeními na zadaném portu. Komunikaci lze inicializovat v jednom ze dvou režimů – master nebo slave, přičemž jeden konec musí být master a druhý slave.

Parametry:
  • port – Port senzoru, ke kterému je senzor připojen.

  • is_master – true, pokud má být použit v režimu master, false pro režim slave

available() int
Vrací:

bajty dostupné ke čtení

read(size: int | None = None) bytes

čte data přicházející z druhého zařízení Brian.

Parametry:

size – limit velikosti, kolik bajtů zkopírovat. Pokud není zadán, přečtou se všechna dostupná data.

Vrací:

přečtené bajty

Vyvolá:

OSError – Pokud dojde k chybě během operace zápisu.

Chybové kódy: MP_EIO: BrianBrianComm není připraven nebo je odpojen.

write(message: bytearray | str | bytes) int

Odešle zadaný buffer druhému zařízení Brian.

Parametry:

message – str, bytearray nebo bytes buffer obsahující skutečnou zprávu.

Vrací:

počet zapsaných bajtů

Vyvolá:

OSError – Pokud dojde k chybě během operace zápisu.

Chybové kódy: MP_EIO: BrianBrianComm není připraven nebo je odpojen.

modul brian.sensors.Sensor

class brian.sensors.Sensor.Sensor(port: SensorPort, sensor_type: AutoDetect)

Základ: object

Základní třída Sensor

__init__(port: SensorPort, sensor_type: AutoDetect)

Inicializuje třídu EV3 senzoru na zadaném portu.

Parametry:
  • port – Port senzoru, ke kterému je senzor připojen (sensors.SensorPort.S1 - sensors.SensorPort.S4).

  • sensor_type – Typ připojeného senzoru. sensor_port_probe.AutoDetect.ANALOG_P1 odpovídá LightSensorNXT a TouchSensorNXT, sensor_port_probe.AutoDetect.ANALOG_P6 odpovídá TouchSensor a sensor_port_probe.AutoDetect.PROTOCOL_UART_EV3 odpovídá ColorSensor, GyroSensor a UltrasonicSensor.

Vyvolá:

SensorPortAlreadyInUse – Při pokusu o vytvoření nového senzoru na portu, který je již využit.

__del__()

Deinicializuje senzor a uvolní port pro další použití.

close_sensor()

Deinicializuje senzor a uvolní port pro další použití.

is_connected() bool
Vrací:

True, pokud je senzor připojen a není právě rebootován, jinak False.

is_ready() bool

Stav připravenosti znamená, že pokus o čtení hodnot poskytne platné výsledky. Příklady důvodů neplatných výsledků:

  • Senzor není připojen (is_connected vrací False)

  • Senzor se restartuje nebo ještě není inicializován

  • Senzor mění režimy a změna ještě není dokončena

  • Připojený senzor není kompatibilní s tímto obslužným objektem (např. je připojen nesprávný typ senzoru).

Ve všech výše uvedených případech tato funkce vrátí False. :return: True, pokud jsou hodnoty připraveny k dalšímu čtení; jinak False.

wait_until_ready(timeout_ms: int = -1) bool

Čeká, až bude senzor připraven. Tato funkce je blokující. Při přepínání režimů senzor na krátkou dobu přechází do stavu ‚není připraven‘ (dokud není změna režimu plně propagována). Proto se doporučuje nejprve nastavit správný režim pomocí set_mode() a teprve poté volat tuto funkci. Platí pouze pro senzory s režimy.

Parametry:

timeout_ms – Maximální počet milisekund k čekání. Pokud je časový limit záporný, funkce bude čekat neomezeně.

Vrací úspěch:
  • True: Senzor je připraven.

  • False: Senzor není připraven a čas vypršel.

reboot() None

Vypněte napájení portu a znovu jej zapněte. Tím se senzor násilně restartuje.

Stav vypnutí napájení trvá přibližně 100 ms. V případě některých (většinou digitálních) senzorů může být potřeba další čas (~1 s nebo více) k nastartování a zpracování handshake připojení s Brianem.

modul brian.sensors.SensorPort

class brian.sensors.SensorPort.SensorPort(*values)

Základ: Enum

Konstanty portu senzoru

S1 = 0

Port senzoru 1

S2 = 1

Port senzoru 2

S3 = 2

Port senzoru 3

S4 = 3

Port senzoru 4

Obsah modulu

exception brian.sensors.SensorException

Základ: Exception

Výchozí výjimka senzoru

exception brian.sensors.SensorAlreadyClosedError

Základ: SensorException

Vyvoláno při pokusu o přístup k uzavřenému senzoru

exception brian.sensors.SensorIsNotReadyError

Základ: SensorException

Vyvoláno při pokusu o čtení hodnot ze senzoru, který není připraven

exception brian.sensors.SensorPortAlreadyInUse

Základ: SensorException

Vyvoláno při pokusu o registraci senzoru nebo sondy senzoru s autodetekcí na již používaný port