|
Embedded Artistry Framework
Embedded Systems C++ Framework
|
Drivers provided by the framework. More...
|
Modules | |
| Unit Test Drivers | |
| Drivers intended for use with unit test code. | |
| Simulator Drivers | |
| Drivers intended for use with simulator applications (run on host machine) | |
Classes | |
| class | embdrv::ssd1306 |
| Driver for the SSD1306 Display Driver. More... | |
| class | embdrv::vl53l1x |
| ST VL53L1X Time-of-Flight Sensor Driver. More... | |
Drivers provided by the framework.
| class embdrv::ssd1306 |
Driver for the SSD1306 Display Driver.
This implementation only supports I2C, though the part supports SPI and Parallel modes To implement that support, please use a state pattern and adjust the i2cWrite function to be a more generic write. This single function can be swapped out for the particular data mode.
The screen size is hard-coded to be 64 x 48 with an offset of 32. Adjustments are needed to make the screen size specification generic.

Public Types | |
| enum | invert : uint8_t { invert::normal = 0, invert::invert } |
| Display color inversion options. More... | |
| enum | mode : uint8_t { mode::normal = 0, mode::XOR } |
| Set the drawing mode, if supported by the driver. More... | |
| enum | color : uint8_t { color::black = 0, color::white } |
| Basic displays have two pixel colors: black and white. More... | |
| using | coord_t = uint8_t |
| Coordinate representation type. More... | |
Public Member Functions | |
| ssd1306 (embvm::i2c::master &i2c, uint8_t i2c_addr=DEFAULT_SSD1306_I2C_ADDR) | |
| Address is 0x3D if DC pin is set to 1. More... | |
| void | clear () noexcept final |
| Clear the screen contents. More... | |
| void | clearAndDisplay () noexcept |
| void | invert (enum invert inv) noexcept final |
| Invert the display color. More... | |
| void | contrast (uint8_t contrast) noexcept final |
| Set contrast. More... | |
| void | cursor (coord_t x, coord_t y) noexcept final |
| Set the cusor within the screen buffer. More... | |
| void | pixel (coord_t x, coord_t y, color c, mode m) noexcept final |
| Draw a pixel with a specific color and mode. More... | |
| void | line (coord_t x0, coord_t y0, coord_t x1, coord_t y1, color c, mode m) noexcept final |
| Draw a line with a specific color and mode. More... | |
| void | rect (coord_t x, coord_t y, uint8_t width, uint8_t height, color c, mode m) noexcept final |
| Draw a rectangle with a specific color and mode. More... | |
| void | rectFill (coord_t x, coord_t y, uint8_t width, uint8_t height, color c, mode m) noexcept final |
| Draw a filled rectangle with a specific color and mode. More... | |
| void | circle (coord_t x, coord_t y, uint8_t radius, color c, mode m) noexcept final |
| Draw a circle with a specific color and mode. More... | |
| void | circleFill (coord_t x, coord_t y, uint8_t radius, color c, mode m) noexcept final |
| Draw a filled circle with a specific color and mode. More... | |
| void | drawChar (coord_t x, coord_t y, uint8_t character, color c, mode m) noexcept final |
| Draw an ASCII character with a specific color and mode. More... | |
| void | drawBitmap (uint8_t *bitmap) noexcept final |
| Replace the screen buffer with a bitmap. More... | |
| uint8_t | screenWidth () const noexcept final |
| Check the screen width. More... | |
| uint8_t | screenHeight () const noexcept final |
| Check the screen height. More... | |
| void | scrollRight (coord_t start, coord_t stop) noexcept final |
| Enable right scrolling. More... | |
| void | scrollLeft (coord_t start, coord_t stop) noexcept final |
| Enable left scrolling. More... | |
| void | scrollVertRight (coord_t start, coord_t stop) noexcept final |
| void | scrollVertLeft (coord_t start, coord_t stop) noexcept final |
| void | scrollStop () noexcept final |
| Stop scrolling. More... | |
| void | flipVertical (bool flip) noexcept final |
| Vertical flip. More... | |
| void | flipHorizontal (bool flip) noexcept final |
| Horizontal flip. More... | |
| void | display () noexcept final |
| Flush the screen buffer contents to the hardware display buffer. More... | |
| uint8_t | fontType (uint8_t type) noexcept |
| Set the font type. More... | |
| uint8_t | fontType () const noexcept |
| Get the current font type. More... | |
| uint8_t | fontWidth () const noexcept |
| Get the font width. More... | |
| uint8_t | fontHeight () const noexcept |
| Get the font height. More... | |
| uint8_t | totalFonts () const noexcept |
| Get the total number of supported fonts. More... | |
| uint8_t | fontStartChar () const noexcept |
| Get the starting character for the font. More... | |
| uint8_t | fontTotalChar () const noexcept |
| Get the total number of characters supported by the font. More... | |
| void | putchar (uint8_t c) noexcept final |
| Print a character on the display. More... | |
| void | pixel (coord_t x, coord_t y) noexcept |
| Draw a pixel in the screen buffer. More... | |
| void | line (coord_t x0, coord_t y0, coord_t x1, coord_t y1) noexcept |
| Draw a line. More... | |
| void | lineH (coord_t x, coord_t y, uint8_t width) noexcept |
| Draw a horizontal line. More... | |
| void | lineH (coord_t x, coord_t y, uint8_t width, color c, mode m) noexcept |
| Draw a horizontal line with a specific color and mode. More... | |
| void | lineV (coord_t x, coord_t y, uint8_t height) noexcept |
| Draw a vertical line. More... | |
| void | lineV (coord_t x, coord_t y, uint8_t height, color c, mode m) noexcept |
| Draw a vertical line with a specific color and mode. More... | |
| void | rect (coord_t x, coord_t y, uint8_t width, uint8_t height) noexcept |
| Draw a rectangle. More... | |
| void | rectFill (coord_t x, coord_t y, uint8_t width, uint8_t height) noexcept |
| Draw a filled rectangle. More... | |
| void | circle (coord_t x, coord_t y, uint8_t radius) noexcept |
| Draw a circle. More... | |
| void | circleFill (coord_t x, coord_t y, uint8_t radius) noexcept |
| Draw a filled circle. More... | |
| void | drawChar (coord_t x, coord_t y, uint8_t character) noexcept |
| Draw an ASCII character. More... | |
| void | printString (coord_t x, coord_t y, const char *str) noexcept |
| Print a string on the display. More... | |
| void | printString (coord_t x, coord_t y, const char *str, size_t length) noexcept |
| Print a string on the display. More... | |
| void | drawColor (color c) noexcept |
| Set color. More... | |
| virtual void | drawMode (mode m) noexcept |
| Set draw mode. More... | |
| void | start () noexcept |
| Start the driver. More... | |
| void | stop () noexcept |
| Stop the driver. More... | |
| void | restart () noexcept |
| Restart the driver. More... | |
| type_safe::boolean | started () const noexcept |
| Check if the driver has been started. More... | |
| constexpr embvm::DriverType_t | DriverType () const noexcept |
| Returns the registered type ID of the driver. More... | |
| constexpr const std::string_view & | name () const noexcept |
| Provides a string_view reference of the driver name. More... | |
| constexpr const char * | name_cstr () const noexcept |
| Provides a c-string version of the driver name. More... | |
| virtual DriverBase & | operator++ () noexcept |
| Increment operator is a no-op, but is used for iterator compatibility. More... | |
Static Public Member Functions | |
| static constexpr embvm::DriverType | type () noexcept |
| Basic Display Driver Type ID. More... | |
Protected Attributes | |
| mode | mode_ = mode::normal |
| The current display mode setting. More... | |
| color | color_ = color::black |
| The current display color setting. More... | |
| type_safe::boolean | started_ = false |
| Tracks the driver state. More... | |
| const std::string_view | name_ |
| Name of the driver instance. More... | |
| const embvm::DriverType_t | type_ |
| Type ID of the driver instance. More... | |
Private Member Functions | |
| void | start_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
| void | stop_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
| void | i2c_write (const uint8_t *buffer, uint8_t size, const embvm::i2c::master::cb_t &cb) noexcept |
| Helper function which performs an I2C write. More... | |
| void | clear (uint8_t c) noexcept |
| Clear the display and initialize buffer bytes with the target value. More... | |
| void | command (uint8_t c) noexcept |
| Send a command to the display driver hardware. More... | |
| void | command (uint8_t cmd, uint8_t arg1) noexcept |
| Send a command with one argument to the display driver hardware. More... | |
| void | command (uint8_t cmd, uint8_t arg1, uint8_t arg2) noexcept |
| Send a command with two arguments to the display driver hardware. More... | |
| void | data (uint8_t c) noexcept |
| Send a data byte to the display driver hardware. More... | |
| void | setColumnAddress (uint8_t add) noexcept |
| Set the column address. More... | |
| void | setPageAddress (uint8_t add) noexcept |
| Set the page address. More... | |
| void | drawCharSingleRow (coord_t x, coord_t y, uint8_t character, color c, mode m) noexcept |
| void | drawCharMultiRow (coord_t x, coord_t y, uint8_t character, color c, mode m) noexcept |
Private Attributes | |
| uint8_t | fontWidth_ = 0 |
| uint8_t | fontHeight_ = 0 |
| uint8_t | fontType_ = 0 |
| uint8_t | fontStartChar_ = 0 |
| uint8_t | fontTotalChar_ = 0 |
| uint16_t | fontMapWidth_ = 0 |
| uint8_t | cursorX_ = 0 |
| X-axies position of the cursor. More... | |
| uint8_t | cursorY_ = 0 |
| Y-axis position of the cursor. More... | |
| embvm::i2c::master & | i2c_ |
| The i2c instance this display driver is attached to. More... | |
| uint8_t | i2c_addr_ |
| The I2C address for this dispaly. More... | |
| etl::variant_pool< 128, uint8_t, uint16_t, uint32_t > | i2c_pool_ {} |
| Static memory pool which is used for display I2C transactions. More... | |
| uint8_t | display_buffer_ [SCREEN_BUFFER_SIZE+1] = {0} |
| OLED screen buffer. More... | |
| uint8_t *const | screen_buffer_ = &display_buffer_[1] |
| Pointer alias to the display_buffer_ which accounts for the single byte reserved for the DATA command value. More... | |
Static Private Attributes | |
| static constexpr uint8_t | SCREEN_WIDTH = 64 |
| The width of the scren in pixels. More... | |
| static constexpr uint8_t | SCREEN_HEIGHT = 48 |
| The height of the screen in pixels. More... | |
| static constexpr size_t | SCREEN_BUFFER_SIZE = ((SCREEN_WIDTH * SCREEN_HEIGHT) / 8) |
| The size of the screen buffer We divide by 8 because each byte controls the state of 8 pixels. More... | |
| static constexpr uint8_t | COLUMN_OFFSET = 32 |
| The number of columns offset into the display where the active display area starts. More... | |
| static const std::array< const uint8_t *, 2 > | fonts_ = {font5x7, font8x16} |
| Array of fonts supported by this driver. More... | |
|
inherited |
Coordinate representation type.
|
stronginherited |
|
stronginherited |
|
stronginherited |
|
inlineexplicit |
Address is 0x3D if DC pin is set to 1.
References display_buffer_.
Draw a circle with a specific color and mode.
Draw a circle with center (x,y) and the specified radius using a specific color setting and draw mode in the screen buffer. Only the boundary of the circle will be drawn.
| x | X-coorindate for the center of the circle. |
| y | Y-coordinate for the center of the circle. |
| radius | The radius of the circle. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
Draw a circle.
Draw a circle with center (x,y) and the specified radius using the configured color setting and draw mode in the screen buffer. Only the boundary of the circle will be drawn.
| x | X-coorindate for the center of the circle. |
| y | Y-coordinate for the center of the circle. |
| radius | The radius of the circle. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
finalvirtualnoexcept |
Draw a filled circle with a specific color and mode.
Draw a filled circle with center (x,y) and the specified radius using a specific color setting and draw mode in the screen buffer. The interior of the circle will be filled with the specified color setting.
| x | X-coorindate for the center of the circle. |
| y | Y-coordinate for the center of the circle. |
| radius | The radius of the circle. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
|
inlinenoexceptinherited |
Draw a filled circle.
Draw a filled circle with center (x,y) and the specified radius using the configured color setting and draw mode in the screen buffer. The interior of the circle will be filled with the specified color setting.
| x | X-coorindate for the center of the circle. |
| y | Y-coordinate for the center of the circle. |
| radius | The radius of the circle. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
finalvirtualnoexcept |
Clear the screen contents.
Implements embvm::basicDisplay.
Referenced by clearAndDisplay(), and start_().
|
privatenoexcept |
Clear the display and initialize buffer bytes with the target value.
| c | The value to initialize the bytes of the screen buffe rwith. |
References memset().
|
privatenoexcept |
Send a command to the display driver hardware.
| c | the command byte. |
Referenced by scrollStop(), start_(), and stop_().
Send a command with one argument to the display driver hardware.
| cmd | the command byte. |
| arg1 | The argument to send with the command byte. |
Send a command with two arguments to the display driver hardware.
| cmd | the command byte. |
| arg1 | The first argument to send with the command byte. |
| arg2 | The second argumet to send with the command byte. |
|
finalvirtualnoexcept |
Set contrast.
| contrast | Target display contrast value, ranging from 0 to 255. |
Implements embvm::basicDisplay.
Set the cusor within the screen buffer.
Contents in the screen buffer are not modified by setting the cursor position.
| x | X-coordinate of the cursor. |
| y | Y-coordinate of the cursor. |
Implements embvm::basicDisplay.
Referenced by start_().
|
privatenoexcept |
Send a data byte to the display driver hardware.
| c | The data byte to send to the display. |
|
finalvirtualnoexcept |
Flush the screen buffer contents to the hardware display buffer.
Implements embvm::basicDisplay.
References display_buffer_, i2c_, i2c_addr_, t, and embvm::i2c::write.
Referenced by clearAndDisplay(), and start_().
|
finalvirtualnoexcept |
Replace the screen buffer with a bitmap.
Supply a bitmap to write to the screen buffer. If the size of the bitmap is less than the size of the screen buffer, the remainder of the screen buffer will not be modified.
| bitmap | Bitmap array which will be used to overwrite the screen buffer. |
Implements embvm::basicDisplay.
References memcpy().
|
finalvirtualnoexcept |
Draw an ASCII character with a specific color and mode.
Draw an ASCII character using a specific color and draw mode with the upper left corner of the character located at (x,y).
| x | X-coordinate representing the top-left of the character. |
| y | Y-coordinate representing the top-left of the character. |
| character | the ASCII character to draw. Must be present in the font file. If the requested character is not present, nothing will be drawn on the screen buffer. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
References assert.
|
inlinenoexceptinherited |
Draw an ASCII character.
Draw an ASCII character using the configured color and draw mode with the upper left corner of the character located at (x,y).
| x | X-coordinate representing the top-left of the character. |
| y | Y-coordinate representing the top-left of the character. |
| character | the ASCII character to draw. Must be present in the font file. If the requested character is not present, nothing will be drawn on the screen buffer. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
privatenoexcept |
|
privatenoexcept |
|
inlinenoexceptinherited |
Set color.
Set the current draw's color. Only WHITE and BLACK available.
| c | The desired draw color setting. |
References assert, embvm::basicDisplay::black, embvm::basicDisplay::color_, and embvm::basicDisplay::white.
Referenced by start_().
|
inlinevirtualnoexceptinherited |
Set draw mode.
| m | Desired draw mode: NORM or XOR. |
References assert, embvm::basicDisplay::mode_, embvm::basicDisplay::normal, and embvm::basicDisplay::XOR.
Referenced by start_().
|
inlinenoexceptinherited |
Returns the registered type ID of the driver.
When using DriverBase interfaces, clients can retrieve the registered driver type in order to up-cast to the correct interface.
The type is returned as a embvm::DriverType_t rather than a embvm::DriverType enum to work with custom user-defined types. Enforcing a embvm::DriverType return value would prevent clients from defining and using their own custom types.
References embvm::DriverBase::type_.
|
finalvirtualnoexcept |
Horizontal flip.
Flip the graphics on the display horizontally.
| flip | True enables horizontal flip, false disables horizontal flip. |
Implements embvm::basicDisplay.
References x0.
|
finalvirtualnoexcept |
Vertical flip.
Flip the graphics on the display vertically.
| flip | True enables vertical flip, false disables vertical flip. |
Implements embvm::basicDisplay.
|
inlinenoexcept |
Get the font height.
References fontHeight_.
|
inlinenoexcept |
Get the starting character for the font.
References fontStartChar_.
|
inlinenoexcept |
Get the total number of characters supported by the font.
References fontTotalChar_.
|
inlinenoexcept |
|
inlinenoexcept |
Get the font width.
References fontWidth_.
|
privatenoexcept |
Helper function which performs an I2C write.
| buffer | The transaction buffer. |
| size | The size of the write. |
| cb | The callback function to invoke when the write completes. |
References t, and embvm::i2c::write.
|
finalvirtualnoexcept |
Invert the display color.
The WHITE color of the display will turn to BLACK and the BLACK will turn to WHITE.
| inv | invert::invert uses color inversion, invert::normal uses the display standard. |
Implements embvm::basicDisplay.
References normal.
|
finalvirtualnoexcept |
Draw a line with a specific color and mode.
Draw line with a specific color setting and draw mode from (x0,y0) to (x1,y1) of the screen buffer.
| x0 | X-coordinate where the line originates. |
| y0 | Y-coordinate where the line originates. |
| x1 | X-coordinate where the line terminates. |
| y1 | Y-coordinate where the line terminates. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
|
inlinenoexceptinherited |
Draw a line.
Draw a line using the configured color setting and draw mode from (x0,y0) to (x1,y1) of the screen buffer.
| x0 | X-coordinate where the line originates. |
| y0 | Y-coordinate where the line originates. |
| x1 | X-coordinate where the line terminates. |
| y1 | Y-coordinate where the line terminates. |
References embvm::basicDisplay::color_, embvm::basicDisplay::mode_, and x0.
Referenced by embvm::basicDisplay::lineH(), and embvm::basicDisplay::lineV().
Draw a horizontal line.
Draw a horizontal line using the configured color setting and draw mode from (x,y) to (x+width,y) in the screen buffer.
| x | X-coordinate where the line originates. |
| y | Y-coordinate where the line originates. |
| width | Length of the line, in pixels. The line will terminate at coordinate (x+width, y). |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
inlinenoexceptinherited |
Draw a horizontal line with a specific color and mode.
Draw a horizontal line with a specific color setting and draw mode from (x,y) to (x+width,y) in the screen buffer.
| x | X-coordinate where the line originates. |
| y | Y-coordinate where the line originates. |
| width | Length of the line, in pixels. The line will terminate at coordinate (x+width, y). |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
References embvm::basicDisplay::line().
Draw a vertical line.
Draw a vertical line using the configured color setting and draw mode from (x,y) to (x,y+height) in the screen buffer.
| x | X-coordinate where the line originates. |
| y | Y-coordinate where the line originates. |
| height | Length of the line, in pixels. The line will terminate at coordinate (x, y+height). |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
inlinenoexceptinherited |
Draw a vertical line with a specific color and mode.
Draw a vertical line using a specific color setting and draw mode from (x,y) to (x,y+height) in the screen buffer.
| x | X-coordinate where the line originates. |
| y | Y-coordinate where the line originates. |
| height | Length of the line, in pixels. The line will terminate at coordinate (x, y+height). |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
References embvm::basicDisplay::line().
|
inlinenoexceptinherited |
Provides a string_view reference of the driver name.
std::string_view ref containing the driver name. References embvm::DriverBase::name_.
|
inlinenoexceptinherited |
Provides a c-string version of the driver name.
References embvm::DriverBase::name_.
|
inlinevirtualnoexceptinherited |
Increment operator is a no-op, but is used for iterator compatibility.
Draw a pixel with a specific color and mode.
Draw a pixel at position (x,y) with a specific color setting and draw mode.
| x | X-coordinate of the pixel. |
| y | Y-coordinate of the pixel. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
References SET_BIT.
Draw a pixel in the screen buffer.
Draw pixel using the configured color setting and draw mode in the screen buffer's x,y position.
| x | X-coordinate of the pixel. |
| y | Y-coordinate of the pixel. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
inlinenoexceptinherited |
Print a string on the display.
| x | The x-coordinate to start the string. |
| y | The y-coordinate to start the string. |
| str | The string to print to the display. |
References strlen().
|
inlinenoexceptinherited |
Print a string on the display.
| x | The x-coordinate to start the string. |
| y | The y-coordinate to start the string. |
| str | The string to print to the display. |
| length | The number of characters in str. |
References embvm::basicDisplay::cursor(), length, and embvm::basicDisplay::putchar().
|
finalvirtualnoexcept |
Print a character on the display.
| c | the character to print to the display |
Implements embvm::basicDisplay.
|
finalvirtualnoexcept |
Draw a rectangle with a specific color and mode.
Draw a rectangle with a specific color setting and draw mode from (x,y) to (x+width,y+height) in the screen buffer. Only the boundary of the rectangle will be drawn.
| x | X-coordinate where the rectangle originates. |
| y | Y-coordinate where the rectangle originates. |
| width | Width of the rectangle, in pixels. The rectangle width spans from x to x+width. |
| height | Height of the rectangle, in pixels. The rectangle height spans from y + y+height. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
|
inlinenoexceptinherited |
Draw a rectangle.
Draw a rectangle using the configured color setting and draw mode from (x,y) to (x+width,y+height) in the screen buffer. Only the boundary of the rectangle will be drawn.
| x | X-coordinate where the rectangle originates. |
| y | Y-coordinate where the rectangle originates. |
| width | Width of the rectangle, in pixels. The rectangle width spans from x to x+width. |
| height | Height of the rectangle, in pixels. The rectangle height spans from y + y+height. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
finalvirtualnoexcept |
Draw a filled rectangle with a specific color and mode.
Draw a filled rectangle using a specific color setting and draw mode from (x,y) to (x+width,y+height) in the screen buffer. The interior of the rectangle will be filled with the specified color setting.
| x | X-coordinate where the rectangle originates. |
| y | Y-coordinate where the rectangle originates. |
| width | Width of the rectangle, in pixels. The rectangle width spans from x to x+width. |
| height | Height of the rectangle, in pixels. The rectangle height spans from y + y+height. |
| c | Pixel color. |
| m | Mode used to update the screen buffer. |
Implements embvm::basicDisplay.
|
inlinenoexceptinherited |
Draw a filled rectangle.
Draw a filled rectangle using the configured color setting and draw mode from (x,y) to (x+width,y+height) in the screen buffer. The interior of the rectangle will be filled with the configured color setting.
| x | X-coordinate where the rectangle originates. |
| y | Y-coordinate where the rectangle originates. |
| width | Width of the rectangle, in pixels. The rectangle width spans from x to x+width. |
| height | Height of the rectangle, in pixels. The rectangle height spans from y + y+height. |
References embvm::basicDisplay::color_, and embvm::basicDisplay::mode_.
|
inlinenoexceptinherited |
Restart the driver.
Calls stop() and then start() on the driver. If the driver is not started, then it will be started after the start() function is invoked.
References embvm::DriverBase::start(), and embvm::DriverBase::stop().
|
finalvirtualnoexcept |
Check the screen height.
The drived class must implement this function.
Implements embvm::basicDisplay.
References SCREEN_HEIGHT.
|
finalvirtualnoexcept |
Check the screen width.
The drived class must implement this function.
Implements embvm::basicDisplay.
References SCREEN_WIDTH.
Enable left scrolling.
Set row start to row stop on the display to scroll left.
| start | The start row index. |
| stop | The stop row index. |
Implements embvm::basicDisplay.
References assert.
Enable right scrolling.
Set row start to row stop on the display to scroll right.
| start | The start row index. |
| stop | The stop row index. |
Implements embvm::basicDisplay.
References assert.
|
finalvirtualnoexcept |
Stop scrolling.
Stop the scrolling of graphics on the display.
Implements embvm::basicDisplay.
References command().
Implements embvm::basicDisplay.
References assert.
Implements embvm::basicDisplay.
References assert.
|
privatenoexcept |
Set the column address.
| add | The address of the column. |
|
privatenoexcept |
Set the page address.
| add | The address of the page. |
|
inlinenoexceptinherited |
Start the driver.
If the driver is not started, call the start_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::start_(), and embvm::DriverBase::started_.
Referenced by NRF52DongleHWPlatform::init_(), NRF52DKHWPlatform::init_(), BlinkySimulatorHWPlatform::init_(), FWDemoSimulatorHWPlatform::init_(), FrameworkDemoSimPlatform::initHWPlatform_(), embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::start_(), embvm::i2c::activeMaster< 128 >::start_(), embdrv::aardvarkSPIMaster::start_(), embdrv::aardvarkI2CMaster::start_(), embdrv::aardvarkGPIOInput< 4 >::start_(), embdrv::vl53l1x::start_(), embdrv::aardvarkGPIOOutput< 5 >::start_(), BlinkySimulatorHWPlatform::startBlink(), and FWDemoSimulatorHWPlatform::startLEDTimer().
|
finalprivatevirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Display init sequence These values were inherited from Sparkfun's example
Implements embvm::basicDisplay.
References clear(), COLUMN_OFFSET, command(), cursor(), display(), embvm::basicDisplay::drawColor(), embvm::basicDisplay::drawMode(), fontType(), embvm::basicDisplay::normal, SCREEN_WIDTH, embvm::basicDisplay::white, and x0.
|
inlinenoexceptinherited |
Check if the driver has been started.
true if the driver is running (started), false if not running (stopped). References embvm::DriverBase::started_.
Referenced by embdrv::aardvarkSPIMaster::configure_(), embdrv::aardvarkGPIOInput< 4 >::get(), embdrv::aardvarkGPIOOutput< 5 >::set(), embdrv::vl53l1x::start_(), embdrv::aardvarkAdapter::start_(), and embdrv::aardvarkAdapter::stop_().
|
inlinenoexceptinherited |
Stop the driver.
If the driver has been started, call the stop_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::started_, and embvm::DriverBase::stop_().
Referenced by embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::stop_(), embvm::i2c::activeMaster< 128 >::stop_(), embdrv::aardvarkSPIMaster::stop_(), embdrv::aardvarkI2CMaster::stop_(), embdrv::aardvarkGPIOInput< 4 >::stop_(), embdrv::aardvarkGPIOOutput< 5 >::stop_(), FWDemoSimulatorHWPlatform::~FWDemoSimulatorHWPlatform(), and embdrv::SimulatorTimer::~SimulatorTimer().
|
finalprivatevirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Implements embvm::basicDisplay.
References command().
|
noexcept |
Get the total number of supported fonts.
|
inlinestaticnoexceptinherited |
|
protectedinherited |
The current display color setting.
Referenced by embvm::basicDisplay::circle(), embvm::basicDisplay::circleFill(), embvm::basicDisplay::drawChar(), embvm::basicDisplay::drawColor(), embvm::basicDisplay::line(), embvm::basicDisplay::lineH(), embvm::basicDisplay::lineV(), embvm::basicDisplay::pixel(), embvm::basicDisplay::rect(), and embvm::basicDisplay::rectFill().
|
staticprivate |
The number of columns offset into the display where the active display area starts.
Referenced by start_().
|
private |
X-axies position of the cursor.
|
private |
Y-axis position of the cursor.
|
private |
OLED screen buffer.
Page buffer is required because in SPI and I2C mode, the host cannot read the SSD1306's GDRAM of the controller. This page buffer serves as a scratch RAM for graphical functions. All drawing function will first be drawn on this page buffer, only upon calling display() function will transfer the page buffer to the actual LCD controller's memory.
The additional byte is to represent the data word byte, which allows us to send the entire buffer in one shot
|
private |
Referenced by fontHeight().
|
private |
Array of fonts supported by this driver.
NOTE: the SSD1306 DOES NOT WORK WITH A REPEATED START CONDITION There must be no start between the data byte and the data stream.
|
private |
Referenced by fontStartChar().
|
private |
Referenced by fontTotalChar().
|
private |
Referenced by fontType().
|
private |
Referenced by fontWidth().
|
private |
The i2c instance this display driver is attached to.
Referenced by display().
|
private |
The I2C address for this dispaly.
Referenced by display().
Static memory pool which is used for display I2C transactions.
|
protectedinherited |
The current display mode setting.
Referenced by embvm::basicDisplay::circle(), embvm::basicDisplay::circleFill(), embvm::basicDisplay::drawChar(), embvm::basicDisplay::drawMode(), embvm::basicDisplay::line(), embvm::basicDisplay::lineH(), embvm::basicDisplay::lineV(), embvm::basicDisplay::pixel(), embvm::basicDisplay::rect(), and embvm::basicDisplay::rectFill().
|
protectedinherited |
Name of the driver instance.
Referenced by embvm::DriverBase::name(), and embvm::DriverBase::name_cstr().
|
private |
Pointer alias to the display_buffer_ which accounts for the single byte reserved for the DATA command value.
|
staticprivate |
The size of the screen buffer We divide by 8 because each byte controls the state of 8 pixels.
|
staticprivate |
The height of the screen in pixels.
Referenced by screenHeight().
|
staticprivate |
The width of the scren in pixels.
Referenced by screenWidth(), and start_().
|
protectedinherited |
Tracks the driver state.
True if the driver has been started, false if it has been stopped or not yet started.
Referenced by embvm::DriverBase::start(), embvm::DriverBase::started(), and embvm::DriverBase::stop().
|
protectedinherited |
Type ID of the driver instance.
Referenced by embvm::DriverBase::DriverType().
| class embdrv::vl53l1x |
ST VL53L1X Time-of-Flight Sensor Driver.
This driver is configured to work with I2C. You must initialize the device with an I2C Master.

Public Types | |
| using | rate_cb_t = stdext::inplace_function< void(uint16_t)> |
| Alias for signalRate() callback function. More... | |
| using | status_cb_t = stdext::inplace_function< void(embvm::tof::status)> |
| Alias for the rangeStatus() callback function. More... | |
| using | read_cb_t = stdext::inplace_function< void(uint16_t)> |
| ToF Callback function which retuns distance in mm. More... | |
Public Member Functions | |
| vl53l1x (embvm::i2c::master &i2c, uint8_t address=VL53L1X_DEFAULT_I2C_ADDR) noexcept | |
| Create a VL53L1X device. More... | |
| void | read () noexcept final |
| Trigger a sensor read. More... | |
| void | reset () noexcept final |
| Reset the ToF sensor. More... | |
| embvm::tof::distance_t | getMaxRangeForModeDark (embvm::tof::mode m) const noexcept final |
| Check the maximum range in the dark. More... | |
| embvm::tof::distance_t | getMaxRangeForModeStrongLight (embvm::tof::mode m) const noexcept final |
| Check the maximum range in strong light conditions. More... | |
| embvm::tof::mode | mode (embvm::tof::mode m) noexcept final |
| Set the ToF ranging mode. More... | |
| void | signalRate () noexcept |
| Get the current signal rate. More... | |
| void | rangeStatus () noexcept |
| Get the ranging status When called, registered range status callbacks will be invoked with the signal rate. More... | |
| void | registerReadCallback (const read_cb_t &cb) noexcept final |
| Register a callback for the read() function. More... | |
| void | registerReadCallback (read_cb_t &&cb) noexcept final |
| Register a callback for the read() function. More... | |
| void | registerSignalRateCallback (const rate_cb_t &cb) noexcept |
| Register a callback for use with the signalRate() function. More... | |
| void | registerSignalRateCallback (rate_cb_t &&cb) noexcept |
| void | registerStatusCallback (const status_cb_t &cb) noexcept |
| Register a callback for use with the rangeStatus() function. More... | |
| void | registerStatusCallback (status_cb_t &&cb) noexcept |
| tof::mode | mode () const noexcept |
| Get the ToF ranging mode. More... | |
| void | start () noexcept |
| Start the driver. More... | |
| void | stop () noexcept |
| Stop the driver. More... | |
| void | restart () noexcept |
| Restart the driver. More... | |
| type_safe::boolean | started () const noexcept |
| Check if the driver has been started. More... | |
| constexpr embvm::DriverType_t | DriverType () const noexcept |
| Returns the registered type ID of the driver. More... | |
| constexpr const std::string_view & | name () const noexcept |
| Provides a string_view reference of the driver name. More... | |
| constexpr const char * | name_cstr () const noexcept |
| Provides a c-string version of the driver name. More... | |
| virtual DriverBase & | operator++ () noexcept |
| Increment operator is a no-op, but is used for iterator compatibility. More... | |
Static Public Member Functions | |
| static constexpr embvm::DriverType | type () noexcept |
| ToF Driver Type ID. More... | |
Protected Member Functions | |
| void | start_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
| void | stop_ () noexcept final |
| Derived classes override the start_ method to control driver-specific startup behavior. More... | |
Protected Attributes | |
| tof::mode | mode_ = tof::mode::defaultRange |
| The configured ranging mode for the ToF sensor. More... | |
| type_safe::boolean | started_ = false |
| Tracks the driver state. More... | |
| const std::string_view | name_ |
| Name of the driver instance. More... | |
| const embvm::DriverType_t | type_ |
| Type ID of the driver instance. More... | |
Private Member Functions | |
| void | readReg (const uint16_t *reg_buf, uint8_t *rx_buffer, size_t rx_size, const embvm::i2c::master::cb_t &cb) noexcept |
| Convenience function to read a register from the VL51L1X device. More... | |
| void | writeReg (uint16_t reg, const uint8_t *tx_buffer, size_t tx_size, const embvm::i2c::master::cb_t &cb) noexcept |
| Convenience function to write to a register on the VL51L1X device. More... | |
| void | checkModelID () noexcept |
| Check the model ID of the VL53L1X sensor. More... | |
| void | readTrim () noexcept |
| Read the trim values of the sensor and update the config_block_. More... | |
| void | startMeasurement () noexcept |
| Trigger a range measurement. More... | |
| void | readOscillatorCal () noexcept |
| Read the oscillator calibration and store it in the private variable osc_calibrate_val_. More... | |
| void | clearInterrupt () noexcept |
| Clear the VL53L1X pending interrupt. More... | |
| void | dataReady () noexcept |
| Check if the range data is ready. More... | |
| void | readData () noexcept |
| Read the range data from the device. More... | |
| void | dataReadyCb (embvm::i2c::op_t op, embvm::i2c::status status) noexcept |
| Local driver callback which is invoked when data is ready. More... | |
| void | kickoffMeasurementOnceFirmwareReady () noexcept |
| Function that starts the sensor firmware and begins measurements. More... | |
| void | rangeStatusCb (uint8_t status) noexcept |
| Private callback function to get the range status. More... | |
| embvm::tof::status | convertStatus (uint8_t status) noexcept |
| Convert the raw range status code to the framework ToF statuses. More... | |
| template<typename TData > | |
| void | destroy (const TData *ptr) noexcept |
| template<typename TData > | |
| TData * | create (TData input=0) noexcept |
Private Attributes | |
| embvm::i2c::master & | i2c_ |
| The I2C master bus that this device is connected to. More... | |
| const uint8_t | address_ |
| The I2C address for the VL53L1X. More... | |
| uint8_t | model_id_ = 0 |
| The model ID for the VL53L1X, read from the device during start(). More... | |
| uint16_t | osc_calibrate_val_ = 0 |
| etl::generic_pool< sizeof(uint32_t), alignof(uint32_t), 64 > | i2c_pool_ {} |
| Static memory pool used for I2C transactions. More... | |
| std::mutex | lock_ {} |
| etl::list< read_cb_t, 2 > | read_cb_list_ {} |
| List that stores the read() callback functions. More... | |
| etl::list< status_cb_t, 2 > | status_cb_list_ {} |
| List that stores the rangeStatus() callback functions. More... | |
| etl::list< rate_cb_t, 2 > | rate_cb_list_ {} |
| List that stores the signalRate() callback functions. More... | |
| std::array< uint8_t, 137 > | config_block_ |
| This is 135 bytes to be written every time to the VL53L1X to initiate a measurement 0x29 is written to memory location 0x01, which is the register for the I2C address which is indeed 0x29. More... | |
| using embdrv::vl53l1x::rate_cb_t = stdext::inplace_function<void(uint16_t)> |
Alias for signalRate() callback function.
|
inherited |
ToF Callback function which retuns distance in mm.
| using embdrv::vl53l1x::status_cb_t = stdext::inplace_function<void(embvm::tof::status)> |
Alias for the rangeStatus() callback function.
|
inlineexplicitnoexcept |
Create a VL53L1X device.
| i2c | The i2c master driver that this device is connected to. |
| address | The i2c address of the sensor. |
|
privatenoexcept |
|
privatenoexcept |
|
privatenoexcept |
Convert the raw range status code to the framework ToF statuses.
| status | The raw sensor status code. |
References embvm::tof::crosstalkSignalError, embvm::tof::hardwareError, embvm::tof::invalidRoi, embvm::tof::noChange, embvm::tof::notReady, embvm::tof::ok, embvm::tof::outOfBoundsError, embvm::tof::processingError, embvm::tof::rangeValidMergedPulse, embvm::tof::rangeValidMinRangeClipped, embvm::tof::sigmaError, and embvm::tof::signalError.
|
inlineprivatenoexcept |
References i2c_pool_, r, VL53L1X_LOCK, and VL53L1X_UNLOCK.
Referenced by checkModelID(), clearInterrupt(), dataReady(), kickoffMeasurementOnceFirmwareReady(), rangeStatus(), readData(), readOscillatorCal(), readTrim(), and signalRate().
|
privatenoexcept |
Check if the range data is ready.
References create(), dataReadyCb(), and readReg().
Referenced by read().
|
privatenoexcept |
Local driver callback which is invoked when data is ready.
References embvm::i2c::ok.
Referenced by dataReady().
|
inlineprivatenoexcept |
References i2c_pool_, VL53L1X_LOCK, and VL53L1X_UNLOCK.
Referenced by kickoffMeasurementOnceFirmwareReady(), rangeStatus(), and reset().
|
inlinenoexceptinherited |
Returns the registered type ID of the driver.
When using DriverBase interfaces, clients can retrieve the registered driver type in order to up-cast to the correct interface.
The type is returned as a embvm::DriverType_t rather than a embvm::DriverType enum to work with custom user-defined types. Enforcing a embvm::DriverType return value would prevent clients from defining and using their own custom types.
References embvm::DriverBase::type_.
|
finalvirtualnoexcept |
Check the maximum range in the dark.
Implements embvm::tof::sensor.
References embvm::tof::defaultRange, embvm::tof::INVALID_RANGE, embvm::tof::longRange, embvm::tof::medRange, and embvm::tof::shortRange.
|
finalvirtualnoexcept |
Check the maximum range in strong light conditions.
Implements embvm::tof::sensor.
References embvm::tof::defaultRange, embvm::tof::INVALID_RANGE, embvm::tof::longRange, embvm::tof::medRange, and embvm::tof::shortRange.
|
privatenoexcept |
Function that starts the sensor firmware and begins measurements.
References create(), destroy(), embvm::i2c::ok, r, readReg(), and startMeasurement().
|
finalvirtualnoexcept |
Set the ToF ranging mode.
| m | The desired ToF ranging mode. |
Implements embvm::tof::sensor.
References embvm::tof::defaultRange, embvm::tof::longRange, embvm::tof::medRange, and embvm::tof::shortRange.
Referenced by FWDemoSimulatorHWPlatform::readAndSetToFMode().
|
inlinenoexceptinherited |
Get the ToF ranging mode.
References embvm::tof::sensor::mode_.
|
inlinenoexceptinherited |
Provides a string_view reference of the driver name.
std::string_view ref containing the driver name. References embvm::DriverBase::name_.
|
inlinenoexceptinherited |
Provides a c-string version of the driver name.
References embvm::DriverBase::name_.
|
inlinevirtualnoexceptinherited |
Increment operator is a no-op, but is used for iterator compatibility.
|
noexcept |
Get the ranging status When called, registered range status callbacks will be invoked with the signal rate.
To register a callback, use registerStatusCallback().
References create(), destroy(), embvm::i2c::ok, r, rangeStatusCb(), and readReg().
|
privatenoexcept |
|
finalvirtualnoexcept |
Trigger a sensor read.
Trigger an asynchronous read of the ToF sensor. The result will be provided to consumers through a callback function. When the read() operation completes, the callback will be invoked with the result.
Implements embvm::tof::sensor.
References dataReady().
|
privatenoexcept |
Read the range data from the device.
References clearInterrupt(), create(), embvm::i2c::ok, r, read_cb_list_, and readReg().
|
privatenoexcept |
Read the oscillator calibration and store it in the private variable osc_calibrate_val_.
References create(), osc_calibrate_val_, r, and readReg().
Referenced by start_().
|
privatenoexcept |
Convenience function to read a register from the VL51L1X device.
| reg_buf | the buffer containing the TX register data. |
| rx_buffer | The buffer to store the received contents into. |
| rx_size | the number of expected RX bytes. |
| cb | The callback function to invoke when the register read completes. |
References t, and embvm::i2c::writeRead.
Referenced by checkModelID(), dataReady(), kickoffMeasurementOnceFirmwareReady(), rangeStatus(), readData(), readOscillatorCal(), readTrim(), and signalRate().
|
privatenoexcept |
Read the trim values of the sensor and update the config_block_.
References embutil::byteswap(), config_block_, create(), r, and readReg().
Referenced by start_().
|
inlinefinalvirtualnoexcept |
Register a callback for the read() function.
The read() function works asynchronously, and the result will be provided to consumers through a callback function. When the read() operation completes, the callback will be invoked with the result.
This function must be implemented by the derived class.
| cb | The functor which will be called when read() completes. |
Implements embvm::tof::sensor.
References read_cb_list_.
|
inlinefinalvirtualnoexcept |
Register a callback for the read() function.
The read() function works asynchronously, and the result will be provided to consumers through a callback function. When the read() operation completes, the callback will be invoked with the result.
This function must be implemented by the derived class.
| cb | The functor which will be called when read() completes. |
Implements embvm::tof::sensor.
References read_cb_list_.
|
inlinenoexcept |
Register a callback for use with the signalRate() function.
| cb | The callback to invoke hen signalRate() completes. |
References rate_cb_list_.
|
inlinenoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References rate_cb_list_.
|
inlinenoexcept |
Register a callback for use with the rangeStatus() function.
| cb | The callback to invoke when rangeStatus() completes. |
References status_cb_list_.
|
inlinenoexcept |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References status_cb_list_.
|
finalvirtualnoexcept |
Reset the ToF sensor.
Implements embvm::tof::sensor.
References destroy(), embvm::i2c::ok, UINT8_C, and writeReg().
Referenced by start_().
|
inlinenoexceptinherited |
Restart the driver.
Calls stop() and then start() on the driver. If the driver is not started, then it will be started after the start() function is invoked.
References embvm::DriverBase::start(), and embvm::DriverBase::stop().
|
noexcept |
Get the current signal rate.
When called, registered signal rate callbacks will be invoked with the signal rate. To register a callback, use registerSignalRateCallback().
References create(), embvm::i2c::ok, r, rate_cb_list_, and readReg().
|
inlinenoexceptinherited |
Start the driver.
If the driver is not started, call the start_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::start_(), and embvm::DriverBase::started_.
Referenced by NRF52DongleHWPlatform::init_(), NRF52DKHWPlatform::init_(), BlinkySimulatorHWPlatform::init_(), FWDemoSimulatorHWPlatform::init_(), FrameworkDemoSimPlatform::initHWPlatform_(), embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::start_(), embvm::i2c::activeMaster< 128 >::start_(), embdrv::aardvarkSPIMaster::start_(), embdrv::aardvarkI2CMaster::start_(), embdrv::aardvarkGPIOInput< 4 >::start_(), start_(), embdrv::aardvarkGPIOOutput< 5 >::start_(), BlinkySimulatorHWPlatform::startBlink(), and FWDemoSimulatorHWPlatform::startLEDTimer().
|
finalprotectedvirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Implements embvm::tof::sensor.
References checkModelID(), i2c_, readOscillatorCal(), readTrim(), reset(), embvm::DriverBase::start(), and embvm::DriverBase::started().
|
inlinenoexceptinherited |
Check if the driver has been started.
true if the driver is running (started), false if not running (stopped). References embvm::DriverBase::started_.
Referenced by embdrv::aardvarkSPIMaster::configure_(), embdrv::aardvarkGPIOInput< 4 >::get(), embdrv::aardvarkGPIOOutput< 5 >::set(), start_(), embdrv::aardvarkAdapter::start_(), and embdrv::aardvarkAdapter::stop_().
|
privatenoexcept |
Trigger a range measurement.
References address_, config_block_, i2c_, t, and embvm::i2c::write.
Referenced by kickoffMeasurementOnceFirmwareReady().
|
inlinenoexceptinherited |
Stop the driver.
If the driver has been started, call the stop_() function defined by the derived class. (Template Method Pattern)
References embvm::DriverBase::started_, and embvm::DriverBase::stop_().
Referenced by embvm::DriverBase::restart(), embvm::timer::Timer::restart(), embvm::spi::activeMaster< TQueueSize, TLock, TCond >::stop_(), embvm::i2c::activeMaster< 128 >::stop_(), embdrv::aardvarkSPIMaster::stop_(), embdrv::aardvarkI2CMaster::stop_(), embdrv::aardvarkGPIOInput< 4 >::stop_(), embdrv::aardvarkGPIOOutput< 5 >::stop_(), FWDemoSimulatorHWPlatform::~FWDemoSimulatorHWPlatform(), and embdrv::SimulatorTimer::~SimulatorTimer().
|
finalprotectedvirtualnoexcept |
Derived classes override the start_ method to control driver-specific startup behavior.
(Template Method Pattern)
Implements embvm::tof::sensor.
|
inlinestaticnoexceptinherited |
|
privatenoexcept |
Convenience function to write to a register on the VL51L1X device.
| reg | The register to write to. |
| tx_buffer | The buffer containing the tx data to send to the target register. |
| tx_size | The number of bytes to transmit |
| cb | The callback function to invoke when the register write completes. |
References embutil::byteswap(), t, and embvm::i2c::write.
Referenced by clearInterrupt(), and reset().
|
private |
The I2C address for the VL53L1X.
Referenced by startMeasurement().
|
private |
This is 135 bytes to be written every time to the VL53L1X to initiate a measurement 0x29 is written to memory location 0x01, which is the register for the I2C address which is indeed 0x29.
So this makes sense. We could evaluate the default register settings of a given device against this set of bytes and write only the ones that are different but it's faster, easier, and perhaps fewer code words to write the config block as is. The block was obtained via inspection of the ST P-NUCLEO-53L1A1 Prepended two bytes to serve as address holding
Referenced by readTrim(), and startMeasurement().
|
private |
The I2C master bus that this device is connected to.
Referenced by start_(), and startMeasurement().
|
private |
|
protectedinherited |
The configured ranging mode for the ToF sensor.
Referenced by embvm::tof::sensor::mode().
|
private |
The model ID for the VL53L1X, read from the device during start().
Referenced by checkModelID().
|
protectedinherited |
Name of the driver instance.
Referenced by embvm::DriverBase::name(), and embvm::DriverBase::name_cstr().
|
private |
Referenced by readOscillatorCal().
|
private |
List that stores the signalRate() callback functions.
Referenced by registerSignalRateCallback(), and signalRate().
|
private |
List that stores the read() callback functions.
Referenced by readData(), and registerReadCallback().
|
protectedinherited |
Tracks the driver state.
True if the driver has been started, false if it has been stopped or not yet started.
Referenced by embvm::DriverBase::start(), embvm::DriverBase::started(), and embvm::DriverBase::stop().
|
private |
List that stores the rangeStatus() callback functions.
Referenced by registerStatusCallback().
|
protectedinherited |
Type ID of the driver instance.
Referenced by embvm::DriverBase::DriverType().
1.8.15