Viking Skull Lamp  V1.0.1
Loading...
Searching...
No Matches
configuration.hpp
Go to the documentation of this file.
1/*
2 * Created on May 28 2022
3 *
4 * Copyright (c) 2022 - Daniel Hajnal
5 * hajnal.daniel96@gmail.com
6 * This file is part of the Viking Skull Lamp project.
7 * Modified 2022.06.27
8*/
9
10/*
11MIT License
12Copyright (c) 2022 Daniel Hajnal
13Permission is hereby granted, free of charge, to any person obtaining a copy
14of this software and associated documentation files (the "Software"), to deal
15in the Software without restriction, including without limitation the rights
16to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17copies of the Software, and to permit persons to whom the Software is
18furnished to do so, subject to the following conditions:
19The above copyright notice and this permission notice shall be included in all
20copies or substantial portions of the Software.
21THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27SOFTWARE.
28*/
29
30#ifndef CONFIGURATION_HPP__
31#define CONFIGURATION_HPP__
32
33#include "Arduino.h"
34#include "EEPROM.h"
35
36#define createData( x ) { .dataPointer = &x, .dataSize = sizeof( x ) }
37
46
47public:
48
53 typedef struct{
54
56 uint8_t dataSize;
57
59
63 configurationManager( configurationData_t *configTree_p, uint8_t configTreeSize_p );
64
72 void saveConfig();
73
85 bool loadConfig();
86
87private:
88
90 void crcFeed( uint8_t data );
91
94
96 uint8_t configTreeSize = 0;
97
99 uint8_t crc = 0xff;
100
101};
102
103#endif
Configuration Manager Class.
configurationData_t * configTree
Pointer to configTree.
uint8_t crc
Calculated CRC.
void crcFeed(uint8_t data)
Maxim like crc-8.
bool loadConfig()
Load configuration from EEPROM.
void saveConfig()
Save configuration to EEPROM.
uint8_t configTreeSize
configTree size.
void * dataPointer
Pointer for the data, that has to be stored or loaded. The type is void* to support any kind of data.
uint8_t dataSize
The size of the data, that has to be stored or loaded. Specified in bytes.