Added -B option to display binary content with a gap after each data byte.
This option is similar to -b but may exceed the 80 char boundary.pull/7/head
parent
477c00752b
commit
01a8c5d32b
29
cansniffer.c
29
cansniffer.c
|
|
@ -123,6 +123,7 @@ static long timeout = TIMEOUT;
|
||||||
static long hold = HOLD;
|
static long hold = HOLD;
|
||||||
static long loop = LOOP;
|
static long loop = LOOP;
|
||||||
static unsigned char binary = 0;
|
static unsigned char binary = 0;
|
||||||
|
static unsigned char binary_gap = 0;
|
||||||
static unsigned char color = 0;
|
static unsigned char color = 0;
|
||||||
|
|
||||||
void rx_setup (int fd, int id);
|
void rx_setup (int fd, int id);
|
||||||
|
|
@ -141,6 +142,7 @@ void print_usage(char *prg)
|
||||||
"\n"
|
"\n"
|
||||||
"q<ENTER> - quit\n"
|
"q<ENTER> - quit\n"
|
||||||
"b<ENTER> - toggle binary / HEX-ASCII output\n"
|
"b<ENTER> - toggle binary / HEX-ASCII output\n"
|
||||||
|
"B<ENTER> - toggle binary with gap / HEX-ASCII output (exceeds 80 chars!)\n"
|
||||||
"c<ENTER> - toggle color mode\n"
|
"c<ENTER> - toggle color mode\n"
|
||||||
"#<ENTER> - notch currently marked/changed bits (can be used repeatedly)\n"
|
"#<ENTER> - notch currently marked/changed bits (can be used repeatedly)\n"
|
||||||
"*<ENTER> - clear notched marked\n"
|
"*<ENTER> - clear notched marked\n"
|
||||||
|
|
@ -169,6 +171,7 @@ void print_usage(char *prg)
|
||||||
fprintf(stderr, " -q (quiet - all IDs deactivated)\n");
|
fprintf(stderr, " -q (quiet - all IDs deactivated)\n");
|
||||||
fprintf(stderr, " -r <name> (read %sname from file)\n", SETFNAME);
|
fprintf(stderr, " -r <name> (read %sname from file)\n", SETFNAME);
|
||||||
fprintf(stderr, " -b (start with binary mode)\n");
|
fprintf(stderr, " -b (start with binary mode)\n");
|
||||||
|
fprintf(stderr, " -B (start with binary mode with gap - exceeds 80 chars!)\n");
|
||||||
fprintf(stderr, " -c (color changes)\n");
|
fprintf(stderr, " -c (color changes)\n");
|
||||||
fprintf(stderr, " -t <time> (timeout for ID display [x100ms] default: %d)\n", TIMEOUT);
|
fprintf(stderr, " -t <time> (timeout for ID display [x100ms] default: %d)\n", TIMEOUT);
|
||||||
fprintf(stderr, " -h <time> (hold marker on changes [x100ms] default: %d)\n", HOLD);
|
fprintf(stderr, " -h <time> (hold marker on changes [x100ms] default: %d)\n", HOLD);
|
||||||
|
|
@ -206,7 +209,7 @@ int main(int argc, char **argv)
|
||||||
for (i=0; i < 2048 ;i++) /* default: check all CAN-IDs */
|
for (i=0; i < 2048 ;i++) /* default: check all CAN-IDs */
|
||||||
do_set(i, ENABLE);
|
do_set(i, ENABLE);
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "m:v:r:t:h:l:qbc")) != -1) {
|
while ((opt = getopt(argc, argv, "m:v:r:t:h:l:qbBc")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'm':
|
case 'm':
|
||||||
sscanf(optarg, "%x", &mask);
|
sscanf(optarg, "%x", &mask);
|
||||||
|
|
@ -238,6 +241,12 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
case 'b':
|
case 'b':
|
||||||
binary = 1;
|
binary = 1;
|
||||||
|
binary_gap = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'B':
|
||||||
|
binary = 1;
|
||||||
|
binary_gap = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'c':
|
case 'c':
|
||||||
|
|
@ -424,7 +433,17 @@ int handle_keyb(int fd){
|
||||||
running = 0;
|
running = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'B' :
|
||||||
|
binary_gap = 1;
|
||||||
|
if (binary)
|
||||||
|
binary = 0;
|
||||||
|
else
|
||||||
|
binary = 1;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
case 'b' :
|
case 'b' :
|
||||||
|
binary_gap = 0;
|
||||||
if (binary)
|
if (binary)
|
||||||
binary = 0;
|
binary = 0;
|
||||||
else
|
else
|
||||||
|
|
@ -576,8 +595,8 @@ void print_snifline(int id){
|
||||||
|
|
||||||
if (binary) {
|
if (binary) {
|
||||||
|
|
||||||
for (i=0; i<sniftab[id].current.can_dlc; i++)
|
for (i=0; i<sniftab[id].current.can_dlc; i++) {
|
||||||
for (j=7; j>=0; j--)
|
for (j=7; j>=0; j--) {
|
||||||
if ((color) && (sniftab[id].marker.data[i] & 1<<j) &&
|
if ((color) && (sniftab[id].marker.data[i] & 1<<j) &&
|
||||||
(!(sniftab[id].notch.data[i] & 1<<j)))
|
(!(sniftab[id].notch.data[i] & 1<<j)))
|
||||||
if (sniftab[id].current.data[i] & 1<<j)
|
if (sniftab[id].current.data[i] & 1<<j)
|
||||||
|
|
@ -590,6 +609,10 @@ void print_snifline(int id){
|
||||||
else
|
else
|
||||||
putchar('0');
|
putchar('0');
|
||||||
}
|
}
|
||||||
|
if (binary_gap)
|
||||||
|
putchar(' ');
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
for (i=0; i<sniftab[id].current.can_dlc; i++)
|
for (i=0; i<sniftab[id].current.can_dlc; i++)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue