-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGPIO.cpp
More file actions
58 lines (48 loc) · 1.8 KB
/
GPIO.cpp
File metadata and controls
58 lines (48 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "GPIO.hpp"
using namespace std;
void init_gpio() {
cout << "STARTING GPIO" << endl;
fstream sys_unexport;
sys_unexport.open(GPIO_DIR + "unexport", ios::out);
sys_unexport << DRIBBLER_READ_GPIO << endl;
sys_unexport << DRIBBLER_WRITE_GPIO << endl;
sys_unexport << COMPASS_RESET_READ_GPIO << endl;
sys_unexport << COMPASS_RESET_WRITE_GPIO;
sys_unexport.close();
fstream sys_export;
sys_export.open(GPIO_DIR + "export", ios::out);
sys_export << DRIBBLER_READ_GPIO << endl;
sys_export << DRIBBLER_WRITE_GPIO << endl;
sys_export << COMPASS_RESET_READ_GPIO << endl;
sys_export << COMPASS_RESET_WRITE_GPIO;
sys_export.close();
fstream sys_gpio_out;
sys_gpio_out.open(GPIO_DIR + "gpio" + to_string(DRIBBLER_WRITE_GPIO) + "/direction", ios::out);
sys_gpio_out << "out" << endl;
sys_gpio_out.close();
sys_gpio_out.open(GPIO_DIR + "gpio" + to_string(COMPASS_RESET_WRITE_GPIO) + "/direction", ios::out);
sys_gpio_out << "out" << endl;
sys_gpio_out.close();
fstream sys_gpio_in;
sys_gpio_in.open(GPIO_DIR + "gpio" + to_string(DRIBBLER_READ_GPIO) + "/direction", ios::out);
sys_gpio_in << "in" << endl;
sys_gpio_in.close();
sys_gpio_in.open(GPIO_DIR + "gpio" + to_string(COMPASS_RESET_READ_GPIO) + "/direction", ios::out);
sys_gpio_in << "in" << endl;
sys_gpio_in.close();
sys_gpio_in.open(GPIO_DIR + "gpio" + to_string(DRIBBLER_READ_GPIO) + "/active_low", ios::out);
sys_gpio_in << "1" << endl;
sys_gpio_in.close();
sys_gpio_in.open(GPIO_DIR + "gpio" + to_string(COMPASS_RESET_READ_GPIO) + "/active_low", ios::out);
sys_gpio_in << "1" << endl;
sys_gpio_in.close();
}
int get_gpio_status(int gpio) {
fstream gpio_file;
gpio_file.open(GPIO_DIR + "gpio" + to_string(gpio) + "/value", ios::in);
string line;
getline(gpio_file, line);
int val = atoi(line.c_str());
gpio_file.close();
return val;
}