Added API to get libftdi library version.
[libftdi] / examples / simple.c
CommitLineData
bf956a00
TJ
1/* simple.c
2
3 Simple libftdi usage example
4
5 This program is distributed under the GPL, version 2
6*/
7
ad397a4b 8#include <stdio.h>
579b006f 9#include <stdlib.h>
ad397a4b
TJ
10#include <ftdi.h>
11
6ac169ea 12int main(void)
ad397a4b
TJ
13{
14 int ret;
15 struct ftdi_context ftdic;
0220adfa 16 struct ftdi_version_info version;
6ac169ea
TJ
17 if (ftdi_init(&ftdic) < 0)
18 {
19 fprintf(stderr, "ftdi_init failed\n");
20 return EXIT_FAILURE;
21 }
ad397a4b 22
0220adfa
TJ
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
22d12cda
TJ
28 if ((ret = ftdi_usb_open(&ftdic, 0x0403, 0x6001)) < 0)
29 {
ad397a4b 30 fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
4cc3fa8a 31 ftdi_deinit(&ftdic);
ad397a4b
TJ
32 return EXIT_FAILURE;
33 }
34
cb6250fa 35 // Read out FTDIChip-ID of R type chips
22d12cda
TJ
36 if (ftdic.type == TYPE_R)
37 {
cb6250fa
TJ
38 unsigned int chipid;
39 printf("ftdi_read_chipid: %d\n", ftdi_read_chipid(&ftdic, &chipid));
40 printf("FTDI chipid: %X\n", chipid);
41 }
42
6ac169ea
TJ
43 if ((ret = ftdi_usb_close(&ftdic)) < 0)
44 {
45 fprintf(stderr, "unable to close ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
4cc3fa8a 46 ftdi_deinit(&ftdic);
6ac169ea
TJ
47 return EXIT_FAILURE;
48 }
49
ad397a4b
TJ
50 ftdi_deinit(&ftdic);
51
52 return EXIT_SUCCESS;
53}