dodany kod c od Krzyska po wielu modyfikacjach przez Gemini zeby usunac zalezność od TI-RTOS

This commit is contained in:
2026-02-19 11:59:33 +01:00
parent bf9c4596b8
commit d086ef28de
336 changed files with 52294 additions and 1006 deletions

50
ZDistA_wrapper.h Normal file
View File

@@ -0,0 +1,50 @@
#ifndef ZDISTA_WRAPPER_H
#define ZDISTA_WRAPPER_H
// Na systemach Windows, musimy jawnie eksportować symbole, aby były widoczne w DLL.
#if defined(_WIN32) || defined(_WIN64)
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
#endif
// Deklaracja nieprzezroczystej struktury (opaque struct).
// Dzięki temu, wewnętrzna budowa naszego "uchwytu" jest ukryta przed kodem Python.
struct ZDistA_handle;
typedef struct ZDistA_handle ZDistA_handle;
/**
* @brief Inicjalizuje logikę przekaźnika i wszystkie wewnętrzne struktury.
*
* @param z1_r Rezystancja nastawcza strefy 1.
* @param z1_x Reaktancja nastawcza strefy 1.
* @param line_angle_deg Kąt linii w stopniach.
* @param kierunek Kierunkowość (0: bezkierunkowy, 1: do linii, 2: do szyn).
* @return Wskaźnik do "uchwytu" (handle) przechowującego stan przekaźnika, lub NULL w przypadku błędu.
*/
DLL_EXPORT ZDistA_handle* ZDistA_init(double z1_r, double z1_x, double line_angle_deg, int kierunek);
/**
* @brief Wykonuje jeden krok obliczeniowy algorytmu.
*
* @param handle Uchwyt zwrócony przez ZDistA_init.
* @param u_re Tablica 3 floatów (U1, U2, U3 - części rzeczywiste).
* @param u_im Tablica 3 floatów (U1, U2, U3 - części urojone).
* @param i_re Tablica 3 floatów (I1, I2, I3 - części rzeczywiste).
* @param i_im Tablica 3 floatów (I1, I2, I3 - części urojone).
* @return Wartość > 0, jeśli nastąpiło zadziałanie (trip), 0 w przeciwnym razie.
*/
DLL_EXPORT int ZDistA_step(
ZDistA_handle* handle,
const float u_re[3], const float u_im[3],
const float i_re[3], const float i_im[3]
);
/**
* @brief Zwalnia pamięć zaalokowaną dla uchwytu.
*
* @param handle Uchwyt do zwolnienia.
*/
DLL_EXPORT void ZDistA_cleanup(ZDistA_handle* handle);
#endif // ZDISTA_WRAPPER_H