Style file for drawing timing diagrams in LaTeX, forked from https://github.com/glipari/rtsched
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rtsched.sty 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. %% rtsched.sty
  2. %% Copyright 2005 M. G. Lipari
  3. %
  4. % This work may be distributed and/or modified under the
  5. % conditions of the LaTeX Project Public License, either version 1.3
  6. % of this license or (at your option) any later version.
  7. % The latest version of this license is in
  8. % http://www.latex-project.org/lppl.txt
  9. % and version 1.3 or later is part of all distributions of LaTeX
  10. % version 2005/12/01 or later.
  11. %
  12. % This work has the LPPL maintenance status `maintained'.
  13. %
  14. % The Current Maintainer of this work is G. Lipari
  15. %
  16. % This work consists of the file pig.sty.
  17. \NeedsTeXFormat{LaTeX2e}[1995/12/01]
  18. \ProvidesPackage{rtsched}[2005/01/01]
  19. \typeout{'rtsched' style for Latex and TikZ/PGF}
  20. \typeout{Easily draw real-time schedules in TeX/Latex.}
  21. \typeout{(c) 2005, Giuseppe Lipari, Pisa, Italy (g.lipari@sssup.it)}
  22. \typeout{Version 2.0}
  23. \RequirePackage{tikz}
  24. \usetikzlibrary{shadows, patterns}
  25. \RequirePackage{keyval}
  26. \newcommand\rtfont{\usefont{T1}{phv}{m}{n}}
  27. %%
  28. %% These can be changed at any time
  29. %%
  30. \def\RTWindowLength{10cm} % window length
  31. \def\RTWindowHeight{0} % window height
  32. \def\RTNullWindowHeight{0} % nullwindow height
  33. \def\RTTaskLabelSize{\normalsize} % font size the task label
  34. \def\RTNumberLabelSize{\normalsize} % font size of the number labels
  35. \def\RTDefTaskSymbol{\tau}
  36. \def\RTDefNumberOffset{0}
  37. \def\RTDefTaskFill{solid}
  38. \def\RTDefTaskColor{gray}
  39. \def\RTDefLineColor{black}
  40. \def\RTDefXScale{1}
  41. \def\RTDefWriteSymbols{0}
  42. \def\RTDefGridInvisible{0}
  43. \def\RTDefNumbersInvisible{0}
  44. \def\RTDefRowLabelOffset{0pt}
  45. \def\RTDefAxisInvisible{0}
  46. \def\RTDefLineWidth{1pt}
  47. \def\RTDefLineStyle{solid}
  48. \def\RTDefExecHeight{1}
  49. \def\RTArrowStyle{-stealth} %arrow style for deadlines, arrivals and horizontal axes
  50. % -{Triangle 45}[length=x] with length is a more modern arrow style but requires arrows.meta tikz library (available on latest texlive but rarely up to date on linux distribution)
  51. %-stealth is a predefined more classical arrow style
  52. \def\RTExecLabel{\ }
  53. \def\RTTaskSymbol{\RTDefTaskSymbol}
  54. \def\RTTaskFill{\RTDefTaskFill}
  55. \def\RTTaskColor{\RTDefTaskColor}
  56. \def\RTLineColor{\RTDefLineColor}
  57. \def\RTXScale{\RTDefXScale}
  58. \def\RTWriteSymbols{\RTDefWriteSymbols}
  59. \def\RTNumberOffset{\RTDefNumberOffset}
  60. \def\RTGridInvisible{\RTDefGridInvisible}
  61. \def\RTNumbersInvisible{\RTDefNumbersInvisible}
  62. \def\RTAxisInvisible{\RTDefAxisInvisible}
  63. \def\RTRowLabelOffset{\RTDefRowLabelOffset}
  64. \def\RTLineWidth{\RTDefLineWidth}
  65. \def\RTLineStyle{\RTDefLineStyle}
  66. \def\RTExecHeight{\RTDefExecHeight}
  67. \define@key{RT}{height}[\RTNullWindowHeight]{\def\RTWindowHeight{#1}}
  68. \define@key{RT}{width}[10]{\def\RTWindowLength{#1}}
  69. \define@key{RT}{labelsize}[\normalsize]{\def\RTTaskLabelSize{#1}}
  70. \define@key{RT}{numbersize}[\normalsize]{\def\RTNumberLabelSize{#1}}
  71. \define@key{RT}{color}[\RTDefTaskColor]{\def\RTTaskColor{#1}}
  72. \define@key{RT}{linecolor}[\RTDefLineColor]{\def\RTLineColor{#1}}
  73. \define@key{RT}{execlabel}[\ ]{\def\RTExecLabel{#1}}
  74. \define@key{RT}{fillstyle}[\RTDefTaskFill]{\def\RTTaskFill{#1}}
  75. \define@key{RT}{nocommand}{}
  76. \define@key{RT}{xscale}[\RTDefXScale]{\def\RTXScale{#1}}
  77. \define@key{RT}{symbol}[{\tau}]{\def\RTTaskSymbol{#1}}
  78. \define@key{RT}{nosymbols}[\RTDefWriteSymbols]{\def\RTWriteSymbols{#1}}
  79. \define@key{RT}{numoffset}[\RTDefNumberOffset]{\def\RTNumberOffset{#1}}
  80. \define@key{RT}{nogrid}[\RTDefGridInvisible]{\def\RTGridInvisible{#1}}
  81. \define@key{RT}{nonumbers}[\RTDefNumbersInvisible]{\def\RTNumbersInvisible{#1}}
  82. \define@key{RT}{labeloffset}[\RTDefRowLabelOffset]{\def\RTRowLabelOffset{#1}}
  83. \define@key{RT}{axis}[\RTDefAxisInvisible]{\def\RTAxisInvisible{#1}}
  84. \define@key{RT}{lw}[\RTDefLineWidth]{\def\RTLineWidth{#1}}
  85. \define@key{RT}{style}[\RTDefLineStyle]{\def\RTLineStyle{#1}}
  86. \define@key{RT}{exeheight}[\RTDefExecHeight]{\def\RTExecHeight{#1}}
  87. %%
  88. %% temporaries
  89. \newdimen\sx % slot length
  90. \newdimen\sy % slot height
  91. \newdimen\hy % frame height
  92. \newdimen\xx % x position
  93. \newdimen\yy % y position
  94. \newdimen\xxx % x position
  95. \newdimen\yyy % y position
  96. \newcount\nsx % number of horizontal slots
  97. \newcount\nsy % number of vertical slots
  98. \newcount\nhl % number of horizontal lines
  99. \newcount\nvl % number of vertical lines
  100. \newcount\ntasks % number of tasks
  101. \newcount\ntaskslessone %number of tasks less one
  102. \newcount\tmp % temp
  103. \newcounter{myLabel}
  104. \def\RTGrid{\@ifnextchar[\@mygrid@begin{\@mygrid@begin[]}}
  105. \def\RTGridBegin{\@ifnextchar[\@mygrid@begin{\@mygrid@begin[]}}
  106. \def\@mygrid@begin[#1]#2#3{\setkeys{RT}{#1}%
  107. %% get the number of tasks
  108. \ntasks = #2
  109. \ntaskslessone = \ntasks
  110. \advance \ntaskslessone by -1
  111. %% number of horizontal steps in the grid
  112. \nsx = #3 \advance \nsx by 2 %
  113. %% real length of the window (approx)
  114. \nvl = \nsx \advance \nvl by 1 %
  115. %% compute length of a step
  116. \sx = \RTWindowLength \divide \sx by \nsx %
  117. %% number of vertical steps in the grid
  118. \nsy = #2 \multiply \nsy by 3 \advance \nsy by 1 %
  119. %% compute length of a vertical step (if height is null, \sy is the
  120. %% same as \sx)
  121. \ifx\RTWindowHeight\RTNullWindowHeight%
  122. \sy = \sx%
  123. \hy = \sy \multiply \hy by \nsy %\advance \hy by \sy%
  124. \else
  125. \sy = \RTWindowHeight \divide \sy by \nsy %
  126. \hy = \RTWindowHeight %\advance \hy by \sy %
  127. \fi
  128. %% compute real height
  129. \nhl = \nsy \advance \nhl by 1 %
  130. \advance \nsy by -1 \advance \nsx by -1
  131. %% the picture
  132. \pgfdeclarelayer{foreground}
  133. \pgfsetlayers{main,foreground}
  134. \begin{tikzpicture}
  135. %% draw grid (if not invisible)
  136. \if\RTGridInvisible\RTDefGridInvisible
  137. \draw[lightgray, semithick] (0,0) grid[xstep = \sx,ystep=\sy ] (\RTWindowLength,\hy);
  138. %% draw border grid
  139. \draw [black, thick] (0,0) rectangle (\RTWindowLength,\hy);
  140. \else\relax
  141. \fi
  142. %% draw numbers (if not invisible)
  143. \if\RTNumbersInvisible\RTDefNumbersInvisible
  144. \foreach \i [evaluate = \i as \j using \i*\sx] in {0,...,#3}{
  145. \ifodd \i
  146. \else
  147. \pgfmathsetmacro\nbwithoffset{\i + \RTNumberOffset};
  148. \node[below, font=\RTNumberLabelSize \rtfont] at (\j +\sx , 0) {\pgfmathprintnumber[int trunc,/pgf/number format/assume math mode=true]{\nbwithoffset }};
  149. \fi
  150. }
  151. \else
  152. \relax
  153. \fi
  154. %% Task Names
  155. \if\RTWriteSymbols\RTDefWriteSymbols
  156. \foreach \i [evaluate = \i as \j using (\hy -3*\i*\sy)] in {0,...,\ntaskslessone}{
  157. \pgfmathsetmacro\task{\i + 1};
  158. \node[below, font=\rtfont] at (-\sx , \j-\sy) {\RTTaskLabelSize $\RTTaskSymbol_{\pgfmathprintnumber[int trunc]{\task}}$};
  159. }
  160. \else\relax
  161. \fi
  162. %% Horizontal axes
  163. \if\RTAxisInvisible\RTDefAxisInvisible
  164. \begin{pgfonlayer}{foreground}
  165. \foreach \i [evaluate = \i as \j using (\hy -3*\i*\sy)] in {0,...,\ntaskslessone}{
  166. \draw [very thick,\RTArrowStyle] (\sx,\j-3*\sy) -- (\RTWindowLength - \sx,\j-3*\sy);
  167. }
  168. \end{pgfonlayer}
  169. \fi
  170. }
  171. \def\@RTDefaultValues{%
  172. \setkeys{RT}{height}%
  173. \setkeys{RT}{width}%
  174. \setkeys{RT}{labelsize}%
  175. \setkeys{RT}{numbersize}%
  176. \setkeys{RT}{symbol}%
  177. \setkeys{RT}{fillstyle}%
  178. \setkeys{RT}{color}
  179. \setkeys{RT}{linecolor}%
  180. \setkeys{RT}{xscale}%
  181. \setkeys{RT}{nosymbols}%
  182. }
  183. \def\@RTExecDefaultValues{
  184. \setkeys{RT}{color}%
  185. \setkeys{RT}{execlabel}%
  186. \setkeys{RT}{linecolor}%
  187. }
  188. \def\RTGridEnd{
  189. \end{tikzpicture}%
  190. \@RTDefaultValues%
  191. }
  192. \def\endRTGrid{
  193. \end{tikzpicture}%
  194. \@RTDefaultValues%
  195. }
  196. \newcommand{\RTSet}[1]{
  197. \setkeys{RT}{#1}
  198. }
  199. \newcommand{\RTSetDefault}{
  200. \@RTDefaultValues
  201. }
  202. %% internal
  203. \newcommand{\@compute@xx}[1]{
  204. \xx = #1\sx
  205. \divide \xx by \RTXScale
  206. \advance \xx by \sx
  207. }
  208. \newcommand{\@compute@xxx}[1]{
  209. \xxx = #1\sx
  210. \divide \xxx by \RTXScale
  211. \advance \xxx by \sx
  212. }
  213. \newcommand{\@compute@yy}[1]{
  214. \yy = -3\sy \multiply \yy by #1
  215. \advance \yy by \hy
  216. }
  217. \newcommand{\DrawTaskAxis}[2][nocommand=1]{%
  218. \setkeys{RT}{#1}%
  219. \@compute@yy{#2}
  220. \@compute@xx{0}
  221. \xxx = \RTWindowLength \advance \xxx by -\sx
  222. \draw [\RTLineColor,\RTArrowStyle] (\xx,\yy) -- (\xx,\yyy);
  223. \psline[linecolor=\RTLineColor]{->}(\xx,\yy)(\xxx,\yy)%
  224. \@RTExecDefaultValues%
  225. }
  226. \newcommand{\DrawXYAxis}[3][nocommand=1]{%
  227. \setkeys{RT}{#1}%
  228. \@compute@yy{#2}
  229. \@compute@xx{0}
  230. \xxx = \RTWindowLength \advance \xxx by -\sx
  231. \draw [\RTLineColor,\RTArrowStyle] (\xx,\yy) -- (\xxx,\yy);
  232. \yyy = 3\sy \multiply \yyy by #3 \advance \yyy by \yy
  233. \advance \yyy by -\sy
  234. \draw [\RTLineColor,\RTArrowStyle] (\xx,\yy) -- (\xx,\yyy);
  235. \@RTExecDefaultValues%
  236. }
  237. \newcommand{\FLine}[5][nocommand=1]{%
  238. \setkeys{RT}{#1}%
  239. \@compute@xx{#2}
  240. \@compute@xxx{#4}
  241. \yy = #3\sy \advance \yy by 2\sy
  242. \yyy = #5\sy \advance \yyy by 2\sy
  243. \draw [\RTLineColor, line width=\RTLineWidth,\RTLineStyle] (\xx,\yy) -- (\xxx,\yyy);
  244. \@RTExecDefaultValues%
  245. }
  246. %% Task Arrival: draws an up arrow at the specified slot
  247. %% #1 : task number from 1 to n
  248. %% #2 : slot number from 0 to l-1
  249. \newcommand{\TaskArrival}[3][nocommand=1]{%
  250. \setkeys{RT}{#1}%
  251. \@compute@yy{#2}
  252. \@compute@xx{#3}
  253. \yyy = \yy \advance \yyy by 2\sy%
  254. \begin{pgfonlayer}{foreground}
  255. \draw [\RTLineColor, thick,\RTArrowStyle] (\xx,\yy) -- (\xx,\yyy);
  256. \end{pgfonlayer}
  257. \@RTExecDefaultValues%
  258. }
  259. %% Task Arrival and deadline: draws an up arrow and a down arrow at the specified slots
  260. %% #1 : task number from 1 to n
  261. %% #2 : slot number from 0 to l-1
  262. %% #3 : relative deadline
  263. \newcommand{\TaskArrDead}[4][nocommand=1]{
  264. \setkeys{RT}{#1}%
  265. \@compute@yy{#2}
  266. \@compute@xx{#3}
  267. \yyy = \yy \advance \yyy by 2\sy
  268. \begin{pgfonlayer}{foreground}
  269. \draw [\RTLineColor, thick,\RTArrowStyle] (\xx,\yy) -- (\xx,\yyy);
  270. \end{pgfonlayer}
  271. \advance \xx by #4\sx
  272. \begin{pgfonlayer}{foreground}
  273. \draw [\RTLineColor, thick,\RTArrowStyle] (\xx,\yyy) -- (\xx,\yy);
  274. \end{pgfonlayer}
  275. \@RTExecDefaultValues
  276. }
  277. %% Task Deadline: draws a down arrow at the specified slot
  278. %% #1 : task number from 1 to n
  279. %% #2 : slot number from 0 to l-1
  280. \newcommand{\TaskDeadline}[3][nocommand=1]{
  281. \setkeys{RT}{#1}%
  282. \@compute@yy{#2}
  283. \@compute@xx{#3}
  284. \yyy = \yy \advance \yyy by 2\sy
  285. \begin{pgfonlayer}{foreground}
  286. \draw [\RTLineColor, thick,<-] (\xx,\yy) -- (\xx,\yyy);
  287. \end{pgfonlayer}
  288. \@RTExecDefaultValues
  289. }
  290. \newcommand{\TaskExecution}[4][nocommand=1]{
  291. \setkeys{RT}{#1}%
  292. \@compute@yy{#2}
  293. \@compute@xx{#3}
  294. \yyy = \yy \advance \yyy by \RTExecHeight\sy
  295. \@compute@xxx{#4}
  296. \draw [fill=\RTTaskColor,\RTTaskFill,draw=\RTLineColor, thick] (\xx,\yy) rectangle (\xxx,\yyy);
  297. \advance \xx by \xxx \xx = .5\xx
  298. \draw (\xx,\yy) node[above, font=\rtfont] {\RTNumberLabelSize \RTExecLabel};%\RTNumberLabelSize
  299. \@RTExecDefaultValues
  300. }
  301. %
  302. % Task Lock
  303. % par 1: task
  304. % par 2: time
  305. % par 3: resource
  306. %
  307. \newcommand{\TaskLock}[4][nocommand=1]{
  308. \setkeys{RT}{#1}%
  309. \@compute@yy{#2}
  310. \@compute@xx{#3}
  311. \yyy = \yy \advance \yyy by \sy
  312. \node[above,font=\rtfont] at (\xx , \yyy) {\RTNumberLabelSize L(#4)}; %\RTNumberLabelSize
  313. \@RTExecDefaultValues
  314. }
  315. %
  316. % TaskUnlock
  317. % par 1: task
  318. % par 2: time
  319. % par 3: resource
  320. %
  321. \newcommand{\TaskUnlock}[4][nocommand=1]{
  322. \setkeys{RT}{#1}%
  323. \@compute@yy{#2}
  324. \@compute@xx{#3}
  325. \yyy = \yy \advance \yyy by \sy
  326. \node[above, font=\rtfont] at (\xx , \yyy) {\RTNumberLabelSize U(#4)}; %\RTNumberLabelSize
  327. \@RTExecDefaultValues
  328. }
  329. %
  330. % Label
  331. % par 1: number of vertical slot
  332. % par 2: time
  333. % par 3: label
  334. %
  335. \newcommand{\Label}[4][nocommand=1]{
  336. \setkeys{RT}{#1}%
  337. %\@compute@yy{#2}
  338. \@compute@xx{#3}
  339. \yy = -\sy \multiply \yy by #2
  340. \advance \yy by \hy
  341. \yyy = \yy \advance \yyy by 2\sy %\yyy = \yy \advance \yyy by \sy
  342. \node[font=\rtfont, fill = white, draw=\RTLineColor, thin, drop shadow = {color = black}] at (\xx , \yyy) {\RTNumberLabelSize #4}; %\RTNumberLabelSize
  343. \@RTExecDefaultValues
  344. }
  345. %
  346. % Inherit
  347. % par 1: higher priority task (from)
  348. % par 2: lower priority task (to)
  349. % par 3: time
  350. %
  351. \newcommand{\Inherit}[4][nocommand=1]{
  352. \setkeys{RT}{#1}%
  353. \@compute@yy{#2}
  354. \@compute@xx{#4}
  355. \yyy = -3\sy \multiply \yyy by #3 \advance \yyy by \sy
  356. \advance \yyy by \hy \advance \yyy by -\sy % \RTWindowHeight
  357. \begin{pgfonlayer}{foreground}
  358. \draw [dashed, thick,\RTArrowStyle] (\xx,\yy) -- (\xx,\yyy);
  359. \end{pgfonlayer}
  360. \@RTExecDefaultValues
  361. }
  362. %
  363. % Activation
  364. % par 1: activating task (from)
  365. % par 2: signal start time
  366. % par 3: activated task (to)
  367. % par 4: signal arrival time
  368. \newcommand{\Activation}[5][nocommand=1]{
  369. \setkeys{RT}{#1}%
  370. \@compute@yy{#2}
  371. \@compute@xx{#3}
  372. \yyy = -3\sy \multiply \yyy by #4 %\advance \yyy by \sy
  373. \advance \yyy by \hy %\advance \yyy by -\sy %\RTWindowHeight
  374. \xxx = #5\sx \advance \xxx by \sx
  375. \begin{pgfonlayer}{foreground}
  376. \draw [dashed, thick,\RTArrowStyle] (\xx,\yy) -- (\xxx,\yyy);
  377. \end{pgfonlayer}
  378. }
  379. %
  380. % RTBox
  381. % par 1: time1
  382. % par 2: time2
  383. %
  384. \newcommand{\RTBox}[3][nocommand=1]{
  385. \setkeys{RT}{#1}%
  386. \yy = 0cm
  387. \advance \yy by \hy
  388. \yyy = 0cm % \yyy = \sy
  389. \@compute@xx{#2}
  390. \@compute@xxx{#3}
  391. \draw [pattern color=lightgray, draw=\RTLineColor, pattern=crosshatch, rounded corners, thin](\xx,\yy) rectangle (\xxx,\yyy);
  392. \@RTExecDefaultValues
  393. }
  394. %% %
  395. % % par 1: task
  396. % % par 2: first instant (arrival)
  397. % % par 3: second instant (deadline)
  398. % %
  399. % \newcommand{\Interval}[4][nocommand=1]{
  400. % \setkeys{RT}{#1}%
  401. % \@compute@yy{#2}
  402. % \advance \yy by 2.5\sy
  403. % \@compute@xx{#3}
  404. % \@compute@xxx{#4}
  405. % % da cambiare con psarc
  406. % \pscurve*[linecolor=\RTLineColor]{-}(\xx,\yy)(\xxx,\yy)
  407. % \@RTExecDefaultValues
  408. % }
  409. %
  410. %
  411. % RowLabel
  412. % par 1: task
  413. % par 2: label
  414. %
  415. \newcommand{\RowLabel}[3][nocommand=1]{
  416. \setkeys{RT}{#1}%
  417. \@compute@yy{#2}
  418. \advance \yy by 1.5\sy
  419. \xx = \RTRowLabelOffset %\advance \xx by \sx
  420. \node[below left,font=\rtfont] at (-\xx , \yy) {\RTTaskLabelSize #3};%\RTTaskLabelSize
  421. }
  422. %
  423. % TaskExecDelta
  424. % par 1: task
  425. % par 2: start time
  426. % par 3: delta
  427. %
  428. \newcommand{\TaskExecDelta}[4][nocommand=1]{
  429. \setkeys{RT}{#1}%
  430. \@compute@yy{#2}
  431. \@compute@xx{#3}
  432. \yyy = \yy \advance \yyy by \RTExecHeight \sy
  433. %\@compute@xxx{#4}
  434. \xxx = \xx \advance \xxx by #4\sx
  435. \draw [fill=\RTTaskColor,\RTTaskFill,draw=\RTLineColor, thick] (\xx,\yy) rectangle (\xxx,\yyy);
  436. \advance \xx by \xxx \xx = .5\xx
  437. \draw (\xx,\yy) node[above, font=\rtfont] {\RTTaskLabelSize \RTExecLabel}; %\RTNumberLabelSize
  438. \@RTExecDefaultValues
  439. }
  440. %
  441. % TaskRespTime
  442. % par 1: task
  443. % par 2: start time
  444. % par 3: finish time
  445. %
  446. \newcommand{\TaskRespTime}[4][nocommand=1]{
  447. \setkeys{RT}{#1}
  448. \@compute@yy{#2}
  449. \@compute@xx{#3}
  450. \yyy = \yy \advance \yyy by \sy
  451. \xxx = \xx \advance \xxx by #4\sx
  452. \draw [pattern color=\RTTaskColor,draw=\RTLineColor, pattern=crosshatch, thin] (\xx,\yy) rectangle (\xxx,\yyy);
  453. \@RTExecDefaultValues
  454. }
  455. \@ifclassloaded{beamer}{
  456. \renewcommand<>{\TaskArrival}[3][nocommand=1]{
  457. \only#4{\beameroriginal{\TaskArrival}[#1]{#2}{#3}}
  458. }
  459. \renewcommand<>{\TaskArrDead}[4][nocommand=1]{
  460. \only#5{\beameroriginal{\TaskArrDead}[#1]{#2}{#3}{#4}}
  461. }
  462. \renewcommand<>{\TaskDeadline}[3][nocommand=1]{
  463. \only#4{\beameroriginal{\TaskDeadline}[#1]{#2}{#3}}
  464. }
  465. \renewcommand<>{\TaskExecution}[4][nocommand=1]{
  466. \only#5{\beameroriginal{\TaskExecution}[#1]{#2}{#3}{#4}}
  467. }
  468. \renewcommand<>{\TaskExecDelta}[4][nocommand=1]{
  469. \only#5{\beameroriginal{\TaskExecDelta}[#1]{#2}{#3}{#4}}
  470. }
  471. \renewcommand<>{\TaskRespTime}[4][nocommand=1]{
  472. \only#5{\beameroriginal{\TaskRespTime}[#1]{#2}{#3}{#4}}
  473. }
  474. \renewcommand<>{\TaskLock}[4][nocommand=1]{
  475. \only#5{\beameroriginal{\TaskLock}[#1]{#2}{#3}{#4}}
  476. }
  477. \renewcommand<>{\TaskUnlock}[4][nocommand=1]{
  478. \only#5{\beameroriginal{\TaskUnlock}[#1]{#2}{#3}{#4}}
  479. }
  480. \renewcommand<>{\Label}[4][nocommand=1]{
  481. \only#5{\beameroriginal{\Label}[#1]{#2}{#3}{#4}}
  482. }
  483. \renewcommand<>{\Inherit}[4][nocommand=1]{
  484. \only#5{\beameroriginal{\Inherit}[#1]{#2}{#3}{#4}}
  485. }
  486. \renewcommand<>{\Activation}[5][nocommand=1]{
  487. \only#6{\beameroriginal{\Activation}[#1]{#2}{#3}{#4}{#5}}
  488. }
  489. \renewcommand<>{\RTBox}[3][nocommand=1]{
  490. \only#4{\beameroriginal{\RTBox}[#1]{#2}{#3}}
  491. }
  492. \renewcommand<>{\FLine}[5][nocommand=1]{
  493. \only#6{\beameroriginal{\FLine}[#1]{#2}{#3}{#4}{#5}}
  494. }
  495. }
  496. {\typeout{beamer not loaded}}
  497. \endinput