/*
 * e_du.h
 *
 *  Created on: 29-06-2016
 *      Author: Krzysztof Jakubczyk
 */

#ifndef E_DU_H_
#define E_DU_H_

#include "tdefs.h"
#include "e_mem1.h"

	enum e_du_zakres
	{
	        e_du_mniej4 = 0,
	        e_du_od4do8,
	        e_du_od8do16,
	        e_du_od16do30
	};

struct e_du_logic
{
	float *esk_ptr;
	struct e_mem1_wyjscie *we;
	u8 *ok_ptr;
	u8 ok_bit_no;

    enum e_du_zakres zakres_; ///< zakres bufora pamieci
	short czas;	///< ilosc petli 10ms w oknie calkowania
    short ofset_; ///< przesuniecie danego bufora pamieci
    float Ubl_; ///< wartosc napiecia blokady w krotnosciach napiecia znamionowego
    float fczas;
};

struct e_du_io
{
	u32 buf_ptr_in;
	u32 esk_float_out;
	u32 ok_out;
}__attribute__((__packed__));

struct e_du_params
{
	double czas_;
	double Ubl_;
}__attribute__((__packed__));

struct e_du_args
{
	struct e_du_io io;
	struct e_du_params params;
//	u16 crc;
}__attribute__((__packed__));

extern void e_du_20hz(void *args, void *logic);
extern int e_du_initlog(void *arguments, void *logic);

#endif /* E_DU_H_ */
