EEPROM configuration
This commit is contained in:
parent
f6e543ebb2
commit
e48cbc986a
30
include/config.h
Normal file
30
include/config.h
Normal file
@ -0,0 +1,30 @@
|
||||
#include <Arduino.h>
|
||||
#include <EEPROM.h>
|
||||
|
||||
#define EEPROM_SIZE 64
|
||||
|
||||
class Config {
|
||||
public:
|
||||
|
||||
typedef struct {
|
||||
char wifiSSID[16];
|
||||
char wifiPass[16];
|
||||
} Data;
|
||||
|
||||
Config() {};
|
||||
|
||||
void init();
|
||||
|
||||
void load();
|
||||
|
||||
void save();
|
||||
void save(Data&);
|
||||
|
||||
void setSSID(String);
|
||||
void setWifiPass(String);
|
||||
|
||||
const Data& data();
|
||||
|
||||
private:
|
||||
Data _data;
|
||||
};
|
48
src/config.cpp
Normal file
48
src/config.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
#include "config.h"
|
||||
|
||||
void Config::init()
|
||||
{
|
||||
EEPROM.begin(EEPROM_SIZE);
|
||||
}
|
||||
|
||||
void Config::setSSID(String ssid)
|
||||
{
|
||||
strcpy(_data.wifiSSID, ssid.c_str());
|
||||
};
|
||||
|
||||
void Config::setWifiPass(String pass)
|
||||
{
|
||||
strcpy(_data.wifiPass, pass.c_str());
|
||||
};
|
||||
|
||||
void Config::load()
|
||||
{
|
||||
byte* pBuff = (byte*)(const void*)&_data;
|
||||
for (size_t i = 0; i < sizeof(_data); ++i)
|
||||
{
|
||||
*pBuff++ = EEPROM.read(i);
|
||||
}
|
||||
Serial.println("EEPROM Loaded");
|
||||
};
|
||||
|
||||
void Config::save()
|
||||
{
|
||||
const byte* pBuff = (const byte*)(const void*)&_data;
|
||||
for (size_t i = 0; i < sizeof(_data); ++i)
|
||||
{
|
||||
EEPROM.write(i, *pBuff++);
|
||||
}
|
||||
EEPROM.commit();
|
||||
Serial.println("EEPROM Saved");
|
||||
};
|
||||
|
||||
void Config::save(Config::Data& data)
|
||||
{
|
||||
_data = data;
|
||||
save();
|
||||
}
|
||||
|
||||
const Config::Data& Config::data()
|
||||
{
|
||||
return _data;
|
||||
}
|
19
src/main.cpp
19
src/main.cpp
@ -1,11 +1,13 @@
|
||||
#include <Arduino.h>
|
||||
|
||||
#include "body.h"
|
||||
#include "config.h"
|
||||
|
||||
Body body = Body::instance();
|
||||
|
||||
Config config;
|
||||
|
||||
void servoTest() {
|
||||
// Drive each PWM in a 'wave'
|
||||
for (uint8_t legnum = 0; legnum < body.legs.size(); legnum++)
|
||||
{
|
||||
body.legs[legnum].setPos(Leg::Hipp, 90);
|
||||
@ -17,19 +19,30 @@ void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
body.init();
|
||||
config.init();
|
||||
delay(250);
|
||||
|
||||
servoTest();
|
||||
config.load();
|
||||
Serial.printf("SSID: %s\n", config.data().wifiSSID);
|
||||
Serial.printf("pass: %s\n", config.data().wifiPass);
|
||||
|
||||
// Only to save as a test
|
||||
/*
|
||||
config.setSSID("testSSID");
|
||||
config.setWifiPass("testPass");
|
||||
config.save();
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
void loop() {
|
||||
Serial.println("Hejsan");
|
||||
Serial.print(".");
|
||||
sleep(1);
|
||||
|
||||
static uint8_t d = 0;
|
||||
if (d < 10)
|
||||
if (d < 2)
|
||||
{
|
||||
for (long angle = 0; angle < 180*5; angle++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user