/**
   保存设置参数
 * **/
#include <EEPROM.h>
#include "keyboard.h"
#include "save.h"
/*
   name: save_config

   传参：

   返回值：

   功能：
    将更改后的 Keyboard_Config 数据存入flash
   内容：
***/
void save_config()
{
  EEPROM.begin(1024);
  uint8_t *p = (uint8_t *)(&Keyboard_Config);
  for (int i = 0; i < sizeof(Keyboard_Config); i++)
  {
    EEPROM.write(i, *(p + i));
  }
  EEPROM.end();
}

/**
   name: load_config

   传参：

   返回值：

   功能：
    将flash保存的数据写入 Keyboard_Config 结构体
   内容：

***/
void load_config()
{
  EEPROM.begin(1024);
  uint8_t *p = (uint8_t *)(&Keyboard_Config);
  for (int i = 0; i < sizeof(Keyboard_Config); i++)
  {
    *(p + i) = EEPROM.read(i);
  }
  EEPROM.end();

  if (Keyboard_Config.Version != KEYBOARD_VERSION)
  {
    Keyboard_Config.K_mode = DEFAULT_KEYBOARD_MODE;
    Keyboard_Config.L_color = DEFAULT_LIGHT_COLOR;
    Keyboard_Config.L_brgightness = DEFAULT_LIGHT_BRGIGHTNESS;
    Keyboard_Config.L_mode = DEFAULT_LIGHT_MODE;
    Keyboard_Config.Bluetooth_channel = DEFAULT_BLUETOOTH_CHANNEL;
    Keyboard_Config.Switch_system = DEFAULT_KEYBOARD_SYSTEM;
    Keyboard_Config.L_speed = DEFAULT_KEYBOARD_SPEED;
    Keyboard_Config.Version = KEYBOARD_VERSION;
    save_config();
  }
}
