Configuration (Settings) file
This commit is contained in:
parent
8bc7a5242f
commit
7ad64c2e51
@ -13,6 +13,7 @@ BreakBeforeBraces: Custom
|
|||||||
BraceWrapping:
|
BraceWrapping:
|
||||||
BeforeCatch: true
|
BeforeCatch: true
|
||||||
BeforeElse: true
|
BeforeElse: true
|
||||||
|
PointerAlignment: Left
|
||||||
|
|
||||||
AlwaysBreakAfterReturnType: None
|
AlwaysBreakAfterReturnType: None
|
||||||
PenaltyReturnTypeOnItsOwnLine: 1000000
|
PenaltyReturnTypeOnItsOwnLine: 1000000
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
|||||||
.vscode/c_cpp_properties.json
|
.vscode/c_cpp_properties.json
|
||||||
.vscode/launch.json
|
.vscode/launch.json
|
||||||
.vscode/ipch
|
.vscode/ipch
|
||||||
|
include/settings.h
|
27
.vscode/settings.json
vendored
27
.vscode/settings.json
vendored
@ -18,6 +18,31 @@
|
|||||||
"ostream": "cpp",
|
"ostream": "cpp",
|
||||||
"sstream": "cpp",
|
"sstream": "cpp",
|
||||||
"streambuf": "cpp",
|
"streambuf": "cpp",
|
||||||
"utility": "cpp"
|
"utility": "cpp",
|
||||||
|
"cctype": "cpp",
|
||||||
|
"clocale": "cpp",
|
||||||
|
"cmath": "cpp",
|
||||||
|
"cstdarg": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"cstdint": "cpp",
|
||||||
|
"cstdio": "cpp",
|
||||||
|
"cstdlib": "cpp",
|
||||||
|
"cstring": "cpp",
|
||||||
|
"ctime": "cpp",
|
||||||
|
"cwchar": "cpp",
|
||||||
|
"cwctype": "cpp",
|
||||||
|
"list": "cpp",
|
||||||
|
"exception": "cpp",
|
||||||
|
"functional": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"tuple": "cpp",
|
||||||
|
"type_traits": "cpp",
|
||||||
|
"iomanip": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"new": "cpp",
|
||||||
|
"numeric": "cpp",
|
||||||
|
"stdexcept": "cpp",
|
||||||
|
"cinttypes": "cpp",
|
||||||
|
"typeinfo": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,13 +1,17 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <EEPROM.h>
|
#include <EEPROM.h>
|
||||||
|
|
||||||
|
#include <array>
|
||||||
|
|
||||||
#define EEPROM_SIZE 64
|
#define EEPROM_SIZE 64
|
||||||
|
|
||||||
class Config {
|
class Config {
|
||||||
public:
|
public:
|
||||||
typedef struct {
|
typedef struct Data {
|
||||||
char wifiSSID[16];
|
std::array<char, 16> wifiSSID;
|
||||||
char wifiPass[16];
|
std::array<char, 16> wifiPass;
|
||||||
|
|
||||||
|
Data &operator=(const Data &);
|
||||||
} Data;
|
} Data;
|
||||||
|
|
||||||
Config(){};
|
Config(){};
|
||||||
@ -24,6 +28,11 @@ public:
|
|||||||
|
|
||||||
const Data &data();
|
const Data &data();
|
||||||
|
|
||||||
|
void printConfig();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Data _data;
|
Data _data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool operator==(const Config::Data &a, const Config::Data &b);
|
||||||
|
bool operator!=(const Config::Data &a, const Config::Data &b);
|
||||||
|
12
include/settings.h
Normal file
12
include/settings.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/*****************************************************
|
||||||
|
* Configurations: *
|
||||||
|
* *
|
||||||
|
* Copy or renamed this file to "settings.h" *
|
||||||
|
* and edit it to your needs *
|
||||||
|
* *
|
||||||
|
* The settings will be stored to the controller if *
|
||||||
|
* different from the previous/current configuration *
|
||||||
|
****************************************************/
|
||||||
|
|
||||||
|
const char* wifiSSID = "mySSID";
|
||||||
|
const char* wifiPass = "myPass";
|
12
include/settings.h.orig
Normal file
12
include/settings.h.orig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/*****************************************************
|
||||||
|
* Configurations: *
|
||||||
|
* *
|
||||||
|
* Copy or renamed this file to "settings.h" *
|
||||||
|
* and edit it to your needs *
|
||||||
|
* *
|
||||||
|
* The settings will be stored to the controller if *
|
||||||
|
* different from the previous/current configuration *
|
||||||
|
****************************************************/
|
||||||
|
|
||||||
|
const char* wifiSSID = "mySSID";
|
||||||
|
const char* wifiPass = "myPass";
|
@ -5,11 +5,11 @@ void Config::init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Config::setSSID(String ssid) {
|
void Config::setSSID(String ssid) {
|
||||||
strcpy(_data.wifiSSID, ssid.c_str());
|
strcpy(_data.wifiSSID.data(), ssid.c_str());
|
||||||
};
|
};
|
||||||
|
|
||||||
void Config::setWifiPass(String pass) {
|
void Config::setWifiPass(String pass) {
|
||||||
strcpy(_data.wifiPass, pass.c_str());
|
strcpy(_data.wifiPass.data(), pass.c_str());
|
||||||
};
|
};
|
||||||
|
|
||||||
void Config::load() {
|
void Config::load() {
|
||||||
@ -37,3 +37,21 @@ void Config::save(Config::Data &data) {
|
|||||||
const Config::Data &Config::data() {
|
const Config::Data &Config::data() {
|
||||||
return _data;
|
return _data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Config::printConfig() {
|
||||||
|
Serial.printf("wifiSSID: %s\n", _data.wifiSSID.data());
|
||||||
|
Serial.printf("wifiPass: %s\n", _data.wifiPass.data());
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::Data &Config::Data::operator=(const Config::Data &other) {
|
||||||
|
this->wifiSSID = other.wifiSSID;
|
||||||
|
this->wifiPass = other.wifiPass;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const Config::Data &a, const Config::Data &b) {
|
||||||
|
return (a.wifiSSID == b.wifiSSID && a.wifiPass == b.wifiPass);
|
||||||
|
}
|
||||||
|
bool operator!=(const Config::Data &a, const Config::Data &b) {
|
||||||
|
return !(a == b);
|
||||||
|
}
|
30
src/main.cpp
30
src/main.cpp
@ -1,10 +1,12 @@
|
|||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
|
|
||||||
|
// Project includes
|
||||||
#include "OSCRemote.h"
|
#include "OSCRemote.h"
|
||||||
#include "Vbat.h"
|
#include "Vbat.h"
|
||||||
#include "body.h"
|
#include "body.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "settings.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@ -25,8 +27,8 @@ void servoTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void connectWiFi() {
|
void connectWiFi() {
|
||||||
Serial.printf("Connecting to %s\n", config.data().wifiSSID);
|
Serial.printf("Connecting to %s\n", config.data().wifiSSID.data());
|
||||||
WiFi.begin(config.data().wifiSSID, config.data().wifiPass);
|
WiFi.begin(config.data().wifiSSID.data(), config.data().wifiPass.data());
|
||||||
WiFi.setHostname(hostname);
|
WiFi.setHostname(hostname);
|
||||||
while (WiFi.status() != WL_CONNECTED) {
|
while (WiFi.status() != WL_CONNECTED) {
|
||||||
delay(500);
|
delay(500);
|
||||||
@ -59,6 +61,18 @@ void sweepLeg() {
|
|||||||
d++;
|
d++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void checkConfig() {
|
||||||
|
Config::Data compData;
|
||||||
|
strncpy(compData.wifiSSID.data(), wifiSSID, sizeof(compData.wifiSSID));
|
||||||
|
strncpy(compData.wifiPass.data(), wifiPass, sizeof(compData.wifiPass));
|
||||||
|
|
||||||
|
if (config.data() != compData) {
|
||||||
|
Serial.println("New configuration loaded");
|
||||||
|
config.save(compData);
|
||||||
|
config.printConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
@ -69,19 +83,15 @@ void setup() {
|
|||||||
servoTest();
|
servoTest();
|
||||||
config.load();
|
config.load();
|
||||||
|
|
||||||
Serial.printf("SSID: %s\n", config.data().wifiSSID);
|
Serial.println("Current Flash Config:");
|
||||||
Serial.printf("pass: %s\n", config.data().wifiPass);
|
Serial.printf("- WiFi SSID: %s\n", config.data().wifiSSID.data());
|
||||||
|
Serial.printf("- WiFi pass: %s\n", config.data().wifiPass.data());
|
||||||
|
checkConfig();
|
||||||
connectWiFi();
|
connectWiFi();
|
||||||
remote.reset(new OSCRemote(vbat));
|
remote.reset(new OSCRemote(vbat));
|
||||||
remote->registerCallback(testRemoteCallback);
|
remote->registerCallback(testRemoteCallback);
|
||||||
// remote->init();
|
// remote->init();
|
||||||
|
|
||||||
// Only to save as a test
|
|
||||||
/*
|
|
||||||
config.setSSID("testSSID");
|
|
||||||
config.setWifiPass("testPass");
|
|
||||||
config.save();
|
|
||||||
*/
|
|
||||||
sweepLeg();
|
sweepLeg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user