Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
Diff: ConfigFileWrapper/ConfigFileWrapper.cpp
- Revision:
- 0:c6a85bb2a827
diff -r 000000000000 -r c6a85bb2a827 ConfigFileWrapper/ConfigFileWrapper.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ConfigFileWrapper/ConfigFileWrapper.cpp Wed Mar 04 18:50:37 2015 +0000
@@ -0,0 +1,161 @@
+#include "ConfigFileWrapper.h"
+
+ConfigFileWrapper::ConfigFileWrapper(){}
+
+ConfigFileWrapper::~ConfigFileWrapper(){}
+
+bool PidWrapper::initialise()
+{
+ _str = new char[1024];
+ loadSettings();
+
+ DEBUG("Config file wrapper initialised");
+ return true;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getYawRateParameters()
+{
+ return _yawRateParameters;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getPitchRateParameters()
+{
+ return _pitchRateParameters;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getRollRateParameters()
+{
+ return _rollRateParameters;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getYawStabParameters()
+{
+ return _yawStabParameters;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getPitchStabParameters()
+{
+ return _pitchStabParameters;
+}
+
+pidWrapper::PidParameters ConfigFileWrapper::getRollStabParameters()
+{
+ return _rollStabParameters;
+}
+
+bool ConfigFileWrapper::setYawRateParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+bool ConfigFileWrapper::setPitchRateParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+bool ConfigFileWrapper::setRollRateParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+bool ConfigFileWrapper::setYawStabParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+bool ConfigFileWrapper::setPitchStabParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+bool ConfigFileWrapper::setRollStabParameters(pidWrapper::PidParameters)
+{
+ return true;
+}
+
+void ConfigFileWrapper::convertToCharArray(float number)
+{
+ sprintf(_str, "%1.8f", number );
+}
+
+void ConfigFileWrapper::convertToCharArray(int number)
+{
+ sprintf(_str, "%d", number );
+}
+
+void ConfigFileWrapper::loadSettings()
+{
+ char value[BUFSIZ];
+
+ //Read a configuration file from a mbed.
+ if (!_configFile.read("/local/config.cfg"))
+ {
+ DEBUG("Config file does not exist\n\r");
+ }
+ else
+ {
+ //Get values
+ if (_configFile.getValue("yawRatePIDControllerP", &value[0], sizeof(value))) _yawRateParameters.p = atof(value);
+ else DEBUG("Failed to get value for yawRatePIDControllerP\n\r");
+
+ if (_configFile.getValue("yawRatePIDControllerI", &value[0], sizeof(value))) _yawRateParameters.i = atof(value);
+ else DEBUG("Failed to get value for yawRatePIDControllerI\n\r");
+
+ if (_configFile.getValue("yawRatePIDControllerD", &value[0], sizeof(value))) _yawRateParameters.d = atof(value);
+ else DEBUG("Failed to get value for yawRatePIDControllerD\n\r");
+
+ if (_configFile.getValue("pitchRatePIDControllerP", &value[0], sizeof(value))) _pitchRateParameters.p = atof(value);
+ else DEBUG("Failed to get value for pitchRatePIDControllerP\n\r");
+
+ if (_configFile.getValue("pitchRatePIDControllerI", &value[0], sizeof(value))) _pitchRateParameters.i = atof(value);
+ else DEBUG("Failed to get value for pitchRatePIDControllerI\n\r");
+
+ if (_configFile.getValue("pitchRatePIDControllerD", &value[0], sizeof(value))) _pitchRateParameters.d = atof(value);
+ else DEBUG("Failed to get value for pitchRatePIDControllerD\n\r");
+
+ if (_configFile.getValue("rollRatePIDControllerP", &value[0], sizeof(value))) _rollRateParameters.p = atof(value);
+ else DEBUG("Failed to get value for rollRatePIDControllerP\n\r");
+
+ if (_configFile.getValue("rollRatePIDControllerI", &value[0], sizeof(value))) _rollRateParameters.i = atof(value);
+ else DEBUG("Failed to get value for rollRatePIDControllerI\n\r");
+
+ if (_configFile.getValue("rollRatePIDControllerD", &value[0], sizeof(value))) _rollRateParameters.d = atof(value);
+ else DEBUG("Failed to get value for rollRatePIDControllerD\n\r");
+
+
+ if (_configFile.getValue("yawStabPIDControllerP", &value[0], sizeof(value))) _yawStabParameters.p = atof(value);
+ else DEBUG("Failed to get value for yawStabPIDControllerP\n\r");
+
+ if (_configFile.getValue("yawStabPIDControllerI", &value[0], sizeof(value))) _yawStabParameters.i = atof(value);
+ else DEBUG("Failed to get value for yawStabPIDControllerI\n\r");
+
+ if (_configFile.getValue("yawStabPIDControllerD", &value[0], sizeof(value))) _yawStabParameters.d = atof(value);
+ else DEBUG("Failed to get value for yawStabPIDControllerD\n\r");
+
+ if (_configFile.getValue("pitchStabPIDControllerP", &value[0], sizeof(value))) _pitchStabParameters.p = atof(value);
+ else DEBUG("Failed to get value for pitchStabPIDControllerP\n\r");
+
+ if (_configFile.getValue("pitchStabPIDControllerI", &value[0], sizeof(value))) _pitchStabParameters.i = atof(value);
+ else DEBUG("Failed to get value for pitchStabPIDControllerI\n\r");
+
+ if (_configFile.getValue("pitchStabPIDControllerD", &value[0], sizeof(value))) _pitchStabParameters.d = atof(value);
+ else DEBUG("Failed to get value for pitchStabPIDControllerD\n\r");
+
+ if (_configFile.getValue("rollStabPIDControllerP", &value[0], sizeof(value))) _rollStabParameters.p = atof(value);
+ else DEBUG("Failed to get value for rollStabPIDControllerP\n\r");
+
+ if (_configFile.getValue("rollStabPIDControllerI", &value[0], sizeof(value))) _rollStabParameters.i = atof(value);
+ else DEBUG("Failed to get value for rollStabPIDControllerI\n\r");
+
+ if (_configFile.getValue("rollStabPIDControllerD", &value[0], sizeof(value))) _rollStabParameters.d = atof(value);
+ else DEBUG("Failed to get value for rollStabPIDControllerD\n\r");
+
+ /*if (_configFile.getValue("zeroPitch", &value[0], sizeof(value))) _zeroValues[1] = atof(value);
+ else DEBUG("Failed to get value for zero pitch\n\r");
+
+ if (_configFile.getValue("zeroRoll", &value[0], sizeof(value))) _zeroValues[2] = atof(value);
+ else printf("Failed to get value for zero roll\n\r");*/
+ }
+
+ DEBUG("Finished loading settings from config file\n\r");
+}