bool LogReader::handle_msg(const struct log_Format &f, uint8_t *msg) { char name[5]; memset(name, '\0', 5); memcpy(name, f.name, 4); if (save_message_type(name)) { if (mapped_msgid[msg[2]] == 0) { printf("Unknown msgid %u\n", (unsigned)msg[2]); exit(1); } msg[2] = mapped_msgid[msg[2]]; if (!in_list(name, nottypes)) { dataflash.WriteBlock(msg, f.length); } // a MsgHandler would probably have found a timestamp and // caled stop_clock. This runs IO, clearing dataflash's // buffer. hal.scheduler->stop_clock(last_timestamp_usec); } LR_MsgHandler *p = msgparser[f.type]; if (p == NULL) { return true; } p->process_message(msg); maybe_install_vehicle_specific_parsers(); return true; }
bool LogReader::handle_msg(const struct log_Format &f, uint8_t *msg) { char name[5]; memset(name, '\0', 5); memcpy(name, f.name, 4); if (!in_list(name, generated_names)) { dataflash.WriteBlock(msg, f.length); // a MsgHandler would probably have found a timestamp and // caled stop_clock. This runs IO, clearing dataflash's // buffer. hal.scheduler->stop_clock(last_timestamp_usec); } LR_MsgHandler *p = msgparser[f.type]; if (p == NULL) { return true; } p->process_message(msg); maybe_install_vehicle_specific_parsers(); return true; }