most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Revision:
73:f6f378311c8d
Parent:
57:ec69651c8c21
Child:
74:d281aaef9766
--- a/ConfigFileIO/ConfigFileIO.cpp	Mon Jul 02 14:28:22 2018 +0000
+++ b/ConfigFileIO/ConfigFileIO.cpp	Mon Jul 30 16:48:48 2018 +0000
@@ -4,31 +4,41 @@
 //configuration file io, both to read, set, and save
 
 ConfigFileIO::ConfigFileIO() {
-}
+}    
 
-void ConfigFileIO::saveBattData(float p_gain, float i_gain, float d_gain) {       
+void ConfigFileIO::saveBattData(float batt_p_gain, float batt_i_gain, float batt_d_gain, float batt_zeroOffset, float batt_filter_freq, float batt_deadband) {       
     ConfigFile write_Batt_txt;   //write to the config file
     
     char PGain_buffer[128];
     sprintf(PGain_buffer,"# configuration file for battery mover parameters\n\n#Gains\nPGain");
     
     char string_pgain[128];  
-    sprintf(string_pgain, "%f", p_gain);
+    sprintf(string_pgain, "%f", batt_p_gain);
     write_Batt_txt.setValue(PGain_buffer, string_pgain);
     
     char string_igain[128];  
-    sprintf(string_igain, "%f", i_gain);
+    sprintf(string_igain, "%f", batt_i_gain);
     write_Batt_txt.setValue("IGain", string_igain);
     
     char string_dgain[128];  
-    sprintf(string_dgain, "%f", d_gain);
+    sprintf(string_dgain, "%f", batt_d_gain);
     write_Batt_txt.setValue("DGain", string_dgain);
-            
-    write_Batt_txt.setValue("\n#string pot parameters\nzeroCounts", "610");
+      
+    char string_zeroCounts[128];  
+    sprintf(string_zeroCounts, "%f", batt_zeroOffset);      
+    write_Batt_txt.setValue("\n#string pot parameters\nzeroCounts", string_zeroCounts);
+    
+    //hard-coded values
     write_Batt_txt.setValue("PistonTravelLimit", "73.0");
     write_Batt_txt.setValue("slope", "0.12176");
-    write_Batt_txt.setValue("filterWn", "6.0");
-    write_Batt_txt.setValue("deadband", "0.5");
+    
+    char string_filter_freq[128];  
+    sprintf(string_filter_freq, "%f", batt_filter_freq);
+    write_Batt_txt.setValue("filterWn", string_filter_freq);
+    
+    char string_deadband[128];  
+    sprintf(string_deadband, "%f", batt_deadband);
+    write_Batt_txt.setValue("deadband", string_deadband);
 
     //SAVE THE DATA!
     pc().printf("Saving BATTERY MOVER PID data!");
@@ -41,29 +51,34 @@
     }  
 }
 
-void ConfigFileIO::savePitchData(float p_gain, float i_gain, float d_gain, int batt_zeroOffset) {   
+void ConfigFileIO::savePitchData(float pitch_p_gain, float pitch_i_gain, float pitch_d_gain, float pitch_zeroOffset, float pitch_filter_freq, float pitch_deadband) {   
     ConfigFile write_pitch_txt;   //write to the config file
     
     char PGain_buffer[128];
     sprintf(PGain_buffer,"# pitch outer loop parameters\n\n#Gains\nPGain");
     
     char string_pgain[128];  
-    sprintf(string_pgain, "%f", p_gain);
+    sprintf(string_pgain, "%f", pitch_p_gain);
     write_pitch_txt.setValue(PGain_buffer, string_pgain);
     
     char string_igain[128];  
-    sprintf(string_igain, "%f", i_gain);
+    sprintf(string_igain, "%f", pitch_i_gain);
     write_pitch_txt.setValue("IGain", string_igain);
     
     char string_dgain[128];  
-    sprintf(string_dgain, "%f", d_gain);
+    sprintf(string_dgain, "%f", pitch_d_gain);
     write_pitch_txt.setValue("DGain", string_dgain);
-            
-    write_pitch_txt.setValue("\n#Pitch sensor filter parameters\nfilterWn", "6.0");
-    write_pitch_txt.setValue("deadband", "0.5");
+    
+    char string_filter_freq[128];  
+    sprintf(string_filter_freq, "%f", pitch_filter_freq);       
+    write_pitch_txt.setValue("\n#Pitch sensor filter parameters\nfilterWn", string_filter_freq);
+    
+    char string_deadband[128];
+    sprintf(string_deadband, "%f", pitch_deadband);
+    write_pitch_txt.setValue("deadband", string_deadband);
     
     char string_zeroOffset[128];
-    sprintf(string_zeroOffset, "%d", batt_zeroOffset);
+    sprintf(string_zeroOffset, "%f", pitch_zeroOffset);
     //bce setting was 41 mm during LASR experiments
     write_pitch_txt.setValue("\n#Offset for neutral (default: 41)\nzeroOffset", string_zeroOffset);
     
@@ -78,29 +93,39 @@
     } 
 }
 
-void ConfigFileIO::saveBCEData(float p_gain, float i_gain, float d_gain) {       
+void ConfigFileIO::saveBCEData(float bce_p_gain, float bce_i_gain, float bce_d_gain, float bce_zeroOffset, float bce_filter_freq, float bce_deadband) {       
     ConfigFile write_BCE_txt;   //write to the config file
     
     char PGain_buffer[128];
     sprintf(PGain_buffer,"# configuration file for BCE parameters\n\n#Gains\nPGain");
     
     char string_pgain[128];  
-    sprintf(string_pgain, "%f", p_gain);
+    sprintf(string_pgain, "%f", bce_p_gain);
     write_BCE_txt.setValue(PGain_buffer, string_pgain);
     
     char string_igain[128];  
-    sprintf(string_igain, "%f", i_gain);
+    sprintf(string_igain, "%f", bce_i_gain);
     write_BCE_txt.setValue("IGain", string_igain);
     
     char string_dgain[128];  
-    sprintf(string_dgain, "%f", d_gain);
+    sprintf(string_dgain, "%f", bce_d_gain);
     write_BCE_txt.setValue("DGain", string_dgain);
-            
-    write_BCE_txt.setValue("\n#string pot parameters\nzeroCounts", "253");
+    
+    char string_zeroCounts[128];
+    sprintf(string_zeroCounts, "%f", bce_zeroOffset);
+    write_BCE_txt.setValue("\n#string pot parameters\nzeroCounts", string_zeroCounts);
+    
+    //hard-coded values
     write_BCE_txt.setValue("PistonTravelLimit", "320.0");
     write_BCE_txt.setValue("slope", "0.12176");
-    write_BCE_txt.setValue("filterWn", "6.0");
-    write_BCE_txt.setValue("deadband", "0.5");
+    
+    char string_filter_freq[128];  
+    sprintf(string_filter_freq, "%f", bce_filter_freq);
+    write_BCE_txt.setValue("filterWn", string_filter_freq);
+    
+    char string_deadband[128];  
+    sprintf(string_deadband, "%f", bce_deadband);
+    write_BCE_txt.setValue("deadband", string_deadband);
 
     //SAVE THE DATA!
     pc().printf("Saving BCE PID data!");
@@ -113,29 +138,34 @@
     } 
 }
 
-void ConfigFileIO::saveDepthData(float p_gain, float i_gain, float d_gain, int bce_zeroOffset) {       
+void ConfigFileIO::saveDepthData(float depth_p_gain, float depth_i_gain, float depth_d_gain, float depth_zeroOffset, float depth_filter_freq, float depth_deadband) {       
     ConfigFile write_depth_txt;   //write to the config file
     
     char PGain_buffer[128];
     sprintf(PGain_buffer,"# depth outer loop parameters\n\n#Gains\nPGain");
     
     char string_pgain[128];  
-    sprintf(string_pgain, "%f", p_gain);
+    sprintf(string_pgain, "%f", depth_p_gain);
     write_depth_txt.setValue(PGain_buffer, string_pgain);
     
     char string_igain[128];  
-    sprintf(string_igain, "%f", i_gain);
+    sprintf(string_igain, "%f", depth_i_gain);
     write_depth_txt.setValue("IGain", string_igain);
     
     char string_dgain[128];  
-    sprintf(string_dgain, "%f", d_gain);
+    sprintf(string_dgain, "%f", depth_d_gain);
     write_depth_txt.setValue("DGain", string_dgain);
-            
-    write_depth_txt.setValue("\n#Depth sensor filter parameters\nfilterWn", "6.0");
-    write_depth_txt.setValue("deadband", "0.5");
+    
+    char string_filter_freq[128];
+    sprintf(string_filter_freq, "%f", depth_filter_freq);
+    write_depth_txt.setValue("\n#Depth sensor filter parameters\nfilterWn", string_filter_freq);
+    
+    char string_deadband[128];
+    sprintf(string_deadband, "%f", depth_deadband);
+    write_depth_txt.setValue("deadband", string_deadband);
     
     char string_zeroOffset[128];
-    sprintf(string_zeroOffset, "%d", bce_zeroOffset);
+    sprintf(string_zeroOffset, "%f", depth_zeroOffset);
     //bce setting was 240 mm during LASR experiments
     write_depth_txt.setValue("\n#Offset for neutral (default: 240)\nzeroOffset", string_zeroOffset);
     
@@ -233,7 +263,7 @@
 }
 
 //write to heading.txt
-void ConfigFileIO::saveHeadingData(float heading_p_gain, float heading_i_gain, float heading_d_gain, float heading_offset) {
+void ConfigFileIO::saveHeadingData(float heading_p_gain, float heading_i_gain, float heading_d_gain, float heading_zeroOffset, float heading_filter_freq, float heading_deadband) {
     ConfigFile heading_txt;
     
     char PGain_buffer[128];
@@ -256,7 +286,7 @@
     heading_txt.setValue("deadband", "0.5");
     
     char string_zeroOffset[128];
-    sprintf(string_zeroOffset, "%f", heading_offset);
+    sprintf(string_zeroOffset, "%f", heading_zeroOffset);
     heading_txt.setValue("\n#HEADING offset for dive (no default!)\nzeroOffset", string_zeroOffset);
     
     //SAVE THE DATA!