dashboardv4solarboat

Dependencies:   mbed

Fork of mbed_blinky by Mbed

Revision:
17:f8d3d1f0d8d1
Parent:
16:21658c9e697c
--- a/main.cpp	Tue May 02 17:25:18 2017 +0000
+++ b/main.cpp	Sun May 21 19:33:42 2017 +0000
@@ -1,7 +1,7 @@
-#include "mbed.h"              
-#include "oled_driver.h"            
+#include "mbed.h"
+#include "oled_driver.h"
 
-#define MENU_TIMEOUT_TIME       50.0            //menu timeout in seconds                   [s]
+#define MENU_TIMEOUT_TIME       5.0             //menu timeout in seconds                   [s]
 #define MAX_POWER_IN            1500            //max power in for power bars               [W]
 #define MAX_POWER_OUT           2000            //max power out for power bars              [W]
 #define MAX_TEMP_MOTOR          80              //alert when exceeding temp                 ['C]
@@ -11,11 +11,10 @@
 #define MIN_FLY_VELOCITY        15              //min velocity to request fly               [km/h]
 #define BATTERY_LOW_ALERT       10              //min battery percentage                    [%, min]
 
-//digital and analog inputs
-DigitalIn reverse_button(D14);
-DigitalIn menu_button(D15);
-DigitalIn fly_button(D12);   
-AnalogIn analog_throttle(A5);      
+DigitalIn menu_button(D0);
+DigitalIn fly_button(D0);
+DigitalIn reverse_button(D0);
+AnalogIn analog_throttle(A0);
 
 //global variables
 int battery_percentage_left = 0;
@@ -53,10 +52,11 @@
     clearDisplay(2);
     clearDisplay(3);
 
-    welcomeScreen();
+    //welcomeScreen();
 
     while(1) {
 
+
         //listen to menu button
         current_menu = checkIfButtonPressed(current_menu);
         //listen to steering wheel at all time
@@ -64,6 +64,7 @@
         //check for errors at all time
         checkForErrors(current_menu, velocity, battery_temperature, motor_temperature, MAX_TEMP_MOTOR, MAX_TEMP_BATTERY, battery_percentage_left, battery_minutes_left, BATTERY_LOW_ALERT);
         
+       
         switch (current_menu) {
 
             case 0:
@@ -73,21 +74,21 @@
                 showRaceMinutesDone(race_minutes_done);
                 showRaceMinutesLeft(race_minutes_left);
                 showRacePercentageLeft(race_percentage_left);
-                
+
                 //main display (2)
                 displayTime();
                 checkTransmitter(transmitting);
                 displayVelocity(velocity);
                 displayThrottle(throttle_power, reverse);
-                displayAdvisedThrottle(advised_throttle_power);
+                //displayAdvisedThrottle(advised_throttle_power);
                 updatePowerBars(power_out, power_in, MAX_POWER_OUT, MAX_POWER_IN);
-                
+
                 //circular display (3)
                 //updateProgressCircle(3, battery_percentage_left);
                 showBatteryMinutesLeft(battery_minutes_left);
                 showBatteryPercentageLeft(battery_percentage_left);
-            break;
-                
+                break;
+
             case 1:
                 //circular display (1)
                 //updateProgressCircle(1, race_percentage_left);
@@ -95,13 +96,16 @@
                 showRaceMinutesDone(race_minutes_done);
                 showRaceMinutesLeft(race_minutes_left);
                 showRacePercentageLeft(race_percentage_left);
-                
+
+                //main display (2)
+                displayData1(rpm_motor, battery_temperature, motor_temperature, voltage_in, power_out, power_in);
+
                 //circular display (3)
                 //updateProgressCircle(3, battery_percentage_left);
                 showBatteryMinutesLeft(battery_minutes_left);
                 showBatteryPercentageLeft(battery_percentage_left);
-            break;
-            
+                break;
+
             case 2:
                 //circular display (1)
                 //updateProgressCircle(1, race_percentage_left);
@@ -109,35 +113,18 @@
                 showRaceMinutesDone(race_minutes_done);
                 showRaceMinutesLeft(race_minutes_left);
                 showRacePercentageLeft(race_percentage_left);
-                
+
                 //main display (2)
-                displayData1(rpm_motor, battery_temperature, motor_temperature, voltage_in, power_out, power_in);
-                
+                displayData2(battery_voltage, battery_temperature, motor_temperature, voltage_in, power_out, power_in);
+
                 //circular display (3)
                 //updateProgressCircle(3, battery_percentage_left);
                 showBatteryMinutesLeft(battery_minutes_left);
                 showBatteryPercentageLeft(battery_percentage_left);
-            break;
-
-            case 3:
-                //circular display (1)
-                //updateProgressCircle(1, race_percentage_left);
-                race_minutes_done = time(0)/60;         //TODO give starting point
-                showRaceMinutesDone(race_minutes_done);
-                showRaceMinutesLeft(race_minutes_left);
-                showRacePercentageLeft(race_percentage_left);
-                
-                //main display (2)
-                displayData2(battery_voltage, battery_temperature, motor_temperature, voltage_in, power_out, power_in);
-                
-                //circular display (3)
-                //updateProgressCircle(3, battery_percentage_left);
-                showBatteryMinutesLeft(battery_minutes_left);
-                showBatteryPercentageLeft(battery_percentage_left);
-            break;
+                break;
             default:
                 //empty, catch
-            break;
+                break;
         }
     }
 }
@@ -149,7 +136,7 @@
         menu_button_pressed = true;
         start = time(0);
         current_menu++;
-        if (current_menu > 3) current_menu = 0;
+        if (current_menu > 2) current_menu = 0;
         clearDisplay(1);
         clearDisplay(2);
         clearDisplay(3);
@@ -181,22 +168,19 @@
 
 void readEssentials()
 {
+
     //get current throttle set + adjust params  -------- DEBUG
-    throttle_power = 1000*analog_throttle;
-    
-    
-    power_out = 1.5*throttle_power;
-    power_in = 1.9*throttle_power;
-    velocity = 0.2*throttle_power;
-    battery_minutes_left = 0.1*throttle_power;
-    battery_percentage_left = 0.15*throttle_power;
-    motor_temperature = 0.5*throttle_power;
-    battery_temperature = 0.2*throttle_power;
-    battery_voltage = 300.1*throttle_power;
-    rpm_motor = throttle_power;
-    voltage_in = 200.1*throttle_power;
-    race_minutes_left = 0.13*throttle_power; 
+    //throttle_power = 500 - (500*analog_throttle);
+    power_out = 580;
+    power_in = 680;
+    velocity = 0.1*throttle_power;
+    battery_minutes_left = throttle_power/6;
+    battery_percentage_left = throttle_power/5;
+    motor_temperature = 68;
+    battery_temperature = 24;
+    battery_voltage = 45;
+    rpm_motor = 6*throttle_power;
+    voltage_in = 44;
+    race_minutes_left = 12;
     race_percentage_left = 100*race_minutes_done/(race_minutes_left+race_minutes_done);
-    if (throttle_power > 3) transmitting = true;
-    else transmitting = false;
 }