RumPi 1.0
A self-assembling C++ sensor & actuator library for the Raspberry Pi 5
RainSensor.h
Go to the documentation of this file.
1#pragma once
2#include "../Common.h"
3#include "BaseComponent.h"
5
6namespace RumPi
7{
15 {
16 protected:
19
20 public:
31 RainSensor();
32
46 RainSensor(IAnalogDigitalConverterComponent* analogToDigitalConverter, const unsigned int& analogToDigitalConverterIndex);
47
59 virtual ~RainSensor();
60
71 virtual void TurnOn() override;
72
83 virtual void TurnOff() override;
84
97 int ReadRawAnalogValue() const;
98
109 virtual void ProcessRawValues() override;
110
123 virtual std::string ToString() const override;
124
137 unsigned int GetAnalogToDigitalConverterPinIndex() const;
138
152
165 void SetAnalogToDigitalConverterPinIndex(unsigned int pinIndex);
166
180 };
181} // namespace RumPi
Abstract base class for every component (sensor, actuator, etc.) the library manages.
Definition: BaseComponent.h:60
Interface for analog-to-digital converter components (e.g.
Definition: AnalogDigitalConverterComponent.h:14
Rain sensor - reads surface wetness as an analog value through an ADC channel.
Definition: RainSensor.h:15
virtual void TurnOff() override
No-op: the rain sensor holds no resources that need releasing when turned off.
Definition: RainSensor.cpp:85
virtual void ProcessRawValues() override
No-op: the rain sensor reads its value on demand in ReadRawAnalogValue, so there are no raw values to...
Definition: RainSensor.cpp:100
void SetAnalogToDigitalConverterPinIndex(unsigned int pinIndex)
Sets the ADC channel index this sensor reads from.
Definition: RainSensor.cpp:195
unsigned int GetAnalogToDigitalConverterPinIndex() const
Gets the ADC channel index this sensor reads from.
Definition: RainSensor.cpp:161
IAnalogDigitalConverterComponent * myAnalogToDigitalConverter
The ADC this sensor reads through.
Definition: RainSensor.h:18
IAnalogDigitalConverterComponent * GetAnalogDigitalConverter() const
Gets the ADC this sensor reads through.
Definition: RainSensor.cpp:178
virtual ~RainSensor()
Destroys the sensor, turning it off first.
Definition: RainSensor.cpp:55
RainSensor()
Builds a default rain sensor with no ADC wired yet.
Definition: RainSensor.cpp:15
void SetAnalogDigitalConverter(IAnalogDigitalConverterComponent *analogDigitalConverter)
Sets the ADC this sensor reads through.
Definition: RainSensor.cpp:212
unsigned int myAnalogToDigitalConverterPinIndex
The ADC channel index this sensor reads from.
Definition: RainSensor.h:17
virtual void TurnOn() override
No-op: the rain sensor is passive and reads on demand, so there is nothing to turn on.
Definition: RainSensor.cpp:70
int ReadRawAnalogValue() const
Reads the raw analog wetness value from the ADC, or -1 if no ADC is wired.
Definition: RainSensor.cpp:117
virtual std::string ToString() const override
Serializes the rain sensor's raw analog value to a string.
Definition: RainSensor.cpp:139
RumPi is the library's top-level facade.
Definition: AlertManager.h:6