root / logic / trunk / measurement_reader / src / startup / main.c @ 93
History | View | Annotate | Download (1.48 KB)
1 |
/*
|
---|---|
2 |
* main.c
|
3 |
*
|
4 |
* 2011, Janez Barbic (jhnsmth64@gmail.com)
|
5 |
*
|
6 |
*/
|
7 |
#include <stdio.h> |
8 |
#include <stdlib.h> |
9 |
#include <pthread.h> |
10 |
#include <syslog.h> |
11 |
#include <unistd.h> |
12 |
#include "../drv_comm/dev01/drv_comm.h" |
13 |
|
14 |
const char *dev1 = "/dev/dev_thermometer_01"; |
15 |
const char *dev2 = "/dev/dev_thermometer_02"; |
16 |
const char *dev3 = "/dev/dev_barometer_01"; |
17 |
const char *dev4 = "/dev/dev_hygrometer_01"; |
18 |
const char *dev5 = "/dev/dev_light_sensor_01"; |
19 |
const char *dev6 = "/dev/dev_smart_meter_01"; |
20 |
|
21 |
// Application entry point
|
22 |
int main(int argc, char *argv[]) { |
23 |
/** //DAEMON
|
24 |
pid_t pid, sid;
|
25 |
|
26 |
pid = fork();
|
27 |
if (pid < 0) {
|
28 |
exit(EXIT_FAILURE);
|
29 |
}
|
30 |
// EXIT PARENT
|
31 |
if (pid > 0) {
|
32 |
exit(EXIT_SUCCESS);
|
33 |
}
|
34 |
|
35 |
//umask(0);
|
36 |
|
37 |
// Open any logs here
|
38 |
|
39 |
// Create a new SID for the child process
|
40 |
sid = setsid();
|
41 |
if (sid < 0) {
|
42 |
// Log the failure
|
43 |
exit(EXIT_FAILURE);
|
44 |
}
|
45 |
|
46 |
// Close out the standard file descriptors
|
47 |
// Because daemons generally dont interact directly with user so there is no need of keeping these open
|
48 |
close(STDIN_FILENO);
|
49 |
close(STDOUT_FILENO);
|
50 |
close(STDERR_FILENO);
|
51 |
/**/
|
52 |
|
53 |
// read devices in a loop
|
54 |
while(1) |
55 |
{ |
56 |
set_device_value(dev1,1); // termometer1 |
57 |
set_device_value(dev2,2); // |
58 |
set_device_value(dev3,3); // |
59 |
set_device_value(dev4,4); // |
60 |
set_device_value(dev5,5); // |
61 |
set_device_value(dev6,6); // |
62 |
sleep(60); //update every minute |
63 |
} |
64 |
|
65 |
exit(0);
|
66 |
} |