RumPi 1.0
A self-assembling C++ sensor & actuator library for the Raspberry Pi 5
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 CRumPi::AlertEventA single alert event: a metric crossing (or recovering from) a threshold, with the reading that triggered it
 CRumPi::AlertManagerA singleton that components hand readings to
 CRumPi::BaseComponentAbstract base class for every component (sensor, actuator, etc.) the library manages
 CRumPi::BMP180BMP180 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pressure
 CRumPi::BMP280BMP280 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pressure
 CRumPi::ComponentManagerOwns and drives the set of sensor components
 CRumPi::DHT11The DHT11 temperature and humidity sensor
 CRumPi::DualLEDA bi-color LED driven by two PWM pins (one per color)
 CRumPi::GasSensorBase class for the MQ-series gas sensors (MQ2, MQ7, ...)
 CRumPi::MQ135MQ-135 gas sensor, typically used for detecting Carbon Dioxide (CO2) PPM
 CRumPi::MQ2MQ-2 gas sensor, typically used for detecting smoke
 CRumPi::MQ3MQ-3 gas sensor, typically used for detecting alcohol vapor (breathalyzer)
 CRumPi::MQ4MQ-4 gas sensor, typically used for detecting methane
 CRumPi::MQ5MQ-5 gas sensor, typically used for detecting LPG and natural gas (propane)
 CRumPi::MQ6MQ-6 gas sensor, typically used for detecting LPG and propane
 CRumPi::MQ7MQ-7 gas sensor, typically used for detecting carbon monoxide
 CRumPi::MQ8MQ-8 gas sensor, typically used for detecting hydrogen
 CRumPi::MQ9MQ-9 gas sensor, typically used for detecting LPG, carbon monoxide, and methane
 CRumPi::HCSR501An HC-SR501 PIR motion sensor
 CRumPi::IAnalogDigitalConverterComponentInterface for analog-to-digital converter components (e.g
 CRumPi::MCP3008MCP3008 analog-to-digital converter chip (SPI), providing 8 channels to read analog sensors on the Raspberry Pi
 CRumPi::PCF8591PCF8591 analog-to-digital converter chip (I2C), used to read analog sensors on the Raspberry Pi
 CRumPi::LCD1602Standard 16x2 character LCD screen (LCD1602) driven over I2C
 CRumPi::LEDA very simple standard LED, driven by a single GPIO pin
 CRumPi::MotorA DC motor driven through an H-bridge, with an optional enable pin and a wheel alignment used when steering
 CRumPi::PMS5003PMS5003 particulate-matter (dust) sensor read over serial, reporting PM1.0/PM2.5/PM10 concentrations, particle counts by diameter, rolling averages, and an air-quality evaluation
 CRumPi::PTQS1005PTQS1005 air-quality sensor read over serial, reporting PM2.5, TVOC, HCHO, CO2, internal temperature, and humidity, each with a rolling average
 CRumPi::PhotoresistorPhotoresistor (LDR) - reads ambient light as an analog value through an ADC channel
 CRumPi::PiCameraRaspberry Pi camera, recording video (raw .h264 converted to .mp4 on a background thread) and taking pictures
 CRumPi::QSFS01QS-FS01 anemometer wind-speed sensor, read as an analog voltage through an ADC channel
 CRumPi::RGBLEDAn RGB LED driven by three PWM pins (red, green, blue)
 CRumPi::RainSensorRain sensor - reads surface wetness as an analog value through an ADC channel
 CRumPi::ReceiverImplements TCP client/server socket communication, running its accept, send, and receive loops on their own threads and invoking a callback for each message received
 CRumPi::RelayA relay driven by a single GPIO pin (output-only, like an LED)
 CRumPi::RotaryEncoderA standard rotary encoder
 CRumPi::SoundSensorFC-04 sound sensor - reads sound level as an analog value through a PCF8591 ADC channel
 CRumPi::SystemHealthComponentReads Raspberry Pi system health (temperature, voltage, throttling, memory, storage, WiFi, and IP) by running vcgencmd and other OS commands, and reports threshold crossings to the AlertManager
 CRumPi::TSL2591TSL2591 high-dynamic-range digital light sensor (I2C), reading full-spectrum and IR channels to compute lux
 CRumPi::VehicleA vehicle composed of several Motors, providing drive and steering by coordinating the motors it owns
 CRumPi::ComponentCreationContextEverything a component creator needs, bundled so every creator can share one signature and live in the factory's lookup map
 CRumPi::ComponentFactoryBuilds the sensor components described by a JSON manifest and adds them to a ComponentManager
 CRumPi::GasDataGas data (its response curve and danger level) used by the MQ gas sensors
 CRumPi::LoggerA singleton that subscribes to the AlertManager and writes alert events to a per-session log file (and the console) from a background worker thread
 CRumPi::RemoteCommandA command a remote client can send, paired with the handler that carries it out
 CRumPi::RollingAverageMaintains a rolling (moving) average over a fixed-length window of recent readings using a circular buffer
 CRumPi::RumPiConfigHolds the library's runtime configuration, loaded from a JSON file
 CRumPi::SelectedSensorReadingsA point-in-time copy of the SELECTED sensor readings the Home dashboard surfaces - a deliberately curated subset, not a generic per-sensor reading
 CRumPi::SystemMemoryInformationData class that contains information about the system's memory and swap space, in Kilobytes