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¶
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