:py:mod:`leads.plugin.dtcs`
===========================

.. py:module:: leads.plugin.dtcs

.. autodoc2-docstring:: leads.plugin.dtcs
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`DTCS <leads.plugin.dtcs.DTCS>`
     - .. autodoc2-docstring:: leads.plugin.dtcs.DTCS
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`do_dtcs <leads.plugin.dtcs.do_dtcs>`
     - .. autodoc2-docstring:: leads.plugin.dtcs.do_dtcs
          :summary:

Data
~~~~

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

   * - :py:obj:`_CALIBRATIONS <leads.plugin.dtcs._CALIBRATIONS>`
     - .. autodoc2-docstring:: leads.plugin.dtcs._CALIBRATIONS
          :summary:

API
~~~

.. py:data:: _CALIBRATIONS
   :canonical: leads.plugin.dtcs._CALIBRATIONS
   :type: dict[leads.constant.ESCMode, tuple[float | None, float | None]]
   :value: None

   .. autodoc2-docstring:: leads.plugin.dtcs._CALIBRATIONS

.. py:function:: do_dtcs(context: leads.context.Context, front_wheel_speed: float, rear_wheel_speed: float) -> leads.event.InterventionEvent
   :canonical: leads.plugin.dtcs.do_dtcs

   .. autodoc2-docstring:: leads.plugin.dtcs.do_dtcs

.. py:class:: DTCS()
   :canonical: leads.plugin.dtcs.DTCS

   Bases: :py:obj:`leads.plugin.plugin.ESCPlugin`

   .. autodoc2-docstring:: leads.plugin.dtcs.DTCS

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.plugin.dtcs.DTCS.__init__

   .. py:method:: pre_update(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.dtcs.DTCS.pre_update
