robot

Dependencies:   FastPWM3 mbed

Revision:
181:d3510c8beab6
Parent:
180:a783a972a867
Child:
182:5ed20e4ce158
--- a/BREMS/BREMSConfig.cpp	Fri Feb 09 00:48:26 2018 +0000
+++ b/BREMS/BREMSConfig.cpp	Fri Feb 09 03:49:31 2018 +0000
@@ -3,6 +3,8 @@
 #include "BREMSConfig.h"
 #include "BREMSStructs.h"
 #include "BufferedLogger.h"
+#include "CommandProcessor.h"
+#include "PreferenceWriter.h"
 #include "Filter.h"
 
 #include "config_pins.h"
@@ -11,6 +13,8 @@
 #include "config_loop.h"
 #include "config_logging.h"
 
+#include "prefs.h"
+
 void BREMSConfigRegisters(IOStruct *io) {
     RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
     RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN;
@@ -88,22 +92,7 @@
 }
 
 void BREMSStartupMsg(ReadDataStruct *read, Serial *pc) {
-    pc->printf("%s\n\r\n\r", "FOC'ed in the Bot Rev A.");
-    pc->printf("%s\n\r", "====Config Data====");
-    pc->printf("Current Sensor Offset: %f mV\n\r", I_OFFSET);
-    pc->printf("Current Sensor Scale: %f mv/A\n\r", I_SCALE);
-    pc->printf("Bus Voltage: %f V\n\r", BUS_VOLTAGE);
-    pc->printf("Switching Frequency: %f KHz \n\r", F_SW / 1000.0f);
-    pc->printf("Polling Frequency: %f Hz \n\r", F_SLOW_LOOP);
-    pc->printf("Pole pairs: %d\n\r", (int) POLE_PAIRS);
-    pc->printf("Resolver lobes: %d\n\r", (int) RESOLVER_LOBES);
-    pc->printf("Loop KP_D: %f\n\r", KP_D);
-    pc->printf("Loop KI_D: %f\n\r", KI_D);
-    pc->printf("Loop KP_Q: %f\n\r", KP_Q);
-    pc->printf("Loop KI_Q: %f\n\r", KI_Q);
-    pc->printf("Ia offset: %f mV\n\r", read->ia_supp_offset);
-    pc->printf("Ib offset: %f mV\n\r", read->ib_supp_offset);
-    pc->printf("\n\r");
+    pc->printf("%s\n", "FOC'ed in the Bot Rev A.");
 }
 
 void BREMSInit(IOStruct *io, ReadDataStruct *read, FOCStruct *foc, ControlStruct *control, bool tune) {    
@@ -111,12 +100,22 @@
     io->en->write(0);
     
     io->pc = new Serial(USBTX, USBRX);
-    io->pc->baud(921600);
+    io->pc->baud(115200);
     
     io->pos = new PositionSensorEncoder(CPR, 0);
     io->logger = new BufferedLogger(LOG_PACKET_SIZE, (LOG_PAGE_SIZE-LOG_HEADER_SIZE)/(LOG_PACKET_SIZE+1), LOG_TX, LOG_RX, LOG_BAUD_RATE);
+    io->pref = new PreferenceWriter(6);
 
     wait_ms(750);
+    
+    BREMSStartupMsg(read, io->pc);
+
+    cmd_reload(io->pc, io->pref);
+    if (_PREFS_VALID == 0) {
+        io->pc->printf("%s\n", "Stored config invalid");
+        cmd_defaults(io->pc);
+        io->pc->printf("%s\n", "You should probably at least set throttle and current limits!");
+    }
             
     io->throttle_in = new PwmIn(TH_PIN, TH_LIMIT_LOW, TH_LIMIT_HIGH);
     
@@ -132,7 +131,7 @@
     BREMSConfigRegisters(io);
     wait_ms(250);
     BREMSZeroCurrent(read);
-    BREMSStartupMsg(read, io->pc);
+    io->pc->printf("%s", ">");
     
     control->d_integral = 0.0f;
     control->q_integral = 0.0f;