Flying Sea Glider / Mbed 2 deprecated 2019_19feb19_jcw_noSD

Dependencies:   mbed MODSERIAL FATFileSystem

Committer:
danstrider
Date:
Fri Oct 27 00:37:32 2017 +0000
Revision:
11:3b241ecb75ed
Parent:
10:085ab7328054
This version has been in the pool, working with all the hardware.  Had occasional string pot problems and got stuck in RISE, letting the battery stall out against the endcap.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mkelly10 9:d5fcdcb3c89d 1 #include "config_functions.h"
mkelly10 9:d5fcdcb3c89d 2 #include "StaticDefs.hpp"
mkelly10 9:d5fcdcb3c89d 3
mkelly10 9:d5fcdcb3c89d 4 int load_BCE_config()
mkelly10 9:d5fcdcb3c89d 5 {
mkelly10 9:d5fcdcb3c89d 6 ConfigFile cfg;
mkelly10 9:d5fcdcb3c89d 7 int count = 0;
danstrider 10:085ab7328054 8 if (!cfg.read("/local/bce.txt")) {
mkelly10 9:d5fcdcb3c89d 9 error("File Read Error");
danstrider 10:085ab7328054 10 }
mkelly10 9:d5fcdcb3c89d 11 char value[BUFSIZ];
mkelly10 9:d5fcdcb3c89d 12
mkelly10 9:d5fcdcb3c89d 13 if (cfg.getValue("PGain", &value[0] , sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 14 bce().setControllerP(atof(value));
mkelly10 9:d5fcdcb3c89d 15 count++;
mkelly10 9:d5fcdcb3c89d 16 }
mkelly10 9:d5fcdcb3c89d 17 if (cfg.getValue("IGain", &value[0] ,sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 18 bce().setControllerI(atof(value));
mkelly10 9:d5fcdcb3c89d 19 count++;
mkelly10 9:d5fcdcb3c89d 20 }
mkelly10 9:d5fcdcb3c89d 21 if (cfg.getValue("DGain", &value[0] , sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 22 bce().setControllerD(atof(value));
mkelly10 9:d5fcdcb3c89d 23 count++;
mkelly10 9:d5fcdcb3c89d 24 }
mkelly10 9:d5fcdcb3c89d 25 if (cfg.getValue("zeroCounts", &value[0],sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 26 bce().setZeroCounts(atoi(value));
mkelly10 9:d5fcdcb3c89d 27 count++;
mkelly10 9:d5fcdcb3c89d 28 }
mkelly10 9:d5fcdcb3c89d 29 if (cfg.getValue("PistonTravelLimit", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 30 bce().setTravelLimit(atof(value));
mkelly10 9:d5fcdcb3c89d 31 count++;
mkelly10 9:d5fcdcb3c89d 32 }
mkelly10 9:d5fcdcb3c89d 33 if (cfg.getValue("slope", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 34 bce().setPotSlope(atof(value));
mkelly10 9:d5fcdcb3c89d 35 count++;
mkelly10 9:d5fcdcb3c89d 36 }
mkelly10 9:d5fcdcb3c89d 37 if (cfg.getValue("filterWn", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 38 bce().setFilterFrequency(atof(value));
mkelly10 9:d5fcdcb3c89d 39 count++;
mkelly10 9:d5fcdcb3c89d 40 }
mkelly10 9:d5fcdcb3c89d 41 if (cfg.getValue("deadband", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 42 bce().setDeadband(atof(value));
mkelly10 9:d5fcdcb3c89d 43 count++;
mkelly10 9:d5fcdcb3c89d 44 }
mkelly10 9:d5fcdcb3c89d 45
mkelly10 9:d5fcdcb3c89d 46 return count;
mkelly10 9:d5fcdcb3c89d 47 }
mkelly10 9:d5fcdcb3c89d 48
mkelly10 9:d5fcdcb3c89d 49 int load_BATT_config()
mkelly10 9:d5fcdcb3c89d 50 {
mkelly10 9:d5fcdcb3c89d 51 ConfigFile cfg;
mkelly10 9:d5fcdcb3c89d 52 int count = 0;
danstrider 10:085ab7328054 53 if (!cfg.read("/local/batt.txt")) {
mkelly10 9:d5fcdcb3c89d 54 error("File Read Error");
danstrider 10:085ab7328054 55 }
mkelly10 9:d5fcdcb3c89d 56 char value[BUFSIZ];
mkelly10 9:d5fcdcb3c89d 57
mkelly10 9:d5fcdcb3c89d 58
mkelly10 9:d5fcdcb3c89d 59 if (cfg.getValue("PGain", &value[0] , sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 60 batt().setControllerP(atof(value));
mkelly10 9:d5fcdcb3c89d 61 count++;
mkelly10 9:d5fcdcb3c89d 62 }
mkelly10 9:d5fcdcb3c89d 63 if (cfg.getValue("IGain", &value[0] ,sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 64 batt().setControllerI(atof(value));
mkelly10 9:d5fcdcb3c89d 65 count++;
mkelly10 9:d5fcdcb3c89d 66 }
mkelly10 9:d5fcdcb3c89d 67 if (cfg.getValue("DGain", &value[0] , sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 68 batt().setControllerD(atof(value));
mkelly10 9:d5fcdcb3c89d 69 count++;
mkelly10 9:d5fcdcb3c89d 70 }
mkelly10 9:d5fcdcb3c89d 71 if (cfg.getValue("zeroCounts", &value[0],sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 72 batt().setZeroCounts(atoi(value));
mkelly10 9:d5fcdcb3c89d 73 count++;
mkelly10 9:d5fcdcb3c89d 74 }
mkelly10 9:d5fcdcb3c89d 75 if (cfg.getValue("PistonTravelLimit", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 76 batt().setTravelLimit(atof(value));
mkelly10 9:d5fcdcb3c89d 77 count++;
mkelly10 9:d5fcdcb3c89d 78 }
mkelly10 9:d5fcdcb3c89d 79 if (cfg.getValue("slope", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 80 batt().setPotSlope(atof(value));
mkelly10 9:d5fcdcb3c89d 81 count++;
mkelly10 9:d5fcdcb3c89d 82 }
mkelly10 9:d5fcdcb3c89d 83 if (cfg.getValue("filterWn", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 84 batt().setFilterFrequency(atof(value));
mkelly10 9:d5fcdcb3c89d 85 count++;
mkelly10 9:d5fcdcb3c89d 86 }
mkelly10 9:d5fcdcb3c89d 87 if (cfg.getValue("deadband", &value[0], sizeof(value))) {
mkelly10 9:d5fcdcb3c89d 88 batt().setDeadband(atof(value));
mkelly10 9:d5fcdcb3c89d 89 count++;
mkelly10 9:d5fcdcb3c89d 90 }
mkelly10 9:d5fcdcb3c89d 91
danstrider 10:085ab7328054 92 return count;
danstrider 10:085ab7328054 93 }
danstrider 10:085ab7328054 94
danstrider 10:085ab7328054 95 int load_DEPTH_config()
danstrider 10:085ab7328054 96 {
danstrider 10:085ab7328054 97 ConfigFile cfg;
danstrider 10:085ab7328054 98 int count = 0;
danstrider 10:085ab7328054 99 if (!cfg.read("/local/depth.txt")) {
danstrider 10:085ab7328054 100 error("File Read Error");
danstrider 10:085ab7328054 101 }
danstrider 10:085ab7328054 102 char value[BUFSIZ];
mkelly10 9:d5fcdcb3c89d 103
danstrider 10:085ab7328054 104 if (cfg.getValue("PGain", &value[0] , sizeof(value))) {
danstrider 10:085ab7328054 105 depthLoop().setControllerP(atof(value));
danstrider 10:085ab7328054 106 count++;
danstrider 10:085ab7328054 107 }
danstrider 10:085ab7328054 108 if (cfg.getValue("IGain", &value[0] ,sizeof(value))) {
danstrider 10:085ab7328054 109 depthLoop().setControllerI(atof(value));
danstrider 10:085ab7328054 110 count++;
danstrider 10:085ab7328054 111 }
danstrider 10:085ab7328054 112 if (cfg.getValue("DGain", &value[0] , sizeof(value))) {
danstrider 10:085ab7328054 113 depthLoop().setControllerD(atof(value));
danstrider 10:085ab7328054 114 count++;
danstrider 10:085ab7328054 115 }
danstrider 10:085ab7328054 116 if (cfg.getValue("filterWn", &value[0], sizeof(value))) {
danstrider 10:085ab7328054 117 depthLoop().setFilterFrequency(atof(value));
danstrider 10:085ab7328054 118 count++;
danstrider 10:085ab7328054 119 }
danstrider 10:085ab7328054 120 if (cfg.getValue("deadband", &value[0], sizeof(value))) {
danstrider 10:085ab7328054 121 depthLoop().setDeadband(atof(value));
danstrider 10:085ab7328054 122 count++;
danstrider 10:085ab7328054 123 }
danstrider 11:3b241ecb75ed 124 if (cfg.getValue("zeroOffset", &value[0], sizeof(value))) {
danstrider 11:3b241ecb75ed 125 depthLoop().setOutputOffset(atof(value));
danstrider 11:3b241ecb75ed 126 count++;
danstrider 11:3b241ecb75ed 127 }
danstrider 10:085ab7328054 128 return count;
danstrider 10:085ab7328054 129 }
danstrider 10:085ab7328054 130
danstrider 10:085ab7328054 131 int load_PITCH_config()
danstrider 10:085ab7328054 132 {
danstrider 10:085ab7328054 133 ConfigFile cfg;
danstrider 10:085ab7328054 134 int count = 0;
danstrider 10:085ab7328054 135 if (!cfg.read("/local/pitch.txt")){
danstrider 10:085ab7328054 136 error("File Read Error");
danstrider 10:085ab7328054 137 }
danstrider 10:085ab7328054 138 char value[BUFSIZ];
danstrider 10:085ab7328054 139
danstrider 10:085ab7328054 140 if (cfg.getValue("PGain", &value[0] , sizeof(value))) {
danstrider 10:085ab7328054 141 pitchLoop().setControllerP(atof(value));
danstrider 10:085ab7328054 142 count++;
danstrider 10:085ab7328054 143 }
danstrider 10:085ab7328054 144 if (cfg.getValue("IGain", &value[0] ,sizeof(value))) {
danstrider 10:085ab7328054 145 pitchLoop().setControllerI(atof(value));
danstrider 10:085ab7328054 146 count++;
danstrider 10:085ab7328054 147 }
danstrider 10:085ab7328054 148 if (cfg.getValue("DGain", &value[0] , sizeof(value))) {
danstrider 10:085ab7328054 149 pitchLoop().setControllerD(atof(value));
danstrider 10:085ab7328054 150 count++;
danstrider 10:085ab7328054 151 }
danstrider 10:085ab7328054 152 if (cfg.getValue("filterWn", &value[0], sizeof(value))) {
danstrider 10:085ab7328054 153 pitchLoop().setFilterFrequency(atof(value));
danstrider 10:085ab7328054 154 count++;
danstrider 10:085ab7328054 155 }
danstrider 10:085ab7328054 156 if (cfg.getValue("deadband", &value[0], sizeof(value))) {
danstrider 10:085ab7328054 157 pitchLoop().setDeadband(atof(value));
danstrider 10:085ab7328054 158 count++;
danstrider 10:085ab7328054 159 }
danstrider 11:3b241ecb75ed 160 if (cfg.getValue("zeroOffset", &value[0], sizeof(value))) {
danstrider 11:3b241ecb75ed 161 pitchLoop().setOutputOffset(atof(value));
danstrider 11:3b241ecb75ed 162 count++;
danstrider 11:3b241ecb75ed 163 }
danstrider 10:085ab7328054 164 return count;
mkelly10 9:d5fcdcb3c89d 165 }