XFW setting can just use FuriHal enum

This commit is contained in:
Willy-JL
2024-01-18 03:23:38 +00:00
parent 2bbe75ddd6
commit 44ef210245
4 changed files with 26 additions and 29 deletions

View File

@@ -1,8 +1,7 @@
#include <furi_hal.h>
#include <xtreme/xtreme.h>
#define UART_CH \
(xtreme_settings.uart_nmea_channel == UARTDefault ? FuriHalUartIdUSART1 : FuriHalUartIdLPUART1)
#define UART_CH (xtreme_settings.uart_nmea_channel)
#define RX_BUF_SIZE 1024

View File

@@ -33,28 +33,31 @@ static void xtreme_app_scene_protocols_gpio_nrf24_handle_changed(VariableItem* i
static void xtreme_app_scene_protocols_gpio_esp32_channel_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
xtreme_settings.uart_esp_channel =
variable_item_get_current_value_index(item) == 0 ? UARTDefault : UARTExtra;
xtreme_settings.uart_esp_channel = variable_item_get_current_value_index(item) == 0 ?
FuriHalSerialIdUsart :
FuriHalSerialIdLpuart;
variable_item_set_current_value_text(
item, xtreme_settings.uart_esp_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_esp_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
app->save_settings = true;
}
static void xtreme_app_scene_protocols_gpio_nmea_channel_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
xtreme_settings.uart_nmea_channel =
variable_item_get_current_value_index(item) == 0 ? UARTDefault : UARTExtra;
xtreme_settings.uart_nmea_channel = variable_item_get_current_value_index(item) == 0 ?
FuriHalSerialIdUsart :
FuriHalSerialIdLpuart;
variable_item_set_current_value_text(
item, xtreme_settings.uart_nmea_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_nmea_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
app->save_settings = true;
}
static void xtreme_app_scene_protocols_gpio_general_channel_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
xtreme_settings.uart_general_channel =
variable_item_get_current_value_index(item) == 0 ? UARTDefault : UARTExtra;
xtreme_settings.uart_general_channel = variable_item_get_current_value_index(item) == 0 ?
FuriHalSerialIdUsart :
FuriHalSerialIdLpuart;
variable_item_set_current_value_text(
item, xtreme_settings.uart_general_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_general_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
app->save_settings = true;
}
@@ -91,7 +94,7 @@ void xtreme_app_scene_protocols_gpio_on_enter(void* context) {
app);
variable_item_set_current_value_index(item, xtreme_settings.uart_esp_channel);
variable_item_set_current_value_text(
item, xtreme_settings.uart_esp_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_esp_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
item = variable_item_list_add(
var_item_list,
@@ -101,7 +104,7 @@ void xtreme_app_scene_protocols_gpio_on_enter(void* context) {
app);
variable_item_set_current_value_index(item, xtreme_settings.uart_nmea_channel);
variable_item_set_current_value_text(
item, xtreme_settings.uart_nmea_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_nmea_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
item = variable_item_list_add(
var_item_list,
@@ -111,7 +114,7 @@ void xtreme_app_scene_protocols_gpio_on_enter(void* context) {
app);
variable_item_set_current_value_index(item, xtreme_settings.uart_general_channel);
variable_item_set_current_value_text(
item, xtreme_settings.uart_general_channel == UARTDefault ? "13,14" : "15,16");
item, xtreme_settings.uart_general_channel == FuriHalSerialIdUsart ? "13,14" : "15,16");
variable_item_list_set_enter_callback(
var_item_list, xtreme_app_scene_protocols_gpio_var_item_list_callback, app);

View File

@@ -39,9 +39,9 @@ XtremeSettings xtreme_settings = {
.charge_cap = 100, // 100%
.spi_cc1101_handle = SpiDefault, // &furi_hal_spi_bus_handle_external
.spi_nrf24_handle = SpiDefault, // &furi_hal_spi_bus_handle_external
.uart_esp_channel = UARTDefault, // pin 13,14
.uart_nmea_channel = UARTDefault, // pin 13,14
.uart_general_channel = UARTDefault, // pin 13,14
.uart_esp_channel = FuriHalSerialIdUsart, // pin 13,14
.uart_nmea_channel = FuriHalSerialIdUsart, // pin 13,14
.uart_general_channel = FuriHalSerialIdUsart, // pin 13,14
};
void XTREME_SETTINGS_LOAD() {
@@ -187,15 +187,15 @@ void XTREME_SETTINGS_LOAD() {
}
flipper_format_rewind(file);
if(flipper_format_read_uint32(file, "uart_esp_channel", &u, 1)) {
x->uart_esp_channel = CLAMP(u, UARTCount - 1U, 0U);
x->uart_esp_channel = CLAMP(u, FuriHalSerialIdMax - 1U, 0U);
}
flipper_format_rewind(file);
if(flipper_format_read_uint32(file, "uart_nmea_channel", &u, 1)) {
x->uart_nmea_channel = CLAMP(u, UARTCount - 1U, 0U);
x->uart_nmea_channel = CLAMP(u, FuriHalSerialIdMax - 1U, 0U);
}
flipper_format_rewind(file);
if(flipper_format_read_uint32(file, "uart_general_channel", &u, 1)) {
x->uart_general_channel = CLAMP(u, UARTCount - 1U, 0U);
x->uart_general_channel = CLAMP(u, FuriHalSerialIdMax - 1U, 0U);
}
}
flipper_format_free(file);

View File

@@ -2,6 +2,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <furi_hal_serial_types.h>
#ifdef __cplusplus
extern "C" {
@@ -44,12 +45,6 @@ typedef enum {
SpiCount,
} SpiHandle;
typedef enum {
UARTDefault, // pin 13,14
UARTExtra, // pin 15,16
UARTCount,
} UARTChannel;
typedef struct {
char asset_pack[XTREME_ASSETS_PACK_NAME_LEN];
uint32_t anim_speed;
@@ -84,9 +79,9 @@ typedef struct {
uint32_t charge_cap;
SpiHandle spi_cc1101_handle;
SpiHandle spi_nrf24_handle;
UARTChannel uart_esp_channel;
UARTChannel uart_nmea_channel;
UARTChannel uart_general_channel;
FuriHalSerialId uart_esp_channel;
FuriHalSerialId uart_nmea_channel;
FuriHalSerialId uart_general_channel;
} XtremeSettings;
typedef enum {