mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Fixing errors with Aborted, Failed and Cancelled state transitions. The handling was wrong, causing the root handlers not being called anymore, causing the task not being able to fail, cancel, abort.
This commit is contained in:
parent
69934a8cae
commit
492563d6f3
@ -981,8 +981,9 @@ do -- FSM_PROCESS
|
||||
self:T( "*** FSM *** " .. step .. " *** " .. params[1] .. " --> " .. params[2] .. " --> " .. params[3] .. " *** Task: " .. self.Task:GetName() .. ", TaskUnit: " .. self.Controllable:GetName() )
|
||||
end
|
||||
self._EventSchedules[EventName] = nil
|
||||
local Result, Value
|
||||
if self.Controllable and self.Controllable:IsAlive() == true then
|
||||
local Result, Value = xpcall( function() return self[handler]( self, self.Controllable, self.Task, unpack( params ) ) end, ErrorHandler )
|
||||
Result, Value = xpcall( function() return self[handler]( self, self.Controllable, self.Task, unpack( params ) ) end, ErrorHandler )
|
||||
end
|
||||
return Value
|
||||
--return self[handler]( self, self.Controllable, unpack( params ) )
|
||||
@ -1204,10 +1205,22 @@ do -- FSM_TASK
|
||||
function FSM_TASK:_call_handler( step, trigger, params, EventName )
|
||||
local handler = step .. trigger
|
||||
|
||||
local ErrorHandler = function( errmsg )
|
||||
|
||||
env.info( "Error in SCHEDULER function:" .. errmsg )
|
||||
if BASE.Debug ~= nil then
|
||||
env.info( BASE.Debug.traceback() )
|
||||
end
|
||||
|
||||
return errmsg
|
||||
end
|
||||
|
||||
if self[handler] then
|
||||
self:T( "*** FSM *** " .. step .. " *** " .. params[1] .. " --> " .. params[2] .. " --> " .. params[3] .. " *** Task: " .. self.TaskName )
|
||||
self._EventSchedules[EventName] = nil
|
||||
return self[handler]( self, unpack( params ) )
|
||||
--return self[handler]( self, unpack( params ) )
|
||||
local Result, Value = xpcall( function() return self[handler]( self, unpack( params ) ) end, ErrorHandler )
|
||||
return Value
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -574,15 +574,15 @@ do -- TASK_A2A_DISPATCHER
|
||||
self:Success( Task )
|
||||
end
|
||||
|
||||
function Task.onenterCancelled( Task, From, Event, To )
|
||||
function Task.OnEnterCancelled( Task, From, Event, To )
|
||||
self:Cancelled( Task )
|
||||
end
|
||||
|
||||
function Task.onenterFailed( Task, From, Event, To )
|
||||
function Task.OnEnterFailed( Task, From, Event, To )
|
||||
self:Failed( Task )
|
||||
end
|
||||
|
||||
function Task.onenterAborted( Task, From, Event, To )
|
||||
function Task.OnEnterAborted( Task, From, Event, To )
|
||||
self:Aborted( Task )
|
||||
end
|
||||
|
||||
|
||||
@ -775,15 +775,15 @@ do -- TASK_A2G_DISPATCHER
|
||||
self:Success( Task )
|
||||
end
|
||||
|
||||
function Task.onenterCancelled( Task, From, Event, To )
|
||||
function Task.OnEnterCancelled( Task, From, Event, To )
|
||||
self:Cancelled( Task )
|
||||
end
|
||||
|
||||
function Task.onenterFailed( Task, From, Event, To )
|
||||
function Task.OnEnterFailed( Task, From, Event, To )
|
||||
self:Failed( Task )
|
||||
end
|
||||
|
||||
function Task.onenterAborted( Task, From, Event, To )
|
||||
function Task.OnEnterAborted( Task, From, Event, To )
|
||||
self:Aborted( Task )
|
||||
end
|
||||
|
||||
|
||||
@ -686,15 +686,15 @@ do -- TASK_CARGO_DISPATCHER
|
||||
self:Success( Task )
|
||||
end
|
||||
|
||||
function Transport.Task.onenterCancelled( Task, From, Event, To )
|
||||
function Transport.Task.OnEnterCancelled( Task, From, Event, To )
|
||||
self:Cancelled( Task )
|
||||
end
|
||||
|
||||
function Transport.Task.onenterFailed( Task, From, Event, To )
|
||||
function Transport.Task.OnEnterFailed( Task, From, Event, To )
|
||||
self:Failed( Task )
|
||||
end
|
||||
|
||||
function Transport.Task.onenterAborted( Task, From, Event, To )
|
||||
function Transport.Task.OnEnterAborted( Task, From, Event, To )
|
||||
self:Aborted( Task )
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user