DESCRIPTION
This document outlines the C functionality within the XS file that the Perl module uses as its backend. It is a reference only, and none of the information included here is required for non-developmental use/work.
C TYPEDEFS
EnvData
Stores the temperature and humidity float values.
typedef struct env_data {
int temp;
int humidity;
} EnvData;
C FUNCTIONS
pin
arguments must always be in their BCM GPIO
number scheme format.
c_temp
int c_temp(int pin);
Called by the temp()
method. Returns the temperature in Celcius.
c_humidity
int c_humidity(int pin);
Called by the humidity()
method. Returns the humidity as an integer.
c_cleanup
int c_cleanup(int pin);
Called by the cleanup()
method, and is always called upon DESTROY()
.
read_env()
EnvData read_env(int pin);
Not available to Perl.
Polls the pin in a loop until valid data is fetched, then returns an EnvData
struct containing the temp and humidity float values.
If for any reason the poll of the DHT11 sensor fails (eg: the CRC is incorrect for either temp or humidity), we will loop and block until valid data is retrieved.
noboard_test()
bool noboard_test();
Checks whether the RDE_NOBOARD_TEST
environment variable is set to a true value. Returns true if so, and false if not. This bool is used for testing purposes only.
Not available to Perl.
setup()
void setup();
If we're on a system that isn't a Raspberry Pi, things break. We call this in new()
, and if setup checks fail, we exit (unless in RDE_NOBOARD_TEST environment variable is set to true).
This function has been configured to call wiringPi
's wiringPiSetupGpio()
function.
Called only from the new()
method.
AUTHOR
Steve Bertrand, <steveb@cpan.org<gt>
LICENSE AND COPYRIGHT
Copyright 2016 Steve Bertrand.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.