diff sched/timed_action.m @ 2:7357e1dc2ad6

Simplified scheduler library with new schedule representation.
author samer
date Sat, 22 Dec 2012 16:17:51 +0000
parents 672052bd81f8
children 0ce3c2070089
line wrap: on
line diff
--- a/sched/timed_action.m	Wed Dec 19 22:46:05 2012 +0000
+++ b/sched/timed_action.m	Sat Dec 22 16:17:51 2012 +0000
@@ -1,9 +1,20 @@
-function a0=timed_action(x)
+% timed_action - return action function that checks the time
+%
+% timed_action :: 
+%    (A1, A2, ... => B1, B2, ...) ~'some action',
+% -> timed_action({A1,A2,...},{B1,B2,...}).
+function a0=timed_action(x,varargin)
+	opts=prefs('print',0,'errorfn',@(t)nows-t,varargin{:});
+	if opts.print, a0=@aa_print; else a0=@aa; end
+	errfn=opts.errorfn;
 
-	a0=@aa;
-
-	function [a1,tt]=aa(t0,ta),
-		a1=x(t0);
-		tt=nows;
+	function varargout=aa_print(t0,varargin),
+		varargout{1}=errfn(t0); 
+		[varargout{2:nargout}]=x(varargin{:});
+		fprintf('timed_action: error=%g\n',varargout{1});
+	end
+	function varargout=aa(t0,varargin),
+		varargout{1}=errfn(t0);
+		[varargout{2:nargout}]=x(varargin{:});
 	end
 end