|
| class | AlertEvent |
| | A single alert event: a metric crossing (or recovering from) a threshold, with the reading that triggered it. More...
|
| |
| class | AlertManager |
| | A singleton that components hand readings to. More...
|
| |
| class | BaseComponent |
| | Abstract base class for every component (sensor, actuator, etc.) the library manages. More...
|
| |
| class | BMP180 |
| | BMP180 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pressure. More...
|
| |
| class | BMP280 |
| | BMP280 barometric temperature and pressure sensor (I2C), also deriving altitude from the measured pressure. More...
|
| |
| class | ComponentCreationContext |
| | Everything a component creator needs, bundled so every creator can share one signature and live in the factory's lookup map. More...
|
| |
| class | ComponentFactory |
| | Builds the sensor components described by a JSON manifest and adds them to a ComponentManager. More...
|
| |
| class | ComponentManager |
| | Owns and drives the set of sensor components. More...
|
| |
| class | DHT11 |
| | The DHT11 temperature and humidity sensor. More...
|
| |
| class | DualLED |
| | A bi-color LED driven by two PWM pins (one per color). More...
|
| |
| class | GasData |
| | Gas data (its response curve and danger level) used by the MQ gas sensors. More...
|
| |
| class | GasSensor |
| | Base class for the MQ-series gas sensors (MQ2, MQ7, ...). More...
|
| |
| class | HCSR501 |
| | An HC-SR501 PIR motion sensor. More...
|
| |
| class | IAnalogDigitalConverterComponent |
| | Interface for analog-to-digital converter components (e.g. More...
|
| |
| class | LCD1602 |
| | Standard 16x2 character LCD screen (LCD1602) driven over I2C. More...
|
| |
| class | LED |
| | A very simple standard LED, driven by a single GPIO pin. More...
|
| |
| class | Logger |
| | A singleton that subscribes to the AlertManager and writes alert events to a per-session log file (and the console) from a background worker thread. More...
|
| |
| class | MCP3008 |
| | MCP3008 analog-to-digital converter chip (SPI), providing 8 channels to read analog sensors on the Raspberry Pi. More...
|
| |
| class | Motor |
| | A DC motor driven through an H-bridge, with an optional enable pin and a wheel alignment used when steering. More...
|
| |
| class | MQ135 |
| | MQ-135 gas sensor, typically used for detecting Carbon Dioxide (CO2) PPM. More...
|
| |
| class | MQ2 |
| | MQ-2 gas sensor, typically used for detecting smoke. More...
|
| |
| class | MQ3 |
| | MQ-3 gas sensor, typically used for detecting alcohol vapor (breathalyzer). More...
|
| |
| class | MQ4 |
| | MQ-4 gas sensor, typically used for detecting methane. More...
|
| |
| class | MQ5 |
| | MQ-5 gas sensor, typically used for detecting LPG and natural gas (propane). More...
|
| |
| class | MQ6 |
| | MQ-6 gas sensor, typically used for detecting LPG and propane. More...
|
| |
| class | MQ7 |
| | MQ-7 gas sensor, typically used for detecting carbon monoxide. More...
|
| |
| class | MQ8 |
| | MQ-8 gas sensor, typically used for detecting hydrogen. More...
|
| |
| class | MQ9 |
| | MQ-9 gas sensor, typically used for detecting LPG, carbon monoxide, and methane. More...
|
| |
| class | PCF8591 |
| | PCF8591 analog-to-digital converter chip (I2C), used to read analog sensors on the Raspberry Pi. More...
|
| |
| class | Photoresistor |
| | Photoresistor (LDR) - reads ambient light as an analog value through an ADC channel. More...
|
| |
| class | PiCamera |
| | Raspberry Pi camera, recording video (raw .h264 converted to .mp4 on a background thread) and taking pictures. More...
|
| |
| class | PMS5003 |
| | PMS5003 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. More...
|
| |
| class | PTQS1005 |
| | PTQS1005 air-quality sensor read over serial, reporting PM2.5, TVOC, HCHO, CO2, internal temperature, and humidity, each with a rolling average. More...
|
| |
| class | QSFS01 |
| | QS-FS01 anemometer wind-speed sensor, read as an analog voltage through an ADC channel. More...
|
| |
| class | RainSensor |
| | Rain sensor - reads surface wetness as an analog value through an ADC channel. More...
|
| |
| class | Receiver |
| | Implements TCP client/server socket communication, running its accept, send, and receive loops on their own threads and invoking a callback for each message received. More...
|
| |
| class | Relay |
| | A relay driven by a single GPIO pin (output-only, like an LED). More...
|
| |
| class | RemoteCommand |
| | A command a remote client can send, paired with the handler that carries it out. More...
|
| |
| class | RGBLED |
| | An RGB LED driven by three PWM pins (red, green, blue). More...
|
| |
| class | RollingAverage |
| | Maintains a rolling (moving) average over a fixed-length window of recent readings using a circular buffer. More...
|
| |
| class | RotaryEncoder |
| | A standard rotary encoder. More...
|
| |
| class | RumPiConfig |
| | Holds the library's runtime configuration, loaded from a JSON file. More...
|
| |
| class | SelectedSensorReadings |
| | A point-in-time copy of the SELECTED sensor readings the Home dashboard surfaces - a deliberately curated subset, not a generic per-sensor reading. More...
|
| |
| class | SoundSensor |
| | FC-04 sound sensor - reads sound level as an analog value through a PCF8591 ADC channel. More...
|
| |
| class | SystemHealthComponent |
| | Reads 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. More...
|
| |
| class | SystemMemoryInformation |
| | Data class that contains information about the system's memory and swap space, in Kilobytes. More...
|
| |
| class | TSL2591 |
| | TSL2591 high-dynamic-range digital light sensor (I2C), reading full-spectrum and IR channels to compute lux. More...
|
| |
| class | Vehicle |
| | A vehicle composed of several Motors, providing drive and steering by coordinating the motors it owns. More...
|
| |
|
| enum | EAlertLevel { OK
, Warning
, Alert
} |
| | Severity of a metric relative to its thresholds. More...
|
| |
| enum class | EComponentType {
E_Unknown
, E_BMP180
, E_BMP280
, E_DHT11
,
E_DualLED
, E_HCSR501
, E_LCD1602
, E_LED
,
E_MCP3008
, E_Motor
, E_MQ2
, E_MQ3
,
E_MQ4
, E_MQ5
, E_MQ6
, E_MQ7
,
E_MQ8
, E_MQ9
, E_MQ135
, E_PCF8591
,
E_Photoresistor
, E_PiCamera
, E_PMS5003
, E_PTQS1005
,
E_QSFS01
, E_RainSensor
, E_Receiver
, E_Relay
,
E_RGBLED
, E_RotaryEncoder
, E_SoundSensor
, E_SystemHealthComponent
,
E_TSL2591
, E_Vehicle
} |
| | Identifies each kind of component the library supports. More...
|
| |
| enum | MotorAlignment { Left
, Right
, Center
, None
} |
| | Helps determine direction to rotate a motor if/when turning a Vehicle. More...
|
| |
| enum class | E_TSL2591_IntegrationTime {
ATIME_100MS = 0x00
, ATIME_200MS = 0x01
, ATIME_300MS = 0x02
, ATIME_400MS = 0x03
,
ATIME_500MS = 0x04
, ATIME_600MS = 0x05
} |
| | This represents how long the sensor looks at the light in a reading. More...
|
| |
| enum class | E_TSL2591_AmplificationGain { GAIN_LOW = 0x00
, GAIN_MED = 0x10
, GAIN_HIGH = 0x20
, GAIN_MAX = 0x30
} |
| | This represents the amplification level, helpful for low/high light situations. More...
|
| |
| enum | EGasType {
E_Acetone
, E_Alcohol
, E_Ammonium
, E_Benzene
,
E_Benzine
, E_Butane
, E_CarbonDioxide
, E_CarbonMonoxide
,
E_CNG
, E_Hexane
, E_Hydrogen
, E_LPG
,
E_Methane
, E_NaturalGas
, E_Propane
, E_Smoke
,
E_Toluene
} |
| | The types of gas the MQ sensor family can detect. More...
|
| |
| enum class | E_LightLevel {
LIGHT_DARK = 0
, LIGHT_VERY_DIM = 1
, LIGHT_DIM = 2
, LIGHT_NORMAL = 3
,
LIGHT_BRIGHT = 4
, LIGHT_VERY_BRIGHT = 5
} |
| | How much light the sensor is seeing, darkest to brightest. More...
|
| |
| enum class | E_AirQualityLevel {
AIR_QUALITY_GOOD = 0
, AIR_QUALITY_SATISFACTORY = 1
, AIR_QUALITY_MODERATELY_POLLUTED = 2
, AIR_QUALITY_POOR = 3
,
AIR_QUALITY_VERY_POOR = 4
, AIR_QUALITY_SEVERE = 5
} |
| | How bad the air is, best to worst, taking whichever of PM2.5 / PM10 is worse. More...
|
| |
|
| void | Initialize () |
| | Brings the library up: initializes the logger, loads and validates the configuration, hooks Ctrl+C, sets up WiringPi, creates the component manager, self-assembles the sensors from the manifest, and (if enabled) starts the remote receiver. More...
|
| |
| void | Start (bool runAndUpdateOnSeparateThread) |
| | Turns on every managed component. More...
|
| |
| void | Stop () |
| | Cleanly shuts down after a pull-based Start(false): wakes anything waiting, then tears down (turns components off, frees the component manager, drains and closes the logger). More...
|
| |
| void | AddComponent (BaseComponent *theComponent) |
| | Adds the provided component to the manager so it is polled and reported alongside the rest. More...
|
| |
| int | GetNumberOfComponents () |
| | Gets how many components the manager currently holds. More...
|
| |
| void | UpdateComponents () |
| | Polls every managed component once, refreshing the values that GetRawJsonDataFromComponentManager() reports. More...
|
| |
| void | UpdateComponentsOfType (const EComponentType typeOfComponentToUpdate) |
| | Polls just the components of one type, letting a pull-based consumer sample a fast sensor (e.g. More...
|
| |
| std::string | GetRawJsonDataFromComponentManager () |
| | Gets every managed component's current readings as a JSON string, keyed by each component's unique name. More...
|
| |
| bool | GetComponentTypes (std::vector< EComponentType > &outComponentTypes) |
| | Fills the provided vector with the distinct component types the manager currently holds. More...
|
| |
| std::string | GetLogFilePath () |
| | Gets the path of the library's log file, so a client can reveal or open it without hardcoding the path. More...
|
| |
| SelectedSensorReadings | GetSelectedSensorReadings () |
| | Gets the curated set of current sensor readings for the Home dashboard, assembled by the ComponentManager. More...
|
| |
| static int | ParseI2CAddress (const nlohmann::json &entry) |
| | Parses an I2C address from a manifest entry, accepting either a hex string ("0x48") or a plain number (72). More...
|
| |
| static BaseComponent * | CreatePCF8591Component (ComponentCreationContext &context) |
| | Builds a PCF8591 ADC from its manifest entry ("i2cAddress", "basePin", optional "adcVoltage") and registers it in the context so later analog components can read through it. More...
|
| |
| static BaseComponent * | CreatePMS5003Component (ComponentCreationContext &context) |
| | Builds a PMS5003 particulate sensor from its manifest entry ("devicePath"). More...
|
| |
| static BaseComponent * | CreatePTQS1005Component (ComponentCreationContext &context) |
| | Builds a PTQS1005 air-quality sensor (humidity, TVOC, formaldehyde, CO2) from its manifest entry ("devicePath"). More...
|
| |
| static BaseComponent * | CreateHCSR501Component (ComponentCreationContext &context) |
| | Builds an HCSR501 motion sensor from its manifest entry ("pin"). More...
|
| |
| static BaseComponent * | CreateDHT11Component (ComponentCreationContext &context) |
| | Builds a DHT11 temperature/humidity sensor from its manifest entry ("pin", optional "isUsingPi5OrAbove" and "maxTimings"). More...
|
| |
| static BaseComponent * | CreateQSFS01Component (ComponentCreationContext &context) |
| | Builds a QSFS01 wind sensor from its manifest entry. More...
|
| |
| static BaseComponent * | CreateTSL2591Component (ComponentCreationContext &context) |
| | Builds a TSL2591 light sensor. More...
|
| |
| static BaseComponent * | CreateSystemHealthComponent (ComponentCreationContext &context) |
| | Builds a SystemHealthComponent (CPU, memory, etc.). More...
|
| |
| template<typename TGasSensor > |
| static BaseComponent * | CreateGasSensorComponent (ComponentCreationContext &context) |
| | Builds any MQ-family gas sensor (they share constructors, so one template covers them all). More...
|
| |
| template<typename TSinglePinComponent > |
| static BaseComponent * | CreateSinglePinComponent (ComponentCreationContext &context) |
| | Builds any component driven by a single GPIO pin (e.g. More...
|
| |
| static BaseComponent * | CreateDualLEDComponent (ComponentCreationContext &context) |
| | Builds a DualLED from its manifest entry ("firstColorPin", "secondColorPin"). More...
|
| |
| static BaseComponent * | CreateRGBLEDComponent (ComponentCreationContext &context) |
| | Builds an RGBLED from its manifest entry ("redPin", "greenPin", "bluePin"). More...
|
| |
| template<typename TAnalogComponent > |
| static BaseComponent * | CreateAdcAnalogComponent (ComponentCreationContext &context) |
| | Builds any analog sensor that reads through an ADC created earlier in the manifest ("adc" + "adcChannel"), like the photoresistor or rain sensor. More...
|
| |
| static BaseComponent * | CreateBMP280Component (ComponentCreationContext &context) |
| | Builds a BMP280 pressure/temperature sensor from its manifest entry ("i2cAddress"). More...
|
| |
| static BaseComponent * | CreateBMP180Component (ComponentCreationContext &context) |
| | Builds a BMP180 pressure/temperature sensor from its manifest entry ("i2cAddress", optional "i2cDevicePath"). More...
|
| |
| static BaseComponent * | CreateSoundSensorComponent (ComponentCreationContext &context) |
| | Builds a SoundSensor from its manifest entry ("i2cAddress", "pcfBasePin"). More...
|
| |
| static BaseComponent * | CreateMCP3008Component (ComponentCreationContext &context) |
| | Builds an MCP3008 ADC from its manifest entry ("basePin", "spiChannel", optional "adcVoltage") and registers it in the context so later analog components can read through it. More...
|
| |
| static BaseComponent * | CreateRotaryEncoderComponent (ComponentCreationContext &context) |
| | Builds a RotaryEncoder from its manifest entry ("clkPin", "dtPin", "swPin"). More...
|
| |
| static BaseComponent * | CreateLCD1602Component (ComponentCreationContext &context) |
| | Builds an LCD1602 display from its manifest entry ("i2cAddress"). More...
|
| |
| static BaseComponent * | CreateMotorComponent (ComponentCreationContext &context) |
| | Builds a Motor from its manifest entry ("driveOnePin", "driveTwoPin"). More...
|
| |
| static BaseComponent * | CreateVehicleComponent (ComponentCreationContext &context) |
| | Builds a Vehicle from its manifest entry ("numberOfMotors"). More...
|
| |
| static BaseComponent * | CreatePiCameraComponent (ComponentCreationContext &context) |
| | Builds a PiCamera. More...
|
| |
| static BaseComponent * | CreateComponent (const std::string &type, const nlohmann::json &entry, std::map< std::string, IAnalogDigitalConverterComponent * > &adcsByType, const RumPiConfig &config) |
| | Builds a single component from one manifest entry by matching its "type" to the right CreateX function. More...
|
| |
| static std::vector< RemoteCommand > | BuildRemoteCommands () |
| | Builds the list of commands a remote client can send. More...
|
| |
| static void | ThreadWait (unsigned int milliseconds) |
| | Sleeps for the requested time, but wakes immediately if the library has been asked to shut down. More...
|
| |
| static void | WriteToConsole (const char *str) |
| | Writes a line to the console under a lock, so messages from different threads do not interleave. More...
|
| |
| static void | Shutdown (int signalNum) |
| | SIGINT handler: flips the run flag and wakes the poll loop so it exits promptly. More...
|
| |
| static void | Teardown () |
| | Turns components off, frees the component manager (which owns the receiver), and drains and closes the logger. More...
|
| |
| static bool | IsReceiverReady () |
| | Reports whether the remote receiver exists and currently has a client connected. More...
|
| |
| static void | StartComponentManagerUpdateLoop () |
| | The Start(true) worker loop: repeatedly polls all components, pushes the fresh data to the receiver when a client is connected, then waits the configured delay - until Shutdown()/Stop() flips the run flag. More...
|
| |
| static void | OnMessageReceived (const char *receivedMessage) |
| | Receiver callback: routes an incoming client message to the first command that matches, then runs that command's handler. More...
|
| |
| static nlohmann::json | LoadConfigJson (const char *path) |
| | Reads and parses the config file once. More...
|
| |
| static void | HandleMoveForward (const char *receivedMessage) |
| | Command handler for the "MoveForward" message from a remote client (placeholder - drives the robot forward). More...
|
| |
|
| constexpr unsigned int | PIN_GPIO_5 = 5 |
| | BCM GPIO pin 5. More...
|
| |
| constexpr unsigned int | PIN_GPIO_6 = 6 |
| | BCM GPIO pin 6. More...
|
| |
| constexpr unsigned int | PIN_GPIO_12 = 12 |
| | BCM GPIO pin 12. More...
|
| |
| constexpr unsigned int | PIN_GPIO_13 = 13 |
| | BCM GPIO pin 13. More...
|
| |
| constexpr unsigned int | PIN_GPIO_14 = 14 |
| | BCM GPIO pin 14. More...
|
| |
| constexpr unsigned int | PIN_GPIO_15 = 15 |
| | BCM GPIO pin 15. More...
|
| |
| constexpr unsigned int | PIN_GPIO_16 = 16 |
| | BCM GPIO pin 16. More...
|
| |
| constexpr unsigned int | PIN_GPIO_17 = 17 |
| | BCM GPIO pin 17. More...
|
| |
| constexpr unsigned int | PIN_GPIO_18 = 18 |
| | BCM GPIO pin 18. More...
|
| |
| constexpr unsigned int | PIN_GPIO_19 = 19 |
| | BCM GPIO pin 19. More...
|
| |
| constexpr unsigned int | PIN_GPIO_20 = 20 |
| | BCM GPIO pin 20. More...
|
| |
| constexpr unsigned int | PIN_GPIO_21 = 21 |
| | BCM GPIO pin 21. More...
|
| |
| constexpr unsigned int | PIN_GPIO_22 = 22 |
| | BCM GPIO pin 22. More...
|
| |
| constexpr unsigned int | PIN_GPIO_23 = 23 |
| | BCM GPIO pin 23. More...
|
| |
| constexpr unsigned int | PIN_GPIO_24 = 24 |
| | BCM GPIO pin 24. More...
|
| |
| constexpr unsigned int | PIN_GPIO_25 = 25 |
| | BCM GPIO pin 25. More...
|
| |
| constexpr unsigned int | PIN_GPIO_26 = 26 |
| | BCM GPIO pin 26. More...
|
| |
| constexpr unsigned int | PIN_GPIO_27 = 27 |
| | BCM GPIO pin 27. More...
|
| |
| constexpr unsigned int | RUMPI_SINGLE_COMPONENT_BUFFER_SIZE = 2 << 9 |
| | Buffer size for a single component's serial reads. More...
|
| |
| constexpr unsigned int | RUMPI_MAX_BUFFER_SIZE = 2 << 15 |
| | Maximum overall buffer size. More...
|
| |
| constexpr unsigned int | RUMPI_MAX_PCF8591_PINS = 4 |
| | Number of ADC channels on a PCF8591. More...
|
| |
| constexpr unsigned int | RUMPI_MAX_READ_ATTEMPTS = 2 << 15 |
| | Maximum serial-read retry attempts before giving up. More...
|
| |
| constexpr unsigned int | RUMPI_MAX_NUM_SAMPLES = 5 |
| | Default rolling-average window length. More...
|
| |
| constexpr size_t | RUMPI_MAX_LOG_FILES_TO_KEEP = 20 |
| |
| constexpr float | THRESHOLD_SYSTEMTEMPERATURE_WARNING_CELSIUS = 70.0f |
| | System temperature warning threshold, in Celsius. More...
|
| |
| constexpr float | THRESHOLD_SYSTEMTEMPERATURE_ALERT_CELSIUS = 80.0f |
| | System temperature alert threshold, in Celsius (Pi soft-throttles here). More...
|
| |
| constexpr bool | THRESHOLD_SYSTEMTEMPERATURE_HIGHER_IS_WORSE = true |
| | High system temperature is worse. More...
|
| |
| constexpr float | THRESHOLD_EXTERNALFIVEVOLT_WARNING_LOW_VOLTS = 4.9f |
| | 5V rail low-side warning threshold, in volts. More...
|
| |
| constexpr float | THRESHOLD_EXTERNALFIVEVOLT_ALERT_LOW_VOLTS = 4.8f |
| | 5V rail low-side alert threshold, in volts. More...
|
| |
| constexpr float | THRESHOLD_EXTERNALFIVEVOLT_WARNING_HIGH_VOLTS = 5.27f |
| | 5V rail high-side warning threshold, in volts. More...
|
| |
| constexpr float | THRESHOLD_EXTERNALFIVEVOLT_ALERT_HIGH_VOLTS = 5.31f |
| | 5V rail high-side alert threshold, in volts. More...
|
| |
| constexpr float | THRESHOLD_DISKUSAGE_WARNING_PERCENT = 80.0f |
| | Disk usage warning threshold, as a percent. More...
|
| |
| constexpr float | THRESHOLD_DISKUSAGE_ALERT_PERCENT = 90.0f |
| | Disk usage alert threshold, as a percent. More...
|
| |
| constexpr bool | THRESHOLD_DISKUSAGE_HIGHER_IS_WORSE = true |
| | High disk usage is worse. More...
|
| |
| constexpr float | THRESHOLD_MEMORY_WARNING_AVAILABLE_PERCENT = 15.0f |
| | Available-memory warning threshold, as a percent. More...
|
| |
| constexpr float | THRESHOLD_MEMORY_ALERT_AVAILABLE_PERCENT = 8.0f |
| | Available-memory alert threshold, as a percent (low available is bad). More...
|
| |
| constexpr float | THRESHOLD_MEMORY_WARNING_SWAP_PERCENT = 20.0f |
| | Swap-usage warning threshold, as a percent. More...
|
| |
| constexpr float | THRESHOLD_MEMORY_ALERT_SWAP_PERCENT = 50.0f |
| | Swap-usage alert threshold, as a percent (high swap is bad). More...
|
| |
| constexpr float | THRESHOLD_WIFISIGNAL_WARNING_DBM = -70.0f |
| | WiFi signal warning threshold, in dBm. More...
|
| |
| constexpr float | THRESHOLD_WIFISIGNAL_ALERT_DBM = -75.0f |
| | WiFi signal alert threshold, in dBm. More...
|
| |
| constexpr bool | THRESHOLD_WIFISIGNAL_HIGHER_IS_WORSE = false |
| | Low WiFi signal is worse (closer to 0 is stronger). More...
|
| |
| constexpr int | BMP180_PRE_OSS0 = 0 |
| |
| constexpr int | BMP180_PRE_OSS1 = 1 |
| |
| constexpr int | BMP180_PRE_OSS2 = 2 |
| |
| constexpr int | BMP180_PRE_OSS3 = 3 |
| |
| constexpr int | BMP180_PRE_OSS0_CMD = 0x34 |
| |
| constexpr int | BMP180_PRE_OSS1_CMD = 0x74 |
| |
| constexpr int | BMP180_PRE_OSS2_CMD = 0xB4 |
| |
| constexpr int | BMP180_PRE_OSS3_CMD = 0xF4 |
| |
| constexpr int | BMP180_PRE_OSS0_WAIT_US = 5000 |
| |
| constexpr int | BMP180_PRE_OSS1_WAIT_US = 8000 |
| |
| constexpr int | BMP180_PRE_OSS2_WAIT_US = 14000 |
| |
| constexpr int | BMP180_PRE_OSS3_WAIT_US = 26000 |
| |
| constexpr int | BMP180_REG_AC1_H = 0xAA |
| |
| constexpr int | BMP180_REG_AC2_H = 0xAC |
| |
| constexpr int | BMP180_REG_AC3_H = 0xAE |
| |
| constexpr int | BMP180_REG_AC4_H = 0xB0 |
| |
| constexpr int | BMP180_REG_AC5_H = 0xB2 |
| |
| constexpr int | BMP180_REG_AC6_H = 0xB4 |
| |
| constexpr int | BMP180_REG_B1_H = 0xB6 |
| |
| constexpr int | BMP180_REG_B2_H = 0xB8 |
| |
| constexpr int | BMP180_REG_MB_H = 0xBA |
| |
| constexpr int | BMP180_REG_MC_H = 0xBC |
| |
| constexpr int | BMP180_REG_MD_H = 0xBE |
| |
| constexpr int | BMP180_CTRL = 0xF4 |
| |
| constexpr int | BMP180_REG_TMP = 0xF6 |
| |
| constexpr int | BMP180_REG_PRE = 0xF6 |
| |
| constexpr int | BMP180_TMP_READ_CMD = 0x2E |
| |
| constexpr int | BMP180_TMP_READ_WAIT_US = 5000 |
| |
| constexpr double | BMP180_SEA_LEVEL = 1013.25 |
| |
| static const int32_t | BMP180RegisterTable [11][2] |
| |
| constexpr double | BMP280_SEA_LEVEL = 1013.25 |
| |
| constexpr int | POWER_MODE = 3 |
| |
| constexpr int | OSRS_T = 5 |
| |
| constexpr int | OSRS_P = 5 |
| |
| constexpr int | FILTER = 4 |
| |
| constexpr int | T_SB = 4 |
| |
| constexpr int | BMP280_REGISTER_DIG_T1 = 0x88 |
| |
| constexpr int | BMP280_REGISTER_DIG_T2 = 0x8A |
| |
| constexpr int | BMP280_REGISTER_DIG_T3 = 0x8C |
| |
| constexpr int | BMP280_REGISTER_DIG_P1 = 0x8E |
| |
| constexpr int | BMP280_REGISTER_DIG_P2 = 0x90 |
| |
| constexpr int | BMP280_REGISTER_DIG_P3 = 0x92 |
| |
| constexpr int | BMP280_REGISTER_DIG_P4 = 0x94 |
| |
| constexpr int | BMP280_REGISTER_DIG_P5 = 0x96 |
| |
| constexpr int | BMP280_REGISTER_DIG_P6 = 0x98 |
| |
| constexpr int | BMP280_REGISTER_DIG_P7 = 0x9A |
| |
| constexpr int | BMP280_REGISTER_DIG_P8 = 0x9C |
| |
| constexpr int | BMP280_REGISTER_DIG_P9 = 0x9E |
| |
| constexpr int | BMP280_REGISTER_CHIPID = 0xD0 |
| |
| constexpr int | BMP280_REGISTER_VERSION = 0xD1 |
| |
| constexpr int | BMP280_REGISTER_SOFTRESET = 0xE0 |
| |
| constexpr int | BMP280_REGISTER_CONTROL = 0xF4 |
| |
| constexpr int | BMP280_REGISTER_CONFIG = 0xF5 |
| |
| constexpr int | BMP280_REGISTER_STATUS = 0xF3 |
| |
| constexpr int | BMP280_REGISTER_TEMPDATA_MSB = 0xFA |
| |
| constexpr int | BMP280_REGISTER_TEMPDATA_LSB = 0xFB |
| |
| constexpr int | BMP280_REGISTER_TEMPDATA_XLSB = 0xFC |
| |
| constexpr int | BMP280_REGISTER_PRESSDATA_MSB = 0xF7 |
| |
| constexpr int | BMP280_REGISTER_PRESSDATA_LSB = 0xF8 |
| |
| constexpr int | BMP280_REGISTER_PRESSDATA_XLSB = 0xF9 |
| |
| constexpr int | TSL2591_ADDR = 0x29 |
| |
| constexpr int | TSL2591_COMMAND_BIT = 0xA0 |
| |
| constexpr int | TSL2591_ENABLE_REG = 0x00 |
| |
| constexpr int | TSL2591_CONTROL_REG = 0x01 |
| |
| constexpr int | TSL2591_C0DATA_L = 0x14 |
| |
| constexpr int | TSL2591_C1DATA_L = 0x16 |
| |
| constexpr double | TSL2591_LUX_DF = 408.0 |
| |
| constexpr double | TSL2591_LUX_COEFB = 1.64 |
| |
| static const char * | DEFAULT_COMPONENT_MANIFEST |
| |
| static std::atomic< bool > | myIsRunning { false } |
| |
| static std::atomic< bool > | myHasTornDown { false } |
| |
| static ComponentManager * | myComponentManager = nullptr |
| |
| static std::thread | myComponentManagerThread |
| |
| static std::mutex | myDelayLock |
| |
| static std::mutex | myOutputLock |
| |
| static std::condition_variable | myDelayCond |
| |
| static Receiver * | myReceiver = nullptr |
| |
| static std::size_t | myLoggerSubscriptionId = 0 |
| |
| static const std::vector< RemoteCommand > | myRemoteCommands = BuildRemoteCommands() |
| |
| static const char * | DEFAULT_LIBRARY_CONFIG_FILE = "RumPiConfig.json" |
| |
| static RumPiConfig | myLibraryConfig |
| |
RumPi is the library's top-level facade.
It used to be an all-static class; it is now a namespace, which is the natural fit for a stateless entry point and keeps every call site (RumPi::Start(), RumPi::Initialize(), ...) reading exactly the same. The former private state and helpers now live as file-local statics in RumPi.cpp.
- Author
- Eddie O'Hagan
- Date
- 8/13/2026