aboutsummaryrefslogtreecommitdiff
path: root/circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst
diff options
context:
space:
mode:
Diffstat (limited to 'circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst')
-rw-r--r--circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst160
1 files changed, 160 insertions, 0 deletions
diff --git a/circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst b/circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst
new file mode 100644
index 0000000..1c5780f
--- /dev/null
+++ b/circuitpython/frozen/Adafruit_CircuitPython_HID/README.rst
@@ -0,0 +1,160 @@
+
+Introduction
+============
+
+.. image:: https://readthedocs.org/projects/adafruit-circuitpython-hid/badge/?version=latest
+ :target: https://docs.circuitpython.org/projects/hid/en/latest/
+ :alt: Documentation Status
+
+.. image :: https://img.shields.io/discord/327254708534116352.svg
+ :target: https://adafru.it/discord
+ :alt: Discord
+
+.. image:: https://github.com/adafruit/Adafruit_CircuitPython_HID/workflows/Build%20CI/badge.svg
+ :target: https://github.com/adafruit/Adafruit_CircuitPython_HID/actions/
+ :alt: Build Status
+
+
+This driver simulates USB HID devices. Currently keyboard and mouse are implemented.
+
+Dependencies
+=============
+This driver depends on:
+
+* `Adafruit CircuitPython <https://github.com/adafruit/circuitpython>`_
+
+Please ensure all dependencies are available on the CircuitPython filesystem.
+This is easily achieved by downloading
+`the Adafruit library and driver bundle <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_.
+
+Additional Layouts
+====================
+This library has an en-US layout. Please check out and expand `the library from Neradoc <https://github.com/Neradoc/Circuitpython_Keyboard_Layouts>`_ for additional layouts.
+
+Usage Example
+=============
+
+The ``Keyboard`` class sends keypress reports for a USB keyboard device to the host.
+
+The ``Keycode`` class defines USB HID keycodes to send using ``Keyboard``.
+
+.. code-block:: python
+
+ import usb_hid
+ from adafruit_hid.keyboard import Keyboard
+ from adafruit_hid.keycode import Keycode
+
+ # Set up a keyboard device.
+ kbd = Keyboard(usb_hid.devices)
+
+ # Type lowercase 'a'. Presses the 'a' key and releases it.
+ kbd.send(Keycode.A)
+
+ # Type capital 'A'.
+ kbd.send(Keycode.SHIFT, Keycode.A)
+
+ # Type control-x.
+ kbd.send(Keycode.CONTROL, Keycode.X)
+
+ # You can also control press and release actions separately.
+ kbd.press(Keycode.CONTROL, Keycode.X)
+ kbd.release_all()
+
+ # Press and hold the shifted '1' key to get '!' (exclamation mark).
+ kbd.press(Keycode.SHIFT, Keycode.ONE)
+ # Release the ONE key and send another report.
+ kbd.release(Keycode.ONE)
+ # Press shifted '2' to get '@'.
+ kbd.press(Keycode.TWO)
+ # Release all keys.
+ kbd.release_all()
+
+The ``KeyboardLayoutUS`` sends ASCII characters using keypresses. It assumes
+the host is set to accept keypresses from a US keyboard.
+
+If the host is expecting a non-US keyboard, the character to key mapping provided by
+``KeyboardLayoutUS`` will not always be correct.
+Different keypresses will be needed in some cases. For instance, to type an ``'A'`` on
+a French keyboard (AZERTY instead of QWERTY), ``Keycode.Q`` should be pressed.
+
+Currently this package provides only ``KeyboardLayoutUS``. More ``KeyboardLayout``
+classes could be added to handle non-US keyboards and the different input methods provided
+by various operating systems.
+
+.. code-block:: python
+
+ import usb_hid
+ from adafruit_hid.keyboard import Keyboard
+ from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
+
+ kbd = Keyboard(usb_hid.devices)
+ layout = KeyboardLayoutUS(kbd)
+
+ # Type 'abc' followed by Enter (a newline).
+ layout.write('abc\n')
+
+ # Get the keycodes needed to type a '$'.
+ # The method will return (Keycode.SHIFT, Keycode.FOUR).
+ keycodes = layout.keycodes('$')
+
+The ``Mouse`` class simulates a three-button mouse with a scroll wheel.
+
+.. code-block:: python
+
+ import usb_hid
+ from adafruit_hid.mouse import Mouse
+
+ m = Mouse(usb_hid.devices)
+
+ # Click the left mouse button.
+ m.click(Mouse.LEFT_BUTTON)
+
+ # Move the mouse diagonally to the upper left.
+ m.move(-100, -100, 0)
+
+ # Roll the mouse wheel away from the user one unit.
+ # Amount scrolled depends on the host.
+ m.move(0, 0, -1)
+
+ # Keyword arguments may also be used. Omitted arguments default to 0.
+ m.move(x=-100, y=-100)
+ m.move(wheel=-1)
+
+ # Move the mouse while holding down the left button. (click-drag).
+ m.press(Mouse.LEFT_BUTTON)
+ m.move(x=50, y=20)
+ m.release_all() # or m.release(Mouse.LEFT_BUTTON)
+
+The ``ConsumerControl`` class emulates consumer control devices such as
+remote controls, or the multimedia keys on certain keyboards.
+
+.. code-block:: python
+
+ import usb_hid
+ from adafruit_hid.consumer_control import ConsumerControl
+ from adafruit_hid.consumer_control_code import ConsumerControlCode
+
+ cc = ConsumerControl(usb_hid.devices)
+
+ # Raise volume.
+ cc.send(ConsumerControlCode.VOLUME_INCREMENT)
+
+ # Pause or resume playback.
+ cc.send(ConsumerControlCode.PLAY_PAUSE)
+
+Documentation
+=============
+
+API documentation for this library can be found on `Read the Docs <https://docs.circuitpython.org/projects/hid/en/latest/>`_.
+
+Contributing
+============
+
+Contributions are welcome! Please read our `Code of Conduct
+<https://github.com/adafruit/Adafruit_CircuitPython_hid/blob/main/CODE_OF_CONDUCT.md>`_
+before contributing to help this project stay welcoming.
+
+Documentation
+=============
+
+For information on building library documentation, please check out `this guide <https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1>`_.