From a59a567967b4b7ba98932008b8f5a8775b5a9de4 Mon Sep 17 00:00:00 2001 From: Laurens Valk Date: Tue, 25 Aug 2026 12:03:03 +0200 Subject: [PATCH] requirements: Add EV3. --- doc/common/extensions/requirements-static.py | 35 ++++++++++++------- doc/main/diagrams/compat_ev3brick.png | Bin 0 -> 18702 bytes doc/main/diagrams/compat_nxtbrick.png | Bin 0 -> 15482 bytes doc/main/ev3devices/colorsensor.rst | 2 +- doc/main/ev3devices/gyrosensor.rst | 2 +- doc/main/ev3devices/index.rst | 2 +- doc/main/ev3devices/infraredsensor.rst | 2 +- doc/main/ev3devices/motor.rst | 2 +- doc/main/ev3devices/touchsensor.rst | 2 +- doc/main/ev3devices/ultrasonicsensor.rst | 2 +- doc/main/index.rst | 6 ---- doc/main/iodevices/index.rst | 8 ++--- doc/main/messaging/index.rst | 2 +- doc/main/nxtdevices/colorsensor.rst | 2 +- doc/main/nxtdevices/energymeter.rst | 2 +- doc/main/nxtdevices/index.rst | 6 ++-- doc/main/nxtdevices/lightsensor.rst | 2 +- doc/main/nxtdevices/motor.rst | 2 +- doc/main/nxtdevices/soundsensor.rst | 2 +- doc/main/nxtdevices/temperaturesensor.rst | 2 +- doc/main/nxtdevices/touchsensor.rst | 2 +- doc/main/nxtdevices/ultrasonicsensor.rst | 2 +- doc/main/nxtdevices/vernieradapter.rst | 2 +- doc/main/parameters/font.rst | 2 +- doc/main/parameters/image.rst | 2 +- doc/main/parameters/imagefile.rst | 2 +- doc/main/pupdevices/colordistancesensor.rst | 2 +- doc/main/pupdevices/colorlightmatrix.rst | 2 +- doc/main/pupdevices/colorsensor.rst | 2 +- doc/main/pupdevices/dcmotor.rst | 2 +- doc/main/pupdevices/forcesensor.rst | 2 +- doc/main/pupdevices/index.rst | 2 +- doc/main/pupdevices/infraredsensor.rst | 2 +- doc/main/pupdevices/light.rst | 2 +- doc/main/pupdevices/motor.rst | 2 +- doc/main/pupdevices/pfmotor.rst | 2 +- doc/main/pupdevices/remote.rst | 2 +- doc/main/pupdevices/tiltsensor.rst | 2 +- doc/main/pupdevices/ultrasonicsensor.rst | 2 +- 39 files changed, 62 insertions(+), 59 deletions(-) create mode 100644 doc/main/diagrams/compat_ev3brick.png create mode 100644 doc/main/diagrams/compat_nxtbrick.png diff --git a/doc/common/extensions/requirements-static.py b/doc/common/extensions/requirements-static.py index 4ed161d..fbb7e4a 100644 --- a/doc/common/extensions/requirements-static.py +++ b/doc/common/extensions/requirements-static.py @@ -17,35 +17,44 @@ FEATURES_MEDIUM = FEATURES_SMALL | { "pybricks-frozen", } -# Large feature set. -FEATURES_LARGE = FEATURES_MEDIUM | { - "ble-extra", # Extra features such as pairing or multiple connections. -} - # Features per hub. HUB_FEATURES = { - "movehub": {"movehub", "pup"} | FEATURES_SMALL, - "cityhub": {"cityhub", "pup"} | FEATURES_MEDIUM, - "technichub": {"technichub", "gyro", "xbox-controller", "pup"} | FEATURES_MEDIUM, + "movehub": {"movehub", "ble", "pupdevices"} | FEATURES_SMALL, + "cityhub": {"cityhub", "ble", "pupdevices"} | FEATURES_MEDIUM, + "technichub": {"technichub", "gyro", "xbox-controller", "ble", "pupdevices"} + | FEATURES_MEDIUM, "primehub": { "primehub", "inventorhub", "light-matrix", "gyro", "xbox-controller", - "pup", + "ble", + "ble-extra", + "pupdevices", } - | FEATURES_LARGE, + | FEATURES_MEDIUM, "inventorhub": { "primehub", "inventorhub", "light-matrix", "gyro", "xbox-controller", - "pup", + "ble", + "ble-extra", + "pupdevices", } - | FEATURES_LARGE, - "essentialhub": {"essentialhub", "gyro", "xbox-controller", "pup"} | FEATURES_LARGE, + | FEATURES_MEDIUM, + "essentialhub": { + "essentialhub", + "gyro", + "xbox-controller", + "ble", + "ble-extra", + "pupdevices", + } + | FEATURES_MEDIUM, + "ev3brick": {"ev3devices", "nxtdevices", "image"} | FEATURES_MEDIUM, } diff --git a/doc/main/diagrams/compat_ev3brick.png b/doc/main/diagrams/compat_ev3brick.png new file mode 100644 index 0000000000000000000000000000000000000000..155954e33072906e1a024a892f6a9d2ddd17b36c GIT binary patch literal 18702 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 -- EV3 motors and sensors ================================================================= diff --git a/doc/main/ev3devices/infraredsensor.rst b/doc/main/ev3devices/infraredsensor.rst index 2c8f45a..18d1c1c 100644 --- a/doc/main/ev3devices/infraredsensor.rst +++ b/doc/main/ev3devices/infraredsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: ev3devices Infrared Sensor and Beacon ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/ev3devices/motor.rst b/doc/main/ev3devices/motor.rst index 936e68c..e8f13df 100644 --- a/doc/main/ev3devices/motor.rst +++ b/doc/main/ev3devices/motor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: ev3devices Motors with rotation sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/ev3devices/touchsensor.rst b/doc/main/ev3devices/touchsensor.rst index 628d23a..9859aed 100644 --- a/doc/main/ev3devices/touchsensor.rst +++ b/doc/main/ev3devices/touchsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: ev3devices Touch Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/ev3devices/ultrasonicsensor.rst b/doc/main/ev3devices/ultrasonicsensor.rst index 1dd4ab0..d832744 100644 --- a/doc/main/ev3devices/ultrasonicsensor.rst +++ b/doc/main/ev3devices/ultrasonicsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: ev3devices Ultrasonic Sensor ^^^^^^^^^^^^^^^^^ diff --git a/doc/main/index.rst b/doc/main/index.rst index 3ca9309..33467c3 100644 --- a/doc/main/index.rst +++ b/doc/main/index.rst @@ -60,12 +60,6 @@ above to reveal this menu. :width: 100 % :target: ev3devices/index.html -.. rubric:: NXT motors and sensors - -.. figure:: ../main/cad/output/nxtdevice-all.png - :width: 100 % - :target: nxtdevices/index.html - .. toctree:: :maxdepth: 1 :caption: Table of contents diff --git a/doc/main/iodevices/index.rst b/doc/main/iodevices/index.rst index a60c7ac..e7709d3 100644 --- a/doc/main/iodevices/index.rst +++ b/doc/main/iodevices/index.rst @@ -41,7 +41,7 @@ LEGO protocol devices :width: 80 % :target: lwp3device.html -.. pybricks-requirements:: ev3 pybricks-iodevices +.. pybricks-requirements:: pybricks-iodevices .. pybricks-classlink:: LUMPDevice @@ -83,7 +83,7 @@ Generic protocols |uart-wired| |uart-wireless| -.. pybricks-requirements:: ev3 pybricks-iodevices +.. pybricks-requirements:: pybricks-iodevices .. pybricks-classlink:: I2CDevice @@ -91,7 +91,7 @@ Generic protocols :width: 20 % :target: i2cdevice.html -.. pybricks-requirements:: ev3 pybricks-iodevices +.. pybricks-requirements:: pybricks-iodevices .. pybricks-classlink:: AnalogSensor @@ -99,7 +99,7 @@ Generic protocols :width: 20 % :target: analogsensor.html -.. pybricks-requirements:: ev3 pybricks-iodevices +.. pybricks-requirements:: pybricks-iodevices .. pybricks-classlink:: DCMotor diff --git a/doc/main/messaging/index.rst b/doc/main/messaging/index.rst index 30a44c4..9005661 100644 --- a/doc/main/messaging/index.rst +++ b/doc/main/messaging/index.rst @@ -4,7 +4,7 @@ .. automodule:: pybricks.messaging :no-members: -.. pybricks-requirements:: pup +.. pybricks-requirements:: ble .. blockimg:: pybricks_variables_set_ble_radio diff --git a/doc/main/nxtdevices/colorsensor.rst b/doc/main/nxtdevices/colorsensor.rst index 4082ba0..0ae9e3c 100644 --- a/doc/main/nxtdevices/colorsensor.rst +++ b/doc/main/nxtdevices/colorsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Color Sensor ^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/energymeter.rst b/doc/main/nxtdevices/energymeter.rst index bc88abc..f5f81a8 100644 --- a/doc/main/nxtdevices/energymeter.rst +++ b/doc/main/nxtdevices/energymeter.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Energy Meter ^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/index.rst b/doc/main/nxtdevices/index.rst index c14bacf..11fdc1b 100644 --- a/doc/main/nxtdevices/index.rst +++ b/doc/main/nxtdevices/index.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices :mod:`nxtdevices ` -- NXT motors and sensors ================================================================= @@ -20,11 +20,11 @@ energymeter vernieradapter -.. pybricks-classlink:: Motor ../pupdevices/motor +.. pybricks-classlink:: Motor ../nxtdevices/motor .. figure:: ../../main/cad/output/ev3device-motors.png :width: 100 % - :target: ../pupdevices/motor.html + :target: ../nxtdevices/motor.html .. pybricks-classlink:: TouchSensor diff --git a/doc/main/nxtdevices/lightsensor.rst b/doc/main/nxtdevices/lightsensor.rst index 2701bdf..959fdfc 100644 --- a/doc/main/nxtdevices/lightsensor.rst +++ b/doc/main/nxtdevices/lightsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Light Sensor ^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/motor.rst b/doc/main/nxtdevices/motor.rst index d826839..349ee02 100644 --- a/doc/main/nxtdevices/motor.rst +++ b/doc/main/nxtdevices/motor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: ev3devices nxtdevices Motors with rotation sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/soundsensor.rst b/doc/main/nxtdevices/soundsensor.rst index e05aef2..33de4dd 100644 --- a/doc/main/nxtdevices/soundsensor.rst +++ b/doc/main/nxtdevices/soundsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Sound Sensor ^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/temperaturesensor.rst b/doc/main/nxtdevices/temperaturesensor.rst index 986c1c4..7c3d96e 100644 --- a/doc/main/nxtdevices/temperaturesensor.rst +++ b/doc/main/nxtdevices/temperaturesensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Temperature Sensor ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/touchsensor.rst b/doc/main/nxtdevices/touchsensor.rst index 0983afb..e68544b 100644 --- a/doc/main/nxtdevices/touchsensor.rst +++ b/doc/main/nxtdevices/touchsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Touch Sensor ^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/ultrasonicsensor.rst b/doc/main/nxtdevices/ultrasonicsensor.rst index 82c84ce..8139e48 100644 --- a/doc/main/nxtdevices/ultrasonicsensor.rst +++ b/doc/main/nxtdevices/ultrasonicsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices NXT Ultrasonic Sensor ^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/nxtdevices/vernieradapter.rst b/doc/main/nxtdevices/vernieradapter.rst index 99f2c81..e2b9c3d 100644 --- a/doc/main/nxtdevices/vernieradapter.rst +++ b/doc/main/nxtdevices/vernieradapter.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: nxtdevices Vernier Adapter ^^^^^^^^^^^^^^^ diff --git a/doc/main/parameters/font.rst b/doc/main/parameters/font.rst index 2c4a210..f3c7837 100644 --- a/doc/main/parameters/font.rst +++ b/doc/main/parameters/font.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: image Font ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/parameters/image.rst b/doc/main/parameters/image.rst index 1028359..c0a06ef 100644 --- a/doc/main/parameters/image.rst +++ b/doc/main/parameters/image.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: image Image ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/parameters/imagefile.rst b/doc/main/parameters/imagefile.rst index 7218f8a..9e7cc74 100644 --- a/doc/main/parameters/imagefile.rst +++ b/doc/main/parameters/imagefile.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: ev3 +.. pybricks-requirements:: image ImageFile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/colordistancesensor.rst b/doc/main/pupdevices/colordistancesensor.rst index 081dc80..8d6f369 100644 --- a/doc/main/pupdevices/colordistancesensor.rst +++ b/doc/main/pupdevices/colordistancesensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Color and Distance Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/colorlightmatrix.rst b/doc/main/pupdevices/colorlightmatrix.rst index 4d629b7..f302ac1 100644 --- a/doc/main/pupdevices/colorlightmatrix.rst +++ b/doc/main/pupdevices/colorlightmatrix.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Color Light Matrix ^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/colorsensor.rst b/doc/main/pupdevices/colorsensor.rst index a3b8c7f..6c0b156 100644 --- a/doc/main/pupdevices/colorsensor.rst +++ b/doc/main/pupdevices/colorsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Color Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/dcmotor.rst b/doc/main/pupdevices/dcmotor.rst index 20c47ad..c432b35 100644 --- a/doc/main/pupdevices/dcmotor.rst +++ b/doc/main/pupdevices/dcmotor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Motors without rotation sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/forcesensor.rst b/doc/main/pupdevices/forcesensor.rst index eacf0e3..cae51d1 100644 --- a/doc/main/pupdevices/forcesensor.rst +++ b/doc/main/pupdevices/forcesensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Force Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/index.rst b/doc/main/pupdevices/index.rst index 2f8317f..3947558 100644 --- a/doc/main/pupdevices/index.rst +++ b/doc/main/pupdevices/index.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices :mod:`pupdevices ` -- Motors, sensors, lights ================================================================== diff --git a/doc/main/pupdevices/infraredsensor.rst b/doc/main/pupdevices/infraredsensor.rst index a3f1800..c8905cc 100644 --- a/doc/main/pupdevices/infraredsensor.rst +++ b/doc/main/pupdevices/infraredsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Infrared Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/light.rst b/doc/main/pupdevices/light.rst index 6e56904..43e8aa7 100644 --- a/doc/main/pupdevices/light.rst +++ b/doc/main/pupdevices/light.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Light ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/motor.rst b/doc/main/pupdevices/motor.rst index 22fb230..d2b6256 100644 --- a/doc/main/pupdevices/motor.rst +++ b/doc/main/pupdevices/motor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Motors with rotation sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/pfmotor.rst b/doc/main/pupdevices/pfmotor.rst index e022621..c42561a 100644 --- a/doc/main/pupdevices/pfmotor.rst +++ b/doc/main/pupdevices/pfmotor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Power Functions ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/remote.rst b/doc/main/pupdevices/remote.rst index 76080c7..2e25f88 100644 --- a/doc/main/pupdevices/remote.rst +++ b/doc/main/pupdevices/remote.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Remote Control ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/tiltsensor.rst b/doc/main/pupdevices/tiltsensor.rst index 1aa537f..2219fc5 100644 --- a/doc/main/pupdevices/tiltsensor.rst +++ b/doc/main/pupdevices/tiltsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Tilt Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/main/pupdevices/ultrasonicsensor.rst b/doc/main/pupdevices/ultrasonicsensor.rst index 8647970..668c0cf 100644 --- a/doc/main/pupdevices/ultrasonicsensor.rst +++ b/doc/main/pupdevices/ultrasonicsensor.rst @@ -1,4 +1,4 @@ -.. pybricks-requirements:: +.. pybricks-requirements:: pupdevices Ultrasonic Sensor ^^^^^^^^^^^^^^^^^^^^^^^^^