comparison lcdtest/testmain.c @ 26:225556110fa6

lcdtest: beginning of reorg for adding lcdphone program
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 27 May 2018 21:36:07 +0000
parents lcdtest/main.c@2127e6fdeab2
children 4b7cac119fb5
comparison
equal deleted inserted replaced
25:0a44549a64c8 26:225556110fa6
1 #include <sys/types.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5 #include <ftdi.h>
6
7 char *device_serial;
8 struct ftdi_context ftdi;
9
10 process_cmdline(argc, argv)
11 char **argv;
12 {
13 int c;
14 extern char *optarg;
15
16 while ((c = getopt(argc, argv, "d:")) != EOF) {
17 switch (c) {
18 case 'd':
19 device_serial = optarg;
20 continue;
21 default:
22 /* error msg already printed */
23 exit(1);
24 }
25 }
26 switch (argc - optind) {
27 case 0:
28 break;
29 case 1:
30 if (chdir(argv[optind]) < 0) {
31 perror(argv[optind]);
32 exit(1);
33 }
34 break;
35 default:
36 fprintf(stderr, "usage: %s [options] [chdir]\n", argv[0]);
37 exit(1);
38 }
39 }
40
41 main(argc, argv)
42 char **argv;
43 {
44 char command[512];
45
46 process_cmdline(argc, argv);
47 ftdi_init(&ftdi);
48 if (ftdi_usb_open_desc(&ftdi, 0x0403, 0x7157, 0, device_serial) < 0) {
49 fprintf(stderr, "FTDI USB open failed: %s\n", ftdi.error_str);
50 exit(1);
51 }
52 if (ftdi_set_bitmode(&ftdi, 0, BITMODE_MCU) < 0) {
53 fprintf(stderr, "unable to enter MCU mode: %s\n",
54 ftdi.error_str);
55 exit(1);
56 }
57 for (;;) {
58 if (isatty(0)) {
59 fputs("lcdtest> ", stdout);
60 fflush(stdout);
61 }
62 if (!fgets(command, sizeof command, stdin))
63 exit(0);
64 dispatch_cmd(command);
65 }
66 }