STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
Config.h
Go to the documentation of this file.
1#ifndef CONFIG_H
2#define CONFIG_H
3
4#include <array>
5#include <cstdint>
6#include <map>
7#include <string>
8
9// Note: If tomlplusplus is not available, we can use a simple TOML parser
10// For now, using basic file reading until tomlplusplus is integrated
11
12class Config {
13public:
14 // Constructor, loads config
15 explicit Config(const std::string& configFile);
16 void loadConfigMatrix(double* mat, int m, int n, const char* group, const char* id);
17
19 std::string host_ip;
20 std::string local_ip;
21 std::string jetson_ip;
22 std::string root_fsw_dir;
24 };
25
26 struct HITLConfig {
29 std::array<double, 3> simulated_velocity_NED;
31 std::array<double, 3> simulated_accel_NED;
32 };
33
34 // Telemetry struct
42
43 // Diablo Sensor System config
45 std::string udp_bind_ip;
47 std::string publish_ip;
53 std::string calibration_file_path; // Path to calibration backup JSON file
54 };
55
56 // Navigation struct
71
72 // Control struct
74 std::string publish_ip;
75 std::string can_interface;
77 std::array<int, 4> node_index;
81 };
82
92
93 // Message IDs
105
106 // Public access to configurations
115
116private:
117 // Simple TOML-like config storage (can be replaced with tomlplusplus)
118 std::map<std::string, std::map<std::string, std::string>> configData;
119
120 // Private method to load configuration from file
121 void loadConfig(const std::string& configFile);
122 std::string getValue(const std::string& section, const std::string& key,
123 const std::string& default_val);
124 double getDouble(const std::string& section, const std::string& key, double default_val);
125 int getInt(const std::string& section, const std::string& key, int default_val);
126 bool getBool(const std::string& section, const std::string& key, bool default_val);
127 std::array<double, 3> getArray3(const std::string& section, const std::string& key,
128 std::array<double, 3> default_val);
129 std::array<int, 4> getArray4Int(const std::string& section, const std::string& key,
130 std::array<int, 4> default_val);
131};
132
133#endif // CONFIG_H
void loadConfig(const std::string &configFile)
NavigationConfig navigation
Definition Config.h:111
std::map< std::string, std::map< std::string, std::string > > configData
Definition Config.h:118
ControlConfig control
Definition Config.h:112
StateMachineConfig state_machine
Definition Config.h:113
std::array< int, 4 > getArray4Int(const std::string &section, const std::string &key, std::array< int, 4 > default_val)
DiabloSensorConfig diablo_sensor
Definition Config.h:110
bool getBool(const std::string &section, const std::string &key, bool default_val)
double getDouble(const std::string &section, const std::string &key, double default_val)
HITLConfig hitl
Definition Config.h:108
TelemetryConfig telemetry
Definition Config.h:109
int getInt(const std::string &section, const std::string &key, int default_val)
Config(const std::string &configFile)
std::string getValue(const std::string &section, const std::string &key, const std::string &default_val)
void loadConfigMatrix(double *mat, int m, int n, const char *group, const char *id)
std::array< double, 3 > getArray3(const std::string &section, const std::string &key, std::array< double, 3 > default_val)
NetworkConfig network
Definition Config.h:107
MessageIDs messageIDs
Definition Config.h:114
*brief user defined string literal for JSON values *sa std::size_t n
Definition json.hpp:24474
std::string can_interface
Definition Config.h:75
std::string publish_ip
Definition Config.h:74
std::array< int, 4 > node_index
Definition Config.h:77
std::string publish_ip
Definition Config.h:47
std::string udp_bind_ip
Definition Config.h:45
std::string calibration_file_path
Definition Config.h:53
std::array< double, 3 > simulated_velocity_NED
Definition Config.h:29
bool simulate_accel_flag
Definition Config.h:30
bool simulate_velocity_flag
Definition Config.h:28
std::array< double, 3 > simulated_accel_NED
Definition Config.h:31
uint8_t mfNavigationMessage
Definition Config.h:99
uint8_t mfRTDMessage
Definition Config.h:97
uint8_t mfPTMessage
Definition Config.h:95
uint8_t ValveControlMessage
Definition Config.h:103
uint8_t EngineControlMessage
Definition Config.h:102
uint8_t mfTCMessage
Definition Config.h:96
uint8_t ControlMessage
Definition Config.h:100
uint8_t StateMachineOutput
Definition Config.h:101
uint8_t mfLCMessage
Definition Config.h:98
std::string publish_ip
Definition Config.h:64
double initial_accel_bias_z
Definition Config.h:60
double calibration_time_length
Definition Config.h:68
double initial_accel_bias_x
Definition Config.h:58
double initial_accel_bias_y
Definition Config.h:59
std::string jetson_ip
Definition Config.h:21
std::string local_ip
Definition Config.h:20
std::string host_ip
Definition Config.h:19
std::string root_fsw_dir
Definition Config.h:22
double abort_pressure_threshold
Definition Config.h:88
double abort_temperature_threshold
Definition Config.h:89
std::string publish_ip
Definition Config.h:84
std::string publish_ip
Definition Config.h:36