root / mainbox / main.c @ 7bdb98c5
History | View | Annotate | Download (1.01 KB)
1 | 7bdb98c5 | Tom Mullins | #include "tool.h" |
---|---|---|---|
2 | #include <unistd.h> |
||
3 | #include <signal.h> |
||
4 | #include <strings.h> |
||
5 | #include <stdio.h> |
||
6 | |||
7 | #define SLEEP_MS 250 |
||
8 | |||
9 | struct tool_t tools[] = {
|
||
10 | {4, "test", TS_INIT} |
||
11 | }; |
||
12 | |||
13 | #define N_TOOLS (sizeof(tools)/sizeof(struct tool_t)) |
||
14 | |||
15 | volatile int run = 1; |
||
16 | |||
17 | void sigint(int sig) { |
||
18 | run = 0;
|
||
19 | } |
||
20 | |||
21 | int main(int argc, char **argv) { |
||
22 | int i;
|
||
23 | struct sigaction sigact;
|
||
24 | const char *device = "/dev/ttyUSB0"; |
||
25 | |||
26 | // TODO getopts to get device name
|
||
27 | |||
28 | bzero(&sigact, sizeof(sigact));
|
||
29 | sigact.sa_handler = sigint; |
||
30 | sigact.sa_flags = SA_RESTART; |
||
31 | sigemptyset(&sigact.sa_mask); |
||
32 | sigaction(SIGINT, &sigact, NULL);
|
||
33 | |||
34 | if (tool_init_mb(device)) {
|
||
35 | return 1; |
||
36 | } |
||
37 | |||
38 | printf("Modbus initialized; polling tools...\n");
|
||
39 | |||
40 | i = 0;
|
||
41 | while (run) {
|
||
42 | tool_poll(&tools[i]); |
||
43 | usleep(SLEEP_MS * (useconds_t)1000);
|
||
44 | i = (i+1) % N_TOOLS;
|
||
45 | } |
||
46 | |||
47 | printf("\nDisabling tools\n");
|
||
48 | for (i = 0; i < N_TOOLS; i++) { |
||
49 | tool_request_disable(&tools[i]); |
||
50 | } |
||
51 | |||
52 | printf("Closing modbus connection\n");
|
||
53 | tool_close_mb(); |
||
54 | |||
55 | printf("Exiting\n");
|
||
56 | return 0; |
||
57 | } |