Examples¶
In this example, some pins are light up and turned down after the time specified in the shell parameters.
#include <quick2wire/gpio.hpp>
#include <unistd.h>
#include <vector>
#include <time.h>
#include <math.h>
#define PIN_COUNT 7
using namespace std;
int main(int argc, char* argv[]){
GPIO g;
int pin_numbers [PIN_COUNT] = {3, 7, 0, 2, 1, 4, 5};
vector <Pin> pins;
if(argc < 2){
fprintf(stdout, "Usage %s [sleep time in seconds]", argv[0]);
exit(1);
}
double sleep_time = atof(argv[1]);
if(sleep_time < 0){
fprintf(stdout, "Wrong sleep time value");
exit(2);
}
for (int i = 0; i < PIN_COUNT; ++i)
{
Pin p = g.pins->at(pin_numbers[i]);
p.open();
pins.push_back(p);
}
int m = 3;
while( m --> 0){
for (unsigned int i = 0; i < pins.size(); ++i)
{
pins[i].setDirection(OUT);
pins[i].setValue(1);
usleep(sleep_time*1000000);
pins[i].setValue(0);
}
}
for (unsigned int i = 0; i < pins.size(); ++i)
{
pins[i].close();
}
return 0;
}