/* * canbus_config.h * NVS-backed configuration for CAN bus module. * * Stores: bitrate, oscillator freq, software filters, discovered ECU IDs. */ #pragma once #include "esp_err.h" #include #include #define CAN_CFG_MAX_SW_FILTERS 16 #define CAN_CFG_MAX_ECUS 16 /* Init NVS namespace (call once at module registration) */ void can_config_init(void); /* Bitrate (persistent) */ int can_config_get_bitrate(void); esp_err_t can_config_set_bitrate(int bitrate); /* Oscillator frequency in MHz (persistent) */ uint8_t can_config_get_osc_mhz(void); esp_err_t can_config_set_osc_mhz(uint8_t mhz); /* Software filters — app-level ID whitelist (beyond MCP2515 6 HW filters) */ int can_config_get_filters(uint32_t *ids_out, int max_ids); esp_err_t can_config_add_filter(uint32_t id); esp_err_t can_config_del_filter(uint32_t id); esp_err_t can_config_clear_filters(void); /* Discovered ECU IDs (for UDS, persistent across reboots) */ int can_config_get_ecus(uint32_t *ids_out, int max_ids); esp_err_t can_config_add_ecu(uint32_t id); esp_err_t can_config_clear_ecus(void); /* Reset all config to defaults */ esp_err_t can_config_reset_all(void); /* List all config as formatted string (for status response) */ int can_config_list(char *buf, size_t buf_len);