Overview
Virtual Measuring Components (VMC) represent an HMI (Human Machine Interface) library that serves for clear visualization of data from sensors used in microcontroller-based applications.
VMC includes various components to properly visualize different kinds of values. Each component includes a title, a label for the measuring unit, the value of the measured quantity, and the graphical representation itself. The graphically displayed value is limited by a lower (min) and upper (max) boundary. This scale is divided into three parts:
- OK value,
- warning value,
- alert value.
The warning and critical values are optional parameters of the component. The dimensions and color schemes of all components can be customized.
Features
- multiple fully-resizeable virtual gauges,
- customization of color themes for each gauge,
- ability to show warning and alert state of measuring value,
- compatibility with various displays and communication interfaces,
- multi-display support,
- ability to group multiple components into single control panel,
- unified user interface.
Technical Properties of Components
- Max dimensions: unlimited (but it's necessary to load bigger fonts),
- Max displayable numebr: 9-character number (including sign and decimal dot),
- Number of possible decimal places: 0 to 3,
- Max title length (without terminator): 15 characters,
- Max label length (without terminator): 5 characters.
Available Components
Here is a list of fully implemented components alongside with their photos and specification.
Photo | Description |
---|---|
![]() |
Circular GaugeThe CircularGauge represents a digital version of the traditional analog dial measuring instruments. For better readability, especially at small dimensions, the analog pointer is replaced with a moving scale that changes its color based on the criticality state of the measured value. The measured value is displayed as text. The CircularGauge is inscribed within a square with dimensions w x w. Recommended minimal dimensions: 72x72 px. |
![]() |
Vertical & Horizontal GaugeThe design of both components is derived from liquid thermometers. To enable flexible rendering in different sizes, the fixed numerical scale is replaced with the current value displayed as text. The measured value is visually depicted by a rectangular scale that changes color according to its criticality state. The only distinction between the VerticalGauge and HorizontalGauge components lies in the direction in which the scale is filled. Each component is contained within a rectangle with dimensions of w x h (width x height). It is recommended to use a minimum size of 48x64 px for the VerticalGauge and 50x40 px for the HorizontalGauge. |
![]() |
Text ValueThe TextValue is the simplest measurement component that displays the measured value as a single line of text. Depending on the criticality state of the measured value, the margins are colored accordingly. TextValue is inscribed by a rectangle with dimensions w (width) and h (height). The text size automatically adjusts to the size of the measurement component. Recommended minimal dimensions: 20x85 px. |
![]() |
State IndicatorThe StateIndicator is inspired by the concept of LED indicators, which distinguish the state of a measuring value through different colors. This component visually represents the state using a circular shape filled with a specific color, reflecting the corresponding state. For better clarity, additional textual information is provided in the form of a title and labeled value. Recommended minimal dimensions: 45x45 px. |
Installation
The VMC library can be installed usnig PlatformIO registry or via direct installation.
- For PlatformIO registry just search:
xnecas/VMC_library
- For direct installation, place library in the lib folder.
Note To achieve graphics functionality, you need to install Uinversal Multi-Display Library (UMD). link: https://gitlab.nsoric.com/mtf/mcu/display-library