User Tools

Site Tools


project:scd_scriptingcommanddispatcher:scd-scriptingcommanddispatcher

This is an old revision of the document!


Table of Contents

SCD - ScriptingCommandDispatcher

Definitionen

Projekt-Kürzel: SCD
Projekt-Header: ScriptingCommandDispatcher

Abkürzungen

  • MC : MicroController
  • MP : MicroPython
  • PC : PersonalComputer
  • Command : Text (drei Zeichen) (Beispiel: MPA)
  • Parameter : Text (1..Nc Zeichen) mit Argument eines Commands
  • CommandLine : Textzeile mit Command und Np-Parametern, Trennung: ' ' , Abschluss: '\r\n'
  • LFS : LocalFileSystem
  • CFS : SDCard-FileSystem

Vorraussetzungen

Hardware

  • MicroController mit installiertem MicroPython-Image
  • typisch Esp32UnoBoard, Esp32NanoBoard mit Interfaces Uart, Wlan, Lan, Bt
  • Stm32F407Board mit Interfaces Uart, Lan

Software

  • MicroPython (für MC, hier Esp32UnoBoard)
  • VisualStudioCode/PyMakr oder Thonny (auf PC) zur Programmierung der MP-Scripts
  • Anaconda/Spyder (auf PC) zur Programmierung der PC-SCD-Software (GUIs, CLs)

Abstract

Das Projekt SCD ermöglicht über einen Command-Dispatcher

  • den Upload/Verwaltung von MP-Scripts (reine Texte!) vom PC zum MC über Wlan oder Uart
  • die Abarbeitung einzelner MP-Commands (ohne Compiler)
  • die Abarbeitung von MP-Scripts (ohne Compiler)

Die SCD-Software wird auf einer geeigneten SCD-Hardware installiert (Esp32/Stm32F407).
Wegen der Script-Verarbeitung ist SCD nicht für Echtzeitprozesse geeignet.
Das SCD-Board verfügt über mindestens ein Uart-Interface zur Kommunikation mit weiteren Echtzeit-Prozessoren.

Scripting : Upload / Download / Execute von MicroPython-Scripts für den Esp32.
Die Script-Execution erfolgt im MultiTasking parallel zu allen anderen Threads.

Entwicklungsschritte: FutureDo

2201xx : IT01-Bricks

  • Aufbau eines Modells des IT01 mit Bricks
  • Hardware des IT01:
    • PressureSensor
    • DosingValve(DCMotor, Sensor(?))
    • Acht OnOffValves
    • Display(4×20)
    • Keyboard(4×4)
    • Drucker(Uart, Emulation über RPi-Hdmi-Display?)
  • Software IT01Manager:
    • Tiny: VSCode,MicroPython für Esp32(Interfaces UartPC/BtAD/WlanUdp/UartUC)
    • Pro: VSCode,C++ für Esp32(Interfaces UartPC/BtAD/WlanUdp/LanUdp/UartUC)
    • VSCode,C++ für Stm32F103(UartUC)
    • Windows Python-GUI mit UCUart über USB-Uart-Converter(UartUC)

2201xx : ChildProcessor

  • VSCode mit C++
  • CommandDispatcher (vormals: @LSO, @LSF) für \$LSO, \$LSF, also mit Header \$ !
  • daher Dispatcher.ExecuteCommand: Detektion auf @ (Command-Esp32) / \$ (Command-ChildProcessor)
  • VSCode mit Stm32F103C8T6-Module programmieren

2201xx : BIN-Files

2201xx : Vermutlich Ziellösung

  • Esp32(C++, VSCode) mit UartPC, UartUC(Chain), BtUart und WlanUdp
  • entweder: RPiPico(MicroPython, VSCode) mit UartUC(Chain)
  • oder: Esp32(MiniModule, VSCode)(MicroPython, VSCode) mit UartUC(Chain), SDCard(?)
  • Stm32xxx(C++, VSCode) mit UartUC(Chain)

 2201190828_ScriptingCommandDispatcher_TargetSolution.png




























220119 : Kompromiss-Erweiterung

  • OOO Hardware: weiterer Stm32F103-Controller
  • Verkettung Stm32F103-TxD-/RxD-Pins mit Esp32-TxD-/RxD-Pins

Unbedingt noch erledigen

  • OOO DokuWiki:pages:module:micropython:Esp32SDCard erzeugen!!!
  • OOO Esp32ExecuteFile: die letzten beiden Esp32/Pc-Einträge müssen noch auf Esp32ExecuteFile transformiert werden!

Entwicklungsschritte: InDo

220123 : Esp32 - MicroPython in TinyVersion

220123 : Esp32 - KEINE SDCard / KEIN Lan in MicroPython

  • später (ProVersion): Esp32-SDCard in C++
  • später (ProVersion): Esp32-Lan in C++
  • weitermachen mit TinyVersion: Esp32-MicroPyton: kein Lan, keine SDCard
  • daher: löschen der SDCard.py-Datei

220122 : Einschub: EspSDCard CFS <-> MFS

  • Sequentieller Zugriff auf beide FileSystems:
    • MFS : MemeoryFileSystem(default)
    • CFS : CardFileSystem
  • — gilt nur für ESP32(MicroPython, SriptingCommandDispatcher) —
  • Ergebnis: SDCard unter MicroPython nur sehr eingeschränkt nutzbar!
  • Nur einmal Wechsel von MFS → CFS möglich!
  • Kein Wechsel von CFS → MFS möglich!
  • notwendiger SoftSystemReset am Program-Ende!
  • default: MFS mounted
  • kein umount von MFS möglich
  • alle Missergebnisse unter Esp32SDCard
  • damit: ESP32(MicroPython, SriptingCommandDispatcher)
    • KEIN LAN möglich
    • KEIN Wechsel MFS↔CFS
  • → Esp32 nur als Tiny(Ohne SDCard, Lan) in MicroPython einsetzbar…

220122 : Kompromiss-Erweiterung: Einbau EspExecuteFile in Esp32SCD

  • Fehler im FileSystem???
    • exec(open('blinky.py').read()) wird ausgeführt
    • 'demoy.py' aber nicht, da nicht auf FS, obwohl mehrfach Upload versucht???!!!
    • weiter mit blinky, wird jetzt ausgeführt:
    • ganz sicher: exec(exec(open(<fileonsdcard>[.py]).read()) wird nur mit Files auf SDCard ausgeführt,
    • wenn SDCard noch geöffnet ist !!!!
    • so, ENDLICH Fehler gefunden:
      • Wird eine SDCard aktiv an Esp32 angeschlossen UND bleibt(!) eine Protocol-Datei geöffnet, greift
      • > exec(open('blinky.py').read(), globals(), locals())
      • NICHT auf das LFS-LocalFileSystem zu, sondern auf die Files der SDCard!
      • → IMMER nach SD-Access File.open() auch wieder schliessen : File.close() !!!
  • OOO die letzten beiden Esp32/Pc-Einträge müssen noch auf Esp32ExecuteFile transformiert werden!

220122 : Kompromiss-Erweiterung: Esp32ExecuteFile (Locals)

  • (deutliche) Übergabe von globalen und lokalen Übergabeparametern: Integer-Variable
  • (deutliche) Übergabe von globalen und lokalen Übergabeparametern: Class-Instanzen

Ausgabe 2201221134_Esp32ExecuteFile_01V03 : Locals & Globals

>>>
*** Esp32ExecuteFile: begin
########################################
--- Locals -------------------------------
{'Handler': <CHandler object at 3ffe5880>, 'HAN': <module 'Handler' from 'Handler.py'>, 'gc': <module 'gc'>, 'GInteger': 13004, 'GCalculator': <CCalculator object at 3ffe5140>, 'CAL': <module 'Calculator' from 'Calculator.py'>, 'bdev': <Partition type=1, subtype=129, address=2097152, size=2097152, label=vfs, encrypted=0>, 'TIM': <module 'utime'>, 'I': 2, '__name__': '__main__', 'Execute': <function Execute at 0x3ffea3d0>, 'time': <module 'utime'>, 'uos': <module 'uos'>}
--- Globals ------------------------------
{'Handler': <CHandler object at 3ffe5880>, 'HAN': <module 'Handler' from 'Handler.py'>, 'gc': <module 'gc'>, 'GInteger': 13004, 'GCalculator': <CCalculator object at 3ffe5140>, 'CAL': <module 'Calculator' from 'Calculator.py'>, 'bdev': <Partition type=1, subtype=129, address=2097152, size=2097152, label=vfs, encrypted=0>, 'TIM': <module 'utime'>, 'I': 2, '__name__': '__main__', 'Execute': <function Execute at 0x3ffea3d0>, 'time': <module 'utime'>, 'uos': <module 'uos'>}
------------------------------------------
--- Begin --------------------------------
GInteger[13000]
GCalculator[321]
--- Main --------------------------------
GInteger[13000]
GCalculator[321]
Execute:begin
--- blinky:begin
--- blinky: LLL[13000]
--- blinky: Calculator[321]
--- blinky: [13001]
--- blinky: Calculator[10321]
--- blinky:end
Execute:end
GInteger[13001]
GCalculator[10321]
--- End --------------------------------
GInteger[13001]
GCalculator[10321]
########################################
--- Locals -------------------------------
{'Handler': <CHandler object at 3ffeb7e0>, 'HAN': <module 'Handler' from 'Handler.py'>, 'gc': <module 'gc'>, 'GInteger': 13001, 'GCalculator': <CCalculator object at 3ffea3e0>, 'CAL': <module 'Calculator' from 'Calculator.py'>, 'bdev': <Partition type=1, subtype=129, address=2097152, size=2097152, label=vfs, encrypted=0>, 'TIM': <module 'utime'>, 'I': 0, '__name__': '__main__', 'Execute': <function Execute at 0x3ffea3d0>, 'time': <module 'utime'>, 'uos': <module 'uos'>}
--- Globals ------------------------------
{'Handler': <CHandler object at 3ffeb7e0>, 'HAN': <module 'Handler' from 'Handler.py'>, 'gc': <module 'gc'>, 'GInteger': 13001, 'GCalculator': <CCalculator object at 3ffea3e0>, 'CAL': <module 'Calculator' from 'Calculator.py'>, 'bdev': <Partition type=1, subtype=129, address=2097152, size=2097152, label=vfs, encrypted=0>, 'TIM': <module 'utime'>, 'I': 0, '__name__': '__main__', 'Execute': <function Execute at 0x3ffea3d0>, 'time': <module 'utime'>, 'uos': <module 'uos'>}
------------------------------------------
Handler[4321]
--- Handler --------------------------------
Handler[4321]
Handler-Execute:begin
--- blinky:begin
--- blinky: LLL[13001]
--- blinky: Calculator[10321]
--- blinky: [13002]
--- blinky: Calculator[20321]
--- blinky:end
Handler-Execute:end
Handler[8642]
--- Handler --------------------------------
Handler[8642]
Handler-Execute:begin
--- blinky:begin
--- blinky: LLL[13002]
--- blinky: Calculator[20321]
--- blinky: [13003]
--- blinky: Calculator[30321]
--- blinky:end
Handler-Execute:end
Handler[17284]
--- Handler --------------------------------
Handler[17284]
Handler-Execute:begin
--- blinky:begin
--- blinky: LLL[13003]
--- blinky: Calculator[30321]
--- blinky: [13004]
--- blinky: Calculator[40321]
--- blinky:end
Handler-Execute:end
Handler[34568]
--- End --------------------------------
GInteger[13004]
GCalculator[40321]
Handler[34568]
########################################
*** Esp32ExecuteFile: end
♦♦>

220122 : Kompromiss-Erweiterung: ExecuteFile (Globals)


















220121 : Kompromiss-Erweiterung: ExecuteFile

Ausgabe von 2201211901_Esp32ExecuteFile_01V02

 2201211901_Esp32ExecuteFile_01V02.png

MicroPython-Main-Program: Esp32ExecuteFile.py

#
class CCalculator():
    def __init__(self):
        self.Result = 123
        return
    def Add(self, a, b):
        self.Result = a + b
        return self.Result
#
def Execute():
    print('Execute:begin')
    L = 4321
    exec(open('blinky.py').read(), globals(), locals())
    print('Execute:end')
    return    
#
print('*** Esp32ExecuteFile: begin')
print('---------------------------------------------------------------------')
print(locals())
print('---------------------------------------------------------------------')
print(globals())
print('---------------------------------------------------------------------')
C = CCalculator()
print(C.Result)
C.Add(3, 4)
print(C.Result)
L = 4321
Execute()
print(C.Result)
#
print('*** Esp32ExecuteFile: end')

MicroPython-Execute-Program: blinky.py

import time as TIM
#
print('blinky:begin')
# NC !!! global C
print('Local L[{}]'.format(L))
#
for I in range(10, 13):
    #
    C.Add(1, I)
    print('.' + str(C.Result) + '.')
    TIM.sleep(0.5)
print('blinky:end')

Program-Output: Esp32ExecuteFile.py -> blinky.py

 2201211909_Esp32ExecuteFileOutput.png

















  • UPS - Upload Python-Script <filename.py>
  • DPS - Download Python-Script <filename.py>
  • mit Scripting - daher auch SCD-ScriptingCommandDispatcher
  • MultiTasking Verarbeitung von uP-Scripts (execute filename.py):
  • XPS - Execute Python-Script <filename.py>
  • APS - Abort (all) Python-Script(s) <none>

220120 : Kompromiss-Erweiterung RPi

  • OOO RPiZW mit Netzteil von WBoogaerts ausprobieren!!!
  • Wunsch: RPiZW mit Python und Uart(-UartUC!)
  • ————————————
  • ZielA: RPiZW für PSR-PythonScriptRemoting über UartUC
  • ZielB: RPi3/4 GuiTerminal mit PSR über UartUC
  • ZielC: RPiP(ico) mit PSR über UartUC
  • ————————————
  • hat überhaupt nicht funktioniert, da Netzteile für RPiZW nicht genügend Spannung gebracht haben!
  • Austausch von RPiZW mit RPi3B
  • Anschluss von 20pin-RPi-Steckerleiste: Uart(RxPin:GPIO15|TxPin:GPIO14)
  • Python-Library: wiringPi
  • Installation: NC! sudo apt-get install wiringpi
  • Top-Erklärung Uart-RPi
  • GESCHAFFT: Uart0 auf RaspberryPi-Stecker(rechts RPi-Remote-Desktop)
  • kommuniziert mit 115200baud → FTDI-Uart-USB → mit PC-USB und Terminal(links)

 2201202001_RPi3UartRemote.jpg  2201202002_RPi3UartHardware.jpg























220119 : Kompromiss-Erweiterung

  • Ausbau des Dispatchers mit neuen Commands:
    • ???!!! Problem: Übergabe von globalen SystemVariablen an Scripts !!!???
    • UPS - Upload Python-Script <filename.py>
    • DPS - Download Python-Script <filename.py>
    • mit Scripting - daher auch SCD-ScriptingCommandDispatcher
    • MultiTasking Verarbeitung von uP-Scripts (execute filename.py):
    • XPS - Execute Python-Script <filename.py>
    • APS - Abort (all) Python-Script(s) <none>

220119 : Kompromiss

220118 : Esp32ThreadCountMaximum

  • MinimalProgram zum Test der Maxizahl von parallelen Threads
  • MinimalProgram : die Anzahl der parallelen Threads in MicroPython auf 16 begrenzt!
  • “cannot create thread” : vermutlich RAM-Mangel, da jeder Thread 4kB für Stack benötigt 👎👎👎
  • falsch: gc.collect / gc.free_ram Ausgabe zeigt, dass genügend RAM während der parallelen 16-fach Thread-Verarbeitung (100kB !!!) vorhanden ist!
  • ABER: am RAM kann es nicht liegen: in den aufeinander folgenden Thread-States(start/busy/abort/end) sind immerhin noch 100kB(!!!) RAM FREI????
  • Ungelöstes Problem: ??? Welcher Mechanismus verhindert den Start von mehr als 16 Threads bei Minimal-Programm ???

2201181249_Esp32ThreadCountMaximumRamCollect.jpg

 2201181153_Esp32ThreadCountMaximumError.jpg

 2201181153_Esp32ThreadCountMaximumMainLoop.jpg






















220118 : MPY-Files

  • precompiled Python-Files
  • am 220118 versucht:
    • Modul: /Downloads/python/_Esp32MpyFile
    • !!! noch Module-DokuWiki erzeugen !!!
    • precompile: python -m mpy-cross Esp32MpyFile.py
    • erzeugt: Esp32MpyFile.mpy
    • aber: ~dieser *.mpy-File nur auf PC lauffähig, nicht auf MicroController!

220113 : System-Time

220113 : Autostart

  • Keine Änderung boot.py
  • Erzeugung/Speicherung von main.py mit execfile('Esp32ScriptingCommandDispatcher.py')

220113 : Reaktivierung Commands

220113 : Zeit-Prozess-Optimierung

220112 : Hardware/Software-Erweiterung

220112 : geplante(!) Software-Erweiterung

  • mit Scripting - daher auch SCD-ScriptingCommandDispatcher
  • MultiTasking Verarbeitung von uP-Scripts (execute file.py)
  • Ausbau des Dispatchers mit neuen Commands:
    • UPS - Upload Python-Script <filename.py>
    • DPS - Download Python-Script <filename.py>
    • XPS - Execute Python-Script <filename.py>
    • APS - Abort (all) Python-Script(s) <none>
  • Ausbau des Dispatchers mit neuen LCDisplay-Commands:
    • WTD <r> <c> <t> - WriteTextDisplay Row Column Text
    • CLD - Clear Display
  • Ausbau des Dispatchers mit neuen Keyboard-Commands:
    • EKB - EnableKeyboard
    • DKB - DisableKeyboard

Entwicklungsschritte: ToDo

Erweiterung

  • !!! OOO !!! Schaltplan SCD
  • SDCard(Spi-Interface) an Esp32/MicroPython
  • MicroController UC als ChildProcessor an Uart (↔Esp32)

220101 : Zusammenführung

  • PC(!): CommandDispatcher
    • Gui Tkinter mit Listbox, Terminal, CommandButtons
    • Command-Fifo
    • Definition Command-Software-Handshake
    • Test mit Esp32 : Esp32UdpClientServer02V01

2112XX - Esp32UnoBoard MicroPython : InterfaceCommandDispatcher

  • CommandLineDispatcher für Uart, Bt, Wlan

211215 - Esp32UnoBoard MicroPython : CommandLineDispatcher

  • X Neues Modul: CommandLineDispatcher
  • X CCommand, CDispatcher
  • O Analyse Command from received line
  • O Execute Command
  • O MultiLine-Fifo-Support (mit List [])

211214 - MultiProcessExecution

  • X Esp32-Plattform mit MicroPython
  • X Parallelisierung von MicroPython-Process-Scripten
  • Esp32 mit MicroPython-CommandLine-Interfaces: Uart, Wlan, Bt | später auch Lan mit W5500
  • O MiroPython-Scripts: Upload / Download / Execute (in eigenem Thread mit System-Synchronistion)
  • O Erweiterung mit RealTime-Prozessoren (Stm32F407) unter Arduino-C++
  • O Stm32: eine Uart zur bidirektionalen Kommunikation mit Esp32 (Uart2/3)
  • O eventuell zweiter Stm32 ebenfalls mit bidirektionaler Kommunikation mit Esp32 (Uart3/2)
  • O Esp32 → Stm32: Durchreichen der Esp32-detektierten Commands (Uart, Wlan, Bt) zum Stm32
  • O Rückmeldung / SystemEvents Stm32 → Esp32 → Uart, Wlan, Bt

Esp32: lokale Datenerfassung

  • Kapselung aller System-Variablen (CpuTemperature,…)
  • Collector für Commands/Responses für lokale Hardware-Ressourcen(BreadBoard!):
    • LedSystem
    • LedQuad(Uart1, Wlan, Bt, (Lan))
    • DHT22: Temperature/Humidity(CLK, DATA, 5V0, GND) * Pressure/Humidity

Entwicklungsschritte: Done

220112 : Dispatcher

220111 : Zusammenführung Uart/Bt/Wlan

220111 : Bluetooth-Version

220110 : Bluetooth-Version

  • C++ BtSerial funktioniert mit Android- & Windows-Terminal
  • uP dagegen nur mit Android-Terminal
  • Suche nach Bt bzw. BtBle-Uart-Terminal-Example erfolglos:
  • aktuell nur BtUart über Android- (und nicht Win-/Lin-)Terminal benutzbar
  • keine Change, wenn mit BtDeviceNames oder UUIDs gespielt wird -
  • Reste lassen sich nur teilweise mit DeviceManager ShowHidden beseitigen!

220109 : Optimierte Einzelversionen

  • neuer Projektname: Esp32UartTxRxLine
  • CUart: Thread: Open start / Close abort, lokale Thread-CB, external: OnTxLine, OnRxLine
  • CUart: Callback: OnTxLine, OnRxLine
  • CUart: Constructor: uartid, txpin, rxpin, ontxline, onrxline
  • CUart: Handler: Open, Close
  • CUart: Thread-Busy:
    • 0: RxData - convert/collect rxline
    • 1: first: RxData - callback
    • 2: second: TxData - send / callback
  • CUart: RxLine:
    • erste Möglichkeit: Rx-Callback definieren und damit automatisch (in CB) RxLine verarbeiten
    • zweite Möglickeit: (Rx-Callback == None) Pollen mit (0 < len(Uart.RxLine()))
  • CUart: TxLine: Senden von TxLines mit Uart.TxLine(txline)
  • XXX Neue BT-Dongle LogiLink und TP-Link ausprobieren!!!
  • keine Änderung, ebenso kann Esp32BtUart nicht mit PC über UsbUart kommunizieren

bis 220108 : Einstiegsversuche

  • Versuch, alle lokalen Ressourcen einzubinden
    • 2112161443_Esp32LCDisplayI2C_01V01
    • 2112251413_Esp32DisplayKey_01V03
    • LedSystem
  • noch nicht verwendet: 2112312248_PcWlanUdpThread_01V01
  • Versuch, alle Interfaces einzubinden
    • 2112261253_Esp32UartThread_01V01
    • 2112271828_Esp32BtThread_01V04_onlyPhoneTablet
    • 2112312248_Esp32WlanUdpThread_01V01
    • erkannte Notwendigkeit: Uart/Bt/Wlan(/Lan) müssen gleiche CB-Struktur besitzen
    • daher Uart/Bt/Wlan in neuen Einzelversionen optimieren

220101 : SCD - ScriptingCommandDispatcher

  • Esp32ScriptingCommandDispatcher
    • Übernahme Module 2112312248_Esp32WlanUdpThread_01V01
    • Umbenennen SCD
  • Zwei neue Modul-Verzeichnisse (in Downloads/pathon):
    • PcScriptingCommandDispatcher
    • Esp32ScriptingCommandDispatcher

220101 : Zusammenführung

211231 : PC/Esp32WlanUdpThread

211228 : Heute ausschliesslich: Wlan-Udp-Communication

  • Wiederherstellung der Projekte
    • Esp32, MicroPython: 2112131937_Esp32UdpClientServer_02V03
    • PC, Python:2112131938_UdpClientServer_02V03
  • Zusammenführung in Esp32WlanThread
  • zwischen PC und PC - Problem
  • zwischen PC und Phone/Tablet - ?
  • zwischen ESP32 und Phone/Tablet - ok
  • zwischen ESP32 und PC aufbauen - nicht reproduzierbare Probleme, abhängig vom Dongle-Typ

211227 : Bt-Dongles

  • Auf allen möglichen Linux/Windows-Laptops habe ich mit eingebauten BT bzw. drangesteckten USB-BT-Dongles nur Probleme -
  • mal werden die ESP32-BT-Devices erkannt , mal nicht, der allergrösste SCHEISS 👎👎
  • Letzter Versuch: Kauf eines ORIGINAL Win10/BT4-USBDongles von LogiLink und von TP-Link, auf jeden Fall morgen erst einmal Wlan-Communication…

211227 : GANZ WICHTIG: MicroPython-Example entsprechend C++ Esp32BluetoothSerial finden !!!

211227 : Esp32BtThread

  • bisher ein völlig hoffnungsloser Kampf:
  • mit Handy / Tablet sieht die Et-Connection mittlerweise erfolgreich aus
  • mit PC überhaupt nicht👎👎👎
  • C++-Version Esp32BluetoothSerial funktioniert dagegen mit PC-Terminal - warum auch immer??!!
  • vermutlich Pairing in der MicroPython-Version anders als in C++-Library?!
  • Jetzt noch letzter Versuch, Esp32WlanThread entsprechend Esp32BtThread und Esp32UartThread zu programmieren…
  • 211225: jetzt wieder Minimal-Multithreading mit Esp32-Uart-Wlan-Bt
  • parallele Command/Response Verarbeitung über alle In/Out-Interfaces
  • Basis-Minimal-Projekt: Esp32UartBtWlan (Multithreading)

211225 - Esp32DisplayKey

  • Dual-Threading Display / Keyboard Application zur parallelen Verarbeitung von Esp32-IO
  • Esp32DisplayKey BasisModul Esp32 mit LCDisplayI2C und Keyboard4x4(IOPins) mit Threading aber ohne CommandDispatcher

211214 - Esp32: Module: MultiProcessExecution

  • gleichzeitig: Thread1: execfile('ProcessA.py')
  • und parallel: Thread2: execfile('ProcessB.py')
  • und Hauptprogramm ausführen lassen.
  • Ziel: CommandDispatcher (mit Threads Uart, Bt, Wlan, Lan) und
  • parallel execfile(commandscript.py) ausführen

211213 - Test PC <-> (Udp) <-> Esp32

211212 - Esp32: Senden und Empfangen von UDP-Datenpaketen

  • Esp32UdpClientServer02V01 - Esp32 : UdpClientServer: Senden/Empfangen Udp-Data von PC (Thread, NonBlocking)
  • Esp32UdpClientServer01V01 - Client- und Server-MicroPython-Script zum Empfangen / Senden von UDP-Daten
  • Esp32UnoBoard/MicroPython : Wlan / Scan
  • Transmit/Receive TextLines

211210 - PC: ESP32

project/scd_scriptingcommanddispatcher/scd-scriptingcommanddispatcher.1642962136.txt.gz · Last modified: 2022/01/23 20:22 (external edit)