/*
 * CBR.h
 *
 *  Created on: 16-02-2017
 *      Author: PS
 */

#ifndef CBR_H_
#define CBR_H_


//#include <stdint.h>
#include "tdefs.h"

struct Nastawy_przeliczone_CBR
{
    u32 licz_p;
    u32 rodzaj;
};

struct CBR_logic
{
	u8* we_W1_ON;
	u8 we_W1_ON_bit_mask;
	u8* we_W2_ON;
	u8 we_W2_ON_bit_mask;
	u8* we_W3_ON;
	u8 we_W3_ON_bit_mask;
	u8* we_W1_OFF;
	u8 we_W1_OFF_bit_mask;
	u8* we_W2_OFF;
	u8 we_W2_OFF_bit_mask;
	u8* we_W3_OFF;
	u8 we_W3_OFF_bit_mask;

	u8* wy_W1_ON;
	u8 wy_W1_ON_bit_mask;
	u8* wy_W2_ON;
	u8 wy_W2_ON_bit_mask;
	u8* wy_W3_ON;
	u8 wy_W3_ON_bit_mask;
	u8* zd_W_ON;
	u8 zd_W_ON_bit_mask;
	u8* zd_W_OFF;
	u8 zd_W_OFF_bit_mask;
	u8* niezg_L1;
	u8 niezg_L1_bit_mask;
	u8* niezg_L2;
	u8 niezg_L2_bit_mask;
	u8* niezg_L3;
	u8 niezg_L3_bit_mask;

 struct Nastawy_przeliczone_CBR nast_;// struktura z parametramio

 	u32 licz_t1;
    u32 licz_t2;
 	u32 licz_t3;

};


struct CBR_params
{
    u32 rodzaj;
   	double to; ///< nastawa czasy dzialania
}__attribute__((__packed__));

struct CBR_io
{
	u32 we_W1_ON;
	u32 we_W2_ON;
	u32 we_W3_ON;
	u32 we_W1_OFF;
	u32 we_W2_OFF;
	u32 we_W3_OFF;

	u32 wy_W1_ON;
	u32 wy_W2_ON;
	u32 wy_W3_ON;
	u32 zd_W_ON;
	u32 zd_W_OFF;
	u32 niezg_L1;
	u32 niezg_L2;
	u32 niezg_L3;
}__attribute__((__packed__));

struct CBR_args
{
	struct CBR_io io;
	struct CBR_params params;
}__attribute__((__packed__));

extern void CBR(void *args, void *logic);
extern int CBR_initlog(void *arguments, void *logic);

#endif /* CBR_H_ */
