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:
+32
-2
@@ -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 ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user