Raspberry Pi Weighting Control System
This project serves as a simple weighting control system, that was realized as a Bachelor Thesis
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 Napp_workspace_nsThis namespace holds structures and enums used in app_workspace class
 Ckb_input_stateStructure holding the values of keyboard input mode and input type
 Cspi_configStructure holding SPI device and SPI config which is a library structure "spi_config_t"
 Chx711_configStructure hodling the configuration of hx711 controller
 Nrfid_reader
 Crfid_tagRFID tag structure. Stores data read from SPI
 CAdvancedHX711
 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
 Ccustom_hx711Extends HX711 library AdvancedHX711. Custom implementations for value reading, so it can be observed and iterrupted
 Ccustom_watcherCustom_watcher extends HX711 library Watcher. Reason is to get access to the watcher state, so the measuring can be interrupted
 Cdb_driverHandles database querries
 Cdb_driver_confContainer for configuration neccessary to open database connnection
 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_elementParen class for other gui elements
 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
 Cinput_parserSimple argument parser
 Ckb_eventStructure of SPI keyboard event, Contains pressed scancode, flags and timestamp of event creation
 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
 Cscreen_manager
 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