rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
log_viewer_screen.h
Go to the documentation of this file.
1
32
33#pragma once
34
35#include <stddef.h>
36#include <stdint.h>
37
38#include "card_state.h"
39#include "log_csv.h"
40#include "log_text.h"
41#include "ui_screen.h"
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
47#define LOG_VIEWER_MAX_FILES 48
48#define LOG_VIEWER_NAME_MAX 64
49
50/*
51 * The largest file OPEN reads: 2GiB less 1 byte. The panel reads a file
52 * through stdio, whose fseek() and ftell() take a long of 32 bits. A
53 * larger file, which an exFAT (extended File Allocation Table) card or a
54 * FAT32 one up to 4GiB less 1 byte holds, is listed with its size and
55 * refused at OPEN with TX_LOG_TOO_BIG.
56 */
57#define LOG_VIEWER_OPEN_MAX 0x7FFFFFFFull
58
59typedef struct {
60 char name[LOG_VIEWER_NAME_MAX];
61 uint64_t size; /* bytes; 64-bit, as exFAT's */
66 int64_t mtime;
67 bool is_dir;
69
72#define LOG_VIEWER_NAME_CELLS 60
73
75typedef struct {
77 char name[LOG_VIEWER_NAME_MAX + 2];
80 char date[20];
82 char size[24];
84
93
113
115typedef enum {
119 LOG_TAB_COUNT
121
127const char *log_viewer_tab_dir(log_viewer_tab_t tab);
128
129typedef struct {
132 char key[LOG_VIEWER_NAME_MAX];
133 int ahead;
134 int held;
136
137typedef struct {
150 int (*list)(log_viewer_file_t *out, int max_entries,
151 log_viewer_page_t *page, void *ctx);
153 bool (*open)(const char *name, log_source_t *src, void *ctx);
155 void (*close)(void *ctx);
161 const char *(*volume)(void *ctx);
168 bool (*remove)(const char *name, void *ctx);
175 void (*folder)(const char *dir, void *ctx);
182 unsigned (*written)(log_viewer_tab_t *tab, void *ctx);
188 card_state_t (*card)(void *ctx);
194 unsigned (*mounts)(void *ctx);
195 void *ctx;
197
198typedef enum {
199 LOG_VIEW_BROWSE = 0,
200 LOG_VIEW_IMPORT,
201 LOG_VIEW_PLOT,
204
205void log_viewer_set_io(const log_viewer_io_t *io);
206
209
212
218
234
247 unsigned mount);
248
250const char *log_viewer_open_name(void);
251
254
256const log_data_t *log_viewer_data(void);
257
262const log_text_t *log_viewer_text(void);
263
268int log_viewer_text_first(void);
269
275void log_viewer_window(int *first, int *count);
276
282void log_viewer_browse_title(char *out, size_t n);
283
285gfx_color_t log_viewer_series_color(int k);
286
288int log_viewer_cursor(void);
289
299void log_viewer_size_text(char *out, size_t n, uint64_t bytes);
300
306const char *log_viewer_message(void);
307
318#define LOG_RANGE_CELLS 17u
319
320void log_viewer_range_text(char *out, size_t n, double lo, double hi,
321 const char *unit);
322
329void log_viewer_refresh(void);
330
331const ui_screen_t *log_viewer_screen(void);
332void log_viewer_invalidate(void);
333
334#ifdef __cplusplus
335}
336#endif
What the panel's SD (Secure Digital) card slot holds, as the last mount found it: no card,...
card_state_t
Mount state of the SD card.
Definition card_state.h:17
#define k
Short name for kst_panel_k inside the overlay's seven files.
Definition kst_panel_int.h:238
CSV (comma-separated values) and TSV (tab-separated values) import for a board that cannot hold the f...
A text file as LOGS shows it: read whole, broken into rows.
void log_viewer_row_text(const log_viewer_file_t *f, log_viewer_row_t *out)
The texts of the list's row for f: its name, cut as FILES cuts a name; its time as FILES INFO writes ...
Definition log_viewer_draw.c:42
log_viewer_view_t log_viewer_view(void)
Definition log_viewer_screen.c:66
const log_text_t * log_viewer_text(void)
The report the TEXT view shows.
Definition log_viewer_screen.c:86
void log_viewer_window(int *first, int *count)
Definition log_viewer_screen.c:96
log_viewer_view_t
Definition log_viewer_screen.h:198
@ LOG_VIEW_TEXT
Definition log_viewer_screen.h:202
const char * log_viewer_message(void)
The footer message: the last result or refusal, worded in the language showing; "" for none.
Definition log_viewer_screen.c:147
const char * log_viewer_open_name(void)
Definition log_viewer_screen.c:71
log_viewer_tab_t log_viewer_tab(void)
Definition log_viewer_screen.c:185
void log_viewer_refresh(void)
Definition log_viewer_screen.c:368
log_viewer_show_t
What log_viewer_show() found.
Definition log_viewer_screen.h:220
@ LOG_SHOW_NOT_LISTED
Definition log_viewer_screen.h:226
@ LOG_SHOW_OTHER_CARD
Definition log_viewer_screen.h:230
@ LOG_SHOW_OPEN
Definition log_viewer_screen.h:221
log_viewer_tab_t
Definition log_viewer_screen.h:115
@ LOG_TAB_USER
Definition log_viewer_screen.h:116
@ LOG_TAB_ROOT
Definition log_viewer_screen.h:118
@ LOG_TAB_BENCH
Definition log_viewer_screen.h:117
void log_viewer_browse_title(char *out, size_t n)
Definition log_viewer_screen.c:405
void log_viewer_set_tab(log_viewer_tab_t tab)
Definition log_viewer_screen.c:560
log_viewer_show_t log_viewer_show(log_viewer_tab_t tab, const char *name, unsigned mount)
Show tab with file name open, as a tap on the tab, a tap on the file's row and OPEN do: FILES' OPEN o...
Definition log_viewer_screen.c:571
const log_data_t * log_viewer_data(void)
Definition log_viewer_screen.c:81
gfx_color_t log_viewer_series_color(int k)
Definition log_viewer_screen.c:107
const log_analysis_t * log_viewer_analysis(void)
Definition log_viewer_screen.c:76
log_page_dir_t
Definition log_viewer_screen.h:104
@ LOG_PAGE_AFTER
Definition log_viewer_screen.h:108
@ LOG_PAGE_BEFORE
Definition log_viewer_screen.h:111
@ LOG_PAGE_FROM
Definition log_viewer_screen.h:106
void log_viewer_size_text(char *out, size_t n, uint64_t bytes)
A file's size as the list and the DELETE question write it into out (n bytes): "300B",...
Definition log_viewer_draw.c:29
const char * log_viewer_tab_dir(log_viewer_tab_t tab)
Definition log_viewer_screen.c:169
int log_viewer_cursor(void)
Definition log_viewer_screen.c:142
int log_viewer_text_first(void)
The TEXT view's first row on screen.
Definition log_viewer_screen.c:91
Result of the analysis of a whole file.
Definition log_csv.h:209
Materialised data of the selected columns.
Definition log_csv.h:315
A byte source that can be read from the top more than once.
Definition log_csv.h:61
One file's text and its rows. The fields are log_text.c's.
Definition log_text.h:51
Definition log_viewer_screen.h:59
int64_t mtime
The time FAT stamped, in seconds since 1970 as mktime() reads FAT's local date and time (the panel: s...
Definition log_viewer_screen.h:66
Definition log_viewer_screen.h:137
int(*) list(log_viewer_file_t *out, int max_entries, log_viewer_page_t *page, void *ctx)
Definition log_viewer_screen.h:150
unsigned(*) mounts(void *ctx)
Definition log_viewer_screen.h:194
unsigned(*) written(log_viewer_tab_t *tab, void *ctx)
Definition log_viewer_screen.h:182
bool(*) open(const char *name, log_source_t *src, void *ctx)
Definition log_viewer_screen.h:153
void(*) close(void *ctx)
Definition log_viewer_screen.h:155
card_state_t(*) card(void *ctx)
Definition log_viewer_screen.h:188
void(*) folder(const char *dir, void *ctx)
Definition log_viewer_screen.h:175
bool(*) remove(const char *name, void *ctx)
Definition log_viewer_screen.h:168
Definition log_viewer_screen.h:129
int held
Definition log_viewer_screen.h:134
log_page_dir_t dir
Definition log_viewer_screen.h:130
int ahead
Definition log_viewer_screen.h:133
char key[LOG_VIEWER_NAME_MAX]
Definition log_viewer_screen.h:132
The texts of one row of the file list, as the list draws them.
Definition log_viewer_screen.h:75
char date[20]
"2026-10-26 09:41" in the zone in force, or "" for a stamp wall_stamp_known() refuses.
Definition log_viewer_screen.h:80
char size[24]
The size (log_viewer_size_text()), or LOG_DIR for a folder.
Definition log_viewer_screen.h:82
char name[LOG_VIEWER_NAME_MAX+2]
The name, cut to LOG_VIEWER_NAME_CELLS cells.
Definition log_viewer_screen.h:77
Definition ui_screen.h:68
Screen router.