Added frame tracing (hex format) via debug switch

This commit is contained in:
Stefan Wahren
2012-05-15 22:57:03 +02:00
parent 4178ffceb1
commit 90aec91bff
10 changed files with 137 additions and 21 deletions

View File

@ -17,6 +17,8 @@
#include <stdio.h>
#include <mbus/mbus.h>
static int debug = 0;
//------------------------------------------------------------------------------
// Scan for devices using secondary addressing.
//------------------------------------------------------------------------------
@ -32,30 +34,64 @@ main(int argc, char **argv)
device = argv[1];
addr_mask = strdup("FFFFFFFFFFFFFFFF");
}
else if (argc == 3 && strcmp(argv[1], "-d") == 0)
{
device = argv[2];
addr_mask = strdup("FFFFFFFFFFFFFFFF");
debug = 1;
}
else if (argc == 3)
{
device = argv[1];
addr_mask = strdup(argv[2]);
}
else if (argc == 4 && strcmp(argv[1], "-d") == 0)
{
device = argv[1];
addr_mask = strdup(argv[2]);
debug = 1;
}
else if (argc == 4 && strcmp(argv[1], "-b") == 0)
{
baudrate = atoi(argv[2]);
device = argv[3];
addr_mask = strdup("FFFFFFFFFFFFFFFF");
}
else if (argc == 5 && strcmp(argv[1], "-d") == 0)
{
baudrate = atoi(argv[3]);
device = argv[4];
addr_mask = strdup("FFFFFFFFFFFFFFFF");
debug = 1;
}
else if (argc == 5 && strcmp(argv[1], "-b") == 0)
{
baudrate = atoi(argv[2]);
device = argv[3];
addr_mask = strdup(argv[4]);
}
else if (argc == 6 && strcmp(argv[1], "-d") == 0)
{
baudrate = atoi(argv[3]);
device = argv[4];
addr_mask = strdup(argv[5]);
debug = 1;
}
else
{
fprintf(stderr, "usage: %s [-b BAUDRATE] device [address-mask]\n", argv[0]);
fprintf(stderr, "usage: %s [-d] [-b BAUDRATE] device [address-mask]\n", argv[0]);
fprintf(stderr, "\toptional flag -d for debug printout\n");
fprintf(stderr, "\toptional flag -b for selecting baudrate\n");
fprintf(stderr, "\trestrict the search by supplying an optional address mask on the form\n");
fprintf(stderr, "\t'FFFFFFFFFFFFFFFF' where F is a wildcard character\n");
return 0;
}
if (debug)
{
mbus_register_send_event(&mbus_dump_send_event);
mbus_register_recv_event(&mbus_dump_recv_event);
}
if (strlen(addr_mask) != 16)
{