44 lines
No EOL
1.3 KiB
Python
44 lines
No EOL
1.3 KiB
Python
from compLib.LogstashLogging import Logging
|
|
from compLib.Spi import Spi, Register
|
|
import spidev
|
|
|
|
SENSOR_COUNT = 5
|
|
|
|
|
|
class IRSensor(object):
|
|
"""Access the different IR Sensors of the robot
|
|
"""
|
|
|
|
@staticmethod
|
|
def read(sensor: int) -> int:
|
|
if sensor <= 0 or sensor > SENSOR_COUNT:
|
|
raise IndexError("Invalid sensor specified!")
|
|
|
|
if sensor == 1:
|
|
return Spi.read(Register.IR_1_H, 2)
|
|
elif sensor == 2:
|
|
return Spi.read(Register.IR_2_H, 2)
|
|
elif sensor == 3:
|
|
return Spi.read(Register.IR_3_H, 2)
|
|
elif sensor == 4:
|
|
return Spi.read(Register.IR_4_H, 2)
|
|
elif sensor == 5:
|
|
return Spi.read(Register.IR_5_H, 2)
|
|
else:
|
|
return 0
|
|
|
|
@staticmethod
|
|
def set(sensor: int, on: bool):
|
|
if sensor <= 0 or sensor > SENSOR_COUNT:
|
|
raise IndexError("Invalid sensor specified!")
|
|
|
|
if sensor == 1:
|
|
Spi.write(Register.IR_1_LED, 1, on)
|
|
elif sensor == 2:
|
|
Spi.write(Register.IR_2_LED, 1, on)
|
|
elif sensor == 3:
|
|
Spi.write(Register.IR_3_LED, 1, on)
|
|
elif sensor == 4:
|
|
Spi.write(Register.IR_4_LED, 1, on)
|
|
elif sensor == 5:
|
|
Spi.write(Register.IR_5_LED, 1, on) |