Konacan kod

Dependencies:   BSP_DISCO_F469NIa EEPROM_DISCO_F469NI LCD_DISCO_F469NIa SD_DISCO_F469NI mbed

Fork of IntegrationCAN by Nenad Djalovic

Committer:
formulas
Date:
Wed May 16 14:48:37 2018 +0000
Revision:
0:38c3afd99aeb
Child:
2:f54f01527ebb
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
formulas 0:38c3afd99aeb 1 #include "screen_library.h"
formulas 0:38c3afd99aeb 2
formulas 0:38c3afd99aeb 3 extern LCD_DISCO_F469NI lcd;
formulas 0:38c3afd99aeb 4 extern SD_DISCO_F469NI sd;
formulas 0:38c3afd99aeb 5 extern DigitalIn change_screen_input;
formulas 0:38c3afd99aeb 6
formulas 0:38c3afd99aeb 7 extern uint8_t screen_flag,ft_main_flag,ft_2aux_flag,change_flag;
formulas 0:38c3afd99aeb 8 extern GEAR *Gears;
formulas 0:38c3afd99aeb 9 extern IMAGE LogoBig,LogoSmall,Branko,NewYearCongat;
formulas 0:38c3afd99aeb 10
formulas 0:38c3afd99aeb 11 extern uint16_t Rpm0, Speed0, Gear0, Water_Temp0, Oil_Temp0, TPS0, Brakes0, Oil_P0, MAP0, Air_Temp0, Lambda0, Volts0, Crank0;
formulas 0:38c3afd99aeb 12 extern uint16_t Rpm, Speed, Gear, Water_Temp, Oil_Temp, TPS, Brakes, Oil_P, MAP, Air_Temp, Lambda, Volts, Crank;
formulas 0:38c3afd99aeb 13 extern int FL_LVDT0, FR_LVDT0, RL_LVDT0, RR_LVDT0, FL_LVDT, FR_LVDT, RL_LVDT, RR_LVDT;
formulas 0:38c3afd99aeb 14 extern int FL_LVDT_Ref,FR_LVDT_Ref,RL_LVDT_Ref,RR_LVDT_Ref;
formulas 0:38c3afd99aeb 15 extern int LVDT_Max;
formulas 0:38c3afd99aeb 16
formulas 0:38c3afd99aeb 17 void ChangeCommand(){ //Interrupt function for registering change command
formulas 0:38c3afd99aeb 18 change_flag=1;
formulas 0:38c3afd99aeb 19 };
formulas 0:38c3afd99aeb 20
formulas 0:38c3afd99aeb 21 void ChangeScreen(){ //Changes the screen if needed.
formulas 0:38c3afd99aeb 22 switch(screen_flag){
formulas 0:38c3afd99aeb 23 case(3):
formulas 0:38c3afd99aeb 24 screen_flag=1; //Change flag to new value.
formulas 0:38c3afd99aeb 25 ft_main_flag=1; //Set flag which point that Main screne is entered.
formulas 0:38c3afd99aeb 26 SetMain(); //Set Main Screne.
formulas 0:38c3afd99aeb 27 break;
formulas 0:38c3afd99aeb 28 case(1):
formulas 0:38c3afd99aeb 29 screen_flag=2;
formulas 0:38c3afd99aeb 30 SetFirstAux();
formulas 0:38c3afd99aeb 31 break;
formulas 0:38c3afd99aeb 32 case(2):
formulas 0:38c3afd99aeb 33 screen_flag=3;
formulas 0:38c3afd99aeb 34 SetSecondAux();
formulas 0:38c3afd99aeb 35 break;
formulas 0:38c3afd99aeb 36 };
formulas 0:38c3afd99aeb 37 change_flag=0;
formulas 0:38c3afd99aeb 38 };
formulas 0:38c3afd99aeb 39
formulas 0:38c3afd99aeb 40
formulas 0:38c3afd99aeb 41
formulas 0:38c3afd99aeb 42 void SetIntro(){ // Set Intro screen
formulas 0:38c3afd99aeb 43 DrawRGBImage(LogoBig,0,0);
formulas 0:38c3afd99aeb 44 wait(0.5);
formulas 0:38c3afd99aeb 45 /*lcd.SetTextColor(LCD_COLOR_WHITE);
formulas 0:38c3afd99aeb 46 lcd.FillRect(0,0,800,480);
formulas 0:38c3afd99aeb 47 PrintString(" Srecnu Novu godinu ",50,70,50,LCD_COLOR_RED);
formulas 0:38c3afd99aeb 48 PrintString(" i Bozicne praznike ",50,80,110,LCD_COLOR_RED);
formulas 0:38c3afd99aeb 49 PrintString(" zeli Vam ",50,70,170,LCD_COLOR_RED);
formulas 0:38c3afd99aeb 50 PrintString("Podtim za Elektroniku",50,50,230,LCD_COLOR_RED);
formulas 0:38c3afd99aeb 51 wait(5);
formulas 0:38c3afd99aeb 52 DrawRGBImage(NewYearCongat,0,0);
formulas 0:38c3afd99aeb 53 wait(10);*/
formulas 0:38c3afd99aeb 54 };
formulas 0:38c3afd99aeb 55
formulas 0:38c3afd99aeb 56 void SetMain(){ // Set Main screen
formulas 0:38c3afd99aeb 57 //Erase previous screen
formulas 0:38c3afd99aeb 58 lcd.SetTextColor(LCD_COLOR_WHITE);
formulas 0:38c3afd99aeb 59 lcd.FillRect(0,0,800,480);
formulas 0:38c3afd99aeb 60 lcd.SetTextColor(LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 61 //Draw Main screen
formulas 0:38c3afd99aeb 62 DrawSpeedMeter();
formulas 0:38c3afd99aeb 63 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
formulas 0:38c3afd99aeb 64 lcd.SetFont(&Font24);
formulas 0:38c3afd99aeb 65 lcd.DisplayStringAt(30,170,(uint8_t*)"Oil Temp",LEFT_MODE);
formulas 0:38c3afd99aeb 66 lcd.DisplayStringAt(30,320,(uint8_t*)"Water Temp",LEFT_MODE);
formulas 0:38c3afd99aeb 67 lcd.DisplayStringAt(584,170,(uint8_t*)"TPS",LEFT_MODE);
formulas 0:38c3afd99aeb 68 lcd.SetTextColor(LCD_COLOR_DARKRED);
formulas 0:38c3afd99aeb 69 lcd.FillRect(560,340,230,68);
formulas 0:38c3afd99aeb 70 lcd.SetBackColor(LCD_COLOR_DARKRED);
formulas 0:38c3afd99aeb 71 PrintString("BRAKE",50,575,350,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 72 lcd.SetBackColor(LCD_COLOR_WHITE);
formulas 0:38c3afd99aeb 73
formulas 0:38c3afd99aeb 74 //Display initial values
formulas 0:38c3afd99aeb 75 PrintChar(Gears[Gear],GearXPos,GearYPos,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 76 SetNumber(Oil_Temp,100,OilTempXPos,OilTempYPos,3,0,0);
formulas 0:38c3afd99aeb 77 SetNumber(Water_Temp,100,WaterTempXPos,WaterTempYPos,3,0,0);
formulas 0:38c3afd99aeb 78 SetNumber(TPS,100,TPSXPos,TPSYPos,3,0,0);
formulas 0:38c3afd99aeb 79 BrakeSignal(Brakes);
formulas 0:38c3afd99aeb 80 };
formulas 0:38c3afd99aeb 81
formulas 0:38c3afd99aeb 82
formulas 0:38c3afd99aeb 83 void SetFirstAux(){ // Set First Auxiliary screen
formulas 0:38c3afd99aeb 84 // Erase previous screen
formulas 0:38c3afd99aeb 85 lcd.SetTextColor(LCD_COLOR_WHITE);
formulas 0:38c3afd99aeb 86 lcd.FillRect(0,0,800,480);
formulas 0:38c3afd99aeb 87 lcd.SetTextColor(LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 88 //Draw First Auxiliary screen
formulas 0:38c3afd99aeb 89 PrintString("Oil P",50,20,25,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 90 PrintString("MAP",50,20,100,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 91 PrintString("Air Temp",50,20,175,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 92 PrintString("Lambda",50,20,250,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 93 PrintString("Volts",50,20,325,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 94 PrintString("Crank",50,20,400,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 95 PrintString("kPa",50,470,25,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 96 PrintString("kPa",50,470,100,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 97 PrintString("C",50,470,175,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 98 PrintString("Ratio",50,470,250,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 99 PrintString("V",50,470,325,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 100 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
formulas 0:38c3afd99aeb 101 //Display initial values
formulas 0:38c3afd99aeb 102 SetNumber(Oil_P,50,OilPXPos,OilPYPos,3,0,0);
formulas 0:38c3afd99aeb 103 SetNumber(MAP,50,MAPXPos,MAPYPos,3,0,0);
formulas 0:38c3afd99aeb 104 SetNumber(Air_Temp,50,AirTempXPos,AirTempYPos,3,0,0);
formulas 0:38c3afd99aeb 105 SetNumber(Lambda,50,LambdaXPos,LambdaYPos,3,0,0);
formulas 0:38c3afd99aeb 106 SetNumber(Volts,50,VoltsXPos,VoltsYPos,3,0,0);
formulas 0:38c3afd99aeb 107 ChangeCrank(Crank);
formulas 0:38c3afd99aeb 108 };
formulas 0:38c3afd99aeb 109
formulas 0:38c3afd99aeb 110
formulas 0:38c3afd99aeb 111 void SetSecondAux(){ // Set Second Auxiliary screen
formulas 0:38c3afd99aeb 112 // Erase previous screen
formulas 0:38c3afd99aeb 113 lcd.SetTextColor(LCD_COLOR_WHITE);
formulas 0:38c3afd99aeb 114 lcd.FillRect(0,0,800,480);
formulas 0:38c3afd99aeb 115 lcd.SetTextColor(LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 116 // Draw Second Auxiliary screen
formulas 0:38c3afd99aeb 117 PrintString("LVDT Sensors",50,200,20,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 118 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
formulas 0:38c3afd99aeb 119 lcd.SetTextColor(LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 120 lcd.SetFont(&Font24);
formulas 0:38c3afd99aeb 121 lcd.DisplayStringAt(FLLVDTBarXPos+25,FLLVDTBarYPos,(uint8_t*)"FL",LEFT_MODE);
formulas 0:38c3afd99aeb 122 lcd.DisplayStringAt(FRLVDTBarXPos+25,FRLVDTBarYPos,(uint8_t*)"FR",LEFT_MODE);
formulas 0:38c3afd99aeb 123 lcd.DisplayStringAt(RLLVDTBarXPos+25,RLLVDTBarYPos,(uint8_t*)"BL",LEFT_MODE);
formulas 0:38c3afd99aeb 124 lcd.DisplayStringAt(RRLVDTBarXPos+25,RRLVDTBarYPos,(uint8_t*)"BR",LEFT_MODE);
formulas 0:38c3afd99aeb 125 // Display initial values
formulas 0:38c3afd99aeb 126 SetNumber(FL_LVDT,100,FLLVDTXPos,FLLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 127 SetNumber(FR_LVDT,100,FRLVDTXPos,FRLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 128 SetNumber(RL_LVDT,100,RLLVDTXPos,RLLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 129 SetNumber(RR_LVDT,100,RRLVDTXPos,RRLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 130 UpdateLVDTScale(FL_LVDT,-100,FLLVDTBarXPos,FLLVDTBarYPos);
formulas 0:38c3afd99aeb 131 UpdateLVDTScale(FR_LVDT,-100,FRLVDTBarXPos,FRLVDTBarYPos);
formulas 0:38c3afd99aeb 132 UpdateLVDTScale(RL_LVDT,-100,RLLVDTBarXPos,RLLVDTBarYPos);
formulas 0:38c3afd99aeb 133 UpdateLVDTScale(RR_LVDT,-100,RRLVDTBarXPos,RRLVDTBarYPos);
formulas 0:38c3afd99aeb 134
formulas 0:38c3afd99aeb 135 };
formulas 0:38c3afd99aeb 136
formulas 0:38c3afd99aeb 137
formulas 0:38c3afd99aeb 138 void MainUpdate(){ // Update information in Main screen
formulas 0:38c3afd99aeb 139 lcd.SetTextColor(LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 140 switch(ft_main_flag){ // Check is main update is first time entered. If yes set Speed0 to 0 to acordingly draw update.
formulas 0:38c3afd99aeb 141 case(0):break;
formulas 0:38c3afd99aeb 142 case(1):
formulas 0:38c3afd99aeb 143 Speed0=0;
formulas 0:38c3afd99aeb 144 ft_main_flag=0; //Set flag to 0.
formulas 0:38c3afd99aeb 145 break;
formulas 0:38c3afd99aeb 146 };
formulas 0:38c3afd99aeb 147 if(Speed!=Speed0){ //Check is value is changed. If it is then update it on screen.
formulas 0:38c3afd99aeb 148 UpdateSpeedMeter(Speed0,Speed-Speed0);
formulas 0:38c3afd99aeb 149 };
formulas 0:38c3afd99aeb 150 if(Gear!=Gear0){
formulas 0:38c3afd99aeb 151 PrintChar(Gears[Gear],GearXPos,GearYPos,LCD_COLOR_BLACK);
formulas 0:38c3afd99aeb 152 };
formulas 0:38c3afd99aeb 153 if(Oil_Temp!=Oil_Temp0){
formulas 0:38c3afd99aeb 154 ChangeNumber(Oil_Temp,Oil_Temp0,100,OilTempXPos,OilTempYPos,3,0,0);
formulas 0:38c3afd99aeb 155 };
formulas 0:38c3afd99aeb 156 if(Water_Temp!=Water_Temp0){
formulas 0:38c3afd99aeb 157 ChangeNumber(Water_Temp,Water_Temp0,100,WaterTempXPos,WaterTempYPos,3,0,0);
formulas 0:38c3afd99aeb 158 };
formulas 0:38c3afd99aeb 159 if(TPS!=TPS0){
formulas 0:38c3afd99aeb 160 ChangeNumber(TPS,TPS0,100,TPSXPos,TPSYPos,3,0,0);
formulas 0:38c3afd99aeb 161 };
formulas 0:38c3afd99aeb 162 if(Brakes!=Brakes0){
formulas 0:38c3afd99aeb 163 BrakeSignal(Brakes);
formulas 0:38c3afd99aeb 164 };
formulas 0:38c3afd99aeb 165 };
formulas 0:38c3afd99aeb 166
formulas 0:38c3afd99aeb 167
formulas 0:38c3afd99aeb 168 void FirstAuxUpdate(){ // Update information in First Auxiliary screen
formulas 0:38c3afd99aeb 169 if (Oil_P!=Oil_P0){
formulas 0:38c3afd99aeb 170 ChangeNumber(Oil_P,Oil_P0,50,OilPXPos,OilPYPos,3,0,0);
formulas 0:38c3afd99aeb 171 };
formulas 0:38c3afd99aeb 172 if (MAP!=MAP0){
formulas 0:38c3afd99aeb 173 ChangeNumber(MAP,MAP0,50,MAPXPos,MAPYPos,3,0,0);
formulas 0:38c3afd99aeb 174 };
formulas 0:38c3afd99aeb 175 if (Air_Temp!=Air_Temp0){
formulas 0:38c3afd99aeb 176 ChangeNumber(Air_Temp,Air_Temp0,50,AirTempXPos,AirTempYPos,3,0,0);
formulas 0:38c3afd99aeb 177 };
formulas 0:38c3afd99aeb 178 if (Lambda!=Lambda0){
formulas 0:38c3afd99aeb 179 ChangeNumber(Lambda,Lambda0,50,LambdaXPos,LambdaYPos,3,0,0);
formulas 0:38c3afd99aeb 180 };
formulas 0:38c3afd99aeb 181 if (Volts!=Volts0){
formulas 0:38c3afd99aeb 182 ChangeNumber(Volts,Volts0,50,VoltsXPos,VoltsYPos,3,0,0);
formulas 0:38c3afd99aeb 183 };
formulas 0:38c3afd99aeb 184 if (Crank!=Crank0){
formulas 0:38c3afd99aeb 185 ChangeCrank(Crank);
formulas 0:38c3afd99aeb 186 };
formulas 0:38c3afd99aeb 187 };
formulas 0:38c3afd99aeb 188
formulas 0:38c3afd99aeb 189 void SecondAuxUpdate(){ // Update information in Second Auxiliary screen
formulas 0:38c3afd99aeb 190 switch(ft_2aux_flag){ //Same as in Main.
formulas 0:38c3afd99aeb 191 case(0):break;
formulas 0:38c3afd99aeb 192 case(1):
formulas 0:38c3afd99aeb 193 FL_LVDT0=0;
formulas 0:38c3afd99aeb 194 FR_LVDT0=0;
formulas 0:38c3afd99aeb 195 RL_LVDT0=0;
formulas 0:38c3afd99aeb 196 RR_LVDT0=0;
formulas 0:38c3afd99aeb 197 ft_2aux_flag=0;
formulas 0:38c3afd99aeb 198 break;
formulas 0:38c3afd99aeb 199 };
formulas 0:38c3afd99aeb 200
formulas 0:38c3afd99aeb 201 if(FL_LVDT!=FL_LVDT0){
formulas 0:38c3afd99aeb 202 ChangeNumber(FL_LVDT,FL_LVDT0,100,FLLVDTXPos,FLLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 203 UpdateLVDTScale(FL_LVDT,FL_LVDT0,FLLVDTBarXPos,FLLVDTBarYPos);
formulas 0:38c3afd99aeb 204 };
formulas 0:38c3afd99aeb 205 if(FR_LVDT!=FR_LVDT0){
formulas 0:38c3afd99aeb 206 ChangeNumber(FR_LVDT,FR_LVDT0,100,FRLVDTXPos,FRLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 207 UpdateLVDTScale(FR_LVDT,FR_LVDT0,FRLVDTBarXPos,FRLVDTBarYPos);
formulas 0:38c3afd99aeb 208 };
formulas 0:38c3afd99aeb 209 if(RL_LVDT!=RL_LVDT0){
formulas 0:38c3afd99aeb 210 ChangeNumber(RL_LVDT,RL_LVDT0,100,RLLVDTXPos,RLLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 211 UpdateLVDTScale(RL_LVDT,RL_LVDT0,RLLVDTBarXPos,RLLVDTBarYPos);
formulas 0:38c3afd99aeb 212 };
formulas 0:38c3afd99aeb 213 if(RR_LVDT!=RR_LVDT0){
formulas 0:38c3afd99aeb 214 ChangeNumber(RR_LVDT,RR_LVDT0,100,RRLVDTXPos,RRLVDTYPos,3,0,1);
formulas 0:38c3afd99aeb 215 UpdateLVDTScale(RR_LVDT,RR_LVDT0,RRLVDTBarXPos,RRLVDTBarYPos);
formulas 0:38c3afd99aeb 216 };
formulas 0:38c3afd99aeb 217 };