diff options
author | Luotao Fu <luotao@alea.(none)> | 2010-02-14 20:05:59 +0100 |
---|---|---|
committer | Luotao Fu <luotao@alea.(none)> | 2010-02-14 20:05:59 +0100 |
commit | 5d0b73e302958da34f9b7a369f4b02d673173d3a (patch) | |
tree | b8ae2b567238eda7ebe79484cc289c9001e5d334 | |
parent | 12e97352397edcd19653e483b189febc2aa4dd8a (diff) | |
download | canutils-5d0b73e302958da34f9b7a369f4b02d673173d3a.tar.gz canutils-5d0b73e302958da34f9b7a369f4b02d673173d3a.tar.xz |
[canconfig] add getting berr counter
Signed-off-by: Luotao Fu <luotao@alea.(none)>
-rw-r--r-- | src/canconfig.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/canconfig.c b/src/canconfig.c index e59bcfb..47e8f80 100644 --- a/src/canconfig.c +++ b/src/canconfig.c @@ -49,7 +49,7 @@ const char *can_states[CAN_STATE_MAX] = { const char *config_keywords[] = { "baudrate", "bitrate", "bittiming", "ctrlmode", "restart", "start", "stop", "restart-ms", "state", "clockfreq", - "bittiming-const"}; + "bittiming-const", "berr-counter"}; /* this is shamelessly stolen from iproute and slightly modified */ #define NEXT_ARG() \ @@ -96,7 +96,8 @@ static void help(void) "canconfig <dev> {ACTION}\n\t\t" "ACTION := <[start|stop|restart]>\n\t" "canconfig <dev> clockfreq\n\t" - "canconfig <dev> bittiming-constants\n" + "canconfig <dev> bittiming-constants\n\t" + "canconfig <dev> berr-counter\n" ); exit(EXIT_FAILURE); @@ -477,6 +478,25 @@ static void cmd_restart_ms(int argc, char *argv[], const char *name) do_show_restart_ms(name); } +static void do_show_berr_counter(const char *name) +{ + struct can_berr_counter bc; + + memset(&bc, 0, sizeof(struct can_berr_counter)); + + if (can_get_berr_counter(name, &bc) < 0) { + fprintf(stderr, "%s: failed to get berr counters\n", name); + exit(EXIT_FAILURE); + } + + fprintf(stdout, "%s txerr: %u rxerr: %u\n", name, bc.txerr, bc.rxerr); +} + +static void cmd_berr_counter(int argc, char *argv[], const char *name) +{ + do_show_berr_counter(name); +} + static void cmd_baudrate(int argc, char *argv[], const char *name) { fprintf(stderr, "%s: baudrate is deprecated, pleae use bitrate\n", @@ -494,6 +514,7 @@ static void cmd_show_interface(const char *name) do_show_ctrlmode(name); do_show_clockfreq(name); do_show_bittiming_const(name); + do_show_berr_counter(name); exit(EXIT_SUCCESS); } @@ -531,6 +552,8 @@ int main(int argc, char *argv[]) cmd_clockfreq(argc, argv, name); if (!strcmp(argv[0], "bittiming-constants")) cmd_bittiming_const(argc, argv, name); + if (!strcmp(argv[0], "berr-counter")) + cmd_berr_counter(argc, argv, name); argv++; } |