PyDiabas: Python <-> EDIABAS
Hallo Liebe BMW Programmierer
Im vergangen Jahr habe ich mich daran gemacht eine Python Schnittstelle für EDIABAS zu schreiben.
Mehrfach bin ich auf das Problem gestoßen, dass entweder die bereits verfügbaren Programme zum Auslesen oder Loggen von Daten aus den Steuergeräten etwas an meinen Anforderungen vorbei ging, oder der "manuelle" Zugriff auf die Steuergeräte über Tool32 für umfangreiche oder sich wiederholende Aufgaben zu umständlich ist.
EDIABAS bietet "ab Werk" bereits die Möglichkeit "von außen" angesprochen zu werden, dies wird durch die Verwendung der "api32.dll" ermöglicht.
Um sich sowohl die Möglichkeiten einer direkten Steuerung von EDIABAS über diese dynamische Bibliothek zu nutze zu machen, die Schnittstelle möglichst einfach zu halten und somit auch den nötigen Code für eigene Aufgaben so kurz wie möglich zu halten, habe ich mich entschieden ein Python Paket dafür zu schreiben und als open-source code zur Verfügung zu stellen.
Dies hat mir bereits in mehreren Anwendungen gute Dienste geleistet und vielleicht kann ja auch der Ein oder Andere von euch etwas damit anfangen.
Ein funktionierendes EDIABAS und grundlegende Kenntnisse im Umgang mit EDIABAS und Python sollten für die Verwendung vorhanden sein.
Das README enthält eine Anleitung für die ersten Schritte und auch eine umfangreiche Dokumentation der Klassen und Funktionen. Eine Dokumentation der EDIABAS spezifischen Eigenschaften, findet sich normalerweise im "/Doku" Ordner eurer EDIABAS Installation.
Für Hilfe, Anregungen und Verbesserungen stehe ich euch jederzeit gerne zur Verfügung.
INFO: Da es sich bei EDIABAS um eine 32bit Anwendung handelt, ist zwingend eine 32bit Python Version (>= 3.10) nötig
Der Quellcode findet sich auf GitHub unter:
https://github.com/BembelBytes/pydiabasoder auf PyPi unter:
https://pypi.org/project/PyDIABAS/Das Paket lässt sich über pip mit pip install pydiabas installieren.
Viele Grüße und viel Spaß beim ausprobieren
Aljoscha
ACHTUNG:
Natürlich kann ich keine Verantwortung dafür übernehmen, was ihr mit dem Code anstellt. Da ein sehr tiefgreifender Zugriff auf der Steuergeräte möglich ist, können bei unsachgemäßem Umgang oder durch Fehler in der Dokumentation oder Verwendung, irreversible Schäden bis zum Defekt des Steuergerätes oder auch der zu steuernden Technischen Vorrichtung auftreten. Verwendet den Code also mit Vorsicht und tut nur das was ihr auch Versteht.