dodany kod c od Krzyska po wielu modyfikacjach przez Gemini zeby usunac zalezność od TI-RTOS
This commit is contained in:
50
ZDistA_wrapper.h
Normal file
50
ZDistA_wrapper.h
Normal 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
|
||||
Reference in New Issue
Block a user