hgjh

Dependencies:   BSP_DISCO_F469NIa EEPROM_DISCO_F469NI LCD_DISCO_F469NIa SD_DISCO_F469NI mbed

Fork of IntegrationCAN_28jun by Nenad Djalovic

main1.cpp

Committer:
nemanja1994
Date:
2018-07-05
Revision:
3:a06e417a5a2c
Parent:
0:38c3afd99aeb

File content as of revision 3:a06e417a5a2c:

/*#include "mbed.h"
#include "functions.h"

LCD_DISCO_F469NI lcd;
SD_DISCO_F469NI sd;
Serial pc(USBTX, USBRX);
CAN can(PB_5, PB_13);
DigitalIn changescreen_command(D0);

int can_data;
int RPM;
extern GEAR *Gears;
extern IMAGE LogoBig,LogoSmall,Branko;

void MainScreen();
void FirstAuxScreen();
void SecondAuxScreen();

int main(){
    DrawRGBImage(LogoBig,0,0);
    wait(0.5);
    lcd.SetTextColor(LCD_COLOR_WHITE);
    lcd.FillRect(0,0,800,480);
    MainScreen();
};
    
    
void MainScreen(){
    lcd.SetTextColor(LCD_COLOR_BLACK);
    DrawSpeedMeter();
    DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
    lcd.SetFont(&Font24);
    lcd.DisplayStringAt(30,170,(uint8_t*)"Oil Temp",LEFT_MODE);
    lcd.DisplayStringAt(30,320,(uint8_t*)"Water Temp",LEFT_MODE);
    lcd.DisplayStringAt(584,170,(uint8_t*)"TPS",LEFT_MODE);
    lcd.SetTextColor(LCD_COLOR_DARKRED);
    lcd.FillRect(560,340,230,68);
    lcd.SetBackColor(LCD_COLOR_DARKRED);
    PrintString("BRAKE",50,575,350,LCD_COLOR_BLACK);
    lcd.SetBackColor(LCD_COLOR_WHITE);

    int Vin,V0=0,OilTemp,OilTemp0=0,WaterTemp,WaterTemp0=0,TPS,TPS0=0,Brake,Brake0=0,Gear,Gear0;
    
    CANMessage msg;
    
    //inicijalne vrednosti prikazane na ekranu
    PrintChar(Gears[0],GearXPos,GearYPos,LCD_COLOR_BLACK);
    ChangeNumber(0,111,100,OilTempXPos,OilTempYPos);
    ChangeNumber(0,111,100,WaterTempXPos,WaterTempYPos);
    ChangeNumber(0,111,100,TPSXPos,TPSYPos);
    BrakeSignal(0,1);
    wait(1);
    while(changescreen_command.read()==0){
        if(can.read(msg)){
            can_data=msg.data[0];
            lcd.SetTextColor(LCD_COLOR_BLACK);
            if (msg.id==SPEED_ID){
                Vin=(int)can_data;
                UpdateSpeedMeter(V0,Vin-V0);
                V0=Vin;
            }else if (msg.id==GEAR_ID){
                Gear=can_data;
                if(Gear!=Gear0){
                    Gear=can_data;
                    printf("%d\n",Gear);
                    PrintChar(Gears[Gear],GearXPos,GearYPos,LCD_COLOR_BLACK);
                    Gear0=Gear;
                };                    
            }else if (msg.id==OIL_TEMP_ID){
                OilTemp=can_data;
                ChangeNumber(OilTemp,OilTemp0,100,OilTempXPos,OilTempYPos);
                OilTemp0=OilTemp;
            }else if (msg.id==WATER_TEMP_ID){
                WaterTemp=can_data;
                ChangeNumber(WaterTemp,WaterTemp0,100,WaterTempXPos,WaterTempYPos);
                WaterTemp0=WaterTemp;
            }else if (msg.id==TPS_ID){
                TPS=can_data;
                ChangeNumber(TPS,TPS0,100,TPSXPos,TPSYPos);
                TPS0=TPS;
            }else if (msg.id==BRAKE_ID){
                Brake=can_data;
                BrakeSignal(Brake,Brake0);
                Brake0=Brake;
            };
        };
    };
    lcd.SetTextColor(LCD_COLOR_WHITE);
    lcd.FillRect(0,0,800,480);
    FirstAuxScreen();
    lcd.SetTextColor(LCD_COLOR_BLACK);
};

void FirstAuxScreen(){
    PrintString("Oil P",50,20,25,LCD_COLOR_BLACK);
    PrintString("MAP",50,20,100,LCD_COLOR_BLACK);
    PrintString("Air Temp",50,20,175,LCD_COLOR_BLACK);
    PrintString("Lambda",50,20,250,LCD_COLOR_BLACK);
    PrintString("Volts",50,20,325,LCD_COLOR_BLACK);
    PrintString("Crank",50,20,400,LCD_COLOR_BLACK);
    PrintString("kPa",50,470,25,LCD_COLOR_BLACK);
    PrintString("kPa",50,470,100,LCD_COLOR_BLACK);
    PrintString("C",50,470,175,LCD_COLOR_BLACK);
    PrintString("Ratio",50,470,250,LCD_COLOR_BLACK);
    PrintString("V",50,470,325,LCD_COLOR_BLACK);
    DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
    
    uint8_t OilP,OilP0=0,MAP,MAP0=0,AirTemp,AirTemp0=0,Lambda,Lambda0=0,Volts,Volts0=0,Crank,Crank0=1;
    
    CANMessage msg;
    
    ChangeNumber(0,111,50,OilPXPos,OilPYPos);
    ChangeNumber(0,111,50,MAPXPos,MAPYPos);
    ChangeNumber(0,111,50,AirTempXPos,AirTempYPos);
    ChangeNumber(0,111,50,LambdaXPos,LambdaYPos);
    ChangeNumber(0,111,50,VoltsXPos,VoltsYPos);
        
    while(changescreen_command.read()==0){
        if(can.read(msg)){
            can_data=msg.data[0];
            lcd.SetTextColor(LCD_COLOR_BLACK);
            if (msg.id==OIL_P_ID){
                OilP=can_data;
                ChangeNumber(OilP,OilP0,100,OilPXPos,OilPYPos);
                OilP0=OilP;
            }else if (msg.id==MAP_ID){
                MAP=can_data;
                ChangeNumber(MAP,MAP0,100,MAPXPos,MAPYPos);
                MAP0=MAP;
            }else if (msg.id==AIR_TEMP_ID){
                AirTemp=can_data;
                ChangeNumber(AirTemp,AirTemp0,100,AirTempXPos,AirTempYPos);
                AirTemp0=AirTemp;
            }else if (msg.id==LAMBDA_ID){
                Lambda=can_data;
                ChangeNumber(Lambda,Lambda0,100,LambdaXPos,LambdaYPos);
                Lambda0=Lambda;
            }else if (msg.id==VOLTS_ID){
                Volts=can_data;
                ChangeNumber(Volts,Volts0,100,VoltsXPos,VoltsYPos);
                Volts0=Volts;
            }else if (msg.id==CRANK_ID){
                Crank=can_data;
                if(Crank!=Crank0){
                    if(Crank==1){
                        PrintString("ERROR",50,CrankXPos,CrankYPos,LCD_COLOR_RED);
                    }else if(Crank==0){
                        PrintString("OK",50,CrankXPos,CrankYPos,LCD_COLOR_RED); 
                    };
                };   
                Crank0=Crank;
            };
        };
    };
    lcd.SetTextColor(LCD_COLOR_WHITE);
    lcd.FillRect(0,0,800,480);
    SecondAuxScreen();

};

void SecondAuxScreen(){
    PrintString("LVDT Sensors",50,200,20,LCD_COLOR_BLACK);
    DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos);
    lcd.SetTextColor(LCD_COLOR_BLACK);
    lcd.SetFont(&Font24);
    lcd.DisplayStringAt(FLLVDTBarXPos+25,FLLVDTBarYPos,(uint8_t*)"FL",LEFT_MODE);
    lcd.DisplayStringAt(FRLVDTBarXPos+25,FRLVDTBarYPos,(uint8_t*)"FR",LEFT_MODE);
    lcd.DisplayStringAt(BLLVDTBarXPos+25,BLLVDTBarYPos,(uint8_t*)"BL",LEFT_MODE);
    lcd.DisplayStringAt(BRLVDTBarXPos+25,BRLVDTBarYPos,(uint8_t*)"BR",LEFT_MODE);
    
    uint8_t FLLVDT,FLLVDT0=0,FRLVDT,FRLVDT0=0,BLLVDT,BLLVDT0=0,BRLVDT,BRLVDT0=0;    
    
    CANMessage msg;
    
    ChangeNumber(0,111,100,FLLVDTXPos,FLLVDTYPos);
    ChangeNumber(0,111,100,FRLVDTXPos,FRLVDTYPos);
    ChangeNumber(0,111,100,BLLVDTXPos,BLLVDTYPos);
    ChangeNumber(0,111,100,BRLVDTXPos,BRLVDTYPos);
    
    while(changescreen_command.read()==0){
        if(can.read(msg)){
            can_data=msg.data[0];
            if(msg.id==FL_LVDT_ID){
                FLLVDT=can_data;
                ChangeNumber(FLLVDT,FLLVDT0,100,FLLVDTXPos,FLLVDTYPos);
                UpdateLVDTScale(FLLVDT,FLLVDT0,FLLVDTBarXPos,FLLVDTBarYPos);
                FLLVDT0=FLLVDT;
            }else if(msg.id==FR_LVDT_ID){
                FRLVDT=can_data;
                ChangeNumber(FRLVDT,FRLVDT0,100,FRLVDTXPos,FRLVDTYPos);
                UpdateLVDTScale(FRLVDT,FRLVDT0,FRLVDTBarXPos,FRLVDTBarYPos);
                FRLVDT0=FRLVDT;
            }else if(msg.id==BL_LVDT_ID){
                BLLVDT=can_data;
                ChangeNumber(BLLVDT,BLLVDT0,100,BLLVDTXPos,BLLVDTYPos);
                UpdateLVDTScale(BLLVDT,BLLVDT0,BLLVDTBarXPos,BLLVDTBarYPos);
                BLLVDT0=BLLVDT;
            }else if(msg.id==BR_LVDT_ID){
                BRLVDT=can_data;
                ChangeNumber(BRLVDT,BRLVDT0,100,BRLVDTXPos,BRLVDTYPos);
                UpdateLVDTScale(BRLVDT,BRLVDT0,BRLVDTBarXPos,BRLVDTBarYPos);
                BRLVDT0=BRLVDT;
            };
        };
    };
    lcd.SetTextColor(LCD_COLOR_WHITE);
    lcd.FillRect(0,0,800,480);
    lcd.SetTextColor(LCD_COLOR_BLACK);
    MainScreen();
};*/