/*
 * ZDistA.h
 *
 *
 *  Created on: 21-07-2023
 *      Author: PS
 */

#ifndef ZDISTA_H_KOMP
#define ZDISTA_H_KOMP

//#include "pawel_usun_to.h"

#include "../tdefs.h"
#include "helper.h"
#include "ZDistL.h"


	struct impedancja_ZDistA_komp
	{
		float R[9];	// czesc rzeczywista impedancji
		float X[9]; // czesc urojona impedancji
		float Z[9]; //kwadrat impedancji
		float absR[9]; // wartosc bezwzgledna impedancji czesc rzeczywista
		float absX[9]; // wartosc bezwzgledna impedancji czesc urojona
		float XRtanfi2[9]; // abs(X+R*tan(fi2))
	//	float XRtanfi1[9]; // abs(X-R*tan(fi1))
						//[0] petla L1-E strefa 1
						//[1] petla L2-E strefa 1
						//[2] petla L3-E strefa 1
						//[3] petla L1-E strefa 2,3,4,5
						//[4] petla L2-E strefa 2,3,4,5
						//[5] petla L3-E strefa 2,3,4,5
						//[6] petla L1-L2
						//[7] petla L2-L3
						//[8] petla L3-L1
		float XRtanfi1_noabs[9];
		//float E[9];
	};

	struct dane_wewnetrzne_ZDistA_komp
	{
		struct impedancja_ZDistA_komp Z;
		u8 Km;
		u8 Kp;
		u8 Igr[6]; // przekroczenie wartosci granicznej pradu
		u8 Iogr; // zwarcie z udzialem ziemi
		u8 P_s[6][6];//pobudzenie kryterium impedacyjnego (obszar) [numer strefy][L1E,L2E,L3E,L1L2,L2L3,L3L1]
		u8 P_sss[6][6];
		u8 Pbk[6][6];//pobudzenie w strefie [numer strefy][L1E,L2E,L3E,L1L2,L2L3,L3L1] bezkierunkowe
		u8 P[6][6];//pobudzenie w strefie [numer strefy][L1E,L2E,L3E,L1L2,L2L3,L3L1]
		u8 BL_Load[9]; ///< impedancja w obszrze pradow roboczych
		u8 XKp[6][9]; ///< impedancyjne kryterium kierunku "do przodu"
		u8 XKm[6][9]; ///< impedancyjne kryterium kierunku "do tylu"
		u8 Zm[9];///< impedancyjne kryterium bardzo bliskiego zwarcia
		short liczp10[9]; /// licznik pobudzen
		short liczp11[6][9]; /// licznik pobudzen
		short liczp12[6][9]; /// licznik pobudzen
						//[0] petla L1-E strefa 1
						//[1] petla L2-E strefa 1
						//[2] petla L3-E strefa 1
						//[3] petla L1-E strefa 2,3,4,5
						//[4] petla L2-E strefa 2,3,4,5
						//[5] petla L3-E strefa 2,3,4,5
						//[6] petla L1-L2
						//[7] petla L2-L3
						//[8] petla L3-L1
		short liczps[6][6]; //liczniki pobudzen dla pobudzen stref [numer strefy][L1E,L2E,L3E,L1L2,L2L3,L3L1]
		short liczpIo; //licznik pobudzen dla identyfikacji zwarc z udzialem ziemi
		short liczKdod;
		float U1;
		float U2;
		float U3;
		float I1;
		float I2;
		float I3;
		struct ZDistA_komp_logic *log_ptr;

		//wyliczenie dl wektora
		float modul_zf[6];
		float modul_zmf[6];
		float Z_min;
		float Z_min_mf;
	};

	struct nast_w_poligon_komp
	{
		float Xr; // zasieg dla poligonu i srodek okregu dla kolowej wspolrzedna X
		float Rr; // zasieg dla dla poligonu i srodek okregu dla kolowej wspolrzedna R
		float Z; // srednica kola charakterystyki kolowej
		float Xp; // zasieg dla poligonu i srodek okregu dla kolowej wspolrzedna X dla powrotu
		float Rp; // zasieg dla dla poligonu i srodek okregu dla kolowej wspolrzedna R dla powrotu
		float Zp; // srednica kola charakterystyki kolowej dla powrotu
		float Rrtanfi1;// wartość rozruchowa prostej nachylonej kątem linii
		float Rptanfi1;// wartość powrotowa prostej nachylonej kątem linii
	};

	struct Wyjscia_ZDistA_komp // struktura wyjsc przekaznika
	{
		struct dane_wewnetrzne_ZDistA_komp *Zdist_dw;
		float przekladnia;
		u8 *on;
		u8 SOTF_zwrotnie;
	};


    struct Nastawy_przeliczone_ZDistA_komp
    {
		struct Wyjscia_ZDistA_komp wyjscie;
		u8 on_;
		u8 bl_;
		u8 z6_kolo;
		u8 Bl_L[6];
		u8 typ[6];// typ charakterystyki 0 - poligonalna, 1- kolowa
		float ReK1; // skladowa rzeczywista wspolczynnika kompensacji ziemnozwarciowej dla strefy 1
		float ImK1;// skladowa urojona wspolczynnika kompensacji ziemnozwarciowej dla strefy 1
		float ReKr;// skladowa rzeczywista wspolczynnika kompensacji ziemnozwarciowej dla stref 2,3,4,5
		float ImKr;// skladowa urojona wspolczynnika kompensacji ziemnozwarciowej dla stref 2,3,4,5

		struct nast_w_poligon_komp n_pol[6][2]; // nastawy stref dla charakterystyki poligonalnej [numer strefy][LE/LL]
		float tanfi1; // tangens kata linii
		float tanfi2; //tangens kata dodatkowej prostej dla charakterystyki poligonalnej strefa 1
		float Xr1f; // wartosc rozruchowa dodatkowej prostej dla charakterystyki poligonalnej
		float Xr1fp; // wartosc powrotowa dodatkowej prostej dla charakterystyki poligonalnej
		float Xr1Wf; // wartosc rozruchowa dodatkowej prostej dla charakterystyki poligonalnej
		float Xr1Wfp; // wartosc powrotowa dodatkowej prostej dla charakterystyki poligonalnej
		float Igr; // wartosc kwadratu pradu granicznego warunku dzialania przekaznika
		float Igrp; // wartosc kwadratu pradu granicznego warunku dzialania przekaznika (powrot)

		float Zgr;// minimalna wartosc impedancji kryteriunkierunkowego w kwadracie
		float kp;//współczynnik powrotu dla niedomiarówek
		float kpp;//współczynnik powrotu dla nadmiarówek
		float kpk; //kwadrat współczynnika powrotu
		short kierunek[6];

		//A2
		float XKR; // wspolczynnik prostej R kierunku kryterium impedancyjnego
		float XKX; // wspolczynnik prostej R kierunku kryterium impedancyjnego
		float KL;//wspolczynnik prostej dla blokady od obszaru obciażenia
		float RLf; // wartosc rozruchowa blokady Load do przodu
		float RLr; // wartosc rozruchowa blokady Load do tylu
		float Iogr; // wartosc graniczna skladowej zerowej identyfikacji zwarc z udzialem ziemi
		float khio; // wspolczynnik stabilizacji dla przekaznika identyfikacji zwarc z udzialem ziemi
		float Uomin; ///< minimalna wartość napięcia składowej zerowej
		
		float ReKrown; // skladowa rzeczywista wspolczynnika dla linii rownoleglej
		float ImKrown;// skladowa urojona wspolczynnika dla linii rownoleglej
		float Krown_ignac;
		
		float kp_obc; //wspolczynnik powrotu krzywych obciazenia
		float kpp_obc; //kwadrat współczynnika powrotu krzywych obciazenia

    };

struct ZDistA_komp_logic
{
        struct binary_io stan_bl;
		struct binary_io Bl_K;
		float *I1_orta; ///< Skladowa ortogonalna a pradu faza L1
		float *I1_ortb; ///< Skladowa ortogonalna b pradu faza L1
		float *I1; ///< Prad mierzony faza 1
		float *I2_orta; ///< Skladowa ortogonalna a pradu faza L2
		float *I2_ortb; ///< Skladowa ortogonalna b pradu faza L2
		float *I2; ///< Prad mierzony faza 2
		float *I3_orta; ///< Skladowa ortogonalna a pradu faza L3
		float *I3_ortb; ///< Skladowa ortogonalna b pradu faza L3
		float *I3; ///< Prad mierzony faza 3
		float *U1_orta; ///< Skladowa ortogonalna a napiecia faza L1
		float *U1_ortb; ///< Skladowa ortogonalna b napiecia faza L1
		float *U1; ///< Napiecie mierzone faza 1
		float *U2_orta; ///< Skladowa ortogonalna a napiecia faza L2
		float *U2_ortb; ///< Skladowa ortogonalna b napiecia faza L2
		float *U2; ///< Napiecie mierzone faza 2
		float *U3_orta; ///< Skladowa ortogonalna a napiecia faza L3
		float *U3_ortb; ///< Skladowa ortogonalna b napiecia faza L3
		float *U3; ///< Napiecie mierzone faza 3
		float *U12_orta; ///< Skladowa ortogonalna a napiecia L1-L2
		float *U12_ortb; ///< Skladowa ortogonalna b napiecia L1-L2
		float *U12; ///< Napiecie mierzone L1-L2
		float *U23_orta; ///< Skladowa ortogonalna a napiecia L2-L3
		float *U23_ortb; ///< Skladowa ortogonalna b napiecia L2-L3
		float *U23; ///< Napiecie mierzone L2-L3
		float *U31_orta; ///< Skladowa ortogonalna a napiecia L3-L1
		float *U31_ortb; ///< Skladowa ortogonalna b napiecia L3-L1
		float *U31; ///< Napiecie mierzone L3-L1
		float *sI1_orta; ///< Skladowa ortogonalna a skladowej zgodnej pradu
		float *sI1_ortb; ///< Skladowa ortogonalna b skladowej zgodnej pradu
		float *sI1; ///< Skladowa zgodna pradu
		float *sI2_orta; ///< Skladowa ortogonalna a skladowej przeciwnej pradu
		float *sI2_ortb; ///< Skladowa ortogonalna b skladowej przeciwnej pradu
		float *sI2; ///< Skladowa przeciwna pradu
		float *sI0_orta; ///< Skladowa ortogonalna a skladowej zerowej pradu
		float *sI0_ortb; ///< Skladowa ortogonalna b skladowej zerowej pradu
		float *sI0; ///< Skladowa zerowa pradu
		float *sU1_orta; ///< Skladowa ortogonalna a skladowej zgodnej napiecia
		float *sU1_ortb; ///< Skladowa ortogonalna b skladowej zgodnej napiecia
		float *sU1; ///< Skladowa zgodna napiecia
		float *sU2_orta; ///< Skladowa ortogonalna a skladowej przeciwnej napiecia
		float *sU2_ortb; ///< Skladowa ortogonalna b skladowej przeciwnej napiecia
		float *sU2; ///< Skladowa przeciwna napiecia
		float *sU0_orta; ///< Skladowa ortogonalna a skladowej zerowej napiecia
		float *sU0_ortb; ///< Skladowa ortogonalna b skladowej zerowej napiecia
		float *sU0; ///< Skladowa zerowa napiecia
		struct analog_in_params *param_I; ///< Parametry wejscia pradowego
		struct analog_in_params *param_U; /// < Parametry kanalu napieciowego
		struct binary_io test;
		struct binary_io P1W_L1E; ///< Pobudzenie strefy 1W zwarcie L1-E
		struct binary_io P1W_L2E; ///< Pobudzenie strefy 1W zwarcie L2-E
		struct binary_io P1W_L3E; ///< Pobudzenie strefy 1W zwarcie L3-E
		struct binary_io P1W_L1L2; ///< Pobudzenie strefy 1W zwarcie L1-L2
		struct binary_io P1W_L2L3; ///< Pobudzenie strefy 1W zwarcie L2-L3
		struct binary_io P1W_L3L1; ///< Pobudzenie strefy 1W zwarcie L3-L1
		struct binary_io P1_L1E; ///< Pobudzenie strefy 1 zwarcie L1-E
		struct binary_io P1_L2E; ///< Pobudzenie strefy 1 zwarcie L2-E
		struct binary_io P1_L3E; ///< Pobudzenie strefy 1 zwarcie L3-E
		struct binary_io P1_L1L2; ///< Pobudzenie strefy 1 zwarcie L1-L2
		struct binary_io P1_L2L3; ///< Pobudzenie strefy 1 zwarcie L2-L3
		struct binary_io P1_L3L1; ///< Pobudzenie strefy 1 zwarcie L3-L1
		struct binary_io P2_L1E; ///< Pobudzenie strefy 2 zwarcie L1-E
		struct binary_io P2_L2E; ///< Pobudzenie strefy 2 zwarcie L2-E
		struct binary_io P2_L3E; ///< Pobudzenie strefy 2 zwarcie L3-E
		struct binary_io P2_L1L2; ///< Pobudzenie strefy 2 zwarcie L1-L2
		struct binary_io P2_L2L3; ///< Pobudzenie strefy 2 zwarcie L2-L3
		struct binary_io P2_L3L1; ///< Pobudzenie strefy 2 zwarcie L3-L1
		struct binary_io P3_L1E; ///< Pobudzenie strefy 3 zwarcie L1-E
		struct binary_io P3_L2E; ///< Pobudzenie strefy 3 zwarcie L2-E
		struct binary_io P3_L3E; ///< Pobudzenie strefy 3 zwarcie L3-E
		struct binary_io P3_L1L2; ///< Pobudzenie strefy 3 zwarcie L1-L2
		struct binary_io P3_L2L3; ///< Pobudzenie strefy 3 zwarcie L2-L3
		struct binary_io P3_L3L1; ///< Pobudzenie strefy 3 zwarcie L3-L1
		struct binary_io P4_L1E; ///< Pobudzenie strefy 4 zwarcie L1-E
		struct binary_io P4_L2E; ///< Pobudzenie strefy 4 zwarcie L2-E
		struct binary_io P4_L3E; ///< Pobudzenie strefy 4 zwarcie L3-E
		struct binary_io P4_L1L2; ///< Pobudzenie strefy 4 zwarcie L1-L2
		struct binary_io P4_L2L3; ///< Pobudzenie strefy 4 zwarcie L2-L3
		struct binary_io P4_L3L1; ///< Pobudzenie strefy 4 zwarcie L3-L1
		struct binary_io P5_L1E; ///< Pobudzenie strefy 5 zwarcie L1-E
		struct binary_io P5_L2E; ///< Pobudzenie strefy 5 zwarcie L2-E
		struct binary_io P5_L3E; ///< Pobudzenie strefy 5 zwarcie L3-E
		struct binary_io P5_L1L2; ///< Pobudzenie strefy 5 zwarcie L1-L2
		struct binary_io P5_L2L3; ///< Pobudzenie strefy 5 zwarcie L2-L3
		struct binary_io P5_L3L1; ///< Pobudzenie strefy 5 zwarcie L3-L1
		struct binary_io deakt; /// deaktywacja
		struct binary_io wyl; ///wejscie zwrotne info o wylacenia
		float *I_row_orta; ///< Skladowa ortogonalna a skladowej zgodnej napiecia
		float *I_row_ortb; ///< Skladowa ortogonalna a skladowej zgodnej napiecia
		struct analog_in_params *param_I_rown; ///< Parametry wejscia pradowego
    	struct dane_wewnetrzne_ZDistA_komp dw;
    	struct Nastawy_przeliczone_ZDistA_komp nast_;// struktura z parametrami

		u8 l_nieustalony;

    	float *z[6]; /// debug
};

struct ZDistA_komp_io
{
	u32 bl_in;
	u32 bl_k_in;
	u32 i1_orta_float_in;
	u32 i1_ortb_float_in;
	u32 i1_float_in;
	u32 i2_orta_float_in;
	u32 i2_ortb_float_in;
	u32 i2_float_in;
	u32 i3_orta_float_in;
	u32 i3_ortb_float_in;
	u32 i3_float_in;
	u32 u1_orta_float_in;
	u32 u1_ortb_float_in;
	u32 u1_float_in;
	u32 u2_orta_float_in;
	u32 u2_ortb_float_in;
	u32 u2_float_in;
	u32 u3_orta_float_in;
	u32 u3_ortb_float_in;
	u32 u3_float_in;
	u32 u12_orta_float_in;
	u32 u12_ortb_float_in;
	u32 u12_float_in;
	u32 u23_orta_float_in;
	u32 u23_ortb_float_in;
	u32 u23_float_in;
	u32 u31_orta_float_in;
	u32 u31_ortb_float_in;
	u32 u31_float_in;
	u32 i1_zg_orta_float_in;
	u32 i1_zg_ortb_float_in;
	u32 i1_zg_float_in;
	u32 i2_pr_orta_float_in;
	u32 i2_pr_ortb_float_in;
	u32 i2_pr_float_in;
	u32 io_orta_float_in;
	u32 io_ortb_float_in;
	u32 io_float_in;
	u32 u1_zg_orta_float_in;
	u32 u1_zg_ortb_float_in;
	u32 u1_zg_float_in;
	u32 u2_pr_orta_float_in;
	u32 u2_pr_ortb_float_in;
	u32 u2_pr_float_in;
	u32 uo_orta_float_in;
	u32 uo_ortb_float_in;
	u32 uo_float_in;
	u32 i_param_an_ptr_in;
	u32 u_param_an_ptr_in;
	u32 test_in;
	u32 deakt_in;
	u32 wyl_in;

  u32 i_rown_orta_float_in;
  u32 i_rown_ortb_float_in;
  u32 i_rown_an_ptr_in;
  
	u32 wy_ptr_out;	//zainicjowac
	u32 P1W_L1E_out;
	u32 P1W_L2E_out;
	u32 P1W_L3E_out;
	u32 P1W_L1L2_out;
	u32 P1W_L2L3_out;
	u32 P1W_L3L1_out;
	u32 P1_L1E_out;
	u32 P1_L2E_out;
	u32 P1_L3E_out;
	u32 P1_L1L2_out;
	u32 P1_L2L3_out;
	u32 P1_L3L1_out;
	u32 P2_L1E_out;
	u32 P2_L2E_out;
	u32 P2_L3E_out;
	u32 P2_L1L2_out;
	u32 P2_L2L3_out;
	u32 P2_L3L1_out;
	u32 P3_L1E_out;
	u32 P3_L2E_out;
	u32 P3_L3E_out;
	u32 P3_L1L2_out;
	u32 P3_L2L3_out;
	u32 P3_L3L1_out;
	u32 P4_L1E_out;
	u32 P4_L2E_out;
	u32 P4_L3E_out;
	u32 P4_L1L2_out;
	u32 P4_L2L3_out;
	u32 P4_L3L1_out;
	u32 P5_L1E_out;
	u32 P5_L2E_out;
	u32 P5_L3E_out;
	u32 P5_L1L2_out;
	u32 P5_L2L3_out;
	u32 P5_L3L1_out;

	//debug
	u32 z1_float_out;
	u32 z2_float_out;
	u32 z3_float_out;
	u32 z4_float_out;
	u32 z5_float_out;
	u32 z6_float_out;
	
}__attribute__((__packed__));

struct ZDistA_komp_params
{
	u32 bity; ///< nastawy bitowe;

	long Typ1; ///< Typ charakterystyki strefa 1
	long Typ2; ///< Typ charakterystyki strefa 2
	long Typ3; ///< Typ charakterystyki strefa 3
	long Typ4; ///< Typ charakterystyki strefa 4
	long Typ5; ///< Typ charakterystyki strefa 5
	long K1; ///< Kierunek dzialania strefa 1
	long K2; ///< Kierunek dzialania strefa 2
	long K3; ///< Kierunek dzialania strefa 3
	long K4; ///< Kierunek dzialania strefa 4
	long K5; ///< Kierunek dzialania strefa 5

	double I_min; ///< Graniczna wartosc pradu
	double Kk1;	///< Wspolczynnik kompensacji ziemnozwarciowej strefa 1
	double Kk1_kat; ///< Kat wektora kompensacji ziemnozwarciowej strefa 1
	double KkC; ///< Wspolczynnik kompensacji ziemnozwarciowej stref 2,3,4,5
	double KkC_kat; ///< Kat wektora kompensacji ziemnozwarciowej stref 2,3,4,5
	double fi1; ///< Kat linii
	double fi2; ///< Kat nachylenia prostej korekcji strefy pierwszej dla zwarc jednofazowych z ziemia
	double R1W_Zf1W_LE; ///< Zasieg rezystancyjny strefy 1 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” wydluzenie strefy 1 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R1W_Zf1W_LL; ///< Zasieg rezystancyjny strefy 1 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” wyduzenie strefy 1 charakterystyki kolowej zwarcie miedzyfazowe
	double R1_Zf1_LE; ///< Zasieg rezystancyjny strefy 1 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” strefy 1 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R1_Zf1_LL; ///< Zasieg rezystancyjny strefy 1 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” strefy 1 charakterystyki kolowej zwarcie miedzyfazowe
	double R2_Zf2_LE; ///< Zasieg rezystancyjny strefy 2 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” strefy 2 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R2_Zf2_LL; ///< Zasieg rezystancyjny strefy 2 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” strefy 2 charakterystyki kolowej zwarcie miedzyfazowe
	double R3_Zf3_LE; ///< Zasieg rezystancyjny strefy 3 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” strefy 3 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R3_Zf3_LL; ///< Zasieg rezystancyjny strefy 3 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” strefy 3 charakterystyki kolowej zwarcie miedzyfazowe
	double R4_Zf4_LE; ///< Zasieg rezystancyjny strefy 4 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” strefy 4 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R4_Zf4_LL; ///< Zasieg rezystancyjny strefy 4 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” strefy 4 charakterystyki kolowej zwarcie miedzyfazowe
	double R5_Zf5_LE; ///< Zasieg rezystancyjny strefy 5 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///<	Zasieg „do przodu” strefy 5 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double R5_Zf5_LL; ///< Zasieg rezystancyjny strefy 5 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do przodu” strefy 5 charakterystyki kolowej zwarcie miedzyfazowe
	double X1W_Zr1W_LE; ///< Zasieg reaktancyjny wydluzenie strefy 1 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” wydluzenie strefy 1 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X1W_Zr1W_LL; ///<  Zasieg reaktancyjny wydluzenie strefy 1 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” wydluzenie strefy 1 charakterystyki kolowej zwarcie miedzyfazowe
	double X1_Zr1_LE; ///< Zasieg reaktancyjny strefy 1 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” strefy 1 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X1_Zr1_LL; ///<  Zasieg reaktancyjny strefy 1 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” strefy 1 charakterystyki kolowej zwarcie miedzyfazowe
	double X2_Zr2_LE; ///< Zasieg reaktancyjny strefy 2 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” strefy 2 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X2_Zr2_LL; ///<  Zasieg reaktancyjny strefy 2 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” strefy 2 charakterystyki kolowej zwarcie miedzyfazowe
	double X3_Zr3_LE; ///< Zasieg reaktancyjny strefy 3 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” strefy 3 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X3_Zr3_LL; ///<  Zasieg reaktancyjny strefy 3 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” strefy 3 charakterystyki kolowej zwarcie miedzyfazowe
	double X4_Zr4_LE; ///< Zasieg reaktancyjny strefy 4 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” strefy 4 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X4_Zr4_LL; ///<  Zasieg reaktancyjny strefy 4 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” strefy 4 charakterystyki kolowej zwarcie miedzyfazowe
	double X5_Zr5_LE; ///< Zasieg reaktancyjny strefy 5 dla charakterystyki poligonalnej zwarcie jednofazowe z ziemia
						///< Zasieg „do tylu” strefy 5 charakterystyki kolowej zwarcie jednofazowe z ziemia
	double X5_Zr5_LL; ///<  Zasieg reaktancyjny strefy 5 dla charakterystyki poligonalnej zwarcie miedzyfazowe
						///< Zasieg „do tylu” strefy 5 charakterystyki kolowej zwarcie miedzyfazowe
	double kp; ///< wspolczynnik powrotu
//A2
//	double U_min; ///< Minimalna wartosc napiecia
	double fi3; ///< Kat kierunkowy od osi X impedancyjnego kryterium kierunku
	double fi4; ///< Kat kierunkowy od osi R  impedancyjnego kryterium kierunku
	double RLf; ///< Zasieg „ do przodu” kryterium blokady dzialania w zakresie pradow obciażenia
	double RLr; ///< Zasieg „ do tylu” kryterium blokady dzialania w zakresie pradow obciażenia
	double fi5; ///< Kat kierunkowy blokady dzialania w zakresie pradow obciażenia
	double Iomin; ///< Minimalna wartosc rozruchowa pradu zerowego przekaznika identyfikacji zwarc z udzialem ziemi
	double Iokh; ///< Wspolczynnik stabilizacji charakterystyki przekaznika identyfikacji zwarc z udzialem ziemi
	double Uomin; ///< minimalna wartość napięcia składowej zerowej

	long Typ0; ///< Typ charakterystyki strefa 1W
	long K0; ///< Kierunek dzialania strefa 1W
  
  	double Krown;	///< Wspolczynnik kompensacji linii rown
	double Krown_kat; ///< Kat wektora kompensacji lnii rown
	
	double kp_obc; ///< Współczynnik powrotu dla blokady od prądu obciążenia

}__attribute__((__packed__));

struct ZDistA_komp_args
{
	struct ZDistA_komp_io io;
	struct ZDistA_komp_params params;
//	u16 crc;
}__attribute__((__packed__));

extern void ZDistA_komp(void *args, void *logic);
extern int ZDistA_komp_initlog(void *arguments, void *logic);

#endif /* ZDISTA_H_KOMP */
