Project

General

Profile

Statistics
| Revision:

root / branches / diagnostics / computer-hub / comp-hub.c @ 1085

History | View | Annotate | Download (1.92 KB)

1 1085 erhart
#include "comp-hub.h"
2
3
// THESE ARE NOT SET CORRECTLY!
4
// ALSO DON'T FORGET TO CHECK OUT
5
// ATTRIBUTES ON LINES 39 ish TO 50 ish
6
#define PORT_DEFAULT "/dev/ttyUSB0"
7
#define INPUT_BAUD_RATE B9600
8
#define OUTPUT_BAUD_RATE B9600
9
10
static char* com_port = PORT_DEFAULT;
11
static int stream;
12
13
int main(void)
14
{
15
        if(lib_init() < 0)
16
                printf("Exiting...\n");
17
18
        //your code here
19
20
        return 0;
21
}
22
23
int lib_init()
24
{
25
        stream = open(com_port, O_RDWR);
26
        if (stream == -1)
27
        {
28
                printf("Failed to open connection on port ");
29
                printf("%i\n", *com_port);
30
                return -1;
31
        } else {
32
                  printf("Successfully opened connection on port ");
33
                printf("%i\n", (int)(*com_port));
34
        }
35
        // set baud rate, etc. correctly
36
        struct termios options;
37
        if(tcgetattr(stream, &options))
38
                printf("Error getting attributes");
39
        cfsetispeed(&options, INPUT_BAUD_RATE);
40
        cfsetospeed(&options, OUTPUT_BAUD_RATE);
41
        options.c_iflag &= ~ICRNL;
42
        options.c_oflag &= ~OCRNL;
43
        options.c_cflag |= (CLOCAL | CREAD);
44
        options.c_cflag &= ~PARENB;
45
        options.c_cflag &= ~CSTOPB;
46
        options.c_cflag &= ~CSIZE;
47
        options.c_cflag |= CS8;
48
        options.c_lflag &= ~ICANON;
49
        options.c_cc[VMIN] = 1;
50
        options.c_cc[VTIME] = 50;
51
52
        if (tcsetattr(stream, TCSANOW, &options))
53
        {
54
                printf("Error setting attributes.\n");
55
                return -1;
56
        }
57
        return 0;
58
}
59
60
/**
61
 * Listener function
62
 * At the moment, just prints out what it receives
63
 **/
64
static void* listen()
65
{
66
        char c;
67
        while (1)
68
        {
69
                if (read_char(&c) != 0) {
70
                        printf("Listen failed.\n");
71
                        return NULL;
72
                }
73
74
                printf("%c\n", c);
75
                usleep(1000);
76
        }
77
78
        return NULL;
79
}
80
81
static int read_char(char* buf)
82
{
83
        if (read(stream, buf, 1) == -1) {
84
                printf("Failed to read.\r\n");
85
                return -1;
86
        }
87
        return 0;
88
}
89
90
/**
91
 * Put functions
92
 **/
93
static int put_string(char *str)
94
{
95
        if (write(stream, str, strlen(str)) == -1) {
96
                printf("Failed to write.\r\n");
97
                return -1;
98
        }
99
        return 0;
100
}
101
102
static int put_char(char* c)
103
{
104
        if (write(stream, c, 1) == -1) {
105
                printf("Failed to write.\r\n");
106
                return -1;
107
        }
108
        return 0;
109
}