From 079563277dc299fdef0ce5a8b1aa0731dbdaecf6 Mon Sep 17 00:00:00 2001 From: David Heejong Park Date: Mon, 5 May 2025 20:05:54 +0200 Subject: [PATCH] Added string/boolean connect variable functions --- include/cosim.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/cosim.cpp | 22 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/include/cosim.h b/include/cosim.h index 4ddecce..359231c 100644 --- a/include/cosim.h +++ b/include/cosim.h @@ -1048,6 +1048,54 @@ int cosim_execution_connect_integer_variables( cosim_value_reference inputValueReference); +/** + * Connects one boolean output variable to one boolean input variable. + * + * \param [in] execution + * The execution. + * \param [in] outputSlaveIndex + * The source slave. + * \param [in] outputValueReference + * The source variable. + * \param [in] inputSlaveIndex + * The destination slave. + * \param [in] inputValueReference + * The destination variable. + * + * \returns + * 0 on success and -1 on error. + */ +int cosim_execution_connect_boolean_variables( + cosim_execution* execution, + cosim_slave_index outputSlaveIndex, + cosim_value_reference outputValueReference, + cosim_slave_index inputSlaveIndex, + cosim_value_reference inputValueReference); + + +/** + * Connects one string output variable to one string input variable. + * + * \param [in] execution + * The execution. + * \param [in] outputSlaveIndex + * The source slave. + * \param [in] outputValueReference + * The source variable. + * \param [in] inputSlaveIndex + * The destination slave. + * \param [in] inputValueReference + * The destination variable. + * + * \returns + * 0 on success and -1 on error. + */ +int cosim_execution_connect_string_variables( + cosim_execution* execution, + cosim_slave_index outputSlaveIndex, + cosim_value_reference outputValueReference, + cosim_slave_index inputSlaveIndex, + cosim_value_reference inputValueReference); /// Creates an observer which stores the last observed value for all variables. cosim_observer* cosim_last_value_observer_create(); diff --git a/src/cosim.cpp b/src/cosim.cpp index 839ad6d..2ecdbcc 100644 --- a/src/cosim.cpp +++ b/src/cosim.cpp @@ -870,6 +870,28 @@ int cosim_execution_connect_integer_variables( cosim::variable_type::integer); } +int cosim_execution_connect_boolean_variables( + cosim_execution* execution, + cosim_slave_index outputSlaveIndex, + cosim_value_reference outputValueReference, + cosim_slave_index inputSlaveIndex, + cosim_value_reference inputValueReference) +{ + return connect_variables(execution, outputSlaveIndex, outputValueReference, inputSlaveIndex, inputValueReference, + cosim::variable_type::boolean); +} + +int cosim_execution_connect_string_variables( + cosim_execution* execution, + cosim_slave_index outputSlaveIndex, + cosim_value_reference outputValueReference, + cosim_slave_index inputSlaveIndex, + cosim_value_reference inputValueReference) +{ + return connect_variables(execution, outputSlaveIndex, outputValueReference, inputSlaveIndex, inputValueReference, + cosim::variable_type::string); +} + int cosim_observer_slave_get_real( cosim_observer* observer, cosim_slave_index slave,