mirror of
https://github.com/ClusterM/fdskey.git
synced 2025-12-18 01:16:09 +01:00
65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
#ifndef INC_SERVICEMENU_H_
|
|
#define INC_SERVICEMENU_H_
|
|
|
|
#include <stdint.h>
|
|
#include "main.h"
|
|
#include "oled.h"
|
|
|
|
#define SERVICE_SETTINGS_SIGNATURE "SFDSKEY"
|
|
|
|
#define SERVICE_SETTINGS_FLASH_OFFSET (0x08080000 - FLASH_PAGE_SIZE * 3)
|
|
#define HARDWARE_VERSION_FLASH_OFFSET (0x08080000 - FLASH_PAGE_SIZE * 4)
|
|
|
|
#define SERVICE_SETTINGS_ITEM_COUNT 20
|
|
|
|
#define DISK_LABEL "FDSKey"
|
|
|
|
typedef enum
|
|
{
|
|
SERVICE_SETTING_OLED_CONTROLLER = 0,
|
|
SERVICE_SETTING_VERSION,
|
|
SERVICE_SETTING_COMMIT,
|
|
SERVICE_SETTING_BUILD_DATE,
|
|
SERVICE_SETTING_BUILD_TIME,
|
|
SERVICE_SETTING_BL_COMMIT,
|
|
SERVICE_SETTING_SD_CAPACITY,
|
|
SERVICE_SETTING_FAT_SIZE,
|
|
SERVICE_SETTING_FAT_FREE,
|
|
SERVICE_SETTING_FILE_SYSTEM,
|
|
SERVICE_SETTING_SD_SPI_SPEED,
|
|
SERVICE_SETTING_SD_MANUFACTURER_ID,
|
|
SERVICE_SETTING_SD_OEM_ID,
|
|
SERVICE_SETTING_SD_PROD_NAME,
|
|
SERVICE_SETTING_SD_PROD_REV,
|
|
SERVICE_SETTING_SD_PROD_SN,
|
|
SERVICE_SETTING_SD_PROD_MANUFACT_YEAR,
|
|
SERVICE_SETTING_SD_PROD_MANUFACT_MONTH,
|
|
SERVICE_SETTING_SD_FORMAT,
|
|
SERVICE_SETTING_BL_UPDATE
|
|
} SERVICE_SETTING_ID;
|
|
|
|
typedef struct __attribute__((packed))
|
|
{
|
|
char sig[sizeof(SERVICE_SETTINGS_SIGNATURE) + 1];
|
|
OLED_CONTROLLER oled_controller;
|
|
} FDSKEY_SERVICE_SETTINGS;
|
|
|
|
extern FDSKEY_SERVICE_SETTINGS fdskey_service_settings;
|
|
|
|
typedef struct __attribute__((packed))
|
|
{
|
|
uint16_t major;
|
|
uint8_t minor;
|
|
char suffix;
|
|
char bootloader_commit[28];
|
|
} FDSKEY_HARDWARE_VERSION;
|
|
|
|
extern FDSKEY_HARDWARE_VERSION fdskey_hw_version;
|
|
|
|
void service_settings_load();
|
|
HAL_StatusTypeDef service_settings_save();
|
|
void service_menu();
|
|
uint8_t sd_format();
|
|
|
|
#endif /* INC_SERVICEMENU_H_ */
|