
#ifndef _LOG_PARAMS
#define _LOG_PARAMS

#define PERIOD_LOGS 3


#define START_ADDRESS_LOG 				0xA0000    //0xa0000
#define START_ADDRESS_LOG_SLOW          0xC0000   //0xa0000
#define END_ADDRESS_LOGS  		 	    0x0dffff  //0x0ef000
#define END_ADDRESS_LOGS_FINAL          0x0efff0  //0x0ef000

//#define COUNTER_ERR_WRITES              1
#define VOLUME_OF_FAST_LOG              2000L //0x800L // 0x1000	//0x3500
#define VOLUME_OF_SLOW_LOG              2000L //0x800L // 0x800 // 0x1000 //0x3500


//#define MAX_SUZE_LOG 0x20000
//#define END_ADDRESS_LOD_TEMP 0xC0000
//#define START_ADDRESS_SAVE_ON_ALARM 0xC0000

//#define LENGTH_HAZARD       100
#define COUNT_SAVE_LOG_OFF  50 //500



#define ADDR_SIZE_ERR_LOW  				0xa0000
#define ADDR_SIZE_ERR_HIGH 				0xa0001
#define ADDR_SIZE_SLOW_LOW				0xa0002
#define ADDR_SIZE_SLOW_HIGH				0xa0003
#define ADDR_ERR_BLOCK_SIZE				0xa0004
#define ADDR_SLOW_BLOCK_SIZE			0xa0005
#define ADDR_START_ADDR_ERR_LOG_LOW		0xa0006
#define ADDR_START_ADDR_ERR_LOG_HIGH	0xa0007
#define ADDR_START_ADDR_SLOW_LOG_LOW	0xa0008
#define ADDR_START_ADDR_SLOW_LOG_HIGH	0xa0009


#define START_ADDR_TIME_ERR_WRITE 		0xa000a
#define END_ADDR_TIME_ERR_WRITE 		0xa000e
#define LAST_WRITTEN_BLOCK 				0xa000f



typedef struct
{   
    int stop_log_level_1;
    int stop_log_level_2;

    int stop_log_slow_level_1;
    int stop_log_slow_level_2;


    unsigned int init;
    unsigned int BlockSizeErr;          
    unsigned int BlockSizeSlow; 


    unsigned long start_address_log;//START_ADDRESS_LOG         
    unsigned long end_address_log;//END_ADDRESS_LOG
    unsigned long end_address_log_level_1;//END_ADDRESS_LOG_LEVEL_2
    unsigned long end_address_log_level_2;

    //	unsigned long addr_size_err_low;//ADDR_SIZE_ERR_LOW

    unsigned long start_address_log_slow;//START_ADDRESS_LOG_SLOW
	unsigned long end_address_log_slow;
//	unsigned long start_address_save_log_memory;
//	unsigned long end_address_save_log_memory;

	unsigned long end_address_log_slow_level_1;
	unsigned long end_address_log_slow_level_2;
//	unsigned long end_address_log_slow_level_3;
//	unsigned long start_address_err_log;//START_ADDRESS_ERR_LOG
//	unsigned long end_address_err_log;//END_ADDRESS_ERR_LOG

	unsigned long addres_mem;//START_ADDRESS_LOG
    unsigned long addres_mem_slow;//START_ADDRESS_LOG
	unsigned int log_cycle_done;
    unsigned int log_cycle_done_slow;

    int no_write_slow;
    int no_write_fast;
    int size_slow_done;
    int size_fast_done;

    int stop_log_fast;
    int stop_log_slow;
    int log_saved_to_const_mem;
    int copy_log_to_const_memory;

    unsigned int volume_of_fast_log;
    unsigned int volume_of_slow_log;

    unsigned int cur_volume_of_fast_log;
    unsigned int cur_volume_of_slow_log;



} TYPE_LOG_PARAMS;

#define TYPE_LOG_PARAMS_DEFAULT  {0,0,0,0, 0,0,0,0, 0,0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0, 0,0, 0,0}

extern TYPE_LOG_PARAMS log_params;

void initErrLog(void);
void initLogSize(unsigned int c_fast, unsigned int c_slow);

#endif	//_LOG_PARAMS
