:py:mod:`leads_vec.cli`
=======================

.. py:module:: leads_vec.cli

.. autodoc2-docstring:: leads_vec.cli
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`CustomRuntimeData <leads_vec.cli.CustomRuntimeData>`
     - .. autodoc2-docstring:: leads_vec.cli.CustomRuntimeData
          :summary:
   * - :py:obj:`StreamCallback <leads_vec.cli.StreamCallback>`
     - .. autodoc2-docstring:: leads_vec.cli.StreamCallback
          :summary:
   * - :py:obj:`CommCallback <leads_vec.cli.CommCallback>`
     - .. autodoc2-docstring:: leads_vec.cli.CommCallback
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`make_system_switch <leads_vec.cli.make_system_switch>`
     - .. autodoc2-docstring:: leads_vec.cli.make_system_switch
          :summary:
   * - :py:obj:`get_proxy_canvas <leads_vec.cli.get_proxy_canvas>`
     - .. autodoc2-docstring:: leads_vec.cli.get_proxy_canvas
          :summary:
   * - :py:obj:`enable_comm_stream <leads_vec.cli.enable_comm_stream>`
     - .. autodoc2-docstring:: leads_vec.cli.enable_comm_stream
          :summary:
   * - :py:obj:`add_secondary_window <leads_vec.cli.add_secondary_window>`
     - .. autodoc2-docstring:: leads_vec.cli.add_secondary_window
          :summary:
   * - :py:obj:`toggle_debug_window <leads_vec.cli.toggle_debug_window>`
     - .. autodoc2-docstring:: leads_vec.cli.toggle_debug_window
          :summary:
   * - :py:obj:`set_debug_window <leads_vec.cli.set_debug_window>`
     - .. autodoc2-docstring:: leads_vec.cli.set_debug_window
          :summary:
   * - :py:obj:`main <leads_vec.cli.main>`
     - .. autodoc2-docstring:: leads_vec.cli.main
          :summary:

API
~~~

.. py:class:: CustomRuntimeData()
   :canonical: leads_vec.cli.CustomRuntimeData

   Bases: :py:obj:`leads_gui.RuntimeData`

   .. autodoc2-docstring:: leads_vec.cli.CustomRuntimeData

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_vec.cli.CustomRuntimeData.__init__

   .. py:attribute:: debug_window_index
      :canonical: leads_vec.cli.CustomRuntimeData.debug_window_index
      :type: int
      :value: None

      .. autodoc2-docstring:: leads_vec.cli.CustomRuntimeData.debug_window_index

   .. py:attribute:: control_system_switch_changed
      :canonical: leads_vec.cli.CustomRuntimeData.control_system_switch_changed
      :type: bool
      :value: False

      .. autodoc2-docstring:: leads_vec.cli.CustomRuntimeData.control_system_switch_changed

.. py:function:: make_system_switch(ctx: leads.LEADS, system: leads.SystemLiteral, runtime_data: leads_gui.RuntimeData) -> typing.Callable[[], None]
   :canonical: leads_vec.cli.make_system_switch

   .. autodoc2-docstring:: leads_vec.cli.make_system_switch

.. py:function:: get_proxy_canvas(context_manager: leads_gui.ContextManager, key: str) -> leads_gui.ProxyCanvas
   :canonical: leads_vec.cli.get_proxy_canvas

   .. autodoc2-docstring:: leads_vec.cli.get_proxy_canvas

.. py:class:: StreamCallback(context_manager: leads_gui.ContextManager)
   :canonical: leads_vec.cli.StreamCallback

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

   .. autodoc2-docstring:: leads_vec.cli.StreamCallback

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_vec.cli.StreamCallback.__init__

   .. py:method:: on_fail(service: leads.comm.Service, error: Exception) -> None
      :canonical: leads_vec.cli.StreamCallback.on_fail

      .. autodoc2-docstring:: leads_vec.cli.StreamCallback.on_fail

   .. py:method:: on_connect(service: leads.comm.Service, connection: leads.comm.ConnectionBase) -> None
      :canonical: leads_vec.cli.StreamCallback.on_connect

      .. autodoc2-docstring:: leads_vec.cli.StreamCallback.on_connect

   .. py:method:: on_disconnect(service: leads.comm.Service, connection: leads.comm.ConnectionBase) -> None
      :canonical: leads_vec.cli.StreamCallback.on_disconnect

      .. autodoc2-docstring:: leads_vec.cli.StreamCallback.on_disconnect

.. py:function:: enable_comm_stream(context_manager: leads_gui.ContextManager, port: int) -> None
   :canonical: leads_vec.cli.enable_comm_stream

   .. autodoc2-docstring:: leads_vec.cli.enable_comm_stream

.. py:class:: CommCallback(context: leads.LEADS, context_manager: leads_gui.ContextManager)
   :canonical: leads_vec.cli.CommCallback

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

   .. autodoc2-docstring:: leads_vec.cli.CommCallback

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_vec.cli.CommCallback.__init__

   .. py:method:: on_connect(service: leads.comm.Service, connection: leads.comm.ConnectionBase) -> None
      :canonical: leads_vec.cli.CommCallback.on_connect

      .. autodoc2-docstring:: leads_vec.cli.CommCallback.on_connect

   .. py:method:: on_disconnect(service: leads.comm.Service, connection: leads.comm.ConnectionBase) -> None
      :canonical: leads_vec.cli.CommCallback.on_disconnect

      .. autodoc2-docstring:: leads_vec.cli.CommCallback.on_disconnect

   .. py:method:: on_fail(service: leads.comm.Service, error: Exception) -> None
      :canonical: leads_vec.cli.CommCallback.on_fail

      .. autodoc2-docstring:: leads_vec.cli.CommCallback.on_fail

   .. py:method:: on_receive(service: leads.comm.Service, msg: bytes) -> None
      :canonical: leads_vec.cli.CommCallback.on_receive

      .. autodoc2-docstring:: leads_vec.cli.CommCallback.on_receive

.. py:function:: add_secondary_window(context_manager: leads_gui.ContextManager, display: int, var_lap_times: customtkinter.StringVar, var_speed: customtkinter.DoubleVar, var_speed_trend: customtkinter.DoubleVar) -> None
   :canonical: leads_vec.cli.add_secondary_window

   .. autodoc2-docstring:: leads_vec.cli.add_secondary_window

.. py:function:: toggle_debug_window(context_manager: leads_gui.ContextManager, var_debug: customtkinter.StringVar) -> None
   :canonical: leads_vec.cli.toggle_debug_window

   .. autodoc2-docstring:: leads_vec.cli.toggle_debug_window

.. py:function:: set_debug_window(context_manager: leads_gui.ContextManager, var_debug: customtkinter.StringVar, status: bool) -> None
   :canonical: leads_vec.cli.set_debug_window

   .. autodoc2-docstring:: leads_vec.cli.set_debug_window

.. py:function:: main() -> int
   :canonical: leads_vec.cli.main

   .. autodoc2-docstring:: leads_vec.cli.main
