diff --git a/src/core/tango/DevFailed/lut_DevFailed.cpp b/src/core/tango/DevFailed/lut_DevFailed.cpp index fa47395..6a0accf 100644 --- a/src/core/tango/DevFailed/lut_DevFailed.cpp +++ b/src/core/tango/DevFailed/lut_DevFailed.cpp @@ -3,12 +3,15 @@ int lut_DevFailed(lua_State* L, Tango::DevFailed e, const char* source) { int nerr = e.errors.length(); - lua_createtable(L, nerr, 1); + lua_createtable(L, nerr, 2); int top = lua_gettop(L); lua_pushstring(L, source); lua_setfield(L, -2, "source"); + lua_pushboolean(L, true); + lua_setfield(L, -2, "is_DevFailed"); + for(int i = 0; i < nerr; i++) { lua_pushnumber(L, i+1); diff --git a/src/core/tango/DeviceProxy/lut_DeviceProxy.h b/src/core/tango/DeviceProxy/lut_DeviceProxy.h index 057febf..041640c 100644 --- a/src/core/tango/DeviceProxy/lut_DeviceProxy.h +++ b/src/core/tango/DeviceProxy/lut_DeviceProxy.h @@ -35,7 +35,6 @@ int cmd_wrapper(lua_State* L); int lut_DeviceProxy_status(lua_State* L); int lut_DeviceProxy_get_attribute_list(lua_State* L); int lut_DeviceProxy_get_command_list(lua_State* L); -int lut_DeviceProxy_command_wrapper(lua_State* L); // Lua API void lut_lua_register_DeviceProxy(lua_State* L); diff --git a/src/try.lua b/src/try.lua index b2c58d9..09ad3ac 100644 --- a/src/try.lua +++ b/src/try.lua @@ -2,12 +2,16 @@ local log = require "lutango.lutLog" local function default_handler(e) io.stderr:write("\n=================================== EXCEPTION ===================================\n") - io.stderr:write("Tango Error Stack:\t"..e.source.."\n") - for i,v in ipairs(e) do - io.stderr:write("\t"..i..":\n") - io.stderr:write("\t\t"..v.severity.."\t\t"..v.reason.."\n") - io.stderr:write("\t\t"..v.desc.."\n") - io.stderr:write("\t\t"..v.origin.."\n\n") + if e.is_DevFailed then + io.stderr:write("Tango Error Stack:\t"..e.source.."\n") + for i,v in ipairs(e) do + io.stderr:write("\t"..i..":\n") + io.stderr:write("\t\t"..v.severity.."\t\t"..v.reason.."\n") + io.stderr:write("\t\t"..v.desc.."\n") + io.stderr:write("\t\t"..v.origin.."\n\n") + end + else + io.stderr:write(tostring(e)) end io.stderr:write(debug.traceback("", 6)) io.stderr:write("\n=================================================================================\n\n")