diff --git a/poetry.lock b/poetry.lock index bb4247e6ba..fc8ebb62f4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2200,6 +2200,25 @@ Sphinx = ">=1.6.3" [package.extras] cairosvg = ["cairosvg (>=1.0)"] +[[package]] +name = "sphinxcontrib-video" +version = "0.2.1" +description = "Allows embedding of HTML5 videos in sphinx" +optional = false +python-versions = ">=3.6.9" +files = [ + {file = "sphinxcontrib_video-0.2.1-py3-none-any.whl", hash = "sha256:ebc31be0bb96e1aee260efe6b3806b81f9db20535c55b2f4ba355404f38d067d"}, + {file = "sphinxcontrib_video-0.2.1.tar.gz", hash = "sha256:b813be3b602aa14b537ed18e8a52a876d0818ccfc9c4c7c8e4822227f677ce48"}, +] + +[package.dependencies] +sphinx = "*" + +[package.extras] +dev = ["mypy", "nox", "pre-commit"] +doc = ["pydata-sphinx-theme (==0.13.0rc3)", "sphinx-design"] +test = ["beautifulsoup4", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "sphinxext-delta" version = "0.2.0" @@ -2519,4 +2538,4 @@ test = ["pytest"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "c610bad862aa95651968fabd51344b036e3eb77be7c50570c7b194b309987a96" +content-hash = "bbf6f8f139d7b2a04ab8cff68f692298f1281ff069978c55bc45e818bfa62675" diff --git a/pyproject.toml b/pyproject.toml index 1f11d66b06..81849003bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ modern-sphinx-version-warning = "==1.1.6" sphinxcontrib-htmlhelp = "==2.1.0" sphinxcontrib-serializinghtml = "==2.0.0" sphinxcontrib-svg2pdfconverter = "==1.2.2" +sphinxcontrib-video = "==0.2.1" sphinxext-delta = "==0.2.0" sphinxext-mimic = "==0.1.1" sphinxext-opengraph = "==0.9.0" diff --git a/source/_static/css/frc-rtd.css b/source/_static/css/frc-rtd.css index a68c7a53df..caf08e9b8c 100644 --- a/source/_static/css/frc-rtd.css +++ b/source/_static/css/frc-rtd.css @@ -38,6 +38,15 @@ width: 320px; } +/* +* Prevent video containers from spilling over the edges of the main panel. +* This matches the built-in style for `.rst-content img` +*/ +.rst-content video { + max-width: 100%; + height: auto; +} + .document img { margin-bottom: 10px; } diff --git a/source/conf.py b/source/conf.py index 7957e02131..36eca314a6 100644 --- a/source/conf.py +++ b/source/conf.py @@ -41,6 +41,7 @@ "sphinx.ext.autosectionlabel", "sphinx.ext.intersphinx", "sphinxcontrib.rsvgconverter", + "sphinxcontrib.video", "sphinxext.delta", "sphinxext.opengraph", "sphinxext.photofinish", diff --git a/source/docs/beta/tasks/task-4-new-features.rst b/source/docs/beta/tasks/task-4-new-features.rst index ce3965b6e5..8519627c94 100644 --- a/source/docs/beta/tasks/task-4-new-features.rst +++ b/source/docs/beta/tasks/task-4-new-features.rst @@ -10,6 +10,8 @@ The purpose of this task is to test any newly developed or heavily modified feat **All languages** +- Use the new A-Stop functionality built into the :doc:`Driver Station's Practice mode `. + **LabVIEW** **Java** diff --git a/source/docs/software/driverstation/driver-station.rst b/source/docs/software/driverstation/driver-station.rst index 082be8131d..31197f3839 100644 --- a/source/docs/software/driverstation/driver-station.rst +++ b/source/docs/software/driverstation/driver-station.rst @@ -21,6 +21,23 @@ The FRC Driver Station can be launched by double-clicking the icon on the Deskto * :kbd:`[` + :kbd:`]` + :kbd:`\\` - Enable the robot (the 3 keys above Enter on most keyboards) * :kbd:`Enter` - Disable the Robot * :kbd:`Space` - Emergency Stop the robot. After an emergency stop is triggered the roboRIO will need to be rebooted before the robot can be enabled again. + * :kbd:`Backspace` - "A-Stop" the robot when in Practice Mode - Autonomous Enabled. The robot will be disabled until the Practice Mode reaches Teleop then will be automatically re-enabled. While disabled, the application background will flash orange indicating the robot will re-enable automatically. + +.. only:: html + + .. video:: images/driver-station/ds-astop.mp4 + :loop: + :width: 900 + :autoplay: + :muted: + :alt: Driver Station flashing orange in A-Stop mode + +.. only:: not html + + .. figure:: images/driver-station/ds-astop.png + :alt: Driver Station flashing orange in A-Stop mode + + View this page in the web documentation for an animation of the A-Stop behavior .. note:: Space bar will E-Stop the robot regardless of if the Driver Station window has focus or not @@ -58,7 +75,7 @@ The Operations Tab is used to control the mode of the robot and provide addition - Teleoperated Mode causes the robot to run the code in the Teleoperated portion of the match. - Autonomous Mode causes the robot to run the code in the Autonomous portion of the match. - - Practice Mode causes the robot to cycle through the same transitions as an FRC match after the Enable button is pressed (timing for practice mode can be found on the setup tab). + - Practice Mode causes the robot to cycle through the same transitions as an FRC match after the Enable button is pressed (timing for practice mode can be found on the setup tab). When Practice Mode is in use, the DS will flash the background orange to indicate a pending enable (either the start of Autonomous or the start of Teleop after an A-Stop). - :doc:`Test Mode ` is an additional mode where test code that doesn't run in a regular match can be tested. 2. Enable/Disable - These controls enable and disable the robot. See also `Driver Station Key Shortcuts`_. diff --git a/source/docs/software/driverstation/images/driver-station/ds-astop.mp4 b/source/docs/software/driverstation/images/driver-station/ds-astop.mp4 new file mode 100644 index 0000000000..53f10dd6e4 Binary files /dev/null and b/source/docs/software/driverstation/images/driver-station/ds-astop.mp4 differ diff --git a/source/docs/software/driverstation/images/driver-station/ds-astop.png b/source/docs/software/driverstation/images/driver-station/ds-astop.png new file mode 100644 index 0000000000..737819eeb4 Binary files /dev/null and b/source/docs/software/driverstation/images/driver-station/ds-astop.png differ diff --git a/source/requirements.txt b/source/requirements.txt index 489fb6a63b..9ec23e6f68 100644 --- a/source/requirements.txt +++ b/source/requirements.txt @@ -86,6 +86,7 @@ sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" and python_version < "3.13 sphinxcontrib-qthelp==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-serializinghtml==2.0.0 ; python_version >= "3.9" and python_version < "3.13" sphinxcontrib-svg2pdfconverter==1.2.2 ; python_version >= "3.9" and python_version < "3.13" +sphinxcontrib-video==0.2.1 ; python_version >= "3.9" and python_version < "3.13" sphinxext-delta==0.2.0 ; python_version >= "3.9" and python_version < "3.13" sphinxext-mimic==0.1.1 ; python_version >= "3.9" and python_version < "3.13" sphinxext-opengraph==0.9.0 ; python_version >= "3.9" and python_version < "3.13"