You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
805 B
36 lines
805 B
#pragma once |
|
|
|
#include <AP_Logger/AP_Logger.h> |
|
|
|
#define LOGREADER_MAX_FORMATS 255 // must be >= highest MESSAGE |
|
|
|
class AP_LoggerFileReader |
|
{ |
|
public: |
|
|
|
AP_LoggerFileReader(); |
|
~AP_LoggerFileReader(); |
|
|
|
bool open_log(const char *logfile); |
|
bool update(); |
|
|
|
virtual bool handle_log_format_msg(const struct log_Format &f) = 0; |
|
virtual bool handle_msg(const struct log_Format &f, uint8_t *msg) = 0; |
|
|
|
void format_type(uint16_t type, char dest[5]); |
|
void get_packet_counts(uint64_t dest[]); |
|
|
|
protected: |
|
int fd = -1; |
|
|
|
struct log_Format formats[LOGREADER_MAX_FORMATS] {}; |
|
|
|
private: |
|
ssize_t read_input(void *buf, size_t count); |
|
|
|
uint64_t bytes_read = 0; |
|
uint32_t message_count = 0; |
|
uint64_t start_micros; |
|
|
|
uint64_t packet_counts[LOGREADER_MAX_FORMATS] = {}; |
|
};
|
|
|