/*
 * cnt.h
 *
 *  Created on: 11-06-2019
 *      Author: Krzysztof Jakubczyk
 */

#ifndef CNT_H_
#define CNT_H_

#include "tdefs.h"

extern float cnt_mem[8];

struct cnt_logic
{
	u8 *Pwe;
	u8 Pwe_bit_mask;
	u8 *Kas;
	u8 Kas_bit_mask;
	u8 *Pwy;
	u8 Pwy_bit_mask;

	float *licznik;

	u16 Wr; ///< wartosc progowa sygnalizacji
    u8 on; ///< wartosc nastawy aktywnosci PKWa 1- aktywny
    u8 id;
};

struct cnt_io
{
	u32 Pwe_in;
	u32 Kas_in;
	u32 Pwy_out;
	u32 Licznik_float_out;
}__attribute__((__packed__));

struct cnt_params
{
	u32 bity; ///< nastawy bitowe;
	double Wr_; ///< wartosc progowa sygnalizacji
	double kas; // wartosc przepisywana przy kasowaniu
	u32 id; // id pkw od 0..7
}__attribute__((__packed__));

struct cnt_args
{
	struct cnt_io io;
	struct cnt_params params;
//	u16 crc;
}__attribute__((__packed__));

extern void cnt(void *args, void *logic);
extern int cnt_initlog(void *arguments, void *logic);

#endif /* CNT_H_ */
