module:python:taskevent:taskevent
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| module:python:taskevent:taskevent [2022/10/21 19:42] – [221021] omdevelop | module:python:taskevent:taskevent [2022/10/21 19:49] (current) – [Übersicht] omdevelop | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| ] | ] | ||
| ===== Übersicht ===== | ===== Übersicht ===== | ||
| - | * Ziel: TaskAction durchläuft eine Schleife mit N Durchgängen | + | TaskAction durchläuft eine Schleife mit COUNT_ACTIONCYCLE-Durchgängen |
| * TaskAction: | * TaskAction: | ||
| * begin | * begin | ||
| Line 21: | Line 21: | ||
| * end | * end | ||
| + | Download aktuelle Version: {{: | ||
| ===== ToDo ===== | ===== ToDo ===== | ||
| --- | --- | ||
| ===== Done ===== | ===== Done ===== | ||
| ==== 221021 ==== | ==== 221021 ==== | ||
| - | | + | |
| + | Hauptprogramm: | ||
| + | < | ||
| + | # | ||
| + | import time as TIM | ||
| + | import threading as THR | ||
| + | # | ||
| + | import Task as TSK | ||
| + | # | ||
| + | # | ||
| + | # Constant | ||
| + | # | ||
| + | COUNT_ACTIONCYCLE = 3 | ||
| + | # | ||
| + | # | ||
| + | # Field - Global | ||
| + | # | ||
| + | # | ||
| + | # Callback - Task - Refresh | ||
| + | # | ||
| + | def OnTaskRefreshStart(task): | ||
| + | # | ||
| + | task.GetArguments()[0].clear() | ||
| + | # | ||
| + | return | ||
| + | def OnTaskRefreshAbort(task): | ||
| + | # | ||
| + | task.GetArguments()[0].set() # stop waiting on abort! | ||
| + | # | ||
| + | return | ||
| + | def OnTaskRefreshExecute(task): | ||
| + | # | ||
| + | print('### | ||
| + | TIM.sleep(3.0) | ||
| + | print('### | ||
| + | task.GetArguments()[0].set() | ||
| + | # | ||
| + | return False | ||
| + | # | ||
| + | # Callback - Task - Action | ||
| + | # | ||
| + | def OnTaskActionStart(task): | ||
| + | # | ||
| + | # | ||
| + | return | ||
| + | def OnTaskActionAbort(task): | ||
| + | # | ||
| + | TaskRefresh.Abort() | ||
| + | # | ||
| + | return | ||
| + | def OnTaskActionExecute(task): | ||
| + | print(' | ||
| + | print('### | ||
| + | TaskRefresh.Start() | ||
| + | task.GetArguments()[0].wait() | ||
| + | print('### | ||
| + | # | ||
| + | return (task.GetCounter() < COUNT_ACTIONCYCLE) | ||
| + | # | ||
| + | # Main | ||
| + | # | ||
| + | if (' | ||
| + | print(' | ||
| + | # | ||
| + | EventReady = THR.Event() | ||
| + | # | ||
| + | TaskRefresh = TSK.CTask(' | ||
| + | OnTaskRefreshStart, | ||
| + | OnTaskRefreshAbort, | ||
| + | OnTaskRefreshExecute, | ||
| + | (EventReady, | ||
| + | TaskAction = TSK.CTask(' | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | TaskAction.Start() | ||
| + | # | ||
| + | print(' | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Ausgabe der Kommandozeile: | ||
| + | < | ||
| + | runfile(' | ||
| + | |||
| + | *** MainProgram-TaskEvent: | ||
| + | OnTaskAction-Execute[TaskAction]< | ||
| + | ### TaskAction - Start Refresh and Wait for Event... | ||
| + | *** MainProgram-TaskEvent: | ||
| + | ### TaskRefresh - Busy... | ||
| + | ### TaskRefresh - SetEvent! | ||
| + | ### TaskAction - Refresh Finished (Event set) | ||
| + | OnTaskAction-Execute[TaskAction]< | ||
| + | ### TaskAction - Start Refresh and Wait for Event... | ||
| + | ### TaskRefresh - Busy... | ||
| + | ### TaskRefresh - SetEvent! | ||
| + | ### TaskAction - Refresh Finished (Event set) | ||
| + | OnTaskAction-Execute[TaskAction]< | ||
| + | ### TaskAction - Start Refresh and Wait for Event... | ||
| + | ### TaskRefresh - Busy... | ||
| + | ### TaskRefresh - SetEvent! | ||
| + | ### TaskAction - Refresh Finished (Event set) | ||
| + | </ | ||
| ==== 221021 ==== | ==== 221021 ==== | ||
| * Aufbau der Event-Library, | * Aufbau der Event-Library, | ||
module/python/taskevent/taskevent.1666374140.txt.gz · Last modified: 2022/10/21 19:42 by omdevelop