/
Configuration.cpp
81 lines (65 loc) · 1.73 KB
/
Configuration.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//
//
//
#include "Configuration.h"
constexpr unsigned int str2int( const char* str, int h = 0 )
{
return !str[h] ? 5381 : (str2int( str, h + 1 ) * 33) ^ str[h];
}
Configuration::Configuration()
{
}
bool Configuration::init( const char* configurationFilePath )
{
const uint8_t CONFIG_LINE_LENGTH = 127;
// The open configuration file.
SDConfigFile configFile;
if ( !configFile.begin( configurationFilePath, CONFIG_LINE_LENGTH ) )
{
return false;
}
while ( configFile.readNextSetting() )
{
const char* name = configFile.getName();
switch ( str2int(name) )
{
case str2int("test"):
_testing = configFile.getBooleanValue();
break;
case str2int("testFileName"):
_testFileName = configFile.copyValue();
break;
case str2int( "fileSpeedMilliseonds" ):
_fileSpeedMilliseconds = configFile.getIntValue();
break;
case str2int( "secondsBeforeEmergencyStop" ):
_secondsBeforeEmergencyStop = configFile.getIntValue();
break;
case str2int( "lowestGPSFixType" ):
_lowestGPSFixType = configFile.getIntValue();
break;
}
}
configFile.end();
return true;
}
bool Configuration::getTesting()
{
return _testing;;
}
const char* Configuration::getTestFileName()
{
return _testFileName;;
}
uint8_t Configuration::getFileSpeedMilliseconds()
{
return _fileSpeedMilliseconds;
}
uint32_t Configuration::getSecondsBeforeEmergencyStop()
{
return _secondsBeforeEmergencyStop;
}
uint8_t Configuration::getLowestGPSFixType()
{
return _lowestGPSFixType;
}