21 #include <acfutils/conf.h>
22 #include <acfutils/geom.h>
23 #include <acfutils/sysmacros.h>
29 #if !defined(STATIC_ARRAY_LEN_ARG) && !defined(CONST_ARRAY_LEN_ARG)
30 #if __STDC_VERSION__ >= 199901L && !defined(_MSC_VER)
31 #define STATIC_ARRAY_LEN_ARG(len) static len
32 #define CONST_ARRAY_LEN_ARG(len) static len
34 #define STATIC_ARRAY_LEN_ARG(len)
35 #define CONST_ARRAY_LEN_ARG(len) len
253 typedef struct elec_gen_info_s {
430 gui_load_type_t load_type;
465 #ifdef LIBELEC_WITH_NETLINK
466 void libelec_enable_net_send(elec_sys_t *sys);
467 void libelec_disable_net_send(elec_sys_t *sys);
468 void libelec_enable_net_recv(elec_sys_t *sys);
469 void libelec_disable_net_recv(elec_sys_t *sys);
472 #ifdef LIBELEC_WITH_LIBSWITCH
473 void libelec_create_cb_switches(
const elec_sys_t *sys,
const char *prefix,
477 #ifdef LIBELEC_SLOW_DEBUG
478 void libelec_step(elec_sys_t *sys);
490 void (*cb)(elec_comp_t *,
void *),
void *userinfo);
495 const char *libelec_comp_get_name(
const elec_comp_t *comp);
496 const char *libelec_comp_get_location(
const elec_comp_t *comp);
497 bool libelec_comp_get_autogen(
const elec_comp_t *comp);
514 unsigned libelec_comp_get_srcs(
const elec_comp_t *comp,
515 elec_comp_t *srcs[CONST_ARRAY_LEN_ARG(ELEC_MAX_SRCS)]);
545 elec_comp_t *
const bus_list[STATIC_ARRAY_LEN_ARG(list_len)]);
551 elec_comp_t *bus_list[STATIC_ARRAY_LEN_ARG(cap)]);
double libelec_batt_get_chg_rel(const elec_comp_t *batt)
bool libelec_comp_is_AC(const elec_comp_t *comp)
double libelec_gen_set_random_freq(elec_comp_t *comp, double stddev)
void libelec_comp_set_userinfo(elec_comp_t *comp, void *userinfo)
double libelec_comp_get_out_amps(const elec_comp_t *comp)
void libelec_gen_set_rpm_cb(elec_comp_t *gen, elec_get_rpm_cb_t cb)
void libelec_sys_set_time_factor(elec_sys_t *sys, double time_factor)
elec_get_rpm_cb_t libelec_gen_get_rpm_cb(const elec_comp_t *gen)
double(* elec_get_load_cb_t)(elec_comp_t *comp, void *userinfo)
elec_comp_t * libelec_comp_find(elec_sys_t *sys, const char *name)
elec_get_load_cb_t libelec_load_get_load_cb(elec_comp_t *load)
double libelec_comp_get_out_freq(const elec_comp_t *comp)
void libelec_tie_set(elec_comp_t *comp,...) SENTINEL_ATTR
double libelec_phys_get_batt_voltage(double U_nominal, double chg_rel, double I_rel)
double(* elec_get_temp_cb_t)(elec_comp_t *comp, void *userinfo)
double libelec_comp_get_eff(const elec_comp_t *gen)
void libelec_walk_comps(const elec_sys_t *sys, void(*cb)(elec_comp_t *, void *), void *userinfo)
const elec_comp_info_t * libelec_get_comp_infos(const elec_sys_t *sys, size_t *num_infos)
bool libelec_cb_get(const elec_comp_t *comp)
void libelec_sys_stop(elec_sys_t *sys)
bool libelec_comp_get_failed(const elec_comp_t *comp)
double libelec_comp_get_out_pwr(const elec_comp_t *comp)
const elec_comp_info_t * libelec_comp2info(const elec_comp_t *comp)
bool libelec_comp_get_shorted(const elec_comp_t *comp)
double libelec_batt_get_temp(const elec_comp_t *batt)
void libelec_batt_set_temp_cb(elec_comp_t *batt, elec_get_temp_cb_t cb)
double libelec_comp_get_in_freq(const elec_comp_t *comp)
bool libelec_deserialize(elec_sys_t *sys, const conf_t *ser, const char *prefix)
void libelec_load_set_load_cb(elec_comp_t *load, elec_get_load_cb_t cb)
bool libelec_comp_is_powered(const elec_comp_t *comp)
elec_sys_t * libelec_new(const char *filename)
double libelec_comp_get_in_volts(const elec_comp_t *comp)
bool libelec_tie_get(elec_comp_t *tie, bool_t exhaustive,...) SENTINEL_ATTR
double libelec_comp_get_in_pwr(const elec_comp_t *comp)
void libelec_batt_set_temp(elec_comp_t *batt, double T)
size_t libelec_tie_get_num_buses(const elec_comp_t *comp)
void libelec_comp_set_shorted(elec_comp_t *comp, bool shorted)
void libelec_add_user_cb(elec_sys_t *sys, bool pre, elec_user_cb_t cb, void *userinfo)
void * libelec_comp_get_userinfo(const elec_comp_t *comp)
double libelec_gen_get_rpm(const elec_comp_t *gen)
void libelec_tie_set_list(elec_comp_t *comp, size_t list_len, elec_comp_t *const bus_list[])
double libelec_comp_get_in_amps(const elec_comp_t *comp)
bool libelec_sys_is_started(const elec_sys_t *sys)
void libelec_tie_set_all(elec_comp_t *comp, bool tied)
double libelec_cb_get_temp(const elec_comp_t *comp)
void libelec_batt_set_chg_rel(elec_comp_t *batt, double chg_rel)
double libelec_gen_set_random_volts(elec_comp_t *comp, double stddev)
bool libelec_chgr_get_working(const elec_comp_t *chgr)
size_t libelec_tie_get_list(elec_comp_t *comp, size_t cap, elec_comp_t *bus_list[])
elec_comp_t * libelec_comp_get_conn(const elec_comp_t *comp, size_t i)
void(* elec_user_cb_t)(elec_sys_t *sys, bool pre, void *userinfo)
double libelec_comp_get_out_volts(const elec_comp_t *comp)
double(* elec_get_rpm_cb_t)(elec_comp_t *comp, void *userinfo)
double libelec_comp_get_incap_volts(const elec_comp_t *comp)
void libelec_serialize(elec_sys_t *sys, conf_t *ser, const char *prefix)
size_t libelec_comp_get_num_conns(const elec_comp_t *comp)
void libelec_tie_set_v(elec_comp_t *comp, va_list ap)
elec_get_temp_cb_t libelec_batt_get_temp_cb(const elec_comp_t *batt)
void libelec_comp_set_failed(elec_comp_t *comp, bool failed)
void libelec_destroy(elec_sys_t *sys)
void libelec_gen_set_rpm(elec_comp_t *gen, double rpm)
bool libelec_sys_start(elec_sys_t *sys)
bool libelec_sys_can_start(const elec_sys_t *sys)
double libelec_sys_get_time_factor(const elec_sys_t *sys)
bool libelec_tie_get_all(elec_comp_t *comp)
void libelec_cb_set(elec_comp_t *comp, bool set)
void libelec_remove_user_cb(elec_sys_t *sys, bool pre, elec_user_cb_t cb, void *userinfo)
bool libelec_tie_get_v(elec_comp_t *tie, bool exhaustive, va_list ap)
elec_get_temp_cb_t get_temp
const elec_comp_info_t ** comps
elec_label_box_info_t label_box
struct elec_comp_info_s::@3 gui
elec_get_rpm_cb_t get_rpm
elec_get_load_cb_t get_load
const elec_comp_info_t * dc
const elec_comp_info_t * ac
const elec_comp_info_t * output
const elec_comp_info_t * input