:py:mod:`leads_arduino.arduino_proto`
=====================================

.. py:module:: leads_arduino.arduino_proto

.. autodoc2-docstring:: leads_arduino.arduino_proto
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`ArduinoProto <leads_arduino.arduino_proto.ArduinoProto>`
     - .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto
          :summary:
   * - :py:obj:`_ArduinoCallback <leads_arduino.arduino_proto._ArduinoCallback>`
     - .. autodoc2-docstring:: leads_arduino.arduino_proto._ArduinoCallback
          :summary:

API
~~~

.. py:class:: ArduinoProto(port: str | typing.Literal[auto], baud_rate: int = 9600)
   :canonical: leads_arduino.arduino_proto.ArduinoProto

   Bases: :py:obj:`leads.Controller`, :py:obj:`leads.comm.Entity`, :py:obj:`leads_comm_serial.AutoIdentity`

   .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto.__init__

   .. py:method:: port() -> str
      :canonical: leads_arduino.arduino_proto.ArduinoProto.port

   .. py:method:: initialize(*parent_tags: str) -> None
      :canonical: leads_arduino.arduino_proto.ArduinoProto.initialize

      .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto.initialize

   .. py:method:: update(data: str) -> None
      :canonical: leads_arduino.arduino_proto.ArduinoProto.update

      .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto.update

   .. py:method:: check_identity(connection: leads_comm_serial.SerialConnection) -> bool
      :canonical: leads_arduino.arduino_proto.ArduinoProto.check_identity

      .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto.check_identity

   .. py:method:: run() -> None
      :canonical: leads_arduino.arduino_proto.ArduinoProto.run

   .. py:method:: write(payload: bytes) -> None
      :canonical: leads_arduino.arduino_proto.ArduinoProto.write

      .. autodoc2-docstring:: leads_arduino.arduino_proto.ArduinoProto.write

   .. py:method:: close() -> None
      :canonical: leads_arduino.arduino_proto.ArduinoProto.close

.. py:class:: _ArduinoCallback(arduino: leads_arduino.arduino_proto.ArduinoProto)
   :canonical: leads_arduino.arduino_proto._ArduinoCallback

   Bases: :py:obj:`leads.comm.Callback`

   .. autodoc2-docstring:: leads_arduino.arduino_proto._ArduinoCallback

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_arduino.arduino_proto._ArduinoCallback.__init__

   .. py:method:: on_receive(service: leads.comm.Service, msg: bytes) -> None
      :canonical: leads_arduino.arduino_proto._ArduinoCallback.on_receive

      .. autodoc2-docstring:: leads_arduino.arduino_proto._ArduinoCallback.on_receive

   .. py:method:: on_fail(service: leads.comm.Service, error: Exception) -> None
      :canonical: leads_arduino.arduino_proto._ArduinoCallback.on_fail

      .. autodoc2-docstring:: leads_arduino.arduino_proto._ArduinoCallback.on_fail
