Fixed Context::open as get_strings() closes the device before. Thanks to Chris M...
[libftdi] / examples / simple.c
1 /* simple.c
2
3    Simple libftdi usage example
4
5    This program is distributed under the GPL, version 2
6 */
7
8 #include <stdio.h>
9 #include <ftdi.h>
10
11 int main(void)
12 {
13     int ret;
14     struct ftdi_context ftdic;
15     if (ftdi_init(&ftdic) < 0)
16     {
17         fprintf(stderr, "ftdi_init failed\n");
18         return EXIT_FAILURE;
19     }
20
21     if ((ret = ftdi_usb_open(&ftdic, 0x0403, 0x6001)) < 0)
22     {
23         fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
24         return EXIT_FAILURE;
25     }
26
27     // Read out FTDIChip-ID of R type chips
28     if (ftdic.type == TYPE_R)
29     {
30         unsigned int chipid;
31         printf("ftdi_read_chipid: %d\n", ftdi_read_chipid(&ftdic, &chipid));
32         printf("FTDI chipid: %X\n", chipid);
33     }
34
35     if ((ret = ftdi_usb_close(&ftdic)) < 0)
36     {
37         fprintf(stderr, "unable to close ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
38         return EXIT_FAILURE;
39     }
40
41     ftdi_deinit(&ftdic);
42
43     return EXIT_SUCCESS;
44 }