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
Oliver Hartkopp 2007-07-16 08:29:28 +00:00
parent 477c00752b
commit 01a8c5d32b
1 changed files with 26 additions and 3 deletions

View File

@ -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++)