Source code for modi_plus.module.input_module.dial
"""Dial module."""
import struct
from modi_plus.module.module import InputModule
[docs]
class Dial(InputModule):
PROPERTY_DIAL_STATE = 2
PROPERTY_OFFSET_TURN = 0
PROPERTY_OFFSET_SPEED = 2
@property
def turn(self) -> int:
"""Returns the angle of the dial between 0 and 100
:return: The dial's angle.
:rtype: int
"""
offset = Dial.PROPERTY_OFFSET_TURN
raw = self._get_property(Dial.PROPERTY_DIAL_STATE)
data = struct.unpack("h", raw[offset:offset + 2])[0]
return data
@property
def speed(self) -> int:
"""Returns the turn speed of the dial between -100 and 100
:return: The dial's turn speed.
:rtype: int
"""
offset = Dial.PROPERTY_OFFSET_SPEED
raw = self._get_property(Dial.PROPERTY_DIAL_STATE)
data = struct.unpack("h", raw[offset:offset + 2])[0]
return data