User Tools

Site Tools


module:micropython:esp32checkthreading

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
module:micropython:esp32checkthreading [2021/12/08 11:21] – created omdevelopmodule:micropython:esp32checkthreading [2022/09/13 11:58] (current) – external edit 127.0.0.1
Line 1: Line 1:
-======  ======+====== MicroPython: Esp32CheckThreading ======
 [[http://www.openhardsoftware.de/ | Open Hard- & Software]] [[http://www.openhardsoftware.de/ | Open Hard- & Software]]
 [ [
Line 8: Line 8:
 ] ]
  
-Esp32CheckMath | Esp32CheckMath]+ 
-  * [[:Module:MicroPython:Esp32CheckLedSystem | Esp32CheckLedSystem]] + 
-  * [[:Module:MicroPython:Esp32CheckThreading | Esp32CheckThreading]]+ 
 + 
 + 
 + 
 + 
 +===== Benutzung ===== 
 +Beispiel für die Einbindung der MicroPython-Library **Thread.py** : 
 +<code python> 
 +
 +import _thread 
 +
 +class CThread(): 
 +  # 
 +  def __init__(self, threadid, onexecute): 
 +    self.ID = threadid 
 +    self.OnExecute = onexecute 
 +    self.IsBusy = False 
 +    return 
 +  # 
 +  def Start(self): 
 +    self.IsBusy = True 
 +    _thread.start_new_thread(self.OnExecute, [self]
 +    return 
 +  
 +  def Abort(self): 
 +    self.IsBusy = False 
 +    return 
 +  # 
 +</code> 
 +Wichtig: Die Library **Thread.py** muss im FileSystem des MicroControllers vorhanden sein! 
 + 
 +Aufrufendes Programm **Esp32CheckThreading.py** : 
 +<code python> 
 +
 +import time 
 +
 +import Thread 
 +
 +#----------------------------------------- 
 +def CBOnExecute(thread): 
 +  print('CBOnExecute[{}]begin'.format(thread.ID)) 
 +  I = 0 
 +  while (thread.IsBusy): 
 +    I += 1 
 +    print("CBOnExecute[{}]: Hello({})!".format(thread.ID, I)) 
 +    time.sleep(1) 
 +  print('CBOnExecute[{}]: end'.format(thread.ID)) 
 +
 +#----------------------------------------- 
 +if ('__main__' == __name__): 
 +  print('*** Esp32CheckThreading: begin'
 +  T = Thread.CThread('T1', CBOnExecute) 
 +  T.Start() 
 +  time.sleep(5) 
 +  T.Abort() 
 +  time.sleep(5) 
 +  print('*** Esp32CheckThreading: end'
 +
 +</code> 
 + 
 +Run-Ausgabe im Terminal: 
 +<code> 
 +>>> Running ..\Esp32Threading.py 
 +>>> 
 +>>> *** Esp32CheckThreading: begin 
 +CBOnExecute[T1]: begin 
 +CBOnExecute[T1]Hello(1)! 
 +CBOnExecute[T1]Hello(2)! 
 +CBOnExecute[T1]Hello(3)! 
 +CBOnExecute[T1]: Hello(4)! 
 +CBOnExecute[T1]: Hello(5)! 
 +CBOnExecute[T1]: end 
 +*** Esp32CheckThreading: end 
 +♦♦> 
 +MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32 
 +Type "help()" for more information. 
 +>>> 
 +</code> 
 + 
 + 
 +===== Version ===== 
 + 
 +{{:module:micropython:2112081352_Esp32CheckThreading_01V01.zip | 2112081352_Esp32CheckThreading_01V01.zip}}
  
 ----- -----
module/micropython/esp32checkthreading.1638958896.txt.gz · Last modified: 2021/12/08 12:21 (external edit)