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.