new throttle bar :P

Dependents:   SOS_V1

Committer:
Marrkk_92
Date:
Tue May 23 21:40:31 2017 +0000
Revision:
9:39b8675b6176
Parent:
8:0a9f811c3ae6
update for temp bars and comment-out updateThrottleBar

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zathorix 0:0afde8480a61 1 #ifndef DASH_H
zathorix 0:0afde8480a61 2 #include "mbed.h"
zathorix 0:0afde8480a61 3 #include "pinout.h"
zathorix 0:0afde8480a61 4 #include "oled_characters.h" //all OLED chars + logos
zathorix 0:0afde8480a61 5
zathorix 0:0afde8480a61 6 #define MENU_TIMEOUT_TIME 5.0 //menu timeout in seconds [s]
zathorix 0:0afde8480a61 7 #define MAX_POWER_IN 1500 //max power in for power bars [W]
zathorix 0:0afde8480a61 8 #define MAX_POWER_OUT 2000 //max power out for power bars [W]
zathorix 0:0afde8480a61 9 #define MAX_TEMP_MOTOR 80 //alert when exceeding temp ['C]
zathorix 0:0afde8480a61 10 #define MAX_TEMP_BATTERY 60 //alert when exceeding temp ['C]
zathorix 0:0afde8480a61 11 #define MAX_REVERSE_VELOCITY 20 //max velocity for allowing reverse [km/h]
zathorix 0:0afde8480a61 12 #define MIN_SOLAR_PANEL_VOLTAGE 30 //min voltage provided by solar panels [V]
zathorix 0:0afde8480a61 13 #define MIN_FLY_VELOCITY 15 //min velocity to request fly [km/h]
zathorix 0:0afde8480a61 14 #define BATTERY_LOW_ALERT 10 //min battery percentage [%, min]
zathorix 0:0afde8480a61 15
zathorix 0:0afde8480a61 16 #define PI 3.141592
zathorix 0:0afde8480a61 17 #define SPI_FREQUENCY 5000000
zathorix 0:0afde8480a61 18
zathorix 0:0afde8480a61 19 class Dashboard {
zathorix 0:0afde8480a61 20
zathorix 0:0afde8480a61 21 private:
zathorix 0:0afde8480a61 22
zathorix 0:0afde8480a61 23 void drawPixel(int screen_number, uint8_t row, uint8_t col, uint8_t brightness);
zathorix 0:0afde8480a61 24 void writeNumber(int screen_number, int input_number, char row, char col, int digits, bool large);
zathorix 0:0afde8480a61 25 void writeLetter(int screen_number, char input, int row, int col);
zathorix 0:0afde8480a61 26 void drawBitmap(int screen_number, int number, char row, char col, int width, int height);
zathorix 0:0afde8480a61 27 void updateBatteryBar(int screen_number, int percentage, int row, int col, int width, int height);
zathorix 0:0afde8480a61 28
zathorix 0:0afde8480a61 29 public:
zathorix 0:0afde8480a61 30
zathorix 0:0afde8480a61 31 Dashboard(void);
zathorix 0:0afde8480a61 32
zathorix 0:0afde8480a61 33 void clearDisplay(int screen_number);
zathorix 0:0afde8480a61 34
zathorix 0:0afde8480a61 35 void command(int screen_number, uint8_t c);
zathorix 0:0afde8480a61 36
zathorix 0:0afde8480a61 37 void data(int screen_number, uint8_t c);
zathorix 0:0afde8480a61 38
zathorix 0:0afde8480a61 39 void powerOnOLED(int screen_number);
zathorix 0:0afde8480a61 40
zathorix 0:0afde8480a61 41 void welcomeScreen();
zathorix 0:0afde8480a61 42
zathorix 0:0afde8480a61 43 void resetOLED();
Marrkk_92 6:051411e193b0 44
Marrkk_92 8:0a9f811c3ae6 45 void updateTemperatureBars(int motor_temperature, int battery_temperature);
Marrkk_92 8:0a9f811c3ae6 46
Marrkk_92 6:051411e193b0 47 void updateThrottleBar(int screen_number, int percentage, int row, int col, int width, int height);
zathorix 0:0afde8480a61 48
zathorix 0:0afde8480a61 49 void displayData1(int rpm_motor, int battery_temperature, int motor_temperature, int voltage_in, int power_out, int power_in);
zathorix 0:0afde8480a61 50
zathorix 0:0afde8480a61 51 void displayData2(int battery_voltage, int battery_temperature, int motor_temperature, int voltage_in, int power_out, int power_in);
zathorix 0:0afde8480a61 52
zathorix 0:0afde8480a61 53 void checkForErrors(int current_menu, int velocity, int battery_temperature, int motor_temperature, int battery_percentage_left, int battery_minutes_left);
zathorix 0:0afde8480a61 54
zathorix 0:0afde8480a61 55 void showBatteryMinutesLeft(int battery_minutes_left);
zathorix 0:0afde8480a61 56
zathorix 4:f6aa318ecda0 57 void showBatteryPercentageLeft(unsigned char battery_percentage_left);
zathorix 0:0afde8480a61 58
zathorix 0:0afde8480a61 59 void showRaceMinutesDone(int race_minutes_done);
zathorix 0:0afde8480a61 60
zathorix 0:0afde8480a61 61 void showRaceMinutesLeft(int race_minutes_left);
zathorix 0:0afde8480a61 62
zathorix 0:0afde8480a61 63 void showRacePercentageLeft(int race_percentage_left);
zathorix 0:0afde8480a61 64
zathorix 0:0afde8480a61 65 void checkTransmitter(bool transmitting);
zathorix 0:0afde8480a61 66
zathorix 4:f6aa318ecda0 67 void displayTime(long long int time);
zathorix 0:0afde8480a61 68
zathorix 0:0afde8480a61 69 void displayAdvisedThrottle(int advised_throttle_power);
zathorix 0:0afde8480a61 70
zathorix 0:0afde8480a61 71 void displayThrottle(int throttle_power, bool reverse);
zathorix 0:0afde8480a61 72
zathorix 0:0afde8480a61 73 void displayVelocity(int velocity);
zathorix 0:0afde8480a61 74
zathorix 0:0afde8480a61 75 void updateProgressCircle(int screen_number, int percentage);
zathorix 0:0afde8480a61 76
zathorix 0:0afde8480a61 77 void updatePowerBars(int power_out, int power_in);
zathorix 0:0afde8480a61 78
zathorix 0:0afde8480a61 79 };
zathorix 0:0afde8480a61 80
zathorix 0:0afde8480a61 81
zathorix 0:0afde8480a61 82 #endif