fixed EEPROM user-area space checks for FT232R and FT245R chips in ftdi_eeprom_build()
[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 <stdlib.h>
10 #include <ftdi.h>
11
12 int main(void)
13 {
14     int ret;
15     struct ftdi_context *ftdi;
16     struct ftdi_version_info version;
17     if ((ftdi = ftdi_new()) == 0)
18    {
19         fprintf(stderr, "ftdi_new failed\n");
20         return EXIT_FAILURE;
21     }
22
23     version = ftdi_get_library_version();
24     printf("Initialized libftdi %s (major: %d, minor: %d, micro: %d, snapshot ver: %s)\n",
25         version.version_str, version.major, version.minor, version.micro,
26         version.snapshot_str);
27
28     if ((ret = ftdi_usb_open(ftdi, 0x0403, 0x6001)) < 0)
29     {
30         fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(ftdi));
31         ftdi_free(ftdi);
32         return EXIT_FAILURE;
33     }
34
35     // Read out FTDIChip-ID of R type chips
36     if (ftdi->type == TYPE_R)
37     {
38         unsigned int chipid;
39         printf("ftdi_read_chipid: %d\n", ftdi_read_chipid(ftdi, &chipid));
40         printf("FTDI chipid: %X\n", chipid);
41     }
42
43     if ((ret = ftdi_usb_close(ftdi)) < 0)
44     {
45         fprintf(stderr, "unable to close ftdi device: %d (%s)\n", ret, ftdi_get_error_string(ftdi));
46         ftdi_free(ftdi);
47         return EXIT_FAILURE;
48     }
49
50     ftdi_free(ftdi);
51
52     return EXIT_SUCCESS;
53 }