1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-16 00:00:02 +01:00
VILLASnode/include/villas/nodes/cbuilder.h

51 lines
No EOL
1 KiB
C

/** Node type: Wrapper around RSCAD CBuilder model
*
* @file
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
* @copyright 2017, Steffen Vogel
*********************************************************************************/
/**
* @addtogroup cbuilder RTDS CBuilder model node
* @ingroup node
* @{
*/
#pragma once
#include <pthread.h>
#include "list.h"
/* Forward declaration */
struct cbuilder;
struct cbuilder_model {
void (*code)();
void (*ram)();
int (*init)(struct cbuilder *cb);
int (*read)(float inputs[], int len);
int (*write)(float outputs[], int len);
};
struct cbuilder {
unsigned long step, read;
double timestep;
struct cbuilder_model *model;
float *params;
int paramlen;
/* This mutex and cv are used to protect model parameters, input & outputs
*
* The cbuilder_read() function will wait for the completion of a simulation step
* before returning.
* The simulation step is triggerd by a call to cbuilder_write().
*/
pthread_mutex_t mtx;
pthread_cond_t cv;
};
/** @} */