//----------------------------------------------------
/**
	\file		lambda.h

	\brief		Knihovna staraciji se ovyhodnoceni Lamba sondy
				<<< ALL >>>

	\author		ConTeK s.r.o., Jakub Kastner
	\version	01.01
	\date		22.12.2015
*/
//----------------------------------------------------

#ifndef _LAMBDA_H_
#define _LAMBDA_H_

#include "libsets.h"
#include "appsets.h"
#include "XmlTypes.h"

typedef struct _LAMBDA_CTX{
	ticks_t		Timer;		//!< Casovac 

	float_t	AmpflierGain;	//!< zesileni pristrojoveho zesilovace
	float_t	AmpfOffset;		//!< offset zesilovace
	float_t FilterConstant;	//!< konstanta filtru pro oba vstupy
	float_t	X1;
	float_t	Y1;
	float_t	X2;
	float_t	Y2;

	float_t	LambdaVoltage;	//!< napeti na svorkach
	float_t LambdaPower;	//!< proud vyhrivanim lambdy

	bool_t	PowerOn;		//!< priznak pusteni vyhrivani
} LAMBDA_CTX;


//----------------------------------------------------
/**
	\brief		Funkce pro obnoceni konstant

	\param		_ctx			kontext knihovny
				_AmpflierGain	Zesileni zesilovace
				_AmpfOffset		Offset zesilovace
*/
//----------------------------------------------------

void LambdaUpdateConstant( LAMBDA_CTX * _ctx, float_t _AmpflierGain, float_t _AmpfOffset, 
						  float_t _filtCoef, float_t _x1, float_t _y1, float_t _x2, float_t _y2);


//----------------------------------------------------
/**
	\brief		Periodicky volaná funkce

	\param		_ctx			kontext knihovny
*/
//----------------------------------------------------

void LambdaTick( LAMBDA_CTX * _ctx );

//----------------------------------------------------
/**
	\brief		Inicializace knihovny

	\param		_ctx			kontext knihovny
*/
//----------------------------------------------------

void LambdaInit( LAMBDA_CTX * _ctx );

//----------------------------------------------------
/**
	\brief		Finalize knihovny

	\param		_ctx			kontext knihovny
*/
//----------------------------------------------------

void TLambdaFinalize( LAMBDA_CTX * _ctx );


#endif // _LAMBDA_H_