Browse Source

AP_Filesystem: publish can info over FS Sys iface

zr-v5.1
Siddharth Purohit 5 years ago committed by Andrew Tridgell
parent
commit
20edecc340
  1. 24
      libraries/AP_Filesystem/AP_Filesystem_Sys.cpp

24
libraries/AP_Filesystem/AP_Filesystem_Sys.cpp

@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
#include "AP_Filesystem.h"
#include "AP_Filesystem_Sys.h"
#include <AP_Math/AP_Math.h>
#include <AP_CANManager/AP_CANManager.h>
extern const AP_HAL::HAL& hal;
@ -52,6 +53,29 @@ int AP_Filesystem_Sys::open(const char *fname, int flags) @@ -52,6 +53,29 @@ int AP_Filesystem_Sys::open(const char *fname, int flags)
r.data->length = hal.util->thread_info(r.data->data, max_size);
}
}
#if HAL_MAX_CAN_PROTOCOL_DRIVERS
int8_t can_stats_num = -1;
if (strcmp(fname, "can_log.txt") == 0) {
const uint32_t max_size = 1024;
r.data->data = (char *)malloc(max_size);
if (r.data->data) {
r.data->length = AP::can().log_retrieve(r.data->data, max_size);
}
} else if (strcmp(fname, "can0_stats.txt") == 0) {
can_stats_num = 0;
} else if (strcmp(fname, "can1_stats.txt") == 0) {
can_stats_num = 1;
}
if (can_stats_num != -1 && can_stats_num < HAL_NUM_CAN_IFACES) {
if (hal.can[can_stats_num] != nullptr) {
const uint32_t max_size = 1024;
r.data->data = (char *)malloc(max_size);
if (r.data->data) {
r.data->length = hal.can[can_stats_num]->get_stats(r.data->data, max_size);
}
}
}
#endif
if (r.data->data == nullptr) {
delete r.data;
errno = ENOENT;

Loading…
Cancel
Save