hci_dump: print timestamp for embedded targets, too. Parse timestamps in packet logs

This commit is contained in:
Matthias Ringwald 2016-10-03 10:58:38 +02:00
parent 8a1144706a
commit ad6274a743
2 changed files with 34 additions and 7 deletions

View File

@ -150,6 +150,20 @@ static void printf_packet(uint8_t packet_type, uint8_t in, uint8_t * packet, uin
printf_hexdump(packet, len);
}
#ifndef HAVE_POSIX_FILE_IO
static void printf_timestamp(void){
uint32_t time_ms = btstack_run_loop_get_time_ms();
int seconds = time_ms / 1000;
int minutes = seconds / 60;
int hours = minutes / 60;
int p_ms = time_ms - (seconds * 1000);
int p_seconds = seconds - (minutes * 60);
int p_minutes = minutes - (hours * 60);
printf("[%02u:%02u:%02u.%03u] ", hours, p_minutes, p_seconds, p_ms);
}
#endif
void hci_dump_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len) {
if (dump_file < 0) return; // not activated yet
@ -239,10 +253,7 @@ void hci_dump_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t
}
#else
// #ifdef HAVE_EMBEDDED_TICK
// uint32_t time_ms = btstack_run_loop_embedded_get_time_ms();
// printf("[%06u] ", time_ms);
// #endif
printf_timestamp();
printf_packet(packet_type, in, packet, len);
#endif
@ -262,6 +273,7 @@ void hci_dump_log(int log_level, const char * format, ...){
int len = vsnprintf(log_message_buffer, sizeof(log_message_buffer), format, argptr);
hci_dump_packet(LOG_MESSAGE_PACKET, 0, (uint8_t*) log_message_buffer, len);
#else
printf_timestamp();
printf("LOG -- ");
vprintf(format, argptr);
printf("\n");

View File

@ -17,8 +17,10 @@ import sys
import time
import os
default_date="2001-01-01"
default_hours = 12
packet_counter = 0
last_time = None
last_time = default_date + " " + str(default_hours) + ":00:00.000"
def chop(line, prefix):
if line.startswith(prefix):
@ -42,17 +44,30 @@ def generateTimestamp(t):
t = last_time
if t:
last_time = t
# check for date
parts = t.split(' ')
have_date = True
if len(parts) == 1:
# only time, prepend fixed date
have_date = False
t = "2000-01-01 " + t;
# handle ms
try:
(t1, t2) = t.split('.')
if t1 and t2:
t_obj = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
t_obj = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
tv_sec = int(time.mktime(t_obj))
if not have_date:
# start at 12:00
tv_sec += 12*60*60
tv_usec = int(t2) * 1000
return (tv_sec, tv_usec)
except ValueError:
# print 'Cannot parse time', t
pass
packet_counter += 1
return (packet_counter, 0)
@ -91,7 +106,7 @@ with open (outfile, 'wb') as fout:
packet_counter = 0
for line in fin:
timestamp = None
parts = parts = re.match('\[(.*)\] (.*)', line)
parts = re.match('\[(.*)\] (.*)', line)
if parts and len(parts.groups()) == 2:
(timestamp, line) = parts.groups()
rest = chop(line,'CMD => ')