diff --git a/ACT/LibMCEnv.xml b/ACT/LibMCEnv.xml
index fde5418f..05539eb0 100644
--- a/ACT/LibMCEnv.xml
+++ b/ACT/LibMCEnv.xml
@@ -5850,7 +5850,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
index 496e5ec5..4a9439ab 100644
--- a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
+++ b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
@@ -10817,6 +10817,54 @@ typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_GetMachineParameterAsIntegerPtr)
*/
typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_GetMachineParameterAsBoolPtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, bool * pValue);
+/**
+* sets a string parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] pValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_SetMachineParameterPtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, const char * pValue);
+
+/**
+* sets a double parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] dValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_SetMachineParameterAsDoublePtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_double dValue);
+
+/**
+* sets an integer parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] nValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_SetMachineParameterAsIntegerPtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_int64 nValue);
+
+/**
+* sets a boolean parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] bValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_SetMachineParameterAsBoolPtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, bool bValue);
+
/**
* returns a string property of a UI element on the client
*
@@ -12573,6 +12621,10 @@ typedef struct {
PLibMCEnvUIEnvironment_GetMachineParameterAsDoublePtr m_UIEnvironment_GetMachineParameterAsDouble;
PLibMCEnvUIEnvironment_GetMachineParameterAsIntegerPtr m_UIEnvironment_GetMachineParameterAsInteger;
PLibMCEnvUIEnvironment_GetMachineParameterAsBoolPtr m_UIEnvironment_GetMachineParameterAsBool;
+ PLibMCEnvUIEnvironment_SetMachineParameterPtr m_UIEnvironment_SetMachineParameter;
+ PLibMCEnvUIEnvironment_SetMachineParameterAsDoublePtr m_UIEnvironment_SetMachineParameterAsDouble;
+ PLibMCEnvUIEnvironment_SetMachineParameterAsIntegerPtr m_UIEnvironment_SetMachineParameterAsInteger;
+ PLibMCEnvUIEnvironment_SetMachineParameterAsBoolPtr m_UIEnvironment_SetMachineParameterAsBool;
PLibMCEnvUIEnvironment_GetUIPropertyPtr m_UIEnvironment_GetUIProperty;
PLibMCEnvUIEnvironment_GetUIPropertyAsUUIDPtr m_UIEnvironment_GetUIPropertyAsUUID;
PLibMCEnvUIEnvironment_GetUIPropertyAsDoublePtr m_UIEnvironment_GetUIPropertyAsDouble;
diff --git a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp
index c4269a6a..bad24b28 100644
--- a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp
+++ b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp
@@ -3681,6 +3681,10 @@ class CUIEnvironment : public CBase {
inline LibMCEnv_double GetMachineParameterAsDouble(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName);
inline LibMCEnv_int64 GetMachineParameterAsInteger(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName);
inline bool GetMachineParameterAsBool(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName);
+ inline void SetMachineParameter(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const std::string & sValue);
+ inline void SetMachineParameterAsDouble(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_double dValue);
+ inline void SetMachineParameterAsInteger(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_int64 nValue);
+ inline void SetMachineParameterAsBool(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const bool bValue);
inline std::string GetUIProperty(const std::string & sElementPath, const std::string & sPropertyName);
inline std::string GetUIPropertyAsUUID(const std::string & sElementPath, const std::string & sPropertyName);
inline LibMCEnv_double GetUIPropertyAsDouble(const std::string & sElementPath, const std::string & sPropertyName);
@@ -4836,6 +4840,10 @@ class CUIEnvironment : public CBase {
pWrapperTable->m_UIEnvironment_GetMachineParameterAsDouble = nullptr;
pWrapperTable->m_UIEnvironment_GetMachineParameterAsInteger = nullptr;
pWrapperTable->m_UIEnvironment_GetMachineParameterAsBool = nullptr;
+ pWrapperTable->m_UIEnvironment_SetMachineParameter = nullptr;
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble = nullptr;
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger = nullptr;
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool = nullptr;
pWrapperTable->m_UIEnvironment_GetUIProperty = nullptr;
pWrapperTable->m_UIEnvironment_GetUIPropertyAsUUID = nullptr;
pWrapperTable->m_UIEnvironment_GetUIPropertyAsDouble = nullptr;
@@ -14011,6 +14019,42 @@ class CUIEnvironment : public CBase {
if (pWrapperTable->m_UIEnvironment_GetMachineParameterAsBool == nullptr)
return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameter = (PLibMCEnvUIEnvironment_SetMachineParameterPtr) GetProcAddress(hLibrary, "libmcenv_uienvironment_setmachineparameter");
+ #else // _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameter = (PLibMCEnvUIEnvironment_SetMachineParameterPtr) dlsym(hLibrary, "libmcenv_uienvironment_setmachineparameter");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_UIEnvironment_SetMachineParameter == nullptr)
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble = (PLibMCEnvUIEnvironment_SetMachineParameterAsDoublePtr) GetProcAddress(hLibrary, "libmcenv_uienvironment_setmachineparameterasdouble");
+ #else // _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble = (PLibMCEnvUIEnvironment_SetMachineParameterAsDoublePtr) dlsym(hLibrary, "libmcenv_uienvironment_setmachineparameterasdouble");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble == nullptr)
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger = (PLibMCEnvUIEnvironment_SetMachineParameterAsIntegerPtr) GetProcAddress(hLibrary, "libmcenv_uienvironment_setmachineparameterasinteger");
+ #else // _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger = (PLibMCEnvUIEnvironment_SetMachineParameterAsIntegerPtr) dlsym(hLibrary, "libmcenv_uienvironment_setmachineparameterasinteger");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger == nullptr)
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool = (PLibMCEnvUIEnvironment_SetMachineParameterAsBoolPtr) GetProcAddress(hLibrary, "libmcenv_uienvironment_setmachineparameterasbool");
+ #else // _WIN32
+ pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool = (PLibMCEnvUIEnvironment_SetMachineParameterAsBoolPtr) dlsym(hLibrary, "libmcenv_uienvironment_setmachineparameterasbool");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool == nullptr)
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_UIEnvironment_GetUIProperty = (PLibMCEnvUIEnvironment_GetUIPropertyPtr) GetProcAddress(hLibrary, "libmcenv_uienvironment_getuiproperty");
#else // _WIN32
@@ -18690,6 +18734,22 @@ class CUIEnvironment : public CBase {
if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_GetMachineParameterAsBool == nullptr) )
return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("libmcenv_uienvironment_setmachineparameter", (void**)&(pWrapperTable->m_UIEnvironment_SetMachineParameter));
+ if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_SetMachineParameter == nullptr) )
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("libmcenv_uienvironment_setmachineparameterasdouble", (void**)&(pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble));
+ if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_SetMachineParameterAsDouble == nullptr) )
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("libmcenv_uienvironment_setmachineparameterasinteger", (void**)&(pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger));
+ if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_SetMachineParameterAsInteger == nullptr) )
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("libmcenv_uienvironment_setmachineparameterasbool", (void**)&(pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool));
+ if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_SetMachineParameterAsBool == nullptr) )
+ return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("libmcenv_uienvironment_getuiproperty", (void**)&(pWrapperTable->m_UIEnvironment_GetUIProperty));
if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_GetUIProperty == nullptr) )
return LIBMCENV_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -32898,6 +32958,54 @@ class CUIEnvironment : public CBase {
return resultValue;
}
+ /**
+ * CUIEnvironment::SetMachineParameter - sets a string parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] sValue - New Parameter Value
+ */
+ void CUIEnvironment::SetMachineParameter(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const std::string & sValue)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_UIEnvironment_SetMachineParameter(m_pHandle, sMachineInstance.c_str(), sParameterGroup.c_str(), sParameterName.c_str(), sValue.c_str()));
+ }
+
+ /**
+ * CUIEnvironment::SetMachineParameterAsDouble - sets a double parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] dValue - New Parameter Value
+ */
+ void CUIEnvironment::SetMachineParameterAsDouble(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_double dValue)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_UIEnvironment_SetMachineParameterAsDouble(m_pHandle, sMachineInstance.c_str(), sParameterGroup.c_str(), sParameterName.c_str(), dValue));
+ }
+
+ /**
+ * CUIEnvironment::SetMachineParameterAsInteger - sets an integer parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] nValue - New Parameter Value
+ */
+ void CUIEnvironment::SetMachineParameterAsInteger(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_int64 nValue)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_UIEnvironment_SetMachineParameterAsInteger(m_pHandle, sMachineInstance.c_str(), sParameterGroup.c_str(), sParameterName.c_str(), nValue));
+ }
+
+ /**
+ * CUIEnvironment::SetMachineParameterAsBool - sets a boolean parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] bValue - New Parameter Value
+ */
+ void CUIEnvironment::SetMachineParameterAsBool(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const bool bValue)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_UIEnvironment_SetMachineParameterAsBool(m_pHandle, sMachineInstance.c_str(), sParameterGroup.c_str(), sParameterName.c_str(), bValue));
+ }
+
/**
* CUIEnvironment::GetUIProperty - returns a string property of a UI element on the client
* @param[in] sElementPath - Path of UI Element. Fails if element does not exist.
diff --git a/Framework/InterfacesCore/libmcenv_abi.hpp b/Framework/InterfacesCore/libmcenv_abi.hpp
index 6f55059c..e736aacf 100644
--- a/Framework/InterfacesCore/libmcenv_abi.hpp
+++ b/Framework/InterfacesCore/libmcenv_abi.hpp
@@ -10830,6 +10830,54 @@ LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_getmachineparameterasint
*/
LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_getmachineparameterasbool(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, bool * pValue);
+/**
+* sets a string parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] pValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_setmachineparameter(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, const char * pValue);
+
+/**
+* sets a double parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] dValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_setmachineparameterasdouble(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_double dValue);
+
+/**
+* sets an integer parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] nValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_setmachineparameterasinteger(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_int64 nValue);
+
+/**
+* sets a boolean parameter of a state machine
+*
+* @param[in] pUIEnvironment - UIEnvironment instance.
+* @param[in] pMachineInstance - State machine instance name
+* @param[in] pParameterGroup - Parameter Group
+* @param[in] pParameterName - Parameter Name
+* @param[in] bValue - New Parameter Value
+* @return error code or 0 (success)
+*/
+LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_setmachineparameterasbool(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, bool bValue);
+
/**
* returns a string property of a UI element on the client
*
diff --git a/Framework/InterfacesCore/libmcenv_interfaces.hpp b/Framework/InterfacesCore/libmcenv_interfaces.hpp
index c68df9f6..7d8e0a4f 100644
--- a/Framework/InterfacesCore/libmcenv_interfaces.hpp
+++ b/Framework/InterfacesCore/libmcenv_interfaces.hpp
@@ -8328,6 +8328,42 @@ class IUIEnvironment : public virtual IBase {
*/
virtual bool GetMachineParameterAsBool(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName) = 0;
+ /**
+ * IUIEnvironment::SetMachineParameter - sets a string parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] sValue - New Parameter Value
+ */
+ virtual void SetMachineParameter(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const std::string & sValue) = 0;
+
+ /**
+ * IUIEnvironment::SetMachineParameterAsDouble - sets a double parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] dValue - New Parameter Value
+ */
+ virtual void SetMachineParameterAsDouble(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_double dValue) = 0;
+
+ /**
+ * IUIEnvironment::SetMachineParameterAsInteger - sets an integer parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] nValue - New Parameter Value
+ */
+ virtual void SetMachineParameterAsInteger(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const LibMCEnv_int64 nValue) = 0;
+
+ /**
+ * IUIEnvironment::SetMachineParameterAsBool - sets a boolean parameter of a state machine
+ * @param[in] sMachineInstance - State machine instance name
+ * @param[in] sParameterGroup - Parameter Group
+ * @param[in] sParameterName - Parameter Name
+ * @param[in] bValue - New Parameter Value
+ */
+ virtual void SetMachineParameterAsBool(const std::string & sMachineInstance, const std::string & sParameterGroup, const std::string & sParameterName, const bool bValue) = 0;
+
/**
* IUIEnvironment::GetUIProperty - returns a string property of a UI element on the client
* @param[in] sElementPath - Path of UI Element. Fails if element does not exist.
diff --git a/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp b/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp
index 8551f1df..119fcb76 100644
--- a/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp
+++ b/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp
@@ -32711,6 +32711,141 @@ LibMCEnvResult libmcenv_uienvironment_getmachineparameterasbool(LibMCEnv_UIEnvir
}
}
+LibMCEnvResult libmcenv_uienvironment_setmachineparameter(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, const char * pValue)
+{
+ IBase* pIBaseClass = (IBase *)pUIEnvironment;
+
+ try {
+ if (pMachineInstance == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterGroup == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterName == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pValue == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ std::string sMachineInstance(pMachineInstance);
+ std::string sParameterGroup(pParameterGroup);
+ std::string sParameterName(pParameterName);
+ std::string sValue(pValue);
+ IUIEnvironment* pIUIEnvironment = dynamic_cast(pIBaseClass);
+ if (!pIUIEnvironment)
+ throw ELibMCEnvInterfaceException(LIBMCENV_ERROR_INVALIDCAST);
+
+ pIUIEnvironment->SetMachineParameter(sMachineInstance, sParameterGroup, sParameterName, sValue);
+
+ return LIBMCENV_SUCCESS;
+ }
+ catch (ELibMCEnvInterfaceException & Exception) {
+ return handleLibMCEnvException(pIBaseClass, Exception);
+ }
+ catch (std::exception & StdException) {
+ return handleStdException(pIBaseClass, StdException);
+ }
+ catch (...) {
+ return handleUnhandledException(pIBaseClass);
+ }
+}
+
+LibMCEnvResult libmcenv_uienvironment_setmachineparameterasdouble(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_double dValue)
+{
+ IBase* pIBaseClass = (IBase *)pUIEnvironment;
+
+ try {
+ if (pMachineInstance == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterGroup == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterName == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ std::string sMachineInstance(pMachineInstance);
+ std::string sParameterGroup(pParameterGroup);
+ std::string sParameterName(pParameterName);
+ IUIEnvironment* pIUIEnvironment = dynamic_cast(pIBaseClass);
+ if (!pIUIEnvironment)
+ throw ELibMCEnvInterfaceException(LIBMCENV_ERROR_INVALIDCAST);
+
+ pIUIEnvironment->SetMachineParameterAsDouble(sMachineInstance, sParameterGroup, sParameterName, dValue);
+
+ return LIBMCENV_SUCCESS;
+ }
+ catch (ELibMCEnvInterfaceException & Exception) {
+ return handleLibMCEnvException(pIBaseClass, Exception);
+ }
+ catch (std::exception & StdException) {
+ return handleStdException(pIBaseClass, StdException);
+ }
+ catch (...) {
+ return handleUnhandledException(pIBaseClass);
+ }
+}
+
+LibMCEnvResult libmcenv_uienvironment_setmachineparameterasinteger(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv_int64 nValue)
+{
+ IBase* pIBaseClass = (IBase *)pUIEnvironment;
+
+ try {
+ if (pMachineInstance == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterGroup == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterName == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ std::string sMachineInstance(pMachineInstance);
+ std::string sParameterGroup(pParameterGroup);
+ std::string sParameterName(pParameterName);
+ IUIEnvironment* pIUIEnvironment = dynamic_cast(pIBaseClass);
+ if (!pIUIEnvironment)
+ throw ELibMCEnvInterfaceException(LIBMCENV_ERROR_INVALIDCAST);
+
+ pIUIEnvironment->SetMachineParameterAsInteger(sMachineInstance, sParameterGroup, sParameterName, nValue);
+
+ return LIBMCENV_SUCCESS;
+ }
+ catch (ELibMCEnvInterfaceException & Exception) {
+ return handleLibMCEnvException(pIBaseClass, Exception);
+ }
+ catch (std::exception & StdException) {
+ return handleStdException(pIBaseClass, StdException);
+ }
+ catch (...) {
+ return handleUnhandledException(pIBaseClass);
+ }
+}
+
+LibMCEnvResult libmcenv_uienvironment_setmachineparameterasbool(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, bool bValue)
+{
+ IBase* pIBaseClass = (IBase *)pUIEnvironment;
+
+ try {
+ if (pMachineInstance == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterGroup == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ if (pParameterName == nullptr)
+ throw ELibMCEnvInterfaceException (LIBMCENV_ERROR_INVALIDPARAM);
+ std::string sMachineInstance(pMachineInstance);
+ std::string sParameterGroup(pParameterGroup);
+ std::string sParameterName(pParameterName);
+ IUIEnvironment* pIUIEnvironment = dynamic_cast(pIBaseClass);
+ if (!pIUIEnvironment)
+ throw ELibMCEnvInterfaceException(LIBMCENV_ERROR_INVALIDCAST);
+
+ pIUIEnvironment->SetMachineParameterAsBool(sMachineInstance, sParameterGroup, sParameterName, bValue);
+
+ return LIBMCENV_SUCCESS;
+ }
+ catch (ELibMCEnvInterfaceException & Exception) {
+ return handleLibMCEnvException(pIBaseClass, Exception);
+ }
+ catch (std::exception & StdException) {
+ return handleStdException(pIBaseClass, StdException);
+ }
+ catch (...) {
+ return handleUnhandledException(pIBaseClass);
+ }
+}
+
LibMCEnvResult libmcenv_uienvironment_getuiproperty(LibMCEnv_UIEnvironment pUIEnvironment, const char * pElementPath, const char * pPropertyName, const LibMCEnv_uint32 nValueBufferSize, LibMCEnv_uint32* pValueNeededChars, char * pValueBuffer)
{
IBase* pIBaseClass = (IBase *)pUIEnvironment;
@@ -36845,6 +36980,14 @@ LibMCEnvResult LibMCEnv::Impl::LibMCEnv_GetProcAddress (const char * pProcName,
*ppProcAddress = (void*) &libmcenv_uienvironment_getmachineparameterasinteger;
if (sProcName == "libmcenv_uienvironment_getmachineparameterasbool")
*ppProcAddress = (void*) &libmcenv_uienvironment_getmachineparameterasbool;
+ if (sProcName == "libmcenv_uienvironment_setmachineparameter")
+ *ppProcAddress = (void*) &libmcenv_uienvironment_setmachineparameter;
+ if (sProcName == "libmcenv_uienvironment_setmachineparameterasdouble")
+ *ppProcAddress = (void*) &libmcenv_uienvironment_setmachineparameterasdouble;
+ if (sProcName == "libmcenv_uienvironment_setmachineparameterasinteger")
+ *ppProcAddress = (void*) &libmcenv_uienvironment_setmachineparameterasinteger;
+ if (sProcName == "libmcenv_uienvironment_setmachineparameterasbool")
+ *ppProcAddress = (void*) &libmcenv_uienvironment_setmachineparameterasbool;
if (sProcName == "libmcenv_uienvironment_getuiproperty")
*ppProcAddress = (void*) &libmcenv_uienvironment_getuiproperty;
if (sProcName == "libmcenv_uienvironment_getuipropertyasuuid")
diff --git a/Implementation/LibMCEnv/libmcenv_uienvironment.cpp b/Implementation/LibMCEnv/libmcenv_uienvironment.cpp
index 739d1626..f0173b09 100644
--- a/Implementation/LibMCEnv/libmcenv_uienvironment.cpp
+++ b/Implementation/LibMCEnv/libmcenv_uienvironment.cpp
@@ -1198,3 +1198,35 @@ IMachineConfigurationHandler* CUIEnvironment::CreateMachineConfigurationHandler(
{
return new CMachineConfigurationHandler(m_pUISystemState->getDataModel());
}
+
+void CUIEnvironment::SetMachineParameter(const std::string& sMachineInstance,
+ const std::string& sParameterGroup, const std::string& sParameterName, const std::string& sValue)
+{
+ auto pParameterHandler = m_pUISystemState->getStateMachineData()->getParameterHandler(sMachineInstance);
+ auto pGroup = pParameterHandler->findGroup(sParameterGroup, true);
+ pGroup->setParameterValueByName(sParameterName, sValue);
+}
+
+void CUIEnvironment::SetMachineParameterAsDouble(const std::string& sMachineInstance,
+ const std::string& sParameterGroup, const std::string& sParameterName, LibMCEnv_double dValue)
+{
+ auto pParameterHandler = m_pUISystemState->getStateMachineData()->getParameterHandler(sMachineInstance);
+ auto pGroup = pParameterHandler->findGroup(sParameterGroup, true);
+ pGroup->setDoubleParameterValueByName(sParameterName, dValue);
+}
+
+void CUIEnvironment::SetMachineParameterAsInteger(const std::string& sMachineInstance,
+ const std::string& sParameterGroup, const std::string& sParameterName, LibMCEnv_int64 nValue)
+{
+ auto pParameterHandler = m_pUISystemState->getStateMachineData()->getParameterHandler(sMachineInstance);
+ auto pGroup = pParameterHandler->findGroup(sParameterGroup, true);
+ pGroup->setIntParameterValueByName(sParameterName, nValue);
+}
+
+void CUIEnvironment::SetMachineParameterAsBool(const std::string& sMachineInstance,
+ const std::string& sParameterGroup, const std::string& sParameterName, bool bValue)
+{
+ auto pParameterHandler = m_pUISystemState->getStateMachineData()->getParameterHandler(sMachineInstance);
+ auto pGroup = pParameterHandler->findGroup(sParameterGroup, true);
+ pGroup->setBoolParameterValueByName(sParameterName, bValue);
+}
diff --git a/Implementation/LibMCEnv/libmcenv_uienvironment.hpp b/Implementation/LibMCEnv/libmcenv_uienvironment.hpp
index 9ba33b23..095ae662 100644
--- a/Implementation/LibMCEnv/libmcenv_uienvironment.hpp
+++ b/Implementation/LibMCEnv/libmcenv_uienvironment.hpp
@@ -130,6 +130,15 @@ class CUIEnvironment : public virtual IUIEnvironment, public virtual CBase {
bool GetMachineParameterAsBool(const std::string& sMachineInstance, const std::string& sParameterGroup, const std::string& sParameterName) override;
+ void SetMachineParameter(const std::string& sMachineInstance, const std::string& sParameterGroup, const std::string& sParameterName, const std::string& sValue) override;
+
+ void SetMachineParameterAsDouble(const std::string& sMachineInstance, const std::string& sParameterGroup, const std::string& sParameterName, LibMCEnv_double dValue) override;
+
+ void SetMachineParameterAsInteger(const std::string& sMachineInstance, const std::string& sParameterGroup, const std::string& sParameterName, LibMCEnv_int64 nValue) override;
+
+ void SetMachineParameterAsBool(const std::string& sMachineInstance, const std::string& sParameterGroup, const std::string& sParameterName, bool bValue) override;
+
+
std::string GetUIProperty(const std::string& sElementPath, const std::string& sPropertyName) override;
std::string GetUIPropertyAsUUID(const std::string& sElementPath, const std::string& sPropertyName) override;