annotate target-utils/loadagent/sertimeout.c @ 752:c79aaed75bd8

compile-fc-batt: allow possible third field in source lines Battery tables maintained in the fc-battery-conf repository will now have a third field added, defining thresholds for the battery bars icon, and there will be a new utility to compile them into the new /etc/batterytab2 file read by the FC Tourmaline version of our FCHG driver. For backward compatibility with the original Magnetite version of FCHG, compile-fc-batt remains the tool for compiling the original /etc/batterytab file format, and it needs to ignore the newly added third field in battery table sources.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Nov 2020 20:37:55 +0000
parents 880c6d31e487
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Here we are going to implement a function for serial input with a timeout.
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 #include <stdlib.h>
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 serial_in_timeout(count)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 unsigned count;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 {
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 int c;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 do
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 c = serial_in_poll();
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 while (c < 0 && --count);
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 return c;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 }
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 void
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 cmd_sertimeout(argbulk)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 char *argbulk;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 {
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 char *argv[2];
645
880c6d31e487 loadagent sertimeout calibration command simplified
Mychaela Falconia <falcon@freecalypso.org>
parents: 644
diff changeset
23 int count;
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 if (parse_args(argbulk, 1, 1, argv, 0) < 0)
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 return;
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 count = atoi(argv[0]);
645
880c6d31e487 loadagent sertimeout calibration command simplified
Mychaela Falconia <falcon@freecalypso.org>
parents: 644
diff changeset
28 serial_in_timeout(count);
644
69acf5e0a21d loadagent: implemented sertimeout calibration command
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 }