Statistics
| Revision:

root / logic / trunk / measurement_reader / src / startup / main.c @ 72

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
}