diff --git a/readthedocs.yml b/.readthedocs.yml similarity index 100% rename from readthedocs.yml rename to .readthedocs.yml diff --git a/.travis.yml b/.travis.yml index b9d68cb..a2f0259 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,16 +16,17 @@ deploy: provider: releases api_key: $GITHUB_TOKEN file_glob: true - file: bundles/* + file: $TRAVIS_BUILD_DIR/bundles/* skip_cleanup: true overwrite: true on: tags: true install: - - pip install pylint circuitpython-build-tools + - pip install pylint circuitpython-build-tools Sphinx sphinx-rtd-theme script: - pylint adafruit_vcnl4010.py - ([[ ! -d "examples" ]] || pylint --disable=missing-docstring,invalid-name examples/*.py) - circuitpython-build-bundles --filename_prefix adafruit-circuitpython-vcnl4010 --library_location . + - cd docs && sphinx-build -E -W -b html . _build/html diff --git a/README.rst b/README.rst index 24ad347..33cec99 100644 --- a/README.rst +++ b/README.rst @@ -10,6 +10,10 @@ Introduction :target: https://discord.gg/nBQh6qu :alt: Discord +.. image:: https://travis-ci.org/adafruit/Adafruit_CircuitPython_VCNL4010.svg?branch=master + :target: https://travis-ci.org/adafruit/Adafruit_CircuitPython_VCNL4010 + :alt: Build Status + CircuitPython module for the VCNL4010 proximity and light sensor. Dependencies @@ -26,15 +30,7 @@ This is easily achieved by downloading Usage Example ============= -See examples/simpletest.py for an example of the usage. - -API Reference -============= - -.. toctree:: - :maxdepth: 2 - - api +See examples/vcnl4010_simpletest.py for an example of the usage. Contributing ============ @@ -66,3 +62,26 @@ Then run the build: .. code-block:: shell circuitpython-build-bundles --filename_prefix adafruit-circuitpython-vcnl4010 --library_location . + +Sphinx documentation +----------------------- + +Sphinx is used to build the documentation based on rST files and comments in the code. First, +install dependencies (feel free to reuse the virtual environment from above): + +.. code-block:: shell + + python3 -m venv .env + source .env/bin/activate + pip install Sphinx sphinx-rtd-theme + +Now, once you have the virtual environment activated: + +.. code-block:: shell + + cd docs + sphinx-build -E -W -b html . _build/html + +This will output the documentation to ``docs/_build/html``. Open the index.html in your browser to +view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to +locally verify it will pass. diff --git a/adafruit_vcnl4010.py b/adafruit_vcnl4010.py index 7ba9cea..2662c1c 100644 --- a/adafruit_vcnl4010.py +++ b/adafruit_vcnl4010.py @@ -20,13 +20,27 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. """ -`Adafruit_VCNL4010` +`adafruit_vcnl4010` ==================================================== CircuitPython module for the VCNL4010 proximity and light sensor. See -examples/simpletest.py for an example of the usage. +examples/vcnl4010_simpletest.py for an example of the usage. * Author(s): Tony DiCola + +Implementation Notes +-------------------- + +**Hardware:** + +* Adafruit `VCNL4010 Proximity/Light sensor breakout + `_ (Product ID: 466) + +**Software and Dependencies:** + +* Adafruit CircuitPython firmware for the ESP8622 and M0-based boards: + https://github.com/adafruit/circuitpython/releases +* Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice """ from micropython import const @@ -114,7 +128,7 @@ def _write_u8(self, address, val): @property def led_current(self): - """Get and set the current of the LED. The value is in units of 10mA + """The current of the LED. The value is in units of 10mA and can only be set to 0 (0mA/off) to 20 (200mA). See the datasheet for how LED current impacts proximity measurements. The default is 200mA. @@ -128,7 +142,7 @@ def led_current(self, val): @property def led_current_mA(self): - """Get and set the current of the LED in milli-amps. The value here is + """The current of the LED in milli-amps. The value here is specified in a milliamps from 0-200. Note that this value will be quantized down to a smaller less-accurate value as the chip only supports current changes in 10mA increments, i.e. a value of 123 mA will @@ -144,12 +158,14 @@ def led_current_mA(self, val): @property def frequency(self): - """Get and set the frequency of proximity measurements. Must be a value - of: - - FREQUENCY_3M125: 3.125 Mhz - - FREQUENCY_1M5625: 1.5625 Mhz - - FREQUENCY_781K25: 781.25 Khz - - FREQUENCY_390K625: 390.625 Khz (default) + """ + The frequency of proximity measurements. Must be a value of: + + - FREQUENCY_3M125: 3.125 Mhz + - FREQUENCY_1M5625: 1.5625 Mhz + - FREQUENCY_781K25: 781.25 Khz + - FREQUENCY_390K625: 390.625 Khz (default) + See the datasheet for how frequency changes the proximity detection accuracy. """ @@ -168,7 +184,7 @@ def frequency(self, val): # pylint: disable=inconsistent-return-statements @property def proximity(self): - """Get the detected proximity of an object in front of the sensor. This + """The detected proximity of an object in front of the sensor. This is a unit-less unsigned 16-bit value (0-65535) INVERSELY proportional to the distance of an object in front of the sensor (up to a max of ~200mm). For example a value of 10 is an object farther away than a @@ -189,7 +205,7 @@ def proximity(self): @property def ambient(self): - """Get the detected ambient light in front of the sensor. This is + """The detected ambient light in front of the sensor. This is a unit-less unsigned 16-bit value (0-65535) with higher values for more detected light. See the ambient_lux property for a value in lux. """ @@ -208,7 +224,7 @@ def ambient(self): @property def ambient_lux(self): - """Get the detected ambient light in front of the sensor as a value in + """The detected ambient light in front of the sensor as a value in lux. """ return self.ambient * _VCNL4010_AMBIENT_LUX_SCALE diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico new file mode 100644 index 0000000..5aca983 Binary files /dev/null and b/docs/_static/favicon.ico differ diff --git a/api.rst b/docs/api.rst similarity index 100% rename from api.rst rename to docs/api.rst diff --git a/conf.py b/docs/conf.py similarity index 90% rename from conf.py rename to docs/conf.py index 26be15c..de734fa 100644 --- a/conf.py +++ b/docs/conf.py @@ -2,7 +2,7 @@ import os import sys -sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ------------------------------------------------ @@ -28,7 +28,7 @@ source_suffix = '.rst' # The master toctree document. -master_doc = 'README' +master_doc = 'index' # General information about the project. project = u'Adafruit VCNL4010 Library' @@ -54,7 +54,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.env', 'CODE_OF_CONDUCT.md'] # The reST default role (used for this markup: `text`) to use for all # documents. @@ -71,6 +71,9 @@ # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False +# If this is True, todo emits a warning for each TODO entries. The default is False. +todo_emit_warnings = True + # -- Options for HTML output ---------------------------------------------- @@ -95,6 +98,12 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +# The name of an image file (relative to this directory) to use as a favicon of +# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# +html_favicon = '_static/favicon.ico' + # Output file base name for HTML help builder. htmlhelp_basename = 'AdafruitVcnl4010Librarydoc' diff --git a/docs/examples.rst b/docs/examples.rst new file mode 100644 index 0000000..776e15d --- /dev/null +++ b/docs/examples.rst @@ -0,0 +1,8 @@ +Simple test +------------ + +Ensure your device works with this simple test. + +.. literalinclude:: ../examples/vcnl4010_simpletest.py + :caption: examples/vcnl4010_simpletest.py + :linenos: diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..640ab3e --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,48 @@ +.. include:: ../README.rst + +Table of Contents +================= + +.. toctree:: + :maxdepth: 4 + :hidden: + + self + +.. toctree:: + :caption: Examples + + examples + +.. toctree:: + :caption: API Reference + :maxdepth: 3 + + api + +.. toctree:: + :caption: Tutorials + +.. toctree:: + :caption: Related Products + + VCNL4010 Proximity/Light sensor + + +.. toctree:: + :caption: Other Links + + Download + CircuitPython Reference Documentation + CircuitPython Support Forum + Discord Chat + Adafruit Learning System + Adafruit Blog + Adafruit Store + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/examples/simpletest.py b/examples/vcnl4010_simpletest.py similarity index 100% rename from examples/simpletest.py rename to examples/vcnl4010_simpletest.py