diff --git a/ACT/LibMCEnv.xml b/ACT/LibMCEnv.xml
index 8a34b06b..ababcebf 100644
--- a/ACT/LibMCEnv.xml
+++ b/ACT/LibMCEnv.xml
@@ -6200,7 +6200,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
index 4fc7cb6b..9e965f22 100644
--- a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
+++ b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.h
@@ -11434,6 +11434,54 @@ typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_GetMachineParameterGroupParamete
*/
typedef LibMCEnvResult (*PLibMCEnvUIEnvironment_GetMachineParameterGroupParameterTypePtr) (LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv::eParameterDataType * pParameterType);
+/**
+* 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
*
@@ -13395,6 +13443,10 @@ typedef struct {
PLibMCEnvUIEnvironment_GetMachineParameterGroupParameterNamePtr m_UIEnvironment_GetMachineParameterGroupParameterName;
PLibMCEnvUIEnvironment_GetMachineParameterGroupParameterDescriptionPtr m_UIEnvironment_GetMachineParameterGroupParameterDescription;
PLibMCEnvUIEnvironment_GetMachineParameterGroupParameterTypePtr m_UIEnvironment_GetMachineParameterGroupParameterType;
+ 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 d6bd51f0..7f9c5d0e 100644
--- a/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp
+++ b/Framework/HeadersDev/CppDynamic/libmcenv_dynamic.hpp
@@ -3778,6 +3778,10 @@ class CUIEnvironment : public CBase {
inline std::string GetMachineParameterGroupParameterName(const std::string & sMachineInstance, const std::string & sParameterGroup, const LibMCEnv_uint32 nIndex);
inline std::string GetMachineParameterGroupParameterDescription(const std::string & sMachineInstance, const std::string & sParameterGroup, const LibMCEnv_uint32 nIndex);
inline eParameterDataType GetMachineParameterGroupParameterType(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);
@@ -5003,6 +5007,10 @@ class CUIEnvironment : public CBase {
pWrapperTable->m_UIEnvironment_GetMachineParameterGroupParameterName = nullptr;
pWrapperTable->m_UIEnvironment_GetMachineParameterGroupParameterDescription = nullptr;
pWrapperTable->m_UIEnvironment_GetMachineParameterGroupParameterType = 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;
@@ -14696,6 +14704,42 @@ class CUIEnvironment : public CBase {
if (pWrapperTable->m_UIEnvironment_GetMachineParameterGroupParameterType == 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
@@ -19725,6 +19769,22 @@ class CUIEnvironment : public CBase {
if ( (eLookupError != 0) || (pWrapperTable->m_UIEnvironment_GetMachineParameterGroupParameterType == 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;
@@ -34787,6 +34847,54 @@ class CUIEnvironment : public CBase {
return resultParameterType;
}
+ /**
+ * 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 fc711aa4..b2492635 100644
--- a/Framework/InterfacesCore/libmcenv_abi.hpp
+++ b/Framework/InterfacesCore/libmcenv_abi.hpp
@@ -11447,6 +11447,54 @@ LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_getmachineparametergroup
*/
LIBMCENV_DECLSPEC LibMCEnvResult libmcenv_uienvironment_getmachineparametergroupparametertype(LibMCEnv_UIEnvironment pUIEnvironment, const char * pMachineInstance, const char * pParameterGroup, const char * pParameterName, LibMCEnv::eParameterDataType * pParameterType);
+/**
+* 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 7a068575..9321cef8 100644
--- a/Framework/InterfacesCore/libmcenv_interfaces.hpp
+++ b/Framework/InterfacesCore/libmcenv_interfaces.hpp
@@ -8761,6 +8761,42 @@ class IUIEnvironment : public virtual IBase {
*/
virtual LibMCEnv::eParameterDataType GetMachineParameterGroupParameterType(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 c276033c..7474a66c 100644
--- a/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp
+++ b/Framework/InterfacesCore/libmcenv_interfacewrapper.cpp
@@ -34598,6 +34598,141 @@ LibMCEnvResult libmcenv_uienvironment_getmachineparametergroupparametertype(LibM
}
}
+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;
@@ -39310,6 +39445,14 @@ LibMCEnvResult LibMCEnv::Impl::LibMCEnv_GetProcAddress (const char * pProcName,
*ppProcAddress = (void*) &libmcenv_uienvironment_getmachineparametergroupparameterdescription;
if (sProcName == "libmcenv_uienvironment_getmachineparametergroupparametertype")
*ppProcAddress = (void*) &libmcenv_uienvironment_getmachineparametergroupparametertype;
+ 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 67e45b03..fd8734da 100644
--- a/Implementation/LibMCEnv/libmcenv_uienvironment.cpp
+++ b/Implementation/LibMCEnv/libmcenv_uienvironment.cpp
@@ -1403,3 +1403,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 42218821..4bbc0382 100644
--- a/Implementation/LibMCEnv/libmcenv_uienvironment.hpp
+++ b/Implementation/LibMCEnv/libmcenv_uienvironment.hpp
@@ -140,6 +140,14 @@ class CUIEnvironment : public virtual IUIEnvironment, public virtual CBase {
LibMCEnv::eParameterDataType GetMachineParameterGroupParameterType(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;