Fixed setting in canbus

This commit is contained in:
Eduard Iten 2025-06-13 10:26:57 +02:00
parent ade514cbf3
commit 1a85b40444
1 changed files with 23 additions and 3 deletions

View File

@ -13,9 +13,27 @@ LOG_MODULE_REGISTER(canbus, CONFIG_LOG_CAN_LEVEL);
static int canbus_set(const char *key, size_t len, settings_read_cb read_cb, void *cb_arg) static int canbus_set(const char *key, size_t len, settings_read_cb read_cb, void *cb_arg)
{ {
const char *next;
int rc;
// Handle setting values for CAN bus configuration // Handle setting values for CAN bus configuration
LOG_DBG("Setting CAN bus configuration: key=%s, len=%zu", key, len); LOG_DBG("Setting CAN bus configuration: key=%s, len=%zu", key, len);
// Implement the logic to set the CAN bus configuration based on the key and value if (settings_name_steq(key, "node_id", &next) && next != NULL)
{
if (len != sizeof(node_id))
{
LOG_ERR("Invalid length for node_id setting: %zu", len);
return -EINVAL; // Invalid argument
}
int rc = read_cb(cb_arg, &node_id, sizeof(node_id));
if (rc < 0)
{
LOG_ERR("Failed to read node_id setting: %d", rc);
return rc; // Read error
}
LOG_DBG("Set CAN bus node ID to: %d", node_id);
}
return 0; // Return 0 on success return 0; // Return 0 on success
} }
@ -47,7 +65,9 @@ int canbus_init(void)
LOG_ERR("Failed to save default CAN bus node id: %d", rc); LOG_ERR("Failed to save default CAN bus node id: %d", rc);
return rc; return rc;
} }
} else { }
else
{
rc = settings_load_one("canbus/node_id", &node_id, sizeof(node_id)); rc = settings_load_one("canbus/node_id", &node_id, sizeof(node_id));
if (rc < 0) if (rc < 0)
{ {