#include "handlers.h" #include "pico/unique_id.h" #include "pico/bootrom.h" #include "dispatch.h" #include "net.h" #include "debug_log.h" ResponsePICOBOOT handle_picoboot(const RequestPICOBOOT&) { dispatch_schedule_ms(100, []{ reset_usb_boot(0, 1); }); return {}; } ResponseInfo handle_info(const RequestInfo&) { ResponseInfo resp; pico_unique_board_id_t uid; pico_get_unique_board_id(&uid); std::copy(uid.id, uid.id + 8, resp.board_id.begin()); auto& ns = net_get_state(); resp.mac = ns.mac; resp.ip = ns.ip; resp.firmware_name = firmware_name; return resp; } ResponseLog handle_log(const RequestLog&) { ResponseLog resp; for (auto& e : dlog_drain()) resp.entries.push_back(LogEntry{e.timestamp_us, std::move(e.message)}); return resp; }