garmin: turn all the remaining unrecognized fields into DEBUG messages
There aren't that many relevant ones left, and I have reached the point where I think the remaining missing fields just aren't that important any more. You can always get them by saving the libdivecomputer log-file and see the debug messages that way. Now I'll need to turn the parsing skeleton into actually generating the actual libdivecomputer data. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6d470d8430
commit
00a90e2822
@ -176,7 +176,7 @@ struct field_desc {
|
||||
fprintf(stderr, "%s: %s should be %s\n", #name, #type, base_type_info[base_type].type_name); \
|
||||
type val = *(type *)p; \
|
||||
if (val == type##_INVAL) return 0; \
|
||||
DEBUG(g->base.context, "%s (%s): %lld\n", #name, #type, (long long)val); \
|
||||
DEBUG(g->base.context, "%s (%s): %lld", #name, #type, (long long)val); \
|
||||
return parse_##name(g, *(type *)p); \
|
||||
} \
|
||||
static const struct field_desc name##_field_##type = { #name, parse_##name##_##type }; \
|
||||
@ -547,35 +547,8 @@ static int traverse_regular(struct garmin_parser_t *garmin,
|
||||
if (field_desc) {
|
||||
field_desc->parse(garmin, base_type, data);
|
||||
} else {
|
||||
#if 1
|
||||
const unsigned long long inval = base_type_info[base_type].type_inval;
|
||||
|
||||
switch (base_type) {
|
||||
case 7:
|
||||
if (!*data)
|
||||
break;
|
||||
fprintf(stderr, "%s/%d: %s\n", msg_name, field_nr, data);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "%s/%d:", msg_name, field_nr);
|
||||
for (int i = 0; i < len; i += base_size) {
|
||||
unsigned long long val;
|
||||
const char *fmt;
|
||||
const unsigned char *ptr = data + i;
|
||||
switch (base_size) {
|
||||
default: val = *ptr; fmt = val == inval ? " --" : " %02llx"; break;
|
||||
case 2: val = *(unsigned short *)ptr; fmt = val == inval ? " ----" : " %04llx"; break;
|
||||
case 4: val = *(unsigned int *)ptr; fmt = val == inval ? " --------" : " %08llx"; break;
|
||||
case 8: val = *(unsigned long long *)ptr; fmt = val == inval ? " ----------------" : " %016llx"; break;
|
||||
}
|
||||
fprintf(stderr, fmt, val);
|
||||
}
|
||||
fprintf(stderr, " %s\n", base_type_info[base_type].type_name);
|
||||
}
|
||||
#else
|
||||
DEBUG(garmin->base.context, "Unknown field %s:%02x %02x %d/%d\n", msg_name, field_nr, field[2], len, base_size);
|
||||
DEBUG(garmin->base.context, "%s/%d %s", msg_name, field_nr, base_type_info[base_type].type_name);
|
||||
HEXDUMP(garmin->base.context, DC_LOGLEVEL_DEBUG, "next", data, len);
|
||||
#endif
|
||||
}
|
||||
|
||||
data += len;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user