expansion settings read and store in ram

by @Willy-JL
This commit is contained in:
MX
2024-01-30 23:26:08 +03:00
parent a8651a2861
commit c31052848a
5 changed files with 22 additions and 14 deletions

View File

@@ -1,4 +1,5 @@
#include "expansion.h"
#include "expansion_i.h"
#include <furi_hal_power.h>
#include <furi_hal_serial.h>
@@ -53,6 +54,8 @@ struct Expansion {
FuriHalSerialId serial_id;
FuriHalSerialHandle* serial_handle;
RpcSession* rpc_session;
ExpansionSettings settings;
};
static void expansion_detect_callback(void* context);
@@ -394,16 +397,15 @@ void expansion_on_system_start(void* arg) {
Expansion* instance = expansion_alloc();
furi_record_create(RECORD_EXPANSION, instance);
expansion_settings_load(&instance->settings);
expansion_enable(instance);
}
// Public API functions
void expansion_enable(Expansion* instance) {
ExpansionSettings settings = {};
expansion_settings_load(&settings);
if(settings.uart_index < FuriHalSerialIdMax) {
expansion_set_listen_serial(instance, settings.uart_index);
if(instance->settings.uart_index < FuriHalSerialIdMax) {
expansion_set_listen_serial(instance, instance->settings.uart_index);
}
}
@@ -438,3 +440,7 @@ void expansion_set_listen_serial(Expansion* instance, FuriHalSerialId serial_id)
FURI_LOG_D(TAG, "Detection enabled");
}
ExpansionSettings* expansion_get_settings(Expansion* instance) {
return &instance->settings;
}

View File

@@ -0,0 +1,6 @@
#pragma once
#include "expansion_settings.h"
#include "expansion.h"
ExpansionSettings* expansion_get_settings(Expansion* instance);