/*
Diplomova prace : Palubni pocitac

helper_func.h  - pomocne funkce pro main

Atmega128A 10 MHz XTAL

Autor: Ondrej Lutera

2011/2012

*/
#ifndef HELPER_FUNC_H_INCLUDED
#define HELPER_FUNC_H_INCLUDED

#include "define.h"
#include "car_meas.h"
#include "user.h"


typedef struct
{

    fuel_t fCons;
    fuel_t liters;
    m_t km;
    rpmmin_t rpm;
    speed_t kmh;
    pcf_t time;

} avg_t;

/* pomocne funkce pro praci v menu a LCD */

pcf_t * getPcfFormat(tm_t sec,pcf_t * time);
void loadAvgData(char * path,char * file, avg_t * data,uint8_t trackIndex,uint8_t findTrack);
void diffMeasData(data_t * inOut,const data_t * in);
void redrawWaitScreen(void);
void redrawLogTxt(DOG_PSTR_P text);
unsigned char checkLogin(void);
pcf_t * getPcfFormat(tm_t sec,pcf_t * time);
void diffMeasData(data_t * inOut,const data_t * in);
uint8_t checkKeys(uint8_t oldPos,uint8_t max,uint8_t min,key_t * k);

/* pomocne vypocty dat pro aktivniho uzivatele */

speed_t GetAvgSpeed(void);             // vrati prumernou rychlost za danou jizdu
fuel_t GetAvgFuelCons(void);        // vrati prumernou spotrebu ve formatu xxx = xx,x l/100km
fuel_t GetCurrFuelConsLh(void);      // vrati aktualni ve formatu xx,x l/h
fuel_t GetCurrFuelCons(void);       // vrati aktualni spotrebu paliva v xx,x litrech/ 100km
speed_t GetCurrSpeed(void);         // vrati aktualni rychlost automobilu
fuel_t GetCurrFuel(void);            // vrati aktualne spotrebovane xx L paliva
rpmmin_t GetCurrRpm(void);            // vrati aktualni otacky motoru v xxx = xxx ot/min
rpmmin_t GetAvgRpm(void);            // vrati prum. otacky motoru


tm_t GetCurrTime(void);
m_t GetActMeters(void);         // vrati aktualni metry ujete za 1s!

fuel_t GetTripFuelCons(void);       // vrati prumernou spotrebu z trasy v xx,x l/100km
fuel_t GetTripFuel(void);               // vrati spotrebovane palivo v L za trasu
m_t GetTripMeters(void);            // vrati metry ujete v trase
speed_t GetTripSpeed(void);
tm_t GetTripTime(void);
rpmmin_t GetTripRpm(void);            // vrati otacky motoru za trasu

fuel_t GetTotFuelCons(void);        // vrati celkovou spotrebu xx,x l /100km
speed_t GetTotSpeed(void);
rpmmin_t GetTotRpm(void);            // vrati celk prum otacky motoru

m_t GetCurrMeters(void);            // vrati aktualne ujete metry

m_t GetTotMeters(void);             // vrati metry celkove od pocatku resetu PP

uint16_t GetMaxDis(void);       // vrati max dojezd vzhledem ke stavu nadrze


#endif // HELPER_FUNC_H_INCLUDED
