Aruna
aruna::sensor::Water Class Referenceabstract

#include <Water.h>

Inheritance diagram for aruna::sensor::Water:
Collaboration diagram for aruna::sensor::Water:

Public Member Functions

 Water ()
 Water sensor. More...
 
virtual err_t get_water_level (uint16_t &water_level_in_mm)=0
 Get water level in millimeters of the sensor. More...
 
err_t is_wet (bool &water_detected)
 Is water detected at the sensor? More...
 
sis::status_tupdate_status () override
 Perform check to see if system is secure and return updated status. More...
 
void set_sis_status_location (char *location)
 Set the location of the sensor. More...
 
- Public Member Functions inherited from aruna::sis::Performer
 Performer ()
 Performs check to see if the system is in a secure state. More...
 
 ~Performer ()
 
void set_update (bool do_update)
 Use to pauze and resume the update process. More...
 

Private Attributes

water_status_t status = *new water_status_t()
 

Additional Inherited Members

- Public Attributes inherited from aruna::sis::Performer
uint32_t update_ms = 500
 update frequency More...
 
- Protected Member Functions inherited from aruna::sis::Performer
void update_handler ()
 
- Static Protected Member Functions inherited from aruna::sis::Performer
static void * _update_handler (void *_this)
 
- Protected Attributes inherited from aruna::sis::Performer
pthread_t thread
 
pthread_cond_t do_update_con
 
pthread_mutex_t do_update_mut
 
log::channel_tlog
 
char log_tag [10] = "SIS perf"
 
bool do_update = false
 
bool interrupt_based = false
 

Detailed Description

Definition at line 40 of file Water.h.

Constructor & Destructor Documentation

◆ Water()

Water::Water ( )

Water sensor.

Definition at line 11 of file Water.cpp.

11  : status() {
13  status.level = level_t::NOTIFY;
14 // update description
16 }
void update_description(uint8_t water_level)
updates description with water level.
Definition: Water.cpp:43
water_status_t status
Definition: Water.h:42
Here is the call graph for this function:

Member Function Documentation

◆ get_water_level()

virtual err_t aruna::sensor::Water::get_water_level ( uint16_t &  water_level_in_mm)
pure virtual

Get water level in millimeters of the sensor.

Parameters
water_level_in_mmbuffer to store water level in
Returns
err_t::OK if water level could be retrieved

Implemented in aruna::sensor::Rain40x16.

Here is the caller graph for this function:

◆ is_wet()

aruna::err_t Water::is_wet ( bool &  water_detected)

Is water detected at the sensor?

Parameters
water_detectedstore result
Returns
error retrieving wetness of sensor

Definition at line 18 of file Water.cpp.

18  {
19  err_t e;
20  uint16_t i;
21  e = get_water_level(i);
22  water_detected = i != 0;
23  return e;
24 }
virtual err_t get_water_level(uint16_t &water_level_in_mm)=0
Get water level in millimeters of the sensor.
Here is the call graph for this function:

◆ set_sis_status_location()

void Water::set_sis_status_location ( char *  location)

Set the location of the sensor.

Usefull for SIS status reports.

Parameters
location7 char long location.

Definition at line 38 of file Water.cpp.

38  {
39  strcpy(status.location, location);
40 }
water_status_t status
Definition: Water.h:42

◆ update_status()

status_t * Water::update_status ( )
overridevirtual

Perform check to see if system is secure and return updated status.

Returns
status_t pointer

Implements aruna::sis::Performer.

Definition at line 26 of file Water.cpp.

26  {
27  uint16_t mm;
28  err_t e;
29  e = get_water_level(mm);
30  if ((uint8_t) e)
31  log->error("Error retrieving water level: %s", err_to_char.at(e));
33  status.level = mm ? level_t::CRITICAL : level_t::NOTIFY;
35  return &status;
36 }
const std::map< err_t, char * > err_to_char
Definition: arunaTypes.h:54
log::channel_t * log
Definition: Performer.h:24
void update_description(uint8_t water_level)
updates description with water level.
Definition: Water.cpp:43
int error(const char *format,...)
log error message
Definition: log.cpp:90
water_status_t status
Definition: Water.h:42
virtual err_t get_water_level(uint16_t &water_level_in_mm)=0
Get water level in millimeters of the sensor.
Here is the call graph for this function:

Member Data Documentation

◆ status

water_status_t aruna::sensor::Water::status = *new water_status_t()
private

Definition at line 42 of file Water.h.


The documentation for this class was generated from the following files: