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

55 lines
1.3 KiB
C
Raw Normal View History

2016-06-26 15:28:34 +02:00
/** Node type: Wrapper around RSCAD CBuilder model
*
* @file
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
* @copyright 2015-2016, Steffen Vogel
* This file is part of VILLASnode. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*/
/**
* @addtogroup cbuilder RTDS CBuilder model node
* @ingroup node
* @{
*********************************************************************************/
2016-06-26 15:28:34 +02:00
#ifndef _NODES_CBUILDER_H_
#define _NODES_CBUILDER_H_
2016-06-26 15:28:34 +02:00
#include <pthread.h>
#include "list.h"
extern struct list cbmodels; /**< Table of existing CBuilder models */
struct cbuilder {
unsigned long step, read;
double timestep;
struct cbmodel *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;
};
struct cbmodel {
char *name;
void (*code)();
void (*ram)();
int (*init)(struct cbuilder *cb);
int (*read)(float inputs[], int len);
int (*write)(float outputs[], int len);
};
#endif /** _NODES_CBUILDER_H_ @} */