@@ -10,13 +10,13 @@ namespace compass {
1010
1111namespace {
1212
13- constexpr uint32_t kAutoFinishMs = 20000 ;
13+ constexpr uint32_t kAutoFinishMs = 20000 ;
1414constexpr uint32_t kMinimumCalibrationSamples = 20 ;
15- constexpr float kMinimumAxisSpan = 0 .01f ;
16- constexpr float kCoverageTarget = 80 .0f ;
17- constexpr const char * kCalibrationPathEnv = " COMPASS_CALIBRATION_PATH" ;
18- constexpr const char * kConfigDirEnv = " COMPASS_CONFIG_DIR" ;
19- constexpr const char * kCalibrationFileName = " calibration.conf" ;
15+ constexpr float kMinimumAxisSpan = 0 .01f ;
16+ constexpr float kCoverageTarget = 80 .0f ;
17+ constexpr const char * kCalibrationPathEnv = " COMPASS_CALIBRATION_PATH" ;
18+ constexpr const char * kConfigDirEnv = " COMPASS_CONFIG_DIR" ;
19+ constexpr const char * kCalibrationFileName = " calibration.conf" ;
2020
2121float axisValue (const Axis3& value, size_t index)
2222{
@@ -68,6 +68,19 @@ bool envValue(const char* key, std::filesystem::path& path)
6868 return true ;
6969}
7070
71+ std::filesystem::path defaultConfigDir ()
72+ {
73+ #if COMPASS_USE_MOCK_IMU
74+ return " ." ;
75+ #else
76+ const char * home = std::getenv (" HOME" );
77+ if (home && home[0 ] != ' \0 ' ) {
78+ return std::filesystem::path (home) / " .config" / " Compass" ;
79+ }
80+ return " /tmp/Compass" ;
81+ #endif
82+ }
83+
7184float configFloat (const std::unordered_map<std::string, std::string>& values, const char * key, float fallback)
7285{
7386 const auto it = values.find (key);
@@ -182,7 +195,7 @@ std::filesystem::path CalibrationModel::configPath()
182195#if COMPASS_USE_MOCK_IMU
183196 return kCalibrationFileName ;
184197#else
185- return std::filesystem::path ( " /var/lib/Compass " ) / kCalibrationFileName ;
198+ return defaultConfigDir ( ) / kCalibrationFileName ;
186199#endif
187200}
188201
0 commit comments