/*
Diplomova prace : Palubni pocitac

temp- api pro praci s teplot. cidly

Atmega128A 10 MHz XTAL

Autor: Ondrej Lutera

2011/2012

*/

#ifndef TEMP_H_INCLUDED
#define TEMP_H_INCLUDED

#include <avr/io.h>
#include "ds18lib/ds18x20.h"
#include "ds18lib/onewire.h"
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
#include "string.h"
#include "define.h"

#ifdef CAR_DEBUG
#include "uart_addon.h"
#endif

#define DS      PD4
#define DS_PIN  PIND
#define DS_PORT PORTD
#define DS_DDR  DDRD

#define MAX_SENSORS 2
#define TRUE  0x71
#define FALSE 0

#define TEMP_TEXT_SIZE   10

#define NOCH 0xff


typedef struct
{

    uint8_t id[OW_ROMCODE_SIZE];        // seriove cislo tep. cidla
    uint8_t connected;                  // jeho stav zda je korektne pripojeno
    char text[TEMP_TEXT_SIZE];             // popis tep. cidla

} temp_t;

uint16_t initTempSensors(temp_t *newSensors, uint8_t readEE);       // inicializace

void setTempSensor(uint8_t index,uint8_t * id);         // nastaveni id senzoru

uint8_t startTempSensors();         // start konverze

uint8_t readTempSensor(uint8_t index,int16_t * retVal);     // cteni vysledku konverze pro tep. cidlo dane indexem

uint8_t setTempSensorText(uint8_t index, char * text);      // nastaveni popisku tep. cidla
uint8_t tempSensorCon(uint8_t index);               // vraci udaj zda je tep. cidlo dane indexem pripojene
char * getTempSensorText(uint8_t index);            // vraci text tep. cidla
void initTempSensorsData(void);         // inicializace dat a struktur
void clearTempSensor(uint8_t index);        // vymazani tep. cidla daneho indexem
void updateTempSensorsData(void);           // aktualizace dat senzoru v eeprom

#endif // TEMP_H_INCLUDED
