diff --git a/Sming/Arch/Esp32/Components/esp_idf/README.rst b/Sming/Arch/Esp32/Components/esp_idf/README.rst new file mode 100644 index 0000000000..878e2e9122 --- /dev/null +++ b/Sming/Arch/Esp32/Components/esp_idf/README.rst @@ -0,0 +1,4 @@ +ESP IDF +======= + +Provides make targets which are redirected to the ESP IDF. diff --git a/Sming/Arch/Esp32/Components/esp_spiffs/README.rst b/Sming/Arch/Esp32/Components/esp_spiffs/README.rst new file mode 100644 index 0000000000..9869b71f45 --- /dev/null +++ b/Sming/Arch/Esp32/Components/esp_spiffs/README.rst @@ -0,0 +1,4 @@ +Esp32 SPIFFS +============ + +SPIFFS implementation for ESP32 devices. diff --git a/Sming/Arch/Esp8266/Components/driver/gpio.rst b/Sming/Arch/Esp8266/Components/driver/gpio.rst index b1e4481878..b1193c2738 100644 --- a/Sming/Arch/Esp8266/Components/driver/gpio.rst +++ b/Sming/Arch/Esp8266/Components/driver/gpio.rst @@ -5,3 +5,4 @@ SDK definitions for GPIO. .. doxygengroup:: gpio_driver :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/driver/hw_timer.rst b/Sming/Arch/Esp8266/Components/driver/hw_timer.rst index 14fae3de0f..2a6b18034d 100644 --- a/Sming/Arch/Esp8266/Components/driver/hw_timer.rst +++ b/Sming/Arch/Esp8266/Components/driver/hw_timer.rst @@ -27,3 +27,4 @@ API Documentation .. doxygengroup:: hw_timer :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/driver/i2s.rst b/Sming/Arch/Esp8266/Components/driver/i2s.rst index b4c5e11759..de64454103 100644 --- a/Sming/Arch/Esp8266/Components/driver/i2s.rst +++ b/Sming/Arch/Esp8266/Components/driver/i2s.rst @@ -62,3 +62,4 @@ API Documentation .. doxygengroup:: i2s_driver :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/driver/os_timer.rst b/Sming/Arch/Esp8266/Components/driver/os_timer.rst index 73b0427fbb..5e263ff8ca 100644 --- a/Sming/Arch/Esp8266/Components/driver/os_timer.rst +++ b/Sming/Arch/Esp8266/Components/driver/os_timer.rst @@ -3,3 +3,4 @@ OS Timer .. doxygengroup:: os_timer :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/driver/pwm.rst b/Sming/Arch/Esp8266/Components/driver/pwm.rst index 47df1eb558..a4e87d5259 100644 --- a/Sming/Arch/Esp8266/Components/driver/pwm.rst +++ b/Sming/Arch/Esp8266/Components/driver/pwm.rst @@ -19,3 +19,4 @@ API Documentation .. doxygengroup:: pwm_driver :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/driver/uart.rst b/Sming/Arch/Esp8266/Components/driver/uart.rst index 851a7d7917..665a30ec31 100644 --- a/Sming/Arch/Esp8266/Components/driver/uart.rst +++ b/Sming/Arch/Esp8266/Components/driver/uart.rst @@ -5,3 +5,4 @@ Custom asynchronous driver. .. doxygengroup:: uart_driver :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/spi_flash/api.rst b/Sming/Arch/Esp8266/Components/spi_flash/api.rst index 6866f6918a..8034002df6 100644 --- a/Sming/Arch/Esp8266/Components/spi_flash/api.rst +++ b/Sming/Arch/Esp8266/Components/spi_flash/api.rst @@ -3,3 +3,4 @@ API Documentation .. doxygengroup:: spi_flash :content-only: + :members: diff --git a/Sming/Arch/Esp8266/Components/spi_flash/precache.rst b/Sming/Arch/Esp8266/Components/spi_flash/precache.rst index 97d06f1ed1..f78c126cd5 100644 --- a/Sming/Arch/Esp8266/Components/spi_flash/precache.rst +++ b/Sming/Arch/Esp8266/Components/spi_flash/precache.rst @@ -49,3 +49,4 @@ API Documentation .. doxygengroup:: iram_precache :content-only: + :members: diff --git a/Sming/Arch/Host/Components/driver/gpio.rst b/Sming/Arch/Host/Components/driver/gpio.rst index 6756d93372..88cc0c0ed5 100644 --- a/Sming/Arch/Host/Components/driver/gpio.rst +++ b/Sming/Arch/Host/Components/driver/gpio.rst @@ -9,3 +9,4 @@ API Documentation ----------------- .. doxygenclass:: DigitalHooks + :members: diff --git a/Sming/Components/rboot/include/Data/Stream/RbootOutputStream.h b/Sming/Components/rboot/include/Data/Stream/RbootOutputStream.h index 7c7c5f2f8a..30c8b85db8 100644 --- a/Sming/Components/rboot/include/Data/Stream/RbootOutputStream.h +++ b/Sming/Components/rboot/include/Data/Stream/RbootOutputStream.h @@ -18,6 +18,9 @@ #include #include +/** + * @brief Write-only stream type used during rBoot firmware updates + */ class RbootOutputStream : public ReadWriteStream { public: diff --git a/Sming/Components/ssl/adapter.rst b/Sming/Components/ssl/adapter.rst index 0525e10ba0..c6b7e59b0c 100644 --- a/Sming/Components/ssl/adapter.rst +++ b/Sming/Components/ssl/adapter.rst @@ -1,16 +1,31 @@ -Adapter API -=========== +SSL Adapter API +=============== These classes provide the interface between a :cpp:class:`Ssl::Session` and an appropriate adapter. - * - * Returned `int` error codes are 0 for success, or < 0 for error. - * - * The error codes themselves are implementation-specific. - * Use `getErrorString()` to obtain the message. - * SSL `Alerts` are also reported via error codes. Use `getAlert` +Error codes +----------- + +Error codes are implementation specific, however 0 always indicates success and < 0 for error. + +To obtain a description for an error code, use :cpp:func:`Ssl::Connection::getErrorString`. + +SSL `Alerts` are reported via error codes. To obtain the alert code call +:cpp:func:`Ssl::Connection::getAlert` which returns an :cpp:enum:`Ssl::Alert` code. +If the error code is not an alert then ``Alert::INVALID`` is returned. + +.. doxygenenum:: Ssl::Alert + + +Classes +------- .. doxygenclass:: Ssl::Factory + :members: + .. doxygenclass:: Ssl::Context + :members: + .. doxygenclass:: Ssl::Connection + :members: diff --git a/Sming/Components/ssl/include/Network/Ssl/Alert.h b/Sming/Components/ssl/include/Network/Ssl/Alert.h index ed54312fe4..fec2c4d121 100644 --- a/Sming/Components/ssl/include/Network/Ssl/Alert.h +++ b/Sming/Components/ssl/include/Network/Ssl/Alert.h @@ -44,9 +44,10 @@ namespace Ssl /** * @brief Alert codes defined by the standard + * @see See https://tools.ietf.org/html/rfc8446#page-85 */ enum class Alert { - Invalid = -1, + Invalid = -1, ///< Not an alert code #define XX(tag, code) tag = code, SSL_ALERT_CODE_MAP(XX) #undef XX diff --git a/Sming/Components/ssl/session.rst b/Sming/Components/ssl/session.rst index 7953395237..ab206eb8dd 100644 --- a/Sming/Components/ssl/session.rst +++ b/Sming/Components/ssl/session.rst @@ -2,6 +2,12 @@ Session ======= .. doxygenclass:: Ssl::Session + :members: + .. doxygenclass:: Ssl::SessionId + :members: + .. doxygenstruct:: Ssl::Options + :members: + .. doxygenenum:: MaxBufferSize diff --git a/Sming/Components/ssl/upgrade.rst b/Sming/Components/ssl/upgrade.rst index f5fcfde31e..ca50953df9 100644 --- a/Sming/Components/ssl/upgrade.rst +++ b/Sming/Components/ssl/upgrade.rst @@ -111,7 +111,8 @@ has access to the current SSL session and HTTP request and can modify them accor // We're using validators, so don't attempt to validate full certificate session.options.verifyLater = true; - session.fragmentSize = Ssl::eSEFS_16K; + // Go with maximum buffer sizes + session.maxBufferSize = Ssl::MaxBufferSize::K16; } Note also that the ``Fingerprints`` class has been removed. @@ -130,8 +131,8 @@ organised within the ``Crypto`` namespace. This is primarily for use with the SSL interface but does not require SSL to be enabled. -The cryptographic 'C' libraries themselves may be used directly by your application, regardless -of which SSL adapter is in use, or even if SSL is disabled. +Alternatively, the cryptographic 'C' libraries themselves may be used directly by your application, +regardless of which SSL adapter is in use, or even if SSL is disabled. For example the following old code is using axTLS cryptographic functions:: diff --git a/Sming/Core/Data/Stream/Base64OutputStream.h b/Sming/Core/Data/Stream/Base64OutputStream.h index cf20d726f1..206224c2fe 100644 --- a/Sming/Core/Data/Stream/Base64OutputStream.h +++ b/Sming/Core/Data/Stream/Base64OutputStream.h @@ -16,12 +16,9 @@ #include "libb64/cencode.h" /** - * @brief Base64 Stream - * @ingroup stream data - * - * @{ + * @brief Read-only stream to emit base64-encoded content from source stream + * @ingroup stream data */ - class Base64OutputStream : public StreamTransformer { public: @@ -48,5 +45,3 @@ class Base64OutputStream : public StreamTransformer base64_encodestate state = {}; base64_encodestate lastState = {}; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/ChunkedStream.h b/Sming/Core/Data/Stream/ChunkedStream.h index a85c12fb1f..18488796d9 100644 --- a/Sming/Core/Data/Stream/ChunkedStream.h +++ b/Sming/Core/Data/Stream/ChunkedStream.h @@ -15,12 +15,12 @@ #include "../StreamTransformer.h" /** - * @brief Data chunked stream class - * @ingroup stream data + * @brief Read-only stream to obtain data using HTTP chunked encoding * - * @{ -*/ - + * Used where total length of stream is not known in advance + * + * @ingroup stream data + */ class ChunkedStream : public StreamTransformer { public: @@ -29,5 +29,3 @@ class ChunkedStream : public StreamTransformer protected: size_t transform(const uint8_t* source, size_t sourceLength, uint8_t* target, size_t targetLength) override; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/DataSourceStream.h b/Sming/Core/Data/Stream/DataSourceStream.h index bb134ed2ae..24eec1899c 100644 --- a/Sming/Core/Data/Stream/DataSourceStream.h +++ b/Sming/Core/Data/Stream/DataSourceStream.h @@ -15,9 +15,12 @@ #include "WString.h" #include +/** @defgroup stream Stream functions + * @brief Data stream classes +*/ + /** @brief Data stream type * @ingroup constants - * @{ */ enum StreamType { eSST_Invalid, ///< Stream content not valid @@ -28,14 +31,11 @@ enum StreamType { eSST_User, ///< User defined data stream eSST_Unknown ///< Unknown data stream type }; -/** @} */ - -/** @defgroup stream Stream functions - * @brief Data stream classes - * @{ -*/ -///Base class for data source stream +/** + * @brief Base class for read-only stream + * @ingroup stream + */ class IDataSourceStream : public Stream { public: @@ -165,5 +165,3 @@ class IDataSourceStream : public Stream */ String readString(size_t maxLen = UINT16_MAX); }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/EndlessMemoryStream.h b/Sming/Core/Data/Stream/EndlessMemoryStream.h index b547ca170f..99443673f3 100644 --- a/Sming/Core/Data/Stream/EndlessMemoryStream.h +++ b/Sming/Core/Data/Stream/EndlessMemoryStream.h @@ -12,17 +12,14 @@ #include "MemoryDataStream.h" -/** @addtogroup stream - * @{ - */ - /** * @brief Memory stream that stores unlimited number of bytes. * - * @note Memory is allocated on write and released when all written + * Memory is allocated on write and released when all written * bytes have been read out. This behaviour differs from a circular buffer * as the size is not fixed. * + * @ingroup stream */ class EndlessMemoryStream : public ReadWriteStream { @@ -59,5 +56,3 @@ class EndlessMemoryStream : public ReadWriteStream private: MemoryDataStream* stream = nullptr; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/FileStream.h b/Sming/Core/Data/Stream/FileStream.h index efaa88edb6..da48f3684a 100644 --- a/Sming/Core/Data/Stream/FileStream.h +++ b/Sming/Core/Data/Stream/FileStream.h @@ -14,12 +14,9 @@ #include "FileSystem.h" /** - * @brief File stream class - * @ingroup stream data - * - * @{ + * @brief File stream class + * @ingroup stream data */ - class FileStream : public ReadWriteStream { public: @@ -175,5 +172,3 @@ class FileStream : public ReadWriteStream size_t size = 0; int lastError = SPIFFS_OK; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/FlashMemoryStream.h b/Sming/Core/Data/Stream/FlashMemoryStream.h index 0527b0c956..0eaebc3a78 100644 --- a/Sming/Core/Data/Stream/FlashMemoryStream.h +++ b/Sming/Core/Data/Stream/FlashMemoryStream.h @@ -14,17 +14,8 @@ #include -/** @addtogroup stream - * @{ +/** + * @brief Provides a read-only stream buffer on flash storage + * @ingroup stream */ - -/* - * FlashMemoryDataStream - * - * Provides a stream buffer on flash storage, so it's read-only - * - */ - using FlashMemoryStream = FSTR::Stream; - -/** @} */ diff --git a/Sming/Core/Data/Stream/GdbFileStream.cpp b/Sming/Core/Data/Stream/GdbFileStream.cpp index 8ff135ac0a..fc2b3f6af2 100644 --- a/Sming/Core/Data/Stream/GdbFileStream.cpp +++ b/Sming/Core/Data/Stream/GdbFileStream.cpp @@ -11,8 +11,6 @@ #include "GdbFileStream.h" #include -/* GdbFileStream */ - bool GdbFileStream::open(const String& fileName, FileOpenFlags openFlags) { lastError = 0; diff --git a/Sming/Core/Data/Stream/GdbFileStream.h b/Sming/Core/Data/Stream/GdbFileStream.h index 5807cbca63..91eedba793 100644 --- a/Sming/Core/Data/Stream/GdbFileStream.h +++ b/Sming/Core/Data/Stream/GdbFileStream.h @@ -14,8 +14,8 @@ #include "FileSystem.h" /** - * @ingroup stream gdb_syscall * @brief GDB File stream class to provide access to host files whilst running under debugger + * @ingroup stream gdb_syscall */ class GdbFileStream : public ReadWriteStream { diff --git a/Sming/Core/Data/Stream/LimitedMemoryStream.h b/Sming/Core/Data/Stream/LimitedMemoryStream.h index 0ebeee82ea..cce14301e2 100644 --- a/Sming/Core/Data/Stream/LimitedMemoryStream.h +++ b/Sming/Core/Data/Stream/LimitedMemoryStream.h @@ -12,13 +12,12 @@ #include "ReadWriteStream.h" -/** @addtogroup stream - * @{ - */ - /** * @brief Memory stream that stores limited number of bytes - * Once the limit is reached the stream will discard incoming bytes on write + * + * Once the limit is reached the stream will discard incoming bytes on write + * + * @ingroup stream */ class LimitedMemoryStream : public ReadWriteStream { @@ -32,16 +31,11 @@ class LimitedMemoryStream : public ReadWriteStream delete[] buffer; } - //Use base class documentation StreamType getStreamType() const override { return eSST_Memory; } - /** - * @brief Return the total length of the stream - * @retval int -1 is returned when the size cannot be determined - */ int available() override { return writePos - readPos; @@ -49,14 +43,8 @@ class LimitedMemoryStream : public ReadWriteStream uint16_t readMemoryBlock(char* data, int bufSize) override; - //Use base class documentation bool seek(int len) override; - /** @brief Write chars to stream - * @param buffer Pointer to buffer to write to the stream - * @param size Quantity of chars to write - * @retval size_t Quantity of chars written to stream - */ size_t write(const uint8_t* buffer, size_t size) override; bool isFinished() override @@ -70,5 +58,3 @@ class LimitedMemoryStream : public ReadWriteStream size_t readPos = 0; size_t length = 0; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/MemoryDataStream.cpp b/Sming/Core/Data/Stream/MemoryDataStream.cpp index 780efc8f8b..f76631f05d 100644 --- a/Sming/Core/Data/Stream/MemoryDataStream.cpp +++ b/Sming/Core/Data/Stream/MemoryDataStream.cpp @@ -10,8 +10,6 @@ #include "MemoryDataStream.h" -/* MemoryDataStream */ - bool MemoryDataStream::ensureCapacity(size_t minCapacity) { if(capacity < minCapacity) { diff --git a/Sming/Core/Data/Stream/MemoryDataStream.h b/Sming/Core/Data/Stream/MemoryDataStream.h index 63f9700f8a..b7f258405d 100644 --- a/Sming/Core/Data/Stream/MemoryDataStream.h +++ b/Sming/Core/Data/Stream/MemoryDataStream.h @@ -12,18 +12,15 @@ #include "ReadWriteStream.h" -/** @addtogroup stream - * @{ - */ - -/* - * MemoryDataStream +/** + * @brief Read/write stream using expandable memory buffer * - * This is intended to allow data to be streamed into it, then streamed back out at a later - * date. + * This is intended to allow data to be streamed into it, then streamed back out at a later date. * * It is _not_ intended to have data continuously written in and read out; memory is not reclaimed * as it is read. + * + * @ingroup stream */ class MemoryDataStream : public ReadWriteStream { @@ -101,5 +98,3 @@ class MemoryDataStream : public ReadWriteStream size_t size = 0; ///< Number of bytes stored in stream (i.e. the write position) size_t capacity = 0; ///< Number of bytes allocated in buffer }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/QuotedPrintableOutputStream.cpp b/Sming/Core/Data/Stream/QuotedPrintableOutputStream.cpp index 53a8c0c535..3284b1f481 100644 --- a/Sming/Core/Data/Stream/QuotedPrintableOutputStream.cpp +++ b/Sming/Core/Data/Stream/QuotedPrintableOutputStream.cpp @@ -12,13 +12,6 @@ #include "QuotedPrintableOutputStream.h" -/* - * @brief Stream quoted-printable encoder - * @param uint8_t* source - the incoming data - * @param size_t sourceLength -length of the incoming data - * @param uint8_t* target - the result data. The pointer must point to an already allocated memory - * @param int* targetLength - the length of the allocated result data - */ size_t QuotedPrintableOutputStream::transform(const uint8_t* source, size_t sourceLength, uint8_t* target, size_t targetLength) { diff --git a/Sming/Core/Data/Stream/QuotedPrintableOutputStream.h b/Sming/Core/Data/Stream/QuotedPrintableOutputStream.h index b6d28ee2b0..bdd19da8c3 100644 --- a/Sming/Core/Data/Stream/QuotedPrintableOutputStream.h +++ b/Sming/Core/Data/Stream/QuotedPrintableOutputStream.h @@ -15,18 +15,14 @@ #include "../StreamTransformer.h" /** - * @brief Quoted-Printable Stream - * @ingroup stream data - * - * @{ + * @brief Read-only stream that transforms bytes of data into quoted printable data stream + * @ingroup stream data */ - class QuotedPrintableOutputStream : public StreamTransformer { public: /** - * @brief Stream that transforms bytes of data into quoted printable data stream - * @param stream source stream + * @param stream Source stream * @param resultSize The size of the intermediate buffer, created once per object and reused multiple times */ QuotedPrintableOutputStream(IDataSourceStream* stream, size_t resultSize = 512) @@ -38,5 +34,3 @@ class QuotedPrintableOutputStream : public StreamTransformer protected: size_t transform(const uint8_t* source, size_t sourceLength, uint8_t* target, size_t targetLength) override; }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/ReadWriteStream.h b/Sming/Core/Data/Stream/ReadWriteStream.h index b2904d1f8e..3d4b3cab96 100644 --- a/Sming/Core/Data/Stream/ReadWriteStream.h +++ b/Sming/Core/Data/Stream/ReadWriteStream.h @@ -15,17 +15,10 @@ /** * @brief Base class for read/write stream * @ingroup stream data - * - * @{ */ - class ReadWriteStream : public IDataSourceStream { public: - /** @brief Write a single character to the stream - * @param charToWrite - * @retval size_t Number of chars written (1 on success, 0 on failure) - */ size_t write(uint8_t charToWrite) override { return write(&charToWrite, 1); @@ -48,5 +41,3 @@ class ReadWriteStream : public IDataSourceStream */ virtual size_t copyFrom(IDataSourceStream* source, size_t size); }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/TemplateFileStream.h b/Sming/Core/Data/Stream/TemplateFileStream.h index c29a483245..20155ec681 100644 --- a/Sming/Core/Data/Stream/TemplateFileStream.h +++ b/Sming/Core/Data/Stream/TemplateFileStream.h @@ -14,21 +14,13 @@ #include "TemplateStream.h" /** - * @brief Template File stream class - * @ingroup stream data - * - * @{ + * @brief Template stream using content from the filesystem + * @ingroup stream data */ - class TemplateFileStream : public TemplateStream { public: - /** @brief Create a template file stream - * @param fileName Template filename - */ TemplateFileStream(const String& fileName) : TemplateStream(new FileStream(fileName)) { } }; - -/** @} */ diff --git a/Sming/Core/Data/Stream/TemplateFlashMemoryStream.h b/Sming/Core/Data/Stream/TemplateFlashMemoryStream.h index 95be03f88e..94ea99a6a8 100644 --- a/Sming/Core/Data/Stream/TemplateFlashMemoryStream.h +++ b/Sming/Core/Data/Stream/TemplateFlashMemoryStream.h @@ -15,12 +15,7 @@ #include /** - * @brief Template Flash memory stream class - * @ingroup stream data - * - * @{ + * @brief Template stream using content stored in flash + * @ingroup stream data */ - using TemplateFlashMemoryStream = FSTR::TemplateStream; - -/** @} */ diff --git a/Sming/Core/Data/Stream/TemplateStream.h b/Sming/Core/Data/Stream/TemplateStream.h index 999a6471df..f45b2a2ed2 100644 --- a/Sming/Core/Data/Stream/TemplateStream.h +++ b/Sming/Core/Data/Stream/TemplateStream.h @@ -23,8 +23,7 @@ /** * @brief Stream which performs variable-value substitution on-the-fly * - * Template uses {varname} style markers which are replaced as the stream is read - * using content from a hashmap. + * Template uses {varname} style markers which are replaced as the stream is read. * * @ingroup stream */ diff --git a/Sming/Core/Data/Stream/UrlencodedOutputStream.h b/Sming/Core/Data/Stream/UrlencodedOutputStream.h index 7afc44b046..33c7517142 100644 --- a/Sming/Core/Data/Stream/UrlencodedOutputStream.h +++ b/Sming/Core/Data/Stream/UrlencodedOutputStream.h @@ -16,49 +16,34 @@ #include "Network/Http/HttpParams.h" /** - * @brief UrlEncoded Stream - * @ingroup stream data - * - * @{ + * @brief Represents key-value pairs as urlencoded string content + * @ingroup stream */ - class UrlencodedOutputStream : public IDataSourceStream { public: - /** - * @brief Represents key-value pairs as urlencoded string - * @param params The key-value parameters - */ UrlencodedOutputStream(const HttpParams& params); - //Use base class documentation StreamType getStreamType() const override { return stream.getStreamType(); } - /** - * @brief Return the total length of the stream - * @retval int -1 is returned when the size cannot be determined - */ int available() override { return stream.available(); } - //Use base class documentation uint16_t readMemoryBlock(char* data, int bufSize) override { return stream.readMemoryBlock(data, bufSize); } - //Use base class documentation bool seek(int len) override { return stream.seek(len); } - //Use base class documentation bool isFinished() override { return stream.isFinished(); @@ -67,5 +52,3 @@ class UrlencodedOutputStream : public IDataSourceStream private: MemoryDataStream stream; }; - -/** @} */ diff --git a/Sming/Core/Network/FtpServer.h b/Sming/Core/Network/FtpServer.h index 89955b4dde..5bf1df7da1 100644 --- a/Sming/Core/Network/FtpServer.h +++ b/Sming/Core/Network/FtpServer.h @@ -8,12 +8,6 @@ * ****/ -/** @defgroup ftpserver FTP server - * @brief Provides FTP server - * @ingroup tcpserver - * @{ - */ - #pragma once #include "TcpServer.h" @@ -22,6 +16,10 @@ class FtpServerConnection; +/** @defgroup ftpserver FTP server + * @ingroup tcpserver + * @brief Provides FTP server + */ class FtpServer : public TcpServer { friend class FtpServerConnection; @@ -44,6 +42,7 @@ class FtpServer : public TcpServer HashMap users; }; -typedef FtpServer FTPServer SMING_DEPRECATED; ///< @deprecated Use `FtpServer` instead - -/** @} */ +/** + * @deprecated Use `FtpServer` instead + */ +typedef FtpServer FTPServer SMING_DEPRECATED; diff --git a/Sming/Core/Network/Http/HttpBodyParser.h b/Sming/Core/Network/Http/HttpBodyParser.h index c0927cfb64..55eae4b819 100644 --- a/Sming/Core/Network/Http/HttpBodyParser.h +++ b/Sming/Core/Network/Http/HttpBodyParser.h @@ -15,6 +15,11 @@ #include "HttpCommon.h" #include "HttpRequest.h" +/** + * @ingroup http + * { + */ + /** @brief special length values passed to parse functions */ const int PARSE_DATASTART = -1; ///< Start of incoming data const int PARSE_DATAEND = -2; ///< End of incoming data @@ -47,3 +52,5 @@ size_t formUrlParser(HttpRequest& request, const char* at, int length); * @note The content later can be retrieved by calling request.getBody() */ size_t bodyToStringParser(HttpRequest& request, const char* at, int length); + +/** @} */ diff --git a/Sming/Core/Network/Http/HttpCommon.h b/Sming/Core/Network/Http/HttpCommon.h index be9d13246f..6c5e9640ff 100644 --- a/Sming/Core/Network/Http/HttpCommon.h +++ b/Sming/Core/Network/Http/HttpCommon.h @@ -31,8 +31,16 @@ #include "http-parser/http_parser.h" -typedef enum http_method HttpMethod; +/** + * @ingroup http + * { + */ + +using HttpMethod = enum http_method; +/** + * @brief Identifies current state for an HTTP connection + */ enum HttpConnectionState { eHCS_Ready = 0, eHCS_StartSending, @@ -75,3 +83,5 @@ static inline String httpGetStatusText(unsigned code) { return httpGetStatusText((enum http_status)code); } + +/** @} */ diff --git a/Sming/Core/Network/Http/HttpHeaderBuilder.h b/Sming/Core/Network/Http/HttpHeaderBuilder.h index 3b869ffafb..f89b9ab375 100644 --- a/Sming/Core/Network/Http/HttpHeaderBuilder.h +++ b/Sming/Core/Network/Http/HttpHeaderBuilder.h @@ -12,7 +12,10 @@ #include "HttpHeaders.h" -/** @brief Re-assembles headers from fragments via onHeaderField / onHeaderValue callbacks */ +/** + * @brief Re-assembles headers from fragments via onHeaderField / onHeaderValue callbacks + * @ingroup http + */ class HttpHeaderBuilder { public: diff --git a/Sming/Core/Network/Http/HttpHeaders.h b/Sming/Core/Network/Http/HttpHeaders.h index 40466944b7..3405b413fb 100644 --- a/Sming/Core/Network/Http/HttpHeaders.h +++ b/Sming/Core/Network/Http/HttpHeaders.h @@ -92,6 +92,7 @@ enum HttpHeaderFieldName { * Behaviour is as for HashMap, with the addition of methods to support enumerated field names. * * @todo add name and/or value escaping + * @ingroup http */ class HttpHeaders : private HashMap { diff --git a/Sming/Core/Network/Http/HttpParams.h b/Sming/Core/Network/Http/HttpParams.h index 1d9b91780c..ecbd4240b1 100644 --- a/Sming/Core/Network/Http/HttpParams.h +++ b/Sming/Core/Network/Http/HttpParams.h @@ -22,11 +22,14 @@ #include "WHashMap.h" #include "Printable.h" -/** @brief +/** + * @brief Handles the query portion of a URI * * @todo values stored in escaped form, unescape return value and escape provided values. * Revise HttpBodyParser.cpp as it will no longer do this job. * + * @ingroup http + * */ class HttpParams : public HashMap, public Printable { diff --git a/Sming/Core/Network/Http/HttpRequest.h b/Sming/Core/Network/Http/HttpRequest.h index 86bcff88b9..9db8a4f782 100644 --- a/Sming/Core/Network/Http/HttpRequest.h +++ b/Sming/Core/Network/Http/HttpRequest.h @@ -29,8 +29,10 @@ typedef Delegate RequestHea typedef Delegate RequestBodyDelegate; typedef Delegate RequestCompletedDelegate; -/* - * Encapsulates an incoming or outgoing request +/** + * @brief Encapsulates an incoming or outgoing request + * @ingroup http + * */ class HttpRequest { @@ -185,6 +187,10 @@ class HttpRequest return bodyStream; } + /** + * @name Set request body content + * @{ + */ HttpRequest* setBody(const String& body) { setBody(reinterpret_cast(body.c_str()), body.length()); @@ -194,6 +200,7 @@ class HttpRequest HttpRequest* setBody(IDataSourceStream* stream); HttpRequest* setBody(const uint8_t* rawData, size_t length); + /** @} */ /** * @brief Instead of storing the response body we can set a stream that will take care to process it diff --git a/Sming/Core/Network/Http/HttpResource.h b/Sming/Core/Network/Http/HttpResource.h index 7bcc295803..ca4ef89c85 100644 --- a/Sming/Core/Network/Http/HttpResource.h +++ b/Sming/Core/Network/Http/HttpResource.h @@ -27,6 +27,10 @@ typedef Delegate HttpResourceDelegate; +/** + * @brief Instances of this class are registered with an HttpServer for a specific URL + * @ingroup http + */ class HttpResource { public: diff --git a/Sming/Core/Network/Http/HttpResourceTree.h b/Sming/Core/Network/Http/HttpResourceTree.h index 1e57e84c68..f92508538c 100644 --- a/Sming/Core/Network/Http/HttpResourceTree.h +++ b/Sming/Core/Network/Http/HttpResourceTree.h @@ -19,7 +19,9 @@ typedef Delegate HttpPathDel /** @brief Identifies the default resource path */ #define RESOURCE_PATH_DEFAULT String('*') -/** @brief Class to map URL paths to classes which handle them +/** + * @brief Class to map URL paths to classes which handle them + * @ingroup http */ class HttpResourceTree : public ObjectMap { diff --git a/Sming/Core/Network/Http/HttpResponse.h b/Sming/Core/Network/Http/HttpResponse.h index c3aa64c563..818ee20c1d 100644 --- a/Sming/Core/Network/Http/HttpResponse.h +++ b/Sming/Core/Network/Http/HttpResponse.h @@ -17,6 +17,11 @@ #include "HttpHeaders.h" #include "FileSystem.h" +/** + * @brief Represents either an incoming or outgoing response to a HTTP request + * @ingroup http + * + */ class HttpResponse { public: diff --git a/Sming/Core/Network/Http/Websocket/WebsocketResource.h b/Sming/Core/Network/Http/Websocket/WebsocketResource.h index fe12ea5a92..294e4ebbec 100644 --- a/Sming/Core/Network/Http/Websocket/WebsocketResource.h +++ b/Sming/Core/Network/Http/Websocket/WebsocketResource.h @@ -17,6 +17,10 @@ #include "WebsocketConnection.h" #include "WString.h" +/** + * @brief Class associated with an open websocket to handle communcations + * @ingroup http + */ class WebsocketResource : public HttpResource { public: diff --git a/Sming/Libraries/.patches/Adafruit_VL53L0X/README.md b/Sming/Libraries/.patches/Adafruit_VL53L0X/README.md new file mode 100644 index 0000000000..f5cc654f2f --- /dev/null +++ b/Sming/Libraries/.patches/Adafruit_VL53L0X/README.md @@ -0,0 +1,15 @@ +# Adafruit VL53L0X Library + +[![Build Status](https://travis-ci.com/adafruit/Adafruit_VL53L0X.svg?branch=master)](https://travis-ci.com/adafruit/Adafruit_VL53L0X) + + + +This is a library for the Adafruit VL53L0X time-of-flight breakout: + * https://www.adafruit.com/products/3317 + +Check out the links above for our tutorials and wiring diagrams. This chip uses I2C to communicate + +Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! + +Written by Limor Fried/Ladyada for Adafruit Industries. +MIT license, all text above must be included in any redistribution diff --git a/Sming/Libraries/.patches/Arduino_TensorFlowLite/README.rst b/Sming/Libraries/.patches/Arduino_TensorFlowLite/README.rst new file mode 100644 index 0000000000..514a20a70a --- /dev/null +++ b/Sming/Libraries/.patches/Arduino_TensorFlowLite/README.rst @@ -0,0 +1,8 @@ +Arduino TensorFlow Lite +======================= + +This library runs TensorFlow machine learning models on microcontrollers, allowing you to build AI/ML applications powered by deep learning and neural networks. + +With the included examples, you can recognize speech, detect people using a camera, and recognise "magic wand" gestures using an accelerometer. + +The examples work best with the Arduino Nano 33 BLE Sense board, which has a microphone and accelerometer. diff --git a/Sming/Libraries/CS5460/README.rst b/Sming/Libraries/CS5460/README.rst new file mode 100644 index 0000000000..75d203101c --- /dev/null +++ b/Sming/Libraries/CS5460/README.rst @@ -0,0 +1,6 @@ +CS5460 ADC +========== + +Arduino library for CS5460 Delga-Sigma ADC. + +Connects via SPI interface. diff --git a/Sming/Libraries/MultipartParser/api.rst b/Sming/Libraries/MultipartParser/api.rst index 8f6294ee01..15c12a67fb 100644 --- a/Sming/Libraries/MultipartParser/api.rst +++ b/Sming/Libraries/MultipartParser/api.rst @@ -1,5 +1,7 @@ -MultipartParser API +MultipartParser API =================== .. doxygenfunction:: formMultipartParser + .. doxygenclass:: HttpMultipartResource + :members: diff --git a/docs/Doxyfile b/docs/Doxyfile index ec473a8137..2a60cc1a7f 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -22,7 +22,7 @@ ALWAYS_DETAILED_SEC = YES # operators of the base classes will not be shown. # The default value is: NO. -INLINE_INHERITED_MEMB = YES +INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the diff --git a/docs/source/conf.py b/docs/source/conf.py index e22298dd76..5163b1d119 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -83,8 +83,6 @@ breathe_default_project = "api" -breathe_default_members = ('members', 'undoc-members') - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for diff --git a/docs/source/contribute/documentation.rst b/docs/source/contribute/documentation.rst index 646afc08e5..7eb9c573bb 100644 --- a/docs/source/contribute/documentation.rst +++ b/docs/source/contribute/documentation.rst @@ -142,6 +142,7 @@ which is then made available using the extension. You can then pull in definitions like this:: .. doxygenclass::`String` + :members: If you wish to refer to a type within documentation, you can add a link to the definition like this:: diff --git a/docs/source/framework/core/data/cstring.rst b/docs/source/framework/core/data/cstring.rst index 48d1381cb3..6283f9eccf 100644 --- a/docs/source/framework/core/data/cstring.rst +++ b/docs/source/framework/core/data/cstring.rst @@ -27,3 +27,4 @@ API Documentation ----------------- .. doxygenclass:: CString + :members: diff --git a/docs/source/framework/core/data/cstringarray.rst b/docs/source/framework/core/data/cstringarray.rst index 8ad69b6a57..d2b5cc5d2b 100644 --- a/docs/source/framework/core/data/cstringarray.rst +++ b/docs/source/framework/core/data/cstringarray.rst @@ -151,3 +151,4 @@ API Documentation ----------------- .. doxygenclass:: CStringArray + :members: diff --git a/docs/source/framework/core/data/index.rst b/docs/source/framework/core/data/index.rst index b5ec71231d..5fe81f58e3 100644 --- a/docs/source/framework/core/data/index.rst +++ b/docs/source/framework/core/data/index.rst @@ -6,3 +6,4 @@ Core Data Classes :maxdepth: 1 * + streams/index \ No newline at end of file diff --git a/docs/source/framework/core/data/streams/datasource.rst b/docs/source/framework/core/data/streams/datasource.rst new file mode 100644 index 0000000000..228058cdd6 --- /dev/null +++ b/docs/source/framework/core/data/streams/datasource.rst @@ -0,0 +1,6 @@ +IDataSourceStream +================= + +.. doxygenclass:: IDataSourceStream + :members: + diff --git a/docs/source/framework/core/data/streams/index.rst b/docs/source/framework/core/data/streams/index.rst new file mode 100644 index 0000000000..a690def170 --- /dev/null +++ b/docs/source/framework/core/data/streams/index.rst @@ -0,0 +1,22 @@ +Streams +======= + +Sming provides a set of Stream class which extend :cpp:class:`Stream` methods. + +:cpp:class:`IDataSourceStream` is used where read-only access is required. +It introduces the :cpp:func:`IDataSourceStream::readMemoryBlock` method which +performs a regular read without updating the stream position. +This allows optimistic reading and re-sending, but cannot be handled by some stream +types and should be used with care. + +:cpp:class:`ReadWriteStream` is used where read/write operation is required. + + +API Documentation +----------------- + +.. toctree:: + :glob: + :maxdepth: 1 + + * diff --git a/docs/source/framework/core/data/streams/readwrite.rst b/docs/source/framework/core/data/streams/readwrite.rst new file mode 100644 index 0000000000..23b404074c --- /dev/null +++ b/docs/source/framework/core/data/streams/readwrite.rst @@ -0,0 +1,5 @@ +ReadWriteStream +=============== + +.. doxygenclass:: ReadWriteStream + :members: diff --git a/docs/source/framework/core/data/streams/streams.rst b/docs/source/framework/core/data/streams/streams.rst new file mode 100644 index 0000000000..98c40ba9e2 --- /dev/null +++ b/docs/source/framework/core/data/streams/streams.rst @@ -0,0 +1,4 @@ +Stream Classes +============== + +.. doxygengroup:: stream diff --git a/docs/source/framework/core/network/dns.rst b/docs/source/framework/core/network/dns.rst index 174e5e43b5..0297821638 100644 --- a/docs/source/framework/core/network/dns.rst +++ b/docs/source/framework/core/network/dns.rst @@ -9,3 +9,4 @@ Server API .. doxygengroup:: dnsserver :content-only: + :members: diff --git a/docs/source/framework/core/network/ftp.rst b/docs/source/framework/core/network/ftp.rst index 26475bee1a..1f63b45232 100644 --- a/docs/source/framework/core/network/ftp.rst +++ b/docs/source/framework/core/network/ftp.rst @@ -9,3 +9,4 @@ Server API .. doxygengroup:: ftpserver :content-only: + :members: diff --git a/docs/source/framework/core/network/http.rst b/docs/source/framework/core/network/http.rst index 366a7f70e0..ae8a7d4083 100644 --- a/docs/source/framework/core/network/http.rst +++ b/docs/source/framework/core/network/http.rst @@ -43,6 +43,7 @@ Client API .. doxygengroup:: httpclient :content-only: + :members: Server API @@ -50,3 +51,4 @@ Server API .. doxygengroup:: httpserver :content-only: + :members: diff --git a/docs/source/framework/core/network/mqtt.rst b/docs/source/framework/core/network/mqtt.rst index 2236378bde..78c5f59f73 100644 --- a/docs/source/framework/core/network/mqtt.rst +++ b/docs/source/framework/core/network/mqtt.rst @@ -8,3 +8,4 @@ Client API .. doxygengroup:: mqttclient :content-only: + :members: diff --git a/docs/source/framework/core/network/ntp.rst b/docs/source/framework/core/network/ntp.rst index 5bffc3f417..cf6d805521 100644 --- a/docs/source/framework/core/network/ntp.rst +++ b/docs/source/framework/core/network/ntp.rst @@ -8,3 +8,4 @@ Client API .. doxygengroup:: ntp :content-only: + :members: diff --git a/docs/source/framework/core/network/smtp.rst b/docs/source/framework/core/network/smtp.rst index 25464ebed6..e189638572 100644 --- a/docs/source/framework/core/network/smtp.rst +++ b/docs/source/framework/core/network/smtp.rst @@ -8,3 +8,4 @@ Client API .. doxygengroup:: smtpclient :content-only: + :members: diff --git a/docs/source/framework/core/network/tcp.rst b/docs/source/framework/core/network/tcp.rst index c58c58d7b4..000bd40472 100644 --- a/docs/source/framework/core/network/tcp.rst +++ b/docs/source/framework/core/network/tcp.rst @@ -8,6 +8,7 @@ Connection API .. doxygengroup:: tcp :content-only: + :members: Client API @@ -15,10 +16,11 @@ Client API .. doxygengroup:: tcpclient :content-only: + :members: Server API ---------- .. doxygengroup:: tcpserver :content-only: - + :members: diff --git a/docs/source/framework/core/network/telnet.rst b/docs/source/framework/core/network/telnet.rst index 6fe79a1925..4ab02098fe 100644 --- a/docs/source/framework/core/network/telnet.rst +++ b/docs/source/framework/core/network/telnet.rst @@ -8,3 +8,4 @@ Server API .. doxygengroup:: telnetserver :content-only: + :members: diff --git a/docs/source/framework/core/network/udp.rst b/docs/source/framework/core/network/udp.rst index 2d01cd20aa..a2bec6bfdb 100644 --- a/docs/source/framework/core/network/udp.rst +++ b/docs/source/framework/core/network/udp.rst @@ -8,3 +8,4 @@ Connection API .. doxygengroup:: udp :content-only: + :members: diff --git a/docs/source/framework/core/network/url.rst b/docs/source/framework/core/network/url.rst index 1223e9c13d..ba7007474c 100644 --- a/docs/source/framework/core/network/url.rst +++ b/docs/source/framework/core/network/url.rst @@ -5,3 +5,4 @@ https://en.m.wikipedia.org/wiki/URL .. doxygengroup:: url :content-only: + :members: diff --git a/docs/source/framework/core/network/websocket.rst b/docs/source/framework/core/network/websocket.rst index 4b596633ac..30752b2605 100644 --- a/docs/source/framework/core/network/websocket.rst +++ b/docs/source/framework/core/network/websocket.rst @@ -8,6 +8,7 @@ Connection API .. doxygengroup:: websocket :content-only: + :members: Client API @@ -15,4 +16,4 @@ Client API .. doxygengroup:: wsclient :content-only: - + :members: diff --git a/docs/source/framework/core/pgmspace.rst b/docs/source/framework/core/pgmspace.rst index 5242bcad21..ecbcedd367 100644 --- a/docs/source/framework/core/pgmspace.rst +++ b/docs/source/framework/core/pgmspace.rst @@ -128,3 +128,4 @@ API Documentation .. doxygengroup:: pgmspace :content-only: + :members: diff --git a/docs/source/framework/platform/accesspoint.rst b/docs/source/framework/platform/accesspoint.rst index a07ec00c70..256898ab6a 100644 --- a/docs/source/framework/platform/accesspoint.rst +++ b/docs/source/framework/platform/accesspoint.rst @@ -2,3 +2,4 @@ WiFi Access Point ================= .. doxygengroup:: wifi_ap + :members: diff --git a/docs/source/framework/platform/station.rst b/docs/source/framework/platform/station.rst index bfb2ce8a49..b31a8fdcfa 100644 --- a/docs/source/framework/platform/station.rst +++ b/docs/source/framework/platform/station.rst @@ -2,3 +2,4 @@ WiFi Station ============ .. doxygengroup:: wifi_sta + :members: diff --git a/docs/source/framework/platform/system.rst b/docs/source/framework/platform/system.rst index 75a8d267d5..4b549121a3 100644 --- a/docs/source/framework/platform/system.rst +++ b/docs/source/framework/platform/system.rst @@ -46,3 +46,4 @@ API Documentation ----------------- .. doxygengroup:: system + :members: diff --git a/docs/source/framework/platform/wifi-events.rst b/docs/source/framework/platform/wifi-events.rst index b5c65fb2d4..2c48e13927 100644 --- a/docs/source/framework/platform/wifi-events.rst +++ b/docs/source/framework/platform/wifi-events.rst @@ -2,3 +2,4 @@ WiFi Events =========== .. doxygengroup:: wifi_ev + :members: diff --git a/docs/source/framework/platform/wifi-sniffer.rst b/docs/source/framework/platform/wifi-sniffer.rst index dc97a432bb..dde8be1bfb 100644 --- a/docs/source/framework/platform/wifi-sniffer.rst +++ b/docs/source/framework/platform/wifi-sniffer.rst @@ -7,3 +7,4 @@ API Documentation ----------------- .. doxygengroup:: wifi_sniffer + :members: diff --git a/docs/source/framework/services/command-processing/index.rst b/docs/source/framework/services/command-processing/index.rst index 92592fcaa7..42eb48fcb8 100644 --- a/docs/source/framework/services/command-processing/index.rst +++ b/docs/source/framework/services/command-processing/index.rst @@ -39,3 +39,4 @@ API Documentation .. doxygengroup:: commandhandler :content-only: + :members: diff --git a/docs/source/framework/services/profiling/cpu-usage.rst b/docs/source/framework/services/profiling/cpu-usage.rst index 5c87e2fe5c..1769974b79 100644 --- a/docs/source/framework/services/profiling/cpu-usage.rst +++ b/docs/source/framework/services/profiling/cpu-usage.rst @@ -33,3 +33,4 @@ utilisation .. doxygenclass:: Profiling::CpuUsage + :members: diff --git a/docs/source/framework/services/profiling/min-max-times.rst b/docs/source/framework/services/profiling/min-max-times.rst index 45ffe78ce5..885b096c92 100644 --- a/docs/source/framework/services/profiling/min-max-times.rst +++ b/docs/source/framework/services/profiling/min-max-times.rst @@ -2,3 +2,4 @@ Min-Max Times ============= .. doxygenclass:: Profiling::MinMaxTimes + :members: diff --git a/docs/source/framework/services/profiling/min-max.rst b/docs/source/framework/services/profiling/min-max.rst index 2401ad542d..c93446d6a7 100644 --- a/docs/source/framework/services/profiling/min-max.rst +++ b/docs/source/framework/services/profiling/min-max.rst @@ -2,3 +2,4 @@ Min-Max ======= .. doxygenclass:: Profiling::MinMax + :members: diff --git a/docs/source/framework/timers/callback-timer.rst b/docs/source/framework/timers/callback-timer.rst index 06a8c299bf..bd7cde27ad 100644 --- a/docs/source/framework/timers/callback-timer.rst +++ b/docs/source/framework/timers/callback-timer.rst @@ -2,4 +2,5 @@ Callback Timer API ================== .. doxygenclass:: CallbackTimer + :members: diff --git a/docs/source/framework/timers/clocks.rst b/docs/source/framework/timers/clocks.rst index ae5b8c72c9..cdbaa3b1ce 100644 --- a/docs/source/framework/timers/clocks.rst +++ b/docs/source/framework/timers/clocks.rst @@ -50,3 +50,4 @@ System Clock API .. doxygengroup:: system_clocks :content-only: + :members: diff --git a/docs/source/framework/timers/hardware-timer.rst b/docs/source/framework/timers/hardware-timer.rst index d9f5155396..713edb7be7 100644 --- a/docs/source/framework/timers/hardware-timer.rst +++ b/docs/source/framework/timers/hardware-timer.rst @@ -12,3 +12,4 @@ The API for hardware (and :doc:`timer-queue` timers) is identical, implemented u .. doxygengroup:: hardware_timer + :members: diff --git a/docs/source/framework/timers/polled-timer.rst b/docs/source/framework/timers/polled-timer.rst index 29b9295c07..28add6579c 100644 --- a/docs/source/framework/timers/polled-timer.rst +++ b/docs/source/framework/timers/polled-timer.rst @@ -66,3 +66,4 @@ API Documentation ----------------- .. doxygengroup:: polled_timer + :members: diff --git a/docs/source/framework/timers/simple-timer.rst b/docs/source/framework/timers/simple-timer.rst index 6472ddbc8d..9aa50b714e 100644 --- a/docs/source/framework/timers/simple-timer.rst +++ b/docs/source/framework/timers/simple-timer.rst @@ -5,3 +5,4 @@ The :cpp:type:`SimpleTimer` class only supports regular function callbacks, but the additional functionality that a regular :cpp:class:`Timer` offers then it will save some RAM. .. doxygengroup:: simple_timer + :members: diff --git a/docs/source/framework/timers/timer.rst b/docs/source/framework/timers/timer.rst index 4298a4a43e..d4d28a3b1a 100644 --- a/docs/source/framework/timers/timer.rst +++ b/docs/source/framework/timers/timer.rst @@ -5,4 +5,4 @@ The :cpp:class:`Timer` class is the most flexible way to use software timers, su and delegate callback functions so you can use it with class methods, capturing lambdas, etc. .. doxygengroup:: timer - + :members: diff --git a/docs/source/framework/wiring/vector.rst b/docs/source/framework/wiring/vector.rst index 47c5678503..98483762da 100644 --- a/docs/source/framework/wiring/vector.rst +++ b/docs/source/framework/wiring/vector.rst @@ -2,3 +2,4 @@ Vector ====== .. doxygenclass:: Vector + :members: diff --git a/docs/source/framework/wiring/whashmap.rst b/docs/source/framework/wiring/whashmap.rst index 3a3b138748..a4ad4ba8aa 100644 --- a/docs/source/framework/wiring/whashmap.rst +++ b/docs/source/framework/wiring/whashmap.rst @@ -2,3 +2,4 @@ HashMap ======= .. doxygenclass:: HashMap + :members: diff --git a/docs/source/framework/wiring/wstring.rst b/docs/source/framework/wiring/wstring.rst index fbf2af5626..9496ee0c1a 100644 --- a/docs/source/framework/wiring/wstring.rst +++ b/docs/source/framework/wiring/wstring.rst @@ -13,7 +13,7 @@ To alleviate this problem, Sming uses a technique known as *Small String Optimis which uses the available space inside the String object itself to avoid using the heap for small allocations of 10 characters or fewer. -This was lifted from the `Arduino Esp8266 core `. +This was lifted from the `Arduino Esp8266 core `__. Superb work - thank you! Configuration Variables @@ -54,3 +54,4 @@ API Documentation ----------------- .. doxygenclass:: String + :members: diff --git a/docs/source/upgrading/4.0-4.1.rst b/docs/source/upgrading/4.0-4.1.rst index 68502abd57..386667c7df 100644 --- a/docs/source/upgrading/4.0-4.1.rst +++ b/docs/source/upgrading/4.0-4.1.rst @@ -51,3 +51,14 @@ by the application code: server.setBodyParser(MIME_FORM_MULTIPART, formMultipartParser); +Stream methods +============== + +:pull-request:`1867` added a :cpp:func:`IDataSourceStream::readString(size_t)` method which shadows +:cpp:func:`Stream::readString`. Its behaviour was also inconsistent in that the stream position +was left unchanged for memory streams. This has been corrected, and is now a virtual method. + +The :c:func:`Stream::readBytes` has been virtualised and overriden for :cpp:class:`IDataSourceStream` +descendents for more efficient operation, especially with ArduinoJson. +For normal read operations where the stream position is to be updated, applications should use +this method in preference to :c:func:`IDataSourceStream::readMemoryBlock`.