=============== Generic Devices =============== .. currentmodule:: gpiozero The GPIO Zero class hierarchy is quite extensive. It contains a couple of base classes: * :class:`GPIODevice` for individual devices that attach to a single GPIO pin * :class:`CompositeDevice` for devices composed of multiple other devices like HATs There are also a couple of `mixin classes`_: * :class:`ValuesMixin` which defines the ``values`` properties; there is rarely a need to use this as the base classes mentioned above both include it (so all classes in GPIO Zero include the ``values`` property) * :class:`SourceMixin` which defines the ``source`` property; this is generally included in novel output device classes .. _mixin classes: https://en.wikipedia.org/wiki/Mixin The current class hierarchies are displayed below. For brevity, the mixin classes are omitted: .. image:: images/gpio_device_hierarchy.* .. image:: images/composite_device_hierarchy.* Finally, for composite devices, the following chart shows which devices are composed of which other devices: .. image:: images/composed_devices.* Base Classes ============ .. autoclass:: GPIODevice(pin) :inherited-members: :members: .. autoclass:: CompositeDevice :inherited-members: :members: Input Devices ============= .. autoclass:: InputDevice(pin, pull_up=False) :members: .. autoclass:: WaitableInputDevice :members: .. autoclass:: DigitalInputDevice(pin, pull_up=False, bounce_time=None) :members: .. autoclass:: SmoothedInputDevice :members: .. autoclass:: AnalogInputDevice :members: Output Devices ============== .. autoclass:: OutputDevice(pin, active_high=True, initial_value=False) :members: .. autoclass:: PWMOutputDevice(pin, active_high=True, initial_value=0, frequency=100) :members: .. autoclass:: DigitalOutputDevice(pin, active_high=True, initial_value=False) :members: Mixin Classes ============= .. autoclass:: ValuesMixin(...) :members: .. autoclass:: SourceMixin(...) :members: