-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvehicleConfig.h
More file actions
124 lines (110 loc) · 3.33 KB
/
vehicleConfig.h
File metadata and controls
124 lines (110 loc) · 3.33 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/************************************
* Copyright (C) 2020-2025 Marina Egner <hello@sheepcs.de>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program.
* If not, see <https://www.gnu.org/licenses/>.
************************************/
#ifndef _VEHICLE_CONFIG_H_
#define _VEHICLE_CONFIG_H_
#include "Arduino.h"
enum CountryOption {
US,
EU
};
enum DebugLevel {
NONE,
STATUS_ONLY,
FUNCTION_STATE,
};
enum ProtocolVersion {
V1 = 1,
V2
};
struct GeneralConfig {
// Setup Region EU or US for Truck - Use `CountryOption` enum
CountryOption countryOption;
// Level for debugging - Use `DebugLevel` enum
DebugLevel debugLevel;
// Pin for status LED on the Arduino
uint8_t statusLightPin;
};
struct GeneralLightConfig {
// Fade in time for all lights
uint16_t fadeOnTime;
// Fade out time for all lights
uint16_t fadeOffTime;
// Starter Brightness decrease factor
uint8_t starterDimmingFactor;
// Starter Brightness decrease multiplier
uint8_t starterDimmingMultiplier;
};
struct SerialConfig {
// Enable Serial Communication
bool isEnabled;
// Pin for TX Enable on MAX485
uint8_t outTxEnablePin;
// Baud rate for Serial Communication (e.g. 19200)
uint32_t baudRate;
// e.g. SERIAL_8N1 | start bit, data bit, stop bit
uint8_t byteFormat;
// Time to wait for a response
long timeout;
// Time between polling requests
long pollingInterval;
// Protocol version
ProtocolVersion protocolVersion;
};
struct LightOutputChannel {
// Hardware Pin on the Arduino for the Light Output Channel
uint8_t outputPin;
// Brightness level for Primary Light Function
uint8_t primaryOnBrightness;
// Brightness level for Secondary Light Function
uint8_t secondaryOnBrightness;
// Brightness level for Tertiary Light Function
uint8_t tertiaryOnBrightness;
// Brightness level for Off Light Function
uint8_t offBrightness;
// Fade in time for all lights
uint16_t fadeOnTime;
// Fade out time for all lights
uint16_t fadeOffTime;
};
struct CombinedBrakeTurnSignalLightConfig {
bool singleLightOption;
};
struct ServoChannel {
// Hardware Pin on the Arduino for the Servo Channel
uint8_t outputPin;
// Minimum angle for the Servo
uint16_t minMicroseconds;
// Maximum angle for the Servo
uint16_t maxMicroseconds;
// Current angle of the Servo
uint16_t defaultMicroseconds;
};
struct VehicleConfig {
GeneralConfig generalConfig;
GeneralLightConfig generalLightConfig;
SerialConfig serialConfig;
LightOutputChannel rearLeftTurnLight;
LightOutputChannel rearRightTurnLight;
LightOutputChannel sideLeftTurnLight;
LightOutputChannel sideRightTurnLight;
LightOutputChannel parkingLight;
LightOutputChannel reverseLight;
LightOutputChannel brakeLight;
LightOutputChannel auxLight;
ServoChannel servoChannel1;
ServoChannel servoChannel2;
CombinedBrakeTurnSignalLightConfig combinedBrakeTurnSignalLightConfig;
};
#endif