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:40] – [ToDo] omdevelop | module:python:taskevent:taskevent [2022/10/21 19:49] (current) – [Übersicht] omdevelop | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Module - Python - TaskEvent ====== | ====== Module - Python - TaskEvent ====== | ||
+ | [[http:// | ||
+ | [ | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | ] | ||
===== Ü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 15: | Line 21: | ||
* end | * end | ||
+ | Download aktuelle Version: {{: | ||
===== ToDo ===== | ===== ToDo ===== | ||
--- | --- | ||
===== Done ===== | ===== Done ===== | ||
+ | ==== 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, | ||
Line 27: | Line 142: | ||
* Neue Klasse: CTask | * Neue Klasse: CTask | ||
* Direkte Klasse: threading-Event | * Direkte Klasse: threading-Event | ||
+ | |||
+ | ----- | ||
+ | [[http:// | ||
+ | [ | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | ] | ||
+ | |||
+ |
module/python/taskevent/taskevent.1666374033.txt.gz · Last modified: 2022/10/21 19:40 by omdevelop