#include #include #include #include "config.h" #include "baud.h" #include "trace.h" #include "data.h" #include "event.h" #include "plotter_status.h" struct log_plotter_status plotter_state; int main(int argc, char *argv[]) { struct plotter_config cfg; int fd, baud, ret = 0; bzero(&cfg, sizeof(cfg)); if (read_args(argc, argv, &cfg)) return 1; if (cfg.config_file_path) populate_config_data_from_file(cfg.config_file_path, &cfg); baud = cfg.baudrate; fd = open_at_baud(cfg.device_path, &baud); if (fd < 0) return 1; if (baud != cfg.baudrate) { pr_err("Failed to set baudrate to %d, only got %d\n", cfg.baudrate, baud); ret = 1; goto out; } init_data_parser(fd, &cfg); while (plotter_state.system_status != SYSTEM_STATUS_NO_USB) { poll_events(10000); if (plotter_state.old_system_status != plotter_state.system_status) { pr_debug("Status changing from %s to %s", state_to_str(plotter_state.old_system_status), state_to_str(plotter_state.system_status)); plotter_state.old_system_status = plotter_state.system_status; } } out: close(fd); return ret; }