Konacan kod

Dependencies:   BSP_DISCO_F469NIa LCD_DISCO_F469NIa SD_DISCO_F469NI mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main1.cpp Source File

main1.cpp

00001 /*#include "mbed.h"
00002 #include "functions.h"
00003 
00004 LCD_DISCO_F469NI lcd;
00005 SD_DISCO_F469NI sd;
00006 Serial pc(USBTX, USBRX);
00007 CAN can(PB_5, PB_13);
00008 DigitalIn changescreen_command(D0);
00009 
00010 int can_data;
00011 int RPM;
00012 extern GEAR *Gears;
00013 extern IMAGE LogoBig,LogoSmall,Branko;
00014 
00015 void MainScreen();
00016 void FirstAuxScreen();
00017 void SecondAuxScreen();
00018 
00019 int main(){
00020     DrawRGBImage(LogoBig,0,0);
00021     wait(0.5);
00022     lcd.SetTextColor(LCD_COLOR_WHITE);
00023     lcd.FillRect(0,0,800,480);
00024     MainScreen();
00025 };
00026     
00027     
00028 void MainScreen(){
00029     lcd.SetTextColor(LCD_COLOR_BLACK);
00030     DrawSpeedMeter();
00031     DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
00032     lcd.SetFont(&Font24);
00033     lcd.DisplayStringAt(30,170,(uint8_t*)"Oil Temp",LEFT_MODE);
00034     lcd.DisplayStringAt(30,320,(uint8_t*)"Water Temp",LEFT_MODE);
00035     lcd.DisplayStringAt(584,170,(uint8_t*)"TPS",LEFT_MODE);
00036     lcd.SetTextColor(LCD_COLOR_DARKRED);
00037     lcd.FillRect(560,340,230,68);
00038     lcd.SetBackColor(LCD_COLOR_DARKRED);
00039     PrintString("BRAKE",50,575,350,LCD_COLOR_BLACK);
00040     lcd.SetBackColor(LCD_COLOR_WHITE);
00041 
00042     int Vin,V0=0,OilTemp,OilTemp0=0,WaterTemp,WaterTemp0=0,TPS,TPS0=0,Brake,Brake0=0,Gear,Gear0;
00043     
00044     CANMessage msg;
00045     
00046     //inicijalne vrednosti prikazane na ekranu
00047     PrintChar(Gears[0],GearXPos,GearYPos,LCD_COLOR_BLACK);
00048     ChangeNumber(0,111,100,OilTempXPos,OilTempYPos);
00049     ChangeNumber(0,111,100,WaterTempXPos,WaterTempYPos);
00050     ChangeNumber(0,111,100,TPSXPos,TPSYPos);
00051     BrakeSignal(0,1);
00052     wait(1);
00053     while(changescreen_command.read()==0){
00054         if(can.read(msg)){
00055             can_data=msg.data[0];
00056             lcd.SetTextColor(LCD_COLOR_BLACK);
00057             if (msg.id==SPEED_ID){
00058                 Vin=(int)can_data;
00059                 UpdateSpeedMeter(V0,Vin-V0);
00060                 V0=Vin;
00061             }else if (msg.id==GEAR_ID){
00062                 Gear=can_data;
00063                 if(Gear!=Gear0){
00064                     Gear=can_data;
00065                     printf("%d\n",Gear);
00066                     PrintChar(Gears[Gear],GearXPos,GearYPos,LCD_COLOR_BLACK);
00067                     Gear0=Gear;
00068                 };                    
00069             }else if (msg.id==OIL_TEMP_ID){
00070                 OilTemp=can_data;
00071                 ChangeNumber(OilTemp,OilTemp0,100,OilTempXPos,OilTempYPos);
00072                 OilTemp0=OilTemp;
00073             }else if (msg.id==WATER_TEMP_ID){
00074                 WaterTemp=can_data;
00075                 ChangeNumber(WaterTemp,WaterTemp0,100,WaterTempXPos,WaterTempYPos);
00076                 WaterTemp0=WaterTemp;
00077             }else if (msg.id==TPS_ID){
00078                 TPS=can_data;
00079                 ChangeNumber(TPS,TPS0,100,TPSXPos,TPSYPos);
00080                 TPS0=TPS;
00081             }else if (msg.id==BRAKE_ID){
00082                 Brake=can_data;
00083                 BrakeSignal(Brake,Brake0);
00084                 Brake0=Brake;
00085             };
00086         };
00087     };
00088     lcd.SetTextColor(LCD_COLOR_WHITE);
00089     lcd.FillRect(0,0,800,480);
00090     FirstAuxScreen();
00091     lcd.SetTextColor(LCD_COLOR_BLACK);
00092 };
00093 
00094 void FirstAuxScreen(){
00095     PrintString("Oil P",50,20,25,LCD_COLOR_BLACK);
00096     PrintString("MAP",50,20,100,LCD_COLOR_BLACK);
00097     PrintString("Air Temp",50,20,175,LCD_COLOR_BLACK);
00098     PrintString("Lambda",50,20,250,LCD_COLOR_BLACK);
00099     PrintString("Volts",50,20,325,LCD_COLOR_BLACK);
00100     PrintString("Crank",50,20,400,LCD_COLOR_BLACK);
00101     PrintString("kPa",50,470,25,LCD_COLOR_BLACK);
00102     PrintString("kPa",50,470,100,LCD_COLOR_BLACK);
00103     PrintString("C",50,470,175,LCD_COLOR_BLACK);
00104     PrintString("Ratio",50,470,250,LCD_COLOR_BLACK);
00105     PrintString("V",50,470,325,LCD_COLOR_BLACK);
00106     DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
00107     
00108     uint8_t OilP,OilP0=0,MAP,MAP0=0,AirTemp,AirTemp0=0,Lambda,Lambda0=0,Volts,Volts0=0,Crank,Crank0=1;
00109     
00110     CANMessage msg;
00111     
00112     ChangeNumber(0,111,50,OilPXPos,OilPYPos);
00113     ChangeNumber(0,111,50,MAPXPos,MAPYPos);
00114     ChangeNumber(0,111,50,AirTempXPos,AirTempYPos);
00115     ChangeNumber(0,111,50,LambdaXPos,LambdaYPos);
00116     ChangeNumber(0,111,50,VoltsXPos,VoltsYPos);
00117         
00118     while(changescreen_command.read()==0){
00119         if(can.read(msg)){
00120             can_data=msg.data[0];
00121             lcd.SetTextColor(LCD_COLOR_BLACK);
00122             if (msg.id==OIL_P_ID){
00123                 OilP=can_data;
00124                 ChangeNumber(OilP,OilP0,100,OilPXPos,OilPYPos);
00125                 OilP0=OilP;
00126             }else if (msg.id==MAP_ID){
00127                 MAP=can_data;
00128                 ChangeNumber(MAP,MAP0,100,MAPXPos,MAPYPos);
00129                 MAP0=MAP;
00130             }else if (msg.id==AIR_TEMP_ID){
00131                 AirTemp=can_data;
00132                 ChangeNumber(AirTemp,AirTemp0,100,AirTempXPos,AirTempYPos);
00133                 AirTemp0=AirTemp;
00134             }else if (msg.id==LAMBDA_ID){
00135                 Lambda=can_data;
00136                 ChangeNumber(Lambda,Lambda0,100,LambdaXPos,LambdaYPos);
00137                 Lambda0=Lambda;
00138             }else if (msg.id==VOLTS_ID){
00139                 Volts=can_data;
00140                 ChangeNumber(Volts,Volts0,100,VoltsXPos,VoltsYPos);
00141                 Volts0=Volts;
00142             }else if (msg.id==CRANK_ID){
00143                 Crank=can_data;
00144                 if(Crank!=Crank0){
00145                     if(Crank==1){
00146                         PrintString("ERROR",50,CrankXPos,CrankYPos,LCD_COLOR_RED);
00147                     }else if(Crank==0){
00148                         PrintString("OK",50,CrankXPos,CrankYPos,LCD_COLOR_RED); 
00149                     };
00150                 };   
00151                 Crank0=Crank;
00152             };
00153         };
00154     };
00155     lcd.SetTextColor(LCD_COLOR_WHITE);
00156     lcd.FillRect(0,0,800,480);
00157     SecondAuxScreen();
00158 
00159 };
00160 
00161 void SecondAuxScreen(){
00162     PrintString("LVDT Sensors",50,200,20,LCD_COLOR_BLACK);
00163     DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
00164     lcd.SetTextColor(LCD_COLOR_BLACK);
00165     lcd.SetFont(&Font24);
00166     lcd.DisplayStringAt(FLLVDTBarXPos+25,FLLVDTBarYPos,(uint8_t*)"FL",LEFT_MODE);
00167     lcd.DisplayStringAt(FRLVDTBarXPos+25,FRLVDTBarYPos,(uint8_t*)"FR",LEFT_MODE);
00168     lcd.DisplayStringAt(BLLVDTBarXPos+25,BLLVDTBarYPos,(uint8_t*)"BL",LEFT_MODE);
00169     lcd.DisplayStringAt(BRLVDTBarXPos+25,BRLVDTBarYPos,(uint8_t*)"BR",LEFT_MODE);
00170     
00171     uint8_t FLLVDT,FLLVDT0=0,FRLVDT,FRLVDT0=0,BLLVDT,BLLVDT0=0,BRLVDT,BRLVDT0=0;    
00172     
00173     CANMessage msg;
00174     
00175     ChangeNumber(0,111,100,FLLVDTXPos,FLLVDTYPos);
00176     ChangeNumber(0,111,100,FRLVDTXPos,FRLVDTYPos);
00177     ChangeNumber(0,111,100,BLLVDTXPos,BLLVDTYPos);
00178     ChangeNumber(0,111,100,BRLVDTXPos,BRLVDTYPos);
00179     
00180     while(changescreen_command.read()==0){
00181         if(can.read(msg)){
00182             can_data=msg.data[0];
00183             if(msg.id==FL_LVDT_ID){
00184                 FLLVDT=can_data;
00185                 ChangeNumber(FLLVDT,FLLVDT0,100,FLLVDTXPos,FLLVDTYPos);
00186                 UpdateLVDTScale(FLLVDT,FLLVDT0,FLLVDTBarXPos,FLLVDTBarYPos);
00187                 FLLVDT0=FLLVDT;
00188             }else if(msg.id==FR_LVDT_ID){
00189                 FRLVDT=can_data;
00190                 ChangeNumber(FRLVDT,FRLVDT0,100,FRLVDTXPos,FRLVDTYPos);
00191                 UpdateLVDTScale(FRLVDT,FRLVDT0,FRLVDTBarXPos,FRLVDTBarYPos);
00192                 FRLVDT0=FRLVDT;
00193             }else if(msg.id==BL_LVDT_ID){
00194                 BLLVDT=can_data;
00195                 ChangeNumber(BLLVDT,BLLVDT0,100,BLLVDTXPos,BLLVDTYPos);
00196                 UpdateLVDTScale(BLLVDT,BLLVDT0,BLLVDTBarXPos,BLLVDTBarYPos);
00197                 BLLVDT0=BLLVDT;
00198             }else if(msg.id==BR_LVDT_ID){
00199                 BRLVDT=can_data;
00200                 ChangeNumber(BRLVDT,BRLVDT0,100,BRLVDTXPos,BRLVDTYPos);
00201                 UpdateLVDTScale(BRLVDT,BRLVDT0,BRLVDTBarXPos,BRLVDTBarYPos);
00202                 BRLVDT0=BRLVDT;
00203             };
00204         };
00205     };
00206     lcd.SetTextColor(LCD_COLOR_WHITE);
00207     lcd.FillRect(0,0,800,480);
00208     lcd.SetTextColor(LCD_COLOR_BLACK);
00209     MainScreen();
00210 };*/