eeprom.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. struct strConfig {
  2. String ssid;
  3. String password;
  4. byte IP[4];
  5. byte Netmask[4];
  6. byte Gateway[4];
  7. boolean dhcp;
  8. String ntpServerName;
  9. long Update_Time_Via_NTP_Every;
  10. long timezone;
  11. boolean daylight;
  12. String DeviceName;
  13. boolean AutoTurnOff;
  14. boolean AutoTurnOn;
  15. byte TurnOffHour;
  16. byte TurnOffMinute;
  17. byte TurnOnHour;
  18. byte TurnOnMinute;
  19. byte LED_R;
  20. byte LED_G;
  21. byte LED_B;
  22. } config;
  23. /*
  24. **
  25. ** CONFIGURATION HANDLING
  26. **
  27. */
  28. void WriteConfig()
  29. {
  30. Serial.println("Writing Config");
  31. EEPROM.write(0,'C');
  32. EEPROM.write(1,'F');
  33. EEPROM.write(2,'G');
  34. EEPROM.write(16,config.dhcp);
  35. EEPROM.write(17,config.daylight);
  36. EEPROMWritelong(18,config.Update_Time_Via_NTP_Every); // 4 Byte
  37. EEPROMWritelong(22,config.timezone); // 4 Byte
  38. EEPROM.write(26,config.LED_R);
  39. EEPROM.write(27,config.LED_G);
  40. EEPROM.write(28,config.LED_B);
  41. EEPROM.write(32,config.IP[0]);
  42. EEPROM.write(33,config.IP[1]);
  43. EEPROM.write(34,config.IP[2]);
  44. EEPROM.write(35,config.IP[3]);
  45. EEPROM.write(36,config.Netmask[0]);
  46. EEPROM.write(37,config.Netmask[1]);
  47. EEPROM.write(38,config.Netmask[2]);
  48. EEPROM.write(39,config.Netmask[3]);
  49. EEPROM.write(40,config.Gateway[0]);
  50. EEPROM.write(41,config.Gateway[1]);
  51. EEPROM.write(42,config.Gateway[2]);
  52. EEPROM.write(43,config.Gateway[3]);
  53. WriteStringToEEPROM(64,config.ssid);
  54. WriteStringToEEPROM(96,config.password);
  55. WriteStringToEEPROM(128,config.ntpServerName);
  56. EEPROM.write(300,config.AutoTurnOn);
  57. EEPROM.write(301,config.AutoTurnOff);
  58. EEPROM.write(302,config.TurnOnHour);
  59. EEPROM.write(303,config.TurnOnMinute);
  60. EEPROM.write(304,config.TurnOffHour);
  61. EEPROM.write(305,config.TurnOffMinute);
  62. WriteStringToEEPROM(306,config.DeviceName);
  63. EEPROM.commit();
  64. }
  65. boolean ReadConfig()
  66. {
  67. Serial.println("Reading Configuration");
  68. if (EEPROM.read(0) == 'C' && EEPROM.read(1) == 'F' && EEPROM.read(2) == 'G' )
  69. {
  70. Serial.println("Configurarion Found!");
  71. config.dhcp = EEPROM.read(16);
  72. config.daylight = EEPROM.read(17);
  73. config.Update_Time_Via_NTP_Every = EEPROMReadlong(18); // 4 Byte
  74. config.timezone = EEPROMReadlong(22); // 4 Byte
  75. config.LED_R = EEPROM.read(26);
  76. config.LED_G = EEPROM.read(27);
  77. config.LED_B = EEPROM.read(28);
  78. config.IP[0] = EEPROM.read(32);
  79. config.IP[1] = EEPROM.read(33);
  80. config.IP[2] = EEPROM.read(34);
  81. config.IP[3] = EEPROM.read(35);
  82. config.Netmask[0] = EEPROM.read(36);
  83. config.Netmask[1] = EEPROM.read(37);
  84. config.Netmask[2] = EEPROM.read(38);
  85. config.Netmask[3] = EEPROM.read(39);
  86. config.Gateway[0] = EEPROM.read(40);
  87. config.Gateway[1] = EEPROM.read(41);
  88. config.Gateway[2] = EEPROM.read(42);
  89. config.Gateway[3] = EEPROM.read(43);
  90. config.ssid = ReadStringFromEEPROM(64);
  91. config.password = ReadStringFromEEPROM(96);
  92. config.ntpServerName = ReadStringFromEEPROM(128);
  93. config.AutoTurnOn = EEPROM.read(300);
  94. config.AutoTurnOff = EEPROM.read(301);
  95. config.TurnOnHour = EEPROM.read(302);
  96. config.TurnOnMinute = EEPROM.read(303);
  97. config.TurnOffHour = EEPROM.read(304);
  98. config.TurnOffMinute = EEPROM.read(305);
  99. config.DeviceName= ReadStringFromEEPROM(306);
  100. return true;
  101. }
  102. else
  103. {
  104. Serial.println("Configurarion NOT FOUND!!!!");
  105. return false;
  106. }
  107. }