Raspberry Pi Weighting Control System
This project serves as a simple weighting control system, that was realized as a Bachelor Thesis
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CAdvancedHX711
 Ccustom_hx711Extends HX711 library AdvancedHX711. Custom implementations for value reading, so it can be observed and iterrupted
 Capp_configStructure that holds the values of the application configuration file
 Capp_workspaceOne of the most importat classes in the whole project. Holds variables that define the state of the application and also provides logic for some of the variables held there. For example the hx711 controller is held and used from this class
 Cdb_driverHandles database querries
 Cdb_driver_confContainer for configuration neccessary to open database connnection
 Cgui_elementParen class for other gui elements
 Cgui_buttonWrapper for ImGui::Button
 Cgui_comboboxWrapper for ImGui combo box structure
 Cgui_directThis is a special element, that doesn't wrap any ImGui function. This is used to render ImGui directly through calling a function
 Cgui_inputThis is a wrapper for various ImGui input types
 Cgui_labelThis is a wrapper for ImGui Text which serves as unchangeble label
 Cgui_observerAllows to create a label, that automatically updates to observed variable value. This class doesn't work well with strings
 Cgui_selectableThis creates an ImGui::Seletable, which can serve as a label that can be navigated to
 Capp_workspace_ns::hx711_configStructure hodling the configuration of hx711 controller
 Cinput_parserSimple argument parser
 Ckb_eventStructure of SPI keyboard event, Contains pressed scancode, flags and timestamp of event creation
 Capp_workspace_ns::kb_input_stateStructure holding the values of keyboard input mode and input type
 CmeasurementContainer for measurement data and (convenience) variables, that are used to show measurement in GUI
 Cmeasurement_headerServes as container for basic measurement information, that is dispayed to GUI
 Crfid_eStructure used for RFID event. This structure contains read tag and flags of the event
 Crfid_reader::rfid_tagRFID tag structure. Stores data read from SPI
 Cscreen_manager
 Capp_workspace_ns::spi_configStructure holding SPI device and SPI config which is a library structure "spi_config_t"
 Cuser_contClass used as a container for user data, that are selected from database. (and also for insert, but not everything is used in that case)
 Cuser_credStruct used to contain username, password and user status until credentials are verified
 Cuser_workspaceContainer that servers for storing users data and manipulating them
 CWatcher
 Ccustom_watcherCustom_watcher extends HX711 library Watcher. Reason is to get access to the watcher state, so the measuring can be interrupted