Pages: 1 [2]   Go Down
Author Topic: Arduino til en tørretumbler  (Read 4858 times)
0 Members and 1 Guest are viewing this topic.
Odense, Denmark
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

selvfølgelig....

i min sketch bliver wifi opsætning gemt og hentet, så pt prøver jeg at kopiere det af til at hente og gemme også, bare fra pos 100 frem for 0

men svigermor har inviteret ud og spise så bliver først senere
Logged

Odense, Denmark
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tror jeg har lidt fod på det nu, men er i også lidt i tvivl...

måden der hentes på er taget direkte herfra: http://arduino.cc/playground/Code/EEPROMLoadAndSaveSettings

det er spec 3 linier jeg kigger på:

Code:
if (EEPROM.read(CONFIG_START + 0) == CONFIG_VERSION[0] &&
      EEPROM.read(CONFIG_START + 1) == CONFIG_VERSION[1] &&
      EEPROM.read(CONFIG_START + 2) == CONFIG_VERSION[2])

jeg gætter på der er 3 linier fordi der er 3 settings der skal gemmes, men har jeg ret så hvis der kun er en setting så korter man bare af til en linie og er der flere sætter man bare en kopi af sidste linie på men ændre 2 til 3?
Logged

Odense, Denmark
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

anyways ser den første del sådan her ud nu:

Code:
#define CONFIG_VERSION "ar1"
#define CONFIG_START 0
#define VALUES_START 100

// NetworkConnectTo
struct WiFiStorageStruct {
  char version[4];
  char ssid[24];
  char pwd[16];
  byte addr[4];
  unsigned int id;
} WiFiConfig = {
  CONFIG_VERSION,
  "sandkaeret1",
  "6161616161",
  {192, 168, 1, 150},
  0
};


struct ValuesStruct {
  char c1temp[2];
 
} ValuesConfig = {
  CONFIG_VERSION,
  "20",
  0
};



void loadConfig() {
  if (EEPROM.read(CONFIG_START + 0) == CONFIG_VERSION[0] &&
    EEPROM.read(CONFIG_START + 1) == CONFIG_VERSION[1] &&
      EEPROM.read(CONFIG_START + 2) == CONFIG_VERSION[2])
    for (unsigned int t=0; t<sizeof(WiFiConfig); t++)
      *((char*)&WiFiConfig + t) = EEPROM.read(CONFIG_START + t);
 }

void saveConfig() {
  for (unsigned int t=0; t<sizeof(WiFiConfig); t++)
    EEPROM.write(CONFIG_START + t, *((char*)&WiFiConfig + t));
}

void savesettings() {
for (unsigned int t=0; t<sizeof(ValuesConfig); t++)
    EEPROM.write(VALUES_START + t, *((char*)&ValuesConfig + t));
}

void loadsettings() {
  if (EEPROM.read(VALUES_START + 0) == CONFIG_VERSION[0] &&
    EEPROM.read(VALUES_START + 1) == CONFIG_VERSION[1] &&
      EEPROM.read(VALUES_START + 2) == CONFIG_VERSION[2])
    for (unsigned int t=0; t<sizeof(ValuesConfig); t++)
      *((char*)&ValuesConfig + t) = EEPROM.read(VALUES_START + t);
 }
Logged

Copenhagen, Denmark
Offline Offline
Edison Member
*
Karma: 32
Posts: 1214
Have you testrun your INO file today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
if (EEPROM.read(CONFIG_START + 0) == CONFIG_VERSION[0] &&
      EEPROM.read(CONFIG_START + 1) == CONFIG_VERSION[1] &&
      EEPROM.read(CONFIG_START + 2) == CONFIG_VERSION[2])
Det sammenligner 3 bytes om de alle er ens. Om det er en 3 bogstavs streng eller 3 små tal, eller et 24bits tal er koden uvidende om. det er en fortolkning af de 3 bytes som "brugeren" gør.
Logged

Pages: 1 [2]   Go Up
Jump to: