EgtMachKernel 2.1g3 :

- aggiunta funzione lua EmtSetWarning per impostare warning da script di simulazione, stima e generazione
- aggiunto parametro a EmtSetLastError per forzare uscita soft dalla funzione.
This commit is contained in:
Dario Sassi
2019-07-22 07:47:48 +00:00
parent c2d2db28cd
commit 280e3abf0c
4 changed files with 34 additions and 3 deletions
+32 -2
View File
@@ -110,6 +110,8 @@ Machine::LuaInit( const string& sMachineName)
m_LuaMgr.RegisterFunction( "EmtSetOutstrokeInfo", Machine::LuaEmtSetOutstrokeInfo) ;
// registro la funzione per impostare informazioni di errore
m_LuaMgr.RegisterFunction( "EmtSetLastError", Machine::LuaEmtSetLastError) ;
// registro la funzione per aggiungere informazioni di warning
m_LuaMgr.RegisterFunction( "EmtSetWarning", Machine::LuaEmtSetWarning) ;
return true ;
}
@@ -974,11 +976,13 @@ Machine::LuaEmtSetOutstrokeInfo( lua_State* L)
int
Machine::LuaEmtSetLastError( lua_State* L)
{
// 2 parametri : nErrId, sErrDesc
// 2 o 3 parametri : nErrId, sErrDesc [, bSoftExit = false]
int nErrId ;
LuaCheckParam( L, 1, nErrId)
string sErrDesc ;
LuaCheckParam( L, 2, sErrDesc)
bool bSoftExit = false ;
LuaGetParam( L, 3, bSoftExit) ;
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
@@ -986,5 +990,31 @@ Machine::LuaEmtSetLastError( lua_State* L)
// assegno i dati
bool bOk = ( m_pMchLua->m_pMchMgr != nullptr && m_pMchLua->m_pMchMgr->SetLastError( nErrId, sErrDesc)) ;
string sOut = "(" + ToString( nErrId) + ") " + sErrDesc ;
return luaL_error( L, sOut.c_str()) ;
// se uscita dolce
if ( bSoftExit) {
LuaSetParam( L, true) ;
return 1 ;
}
else
return luaL_error( L, sOut.c_str()) ;
}
//----------------------------------------------------------------------------
int
Machine::LuaEmtSetWarning( lua_State* L)
{
// 2 parametri : nWarnId, sWarnDesc
int nWarnId ;
LuaCheckParam( L, 1, nWarnId)
string sWarnDesc ;
LuaCheckParam( L, 2, sWarnDesc)
LuaClearStack( L) ;
// verifico ci sia una macchina attiva
if ( m_pMchLua == nullptr)
return luaL_error( L, " Unknown Machine") ;
// assegno i dati
bool bOk = ( m_pMchLua->m_pMchMgr != nullptr && m_pMchLua->m_pMchMgr->SetWarning( nWarnId, sWarnDesc)) ;
// assegno risultato
LuaSetParam( L, true) ;
return 1 ;
}