self._channel = None
self._pwmpin = None
+ def _is_deinited(self):
+ if self._pwmpin is None:
+ raise ValueError("Object has been deinitialize and can no longer "
+ "be used. Create a new object.")
+
def _write_pin_attr(self, attr, value):
+ # Make sure the pin is active
+ self._is_deinited()
+
path = os.path.join(
self._sysfs_path,
self._channel_path.format(self._channel),
f_attr.write(value + "\n")
def _read_pin_attr(self, attr):
+ # Make sure the pin is active
+ self._is_deinited()
+
path = os.path.join(
self._sysfs_path,
self._channel_path.format(self._channel),
# Mutable properties
def _get_period(self):
+ period_ns = self._read_pin_attr(self._pin_period_path)
try:
- period_ns = int(self._read_pin_attr(self._pin_period_path))
+ period_ns = int(period_ns)
except ValueError:
raise PWMError(None, "Unknown period value: \"%s\"" % period_ns)
# Update our cached period
self._period = float(period)
+ period = property(_get_period, _set_period)
+
"""Get or set the PWM's output period in seconds.
Raises:
"""
def _get_duty_cycle(self):
+ duty_cycle_ns = self._read_pin_attr(self._pin_duty_cycle_path)
try:
- duty_cycle_ns = int(self._read_pin_attr(self._pin_duty_cycle_path))
+ duty_cycle_ns = int(duty_cycle_ns)
except ValueError:
raise PWMError(None, "Unknown duty cycle value: \"%s\"" % duty_cycle_ns)