August 2024 – heute Web-App Testing in Playwright mit TypeScript
Die bestehende Webapp UKONNX, in React geschrieben, wird mit Systemtests - Automatisierten Tests aus Kunden-Sicht versehen. Im ersten Schritt ist das Ziel einen Satz End-to-End-Tests zur Verfügung zu stellen und eine anfängliche Test-Bibliothek zu entwickeln, auf der weitere Entwickler aufbauen können. In der End-Stufe soll die komplette Applikation mit End-to-End-Tests abgesichert sein.
Tools: Playwright (die moderne Alternative zu Selenium), TypeScript, React (für Anpassungen an Code um Test-Ids zu erstellen), GitHub und git zur Code-Verwaltung und die CI/CD-Pipeline.
Juli 2023 – Juni 2024 Software-Entwicklung in Go bei KEB
Software-Entwicklung und Refactoring diverser SW-Module in Go (auch genannt Golang). Es handelte sich um Weiterentwicklung bestehender Module:
• über die längste Zeit hauptsächlich des Moduls, das sich um die Installation aller anderer Module kümmert. Darin die Aufgaben: Aufräumen und Dokumentation bestehenden Codes, Schreiben von Unit—Tests für bestehenden Code, schrittweise Einführung neuer Features, Entwicklung genauerer Überprüfungen, ob ein Modul schon heruntergeladen/installiert wurde.
• Entwicklung und Refactoring der Module zur Kommunikation mit der Firmeneigenen Cloud.
• Entwicklung diverser Teil-Module zur Anzeige der installierten Module im lokalen Frontend.
Tools: Sprache Go/Golang, OS Linux/WSL, Git, CI/CD und diverses Anderes Azure DevOps server, IDE Goland, Go-Libraries Validator, FMT, Logging, Iris.
August 2022 – Juni 2023 Einführung Unit-Tests und Software-Entwicklung bei Deutsche Bahn AG in Python und PostgreSQL
Entwicklung Module zur Auswertung der Ursachen der Zugverspätungen in Python und SQL, unter Anwendung neuerer SQL-Features (SQL-Prozeduren). Angewandte Python-Bibliotheken: Polars.
Einführung von Unit-Tests zur Absicherung und Dokumentation von Software-Modulen. Coaching des Teams bzgl. Unit-Tests. Aufgrund der Struktur der Module wurden auch Unit-Tests z.T. in SQL entwickelt!
Tools: Python, Linux, Polars, PostgreSQL, Git, Visual Studio Code.
Mai 2022 Testentwicklung Python und Robot Framework bei Vailant
Entwicklung Tests für Embedded Systeme in Python und Robot Framework.
März 2021 – März 2022 Diverse Python-Projekte bei Siemens Train IT
Bereich: Train-IT – Kommunikationssysteme im Zug, CCTV, Kamera-Überwachungssysteme, Videoaufnahme-, Auswahl- und Darstellung auf dem Bildschirm. Tools: Python, Linux, PyGTK, PyCharm, CherryPy, Git, VS-Code.
Entwicklung CCTV:
• GUI-Entwicklung in PyGTK. Es handelt sich um eine Neuentwicklung (Greenfield – Projekt), aber unter Einsatz des bestehenden Frameworks.
• Die gesamte Architektur ist Event-driven; Das Frontend wird in Kommunikation mit dem Backend Aufgebaut und angesteuert. Der ganze Zustand des Frontends wird im Backend aufbewahrt.
• Der Zentrale Teil der GUI ist Auswahl und Anzeige von Kamera-Streams, in verschiedenen Modi (händisch, Auto-Scroll). Zusätzlich wird zwischen Main-Screen und Alarm Screen unterschieden (bei Vorfällen im Zug wird automatisch der Alarm Screen aktiviert und der relevante Video-Stream angezeigt)
• Bei der Entwicklung und zur Qualitätssicherung wurden Unit-Tests eingesetzt
Entwicklung Auswertestation:
• Es handelt sich Weiterentwicklung einer Bestehenden SW (Brownfield – Projekt) zum Auswerten, Abspielen und Export der im Zug auf SSDs aufgenommenen Videos. Meine Verantwortung war die Entwicklung des in Python / CherryPy geschriebenen REST-Backends.
• Im Rahmen des Projektes wurde die bestehende Architektur erweitert und mehrere aufwendige Features hinzugefügt.
• Eine Reihe von Bugs wurden aufgespürt und/oder behoben.
• Bestehende Unit-Tests wurden wieder in einen definierten Zustand gebracht.
Dezember 2020 – März 2021 BDiM bei ITQ GmbH
Bereich: Einsatz von Big Data Technologien / Machine-Learning zur Überprüfung der Qualität von Teilen die mit CNC-Maschinen erstellt wurden. Tools: JavaScript (JS), Python, NodeJS, NumPy/SciPy, MongoDB, Docker, Linux, Grafana, Visual Studio (VS) Code, HTML/CSS.
Im Wesentlichen war ich an der Entwicklung einer Web-Basierten Applikation beteiligt:
• Frontend in JavaScript, HTML und CSS; Backend in NodeJS mit signifikanten Anteilen in Python / NumPy zur Berechnung der Abweichung des gemessenen Teils vom Master.
• Programmiertechnisch waren die Aufgaben Entwicklung von mehreren Masken (Frontend) mit Anbindung an das Backend in NodeJS, Entwicklung von Python-Code-Anteilen
• Zudem habe ich Konfigurationen in Grafana vorgenommen und größere Teile des Backends mit Unit-Tests in JavaScript abgesichert.
August 2019 – September 2020 Aufbau Toolkette TFS/Azure DevOps Server
Bereich: Roboter-Entwicklung, Embedded Systeme. Tools: Vivado, VectorCAST, TFS / Azure DevOps Server, Python, Linux, Spyder.
Entwicklung Builds/ Pipelines CI in Azure DevOps Server:
• integration des jeweiligen tools (VectorCAST/Vivado)
• Anpassen an neue HW- und Compiler-Versionen
• Python-Skripte zur Umwandlung der Testergebnisse
• Überprüfen des Erfolgs der Testschritte in Python und Windows Batch-Skripten
Aufbau einer Test-Umgebung unter Linux, inclusive:
• Installation/ Konfiguration TFS-client unter Linux
• Installation Virtual Environment, Python-Libraries, Skripte
• Installation Spyder
Diverse Test-Skripte:
• Auswahl Test-Framework (pytest)
• Transformation proprietäres XML-Format in ESI-XML-Format (Python, lxml)
Januar 2018 - April 2019 Test von Portalen und Webseiten mit Python/Selenium-Testframework Testa
Bereich: Testen, zum Teil Entwicklung von Webseiten und verwandten Technologien. Tools und Technologien: Python, PyCharm, Testa, Selenium, XPath, HTML, CSS, Git, Jenkins, Docker, Conda Constructor, Yaml, Atlassian Tools – Confluence, Jira, Zephyr.
Test-Entwicklung:
• Der größte Teil des Projekts ist Testentwicklung für diverse Web-Portale. Die Testfälle werden in den Test-Framework Testa erstellt, das auf Python und Selenium basiert. Unmittelbar notwendig für die Testentwicklung sind Kenntnisse in Python, HTML, CSS, XPath und Git. Fertig entwickelte Tests werden anschließend für die Continuous Integration in Jenkins eingespielt und dessen Reports den Kunden zur Verfügung gestellt. Zuletzt läuft Jenkins mit Testa und allen Testfällen in einem Docker-Container, der die Infrastruktur des Endkunden verwendet.
Weiterentwicklung des Test-Frameworks Testa:
• Ich war punktuell beteiligt an der Weiterentwicklung von Testa, u.a. bei der Konzeptentwicklung für Test-Flows (die mehrere aufeinander aufbauende Tests beinhalten), und an der Confluence-Anbindung zur Darstellung von Test-Reports im Kundenportal.
Entwicklung Installer:
• Auftrag: Entwicklung eines Testa-Installers für mehrere Plattformen (Windows, Linux, evtl. MacOS). Als Grundlage für die Umsetzung habe ich Conda Constructor gewählt, ein Tool von Anaconda, Inc. (zuvor als Continuum Analytics bekannt), die die größte unabhängige Multiplattform Python-Distribution Anakonda zur Verfügung stellen. Der Installer installiert git und notwendige Python-Pakete via pip und checkt die Repository aus.
Docker-Container-Entwicklung:
• Auftrag: erstellen eines Docker-Containers, in dem eine aktuelle Version von Testa für den Testbetrieb zur Verfügung gestellt wird. Das Docker-File sieht erneut die Installation von Python und notwendigen Libraries vor, Installation von git, auschecken der Testa-Repository und Nachinstallation von Libraries via pip, dann einen minimalen Test, um festzustellen, dass der Container Test-bereit ist.
Anbindung an Confluence:
• Die aussagekräftigen Reports sollten im Portal das Endkunden nachgebaut werden. Dazu habe ich unter den ca. 10 bestehenden Confluence Python Libraries die eine gewählt die funktioniert, um dir Reports dort einzuspielen. Die Reports musste ich in der Markup-Sprache von Confluence nachbauen, da keine direkte Verwendung von HTML und sehr eingeschränkter Einsatz von CSS möglich ist. Das Ergebnis wurde allgemein als sehr gelungen eingestuft.
Anbindung an Jira und Zephyr:
• Für den Transfer von Testfällen aus dem alten Jira Portal ins neue wurden Testfälle manuell exportiert. Für den Import ins neue Jira Portal habe ich die Jira Python Library verwendet, wie auch die REST-basierte Zephyr Python Library.
Januar-Dezember 2017 Python Test-Framework-, und Test-Entwicklung, für Roboter, in Python, anknüpfend an das Projekt von 2016
Bereich: Robotik. Tools: Python, PyCharm, NumPy, SciPy, Matlab, Matplotlib, Pandas, CAN & CANOpen, MobaXterm, Mercurial mit TortoiseHg, Windows & Linux, Yaml, regular expressions.
Test-Framework- und Test-Entwicklung:
• Entwicklung von Gripper-Endurance-Tests und weiteren Gripper-Tests mit spezifischer Anwendung. Tools: Python, NumPy, SciPy, CANOpen, CAN.
• Speicher- und Darstellungsfunktionalitäten für Messdaten: Entwicklung von spezifischen Datenstrukturen, Diagrammen und Darstellungen. Tools: NumPy, SciPy, Matlab, Excel als Speicher für Konfigurationsdaten.
• Speicher- und Darstellungsfunktionalitäten für Auswertungsdaten: Entwicklung von Pandas.DataFrame basierten Datenstrukturen; Wiederverwendung von Diagrammen und Darstellungen. Tools: NumPy, SciPy, Pandas, Matlab.
Mai – Dezember 2016 Python Test-Software-Entwicklung zum Test von Robotern
Bereich: Robotik. Tools: Python, Bash-Skripte auf Linux, PyCharm, NumPy, SciPy, Matlab, MobaXterm, Mercurial mit TortoiseHg, Windows & Linux.
Jegliche SW-Entwicklung in der Testabteilung (Testcenter) einer Firma, unter anderem:
• Überarbeitung (Refactoring) und Weiterentwicklung der Steuerungs-Software mehrerer Anlagen zum Testen von mechanischen Eigenschaften von Roboter-Gelenken; Schwerpunkt der Entwicklung war in Python.
• Überarbeitung (Refactoring) und Weiterentwicklung einer Software (in Python) zur Transformation von Zeitreihen gemessener Signale in Matlab-Strukturen (*.mat-Files). Die so generierten Daten sind für die Auswertung durch bestehende Matlab-Skripte vorbereitet.
• Erweiterung der Backup-Infrastruktur. Im Testcenter Fallen täglich mehrere Dutzende bis mehrere Hundert Gigabyte an Rohdaten (Messreihen) an. Für das zuverlässige Speichern und schnellen Zugriff auf die Daten habe ich das bestehende Konzept erweitert, durch Überprüfungen ergänzt und in Bash-Skripten und Python umgesetzt.
Januar - April 2016 Entwicklung eines Frameworks zum Post-Processing von Berechnungsergebnissen
Bereich: Automotive. Tools: Python unter Linux, PyCharm, Unittests, YAML.
Aufgaben:
• Transformationen von bestehenden Steuerungs-Files
• Aufbau von Verzeichnisstrukturen.
• Übersetzung bestehender Perl-Skripte nach Python.
• Weiterentwicklung von Skripten die kinematische Ketten im Fahrzeug beschreiben.
Februar – Dezember 2015 Umfeld Test Getriebe-Steuergeräte (BMW)
Testen von Automatikgetriebe-Steuergeräten am HiL.
Spezifikation und Automatisierung von Tests aufgrund von Anforderungen des Endkunden (QC/ECU-Test).
Entwicklung von Utilities (in Python) zur Auswertung der Testabdeckung.
Eingesetzte Tools und Entwicklungsumgebungen: ECU-Test, QualityCenter/QC/ALM, DOORS, Python, Ediabas, Control-Desk, OMR, Subversion/SVN.
Juli 2015 – Oktober 2015 (nebenberuflich): Entwicklung einer Web-Applikation für Verwaltung medizinischer Messdaten
Entwicklung einer Web-Applikation für Verwaltung medizinischer Messdaten in Python.
Eingesetzte Tools und Frameworks: Python, Pyramid/ Kotti, Postrgres, REST.
September 2014 – Februar 2015: Entwicklung einer Web-Applikation für kollaborative Dokumentenerstellung
Entwicklung einer Web-Applikation für kollaborative Dokumentenerstellung.
Eingesetzte Technologien: Python, Mongo-DB, python-docx, JSON, lxml, XML, Word.
Mein Anteil war der Word-Export der erstellten Dokumente unter Einsatz der XML-Sprache für Word-Dokumente (ooxml für Word oder Word-XML). Neben der Library python-docx wird direkter Zugriff auf den XML-Source-Code des Word-Dokumentes via lxml verwendet, um diverse Features, die von python-docx nicht zur Verfügung gestellt werden, zu implementieren.
Mai – Oktober 2014 (nebenberuflich): Entwicklung einer Web-Applikation für Patientenverwaltung (Klinikum Großhadern)
Entwicklung einer Patientenverwaltung für die Studienzentrale des Schwindelzentrums am Klinikum Großhadern. Eingesetzte Technologien: Python, Django, SQLite, HTML.
Februar – September 2014 Umfeld Test Hybrid Elektromotor–Steuergeräte (BMW)
Übernahme, Entwicklung, Ausführung von Testfällen, in QualityCenter und ECU-Test.
Februar - Dezember 2013 Umfeld Test Getriebe-Steuergeräte (BMW)
Entwicklung Testskripten (QualityCenter, ECU-Test) und div. Utilities (Python) zur Auswertung der Testabdeckung; Test der Steuergeräte.
April - November 2012 Umfeld Restbussimulation (BMW, Reliatec)
Teilaufgaben:
• Thema Automotive Ethernet + TCP/IP: Untersuchung Vector CANoe, Scapy
• Entwicklung Tests für xRbs. Die bestehende Software-API musste mit Tests abgesichert werden. Die Entwicklung der Tests war in Python, unter Einsatz der XML-Bibliothek Element Tree und JSON.
• Auswahl dezentrales Konfigurationsmanagement-System (Hg, Bazaar, Git)
• Testautomatisierung für LinRbs. Die bestehende Software wurde um ein Testautomatisierungsframework erweitert. Mein Anteil war Konzeption des Frameworks und Implementierung der Lin-Bus-Zugriffe in Python. (Python, Qt, PySide, LIN-Bus)
• LIN-Bus Panels: Entwicklung eines GUI-s zur Anzeige von Lin-Bus-Signalen. (PySide, Python, Vector CANoe COM Interface)
August 2011 – März 2012 Test Motorsteuergeräte am HiL (Audi)
Test Motorsteuergeräte. Anpassen bestehender Tests auf neue Steuergeräte. Auswertung. Entwicklung von Auswertungen in Excel (VBA). Automatische Umstellung von in Excell abgelegten Tests (ca. 60 Sheets pro Arbeitsmappe) auf ein neues Steuergerät (in Python)
Tools: EXAM, Python.
Februar - Juli 2011 Entwicklung der Webseite und des Marketings für das Software-Produkt WinOffice Pro 5.
September 2010 - Januar 2011 TSS GmbH (100%-Tochter der Daimler AG) in Ulm. Projekt car2go.
Aufgabe: Testverantwortlicher im Backend-Projekt
Es handelt sich um ein komplexes System zum spontanen Mieten von über ganz Ulm verteilten Fahrzeugen (Smart). Ich war in dem Teil des Teams, das die Web-Basierte Applikation gebaut hat, bestehend aus mehreren Servern und mehreren Datenbanken. Umfang der Aufgabe: Aufspüren der nicht getesteten Teile; z.T. erstellen, z.T. überprüfen der implementierten Tests.
Tools & Sprachen: Python, Java/ JUnit, Selenium, HP Quality Center, SVN.
Februar 2008 bis Juni 2010 Testautomatisierung EXAM (Audi)
Arbeit im Team Testautomatisierung EXAM. EXAM ist ein UML-basiertes Tool zum Erstellen und Ausführen von Testabläufen und zum Betrachten und Auswerten von Ergebnissen der Testläufe im Automotive-Umfeld bei Audi. Tools: EXAM 1.3, 1.4,2.0, Modena; dSpace-Bibliotheken, Wing IDE, Scite, Eclipse/PyDev. Programmiersprachen Python, C, Matlab.
Aufgaben in diesem Einsatz:
1) Weiterentwicklung der Plattform-Anbindung. Vor allem die Anbindung dSpace-HiLs an EXAM. Mapping von Plattform-Variablen auf symbolische Namen (Shortnames) oder Positionsnamen (Full Scope Names). Weiterentwicklung des Lean Mapping (automatisches Mappen auf Grund bestehender, bereits gemappter Variablen).
2) Einführung von Unit-Tests als Werkzeug der Qualitätssicherung für den Source-Code.
3) Einsatz als „Firefighter“ (Support bei Problemen mit kritischer Auswirkung, bei denen vertiefte Python-Kenntnisse und allgemeine Programmier-Erfahrung von Nöten waren).
4) Weiterentwicklung der Anbindung Modena-EXAM. Modena ist ein State-Chart basiertes Tool, das bei Audi zum Test vom Multi-Media Interfaces verwendet wird.
5) Weiterentwicklung der Anbindung EXAM-xPC. xPC ist ein Matlab-basiertes HiL –System.
6) Weiterentwicklung der Anbindung EXAM-Concurrent-HiL. Concurrent ist ein Echtzeit-Linux-basiertes HiL –System.
Januar 2007 - April 2008 (nebenberuflich): Mitentwicklung einer Kaufmännischen Applikation zur Führung kleiner Firmen
Inhalte: Auftragsverwaltung, Adressverwaltung, Schriftverkehr etc.
Aufgaben:
• Entwicklung von Komponenten des Frameworks in C#/.Net 2.0
• Entwicklung des Installers und des Bootstrappers.
• Build-Prozess mit Python und Windows-Batch-Skripten.
Tools: C#/.Net 2.0, WiX (MSI), Python, AutoIt3.
2007 Oktober bis Dezember: Testautomatisierung mit Metaedit+ (BMW)
Entwicklung einer grafischen Sprache zur Testautomatisierung im Automotive-Umfeld. Tool Metaedit+, dSpace-Bibliotheken.
2007 Mai bis September: Testautomatisierung mit RTT (BMW)
State-Machine-basierte Tests auf Basis von RTT und Stateflow-Modellen.
Umfeld: Neuentwicklung Hybrid, HiL von dSpace.
Zielsetzung: Überprüfung der korrekten Reaktion einzelner Output-Signale eines Steuergerätes auf Input-Signale.
Umsetzung: Das Modell der Funktionalität einzelner Output-Signale wurde in State Machines im Stateflow-Modell abgebildet. Die korrekte Reaktion der Signale wird in Echtzeit-Python überprüft (RTT der Firma dSpace).
2007 April bis September: Standardisierungsarbeit HiL-API (BMW)
Teilnahme an der HiL-API-AG, Entwicklung von Teilaspekten der HiL-API UML-Modelle in Enterprise Architect. Zweck der Entwicklung ist Standardisierung von SW-Zugriffen auf HiL-Systeme.
2007 Februar-März: Restbus-Simulation mit CAN-Multimessage-Blockset Teil 2 (BMW)
Konkrete Anwendung der im Vorjahr entwickelten Software (siehe unten Teil 1).
2007 Januar-Februar: Untersuchung der Kombination neuer dSpace- und Matlab-Releases auf Einsatzbereitschaft (BMW)
Ein altes großes Simulink-Modell wurde auf dSpace 5.1 und dSpace 5.2 zum Laufen gebracht, die anfänglichen Probleme wurden verfolgt und eingegrenzt.
2006 September-Dezember: Untersuchung UML auf Tauglichkeit als Grundlage für eine Sprache zum Austausch von Testfällen (Testaustauschformat) bei BMW
Verwendete Tools: Enterprise Architect. UML wurde als zu umfangreich und uneindeutig befunden, um es zum genannten Zweck zu verwenden.
2006 Mai-August: Aufbau eines Teststandes auf Grundlage von dSpace-HiL Midrange zum schulen neuer Mitarbeiter (BMW)
1) HW: Aufbau und Anbinden eines Steuergerätes über den dSpace CAN-Highspeed-Lowspeed Adapter.
2) Erstellen eines Layouts zum bestehenden Simulink-Modell (ISAR).
3) Erstellen der Testfälle unter Einsatz der Werkzeuge AutomationDesk und ECU-Test. Ausführende Werkzeuge: Ediabas, rtplib, FIU (ioclib).
2006 Februar-April: Restbus-Simulation mit CAN Multimessage-Blockset Teil 1 (BMW)
Entwicklung einer Restbus-Simulation auf Grundlage des CAN-Multimessageblocksets von dSpace. Zu versendende Nachrichten wurden aus zu simulierenden Steuergeräten, bestehenden Steuergeräten im Bus-System und individuell einstellbaren Filtern berechnet. Gesondert berücksichtigt wurden Zähler und Alive-Signale, wie auch Netzwerk-Botschaften. Tools: CANMM, Eclipse / PyDev, Python, SQLite/PySQLite.
Januar bis Dezember 2005 (nebenberuflich) Entwicklung von Finanzapplikationen auf Grundlage des jPos-Frameworks.
Sprache: Java 1.4, Tools: jPos, Eclipse, Ant, Jython.
August 2003 bis Dezember 2005 Entwicklung einer durchgängigen Tool-Kette für Tests auf HIL-Systemen bei der BMW AG
Verbinden mehrerer SW-Systeme in eine durchgängige Tool-Kette. Zentrale SW-Komponenten: Testsequenzer TestStand von National Instruments, ECU-Test von Tracetronik, Test-Management Tool QualityCenter (ehemals TestDirector) von Mercury.
Folgende Anbindungen und Komponenten wurden erstellt:
1) Anbindung TestStand-ControlDesk (über die rtplib und Python/C API)
2) Anbindung TestStand-Ediabas (Schnittstelle in C/C++: MSVC6.0 und CVI von National Instruments)
3) Alternatives GUI für TestStand (Visual Basic 6.0).
4) Anbindung QualityCenter-ECU-Test (Visual Basic 6.0, COM, zLib, Excel, HTML). Alle Komponenten der OTAG-Schnittstelle wurden implementiert.
5) Testschritttypen für ECU-Test zum Prüfen des Konzepts der Austauschbarkeit der Testplattform (Python / wxPython).
6) Tests in Teststand und ECU-Test für die Telefon-Abteilung
Folgende Untersuchungen wurden durchgeführt:
1) TTCN 3 auf Einsatz als Grundlage für Testautomatisierung.
2) Vergleich von Testautomatisierungswerkzeugen ECU-Test, AutomationDesk, TestStand
2003 Januar bis Juli Komponententester für Komponenten im MOST-Ring bei der BMW AG
Tätigkeiten:
1) Anpassen des Formats des BMW - MOST - Katalogs, so dass das XML-File validierbar ist.
2) Weitere Transformationen am XML-File zu verschiedenen Zwecken, alle unter Einsatz der Programmiersprache Python.
3) Erstellen von Test-Skripts zum Testen von MOST - Komponenten unter Berücksichtigung von bestehenden MSCs.
4) Koordination mit dem Tool-Hersteller des Test-Systems 4CS und Entwicklung einer auf 4CS basierten MOST-Testumgebung.
2002 Mai bis Dezember SW-Tester für ein CAN-MOST Gateway bei der BMW AG
Tätigkeiten:
1) Technische Anleitung der ausführenden Firma und dessen Koordination mit den Anwendern (Testern bei BMW).
2) Teilspezifikation und Präzisierung der Funktionalität, des grafischen Layouts und der Ausgabe der Ergebnisse.
3) Organisation der Kommunikation mit der ausführenden Firma inklusive der Bugreports.
4) Auswertung der zu testenden Fälle unter Einsatz der Programmiersprache Python.
5) Auswertung des Speicherverbrauchs und des Speicherlayouts der Gateway-SW unter Einsatz der Programmiersprache Python.
6) Erstellen eines Alternativkonzepts (inkl. Spezifikation) zum testen des Gateways und dessen Teilweise Implementation auf Grundlage des Programms Vector CANOe Option MOST.
2002 Januar bis April Weiterbildung im kaufmännischen Bereich: Marketing, Buchhaltung, Firmenführung.
Mehrere eigene Projekte in Python, Java (1.3) und C++ (MSVC 6.0).
2001 Februar bis Dezember Für die Firma Protos GmbH und deren Kunden
1) Auswahl der Komponenten für ein USB-basiertes Projekt.
2) CAN und CAN-Open Treiber auf unterschiedlicher HW.
a) Der erste Treiber war eine Anpassung des C167-Treibers von Infineon. Das Gegenstück im Netzwerk war ein CANOpen-basiertes digitales IO-Modul.
Der C167 war auf einem Board der Firma Keil. Entwicklungsumgebung: uC2 der Firma Keil.
b) CAN-Treiber auf einem QNX-basierten System (Steuerrechner einer Sondermaschine). Spezifikation und Implementierung mehrerer Treiber. Netzwerkteilnehmer waren zum Teil digitale Vipa-IO-Module, zum Teil eigens entwickelte HW-Boards mit komplexer Funktionalität (Multi-IOs). Die Entwicklungsumgebung war das Case Tool Trice und der Wacom C++ Compiler.
c) Ansprechen der IXXAT-CAN-Karte aus einer Windows-NT basierten echtzeitfähigen Umgebung heraus (Lösung aufgrund der Karte von LP-elektronik). Dazu musste ich den IXXAT-CAN-Treiber auf diese Umgebung anpassen. Entwicklungswerkzeuge: MSVC++, WAGO-IO-Modul.
d) Treiber für das WAGO IO Modul und das Serielle WAGO Modul. Werkzeuge: CASE-Tool Trice, MSVC++.
e) CAN-Treiber für die Ansteuerung von Servomotoren der über den Regler der Firma e-motion. Umgebung: C167/Phytec Board, Keil Entwicklungsumgebung, e-motion Regler mit der eigenen Sprache -Epos-.
Verwendete HW: WAGO-Module, VIPA-Module, IXXAT-Karten, CAN auf Infineon uC (C505, C167).
3) Entwicklung von SW-Komponenten mit dem CASE-Tool Trice und C/C++.
Anmerkung: Trice wurde auf Grundlage der ROOM -Methodologie entwickelt. Dies ist dieselbe Methodologie, auf der Rose RT aufgebaut ist.
4) Änderungen an den Digitalen und Analogen Klassen der Virtuellen Maschine der Steuerung.
5) Weiter mehrere kleinere Projekte und Teilprojekte für Kunden des Auftraggebers auf Basis des CASE-Tools Trice.
September 2000 - Januar 2001 TV-Signalverarbeitung mit M2(SDA 6000).
M2 ist ein C166-Derivat mit zusätzlicher Funktionalität:
1) zur Verarbeitung der TV-Teletext-Signale (und anderer Digital-kodierter Signale im Analogen TV-Signal-Fluss)
2) zur Darstellung digital generierter Bilder auf dem TV-Bildschirm (z.B. Teletext -Anzeige). Ziel des Projektes war Implementation eines neuen Protokolls, das digitale Daten im
Fernsehbild zu übertragen hatte. Zuerst war ein zusätzlicher Mikrokontroller dafür vorgesehen, dieser wurde dann auf Grund eines Einfalls von mir rausoptimiert und die Verarbeitung wurde dem M2 überlassen (der sich ohnehin in jedem Fernseher befindet).
Meine Aufgabe bestand in mehreren klein - Projekten. Darunter hervorzuheben, mehrere Tools:
1) zum Speichern des Images über die serielle Schnittstelle, mit Umwandlung und Speichern ins Flash;
2) Test - Tools für das Protokoll.
Tools: Keil, ICE von Lauterbach.
Juli 1999 Gründung eigener Firma im Dienstleistungsbereich.
Der Betrieb wurde Mitte 2001 eingestellt.
April 1997 - 1999 bei GSM-SW Hersteller Optimay in der Entwicklung und im Technischen Support.
SW - Entwicklung unter Einsatz von C unter RTOS:
1) Entwicklung von HW-Treibern für Schnittstellen-HW (Batterie Messung, eingefügt in GSM Protokoll Stack). Umfang ca. 6 Monate.
2) Entwicklung Kundenspezifischer Methoden und Zusätze im GSM - Protokoll Stack. Diese Entwicklung war für ein GSM-Handy, auf Basis der Chipsätze GOLD und HiGOLD.
Beides sind C166-Derivate, ergänzt mit zusätzlichen DSP-s und RF-Teil Anbindung. Das umfassendste Projekt war der oben genannt Batterie - Treiber (der zu kontrollieren hatte, wie weit die Spannung der Batterie für das Funktionieren des Handys ausreichend war). Hintergrund: der AD - Wandler, der für die Batteriemessung zuständig war, wurde auch im Audio-Pfad des Chipsatzes verwendet. Deswegen musste man innerhalb des Zeitrahmens von 4,6 ms an einer geeigneten Stelle die Kontrolle über den ADC übernehmen (Ist-Zustand speichern, umkonfigurieren), wieder auf geeigneter Stelle die Messung ausführen und zu Verfügung stellen, und die Kontrolle des Audio-Pfads über den ADC wiederherstelle. Dabei waren verschiedene Abhängigkeiten zu berücksichtigen (z.B. ist der Zeitpunkt, zu dem das Handy sendet, nicht geeignet für Messungen, da das Messergebnis verfälscht wird).
Die genaue zeitliche Abfolge der verschiedenen Schritte wurde durch Einsatz eines der 4 HW-Interrupts, die auf dem Chipsatz zu Verfügung standen, geregelt (d.h. man musste für jeden neuen Schritt auch den Interrupt umkonfigurieren - Zeit setzen, scharf machen). Zusätzliche Komplexitätsgrade kamen im Projekt hinzu, indem:
a) der genannte HW-Interrupt auch für andere Aufgaben verwendet wurde;
b) die geeigneten Zeitpunkte innerhalb des Zeitframes für das Messen unterschiedlich waren, je nach Kanal, auf dem sich das Handy befand (TCh, BCh usw.)
Die Entwicklungsumgebung bestand (auch in den nachfolgenden Projekten) aus dem HW-Board von Siemens, dem Keil-Compiler/Linker (damals noch DOS-basiert) und darauf aufbauenden firmeninternen Tools (Batch-Dateien für einen automatischen Compile/Link/Hex2Bin-Zyklus). Die Binaries wurden über die JTAG-Schnittstelle ins RAM geladen und getestet. Für das Debuggen wurden ausgaben aus einem selbstgemachten Trace-Tool benutzt. Die endgültigen Tests, ob der Treiber die Funktionalität des Handys beeinträchtigt, wurden mit GSM-Testern durchgeführt. Während der Entwicklung waren manchmal analoge und digitale Oszilloskope von Nutzen.
3) Parallel und anschließend zu dieser Entwicklung habe ich mehrere Firmen im Technischen Support betreut. Dabei sind meist technische Fragestellungen aufgetreten, die durch alle Ebenen des Protokoll-Stacks gingen (inklusive aller GSM-Layer, des HW-Layers und des MMI). Meist war die Test-Umgebung für die Probleme wie oben beschrieben (mit dem unterschied das das Testen auf fertigen Produkten passierte, unter Einsatz der firmenspezifischen Flash-Tools). Zum Lösen der Probleme waren nötig: ein grundlegendes Verständnis des Aufbaus des GSM-Stacks, wie auch Detailwissen über die Teile des Stacks, in denen die Probleme aufgetreten sind.
4) MS Access: Error-Report DB, die die alte Paradox-basierte DB abgelöst hat.
5) PC Kalibrations-SW für Mobiles (bei Produktion). Hauptsprache C, Teile in Delphi, GPIB. Einsatz von HP - GSM Teststationen.
Die grundlegende Umgebung wie oben. Ziel dieses Projektes war fein-Kalibration der RF-Teile des Mobiles am Ende der Produktion, um optimale Sende- und Empfangsqualität zu erreichen. Dazu hat man die Charakteristik des jeweiligen RF-Teils mit einem GSM-Tester gemessen, und aufgrund der Abweichung vom Optimum die Sende- und Empfangstabellen angepasst, und ins Flash gespeichert. Der größte Teil der Arbeit war auf der Handy-Seite. Das Programmieren des Testers geschah zum in einer Hersteller-eigenen Basic-ähnlichen Sprache.
6) Firmeninterne Schulung zum Thema Produktions/Kalibrations - SW.
Mai 1995 - März 1997 bei der Firma Software Factory
Entwicklung von Software überwiegend Datenbank-basiert, GUIs, Kommunikation (TCP/IP, RS232), mathematische Algorithmen, Sprachen und Tools: SQL, VBA, MS Access, Excel, Ingres Open Road, C
1) MS Excel (mit VBA): PC-Client zur Auswertung von Produktionsdaten für Druckmaschinenhersteller. Abrufen der Daten via ODBC (von VMS RDBMS Server). Vielseitige Auswertung und Darstellung der Daten, dynamische Tabellen - Ansichten.
2) MS Access: Tool für Wafer-Verwaltung für namhaften Halbleiterhersteller. Erweiterung der bestehenden Funktionalität. Erweiterung der Abfragen. Einführung neuer Sicherheitsstufen / Zugriffsrechte. Mehrere neue Masken, Erweiterung der Reports. Ständiger Kundenkontakt und Einführung vor Ort.
3) MS Access: Tool zur weltweiten Planung der Produktion für Automobil - Teile Hersteller. Erweiterung der bestehenden Funktionalität. Geschwindigkeitsoptimierung der Abfragen. Mehrere neue Masken, Reports, Grafische Darstellung erweitert. Daten/Masken Trennung. Einführung vor Ort.
4) Ansteuerung der Seriellen Schnittstelle: Erstellung einer DLL (unter MSVC++ ) zur Steuerung der Serverseitigen seriellen Schnittstelle (RS232).
5) CAD (ProEngineer): Entwicklung mathematischer Konzepte (z.B. Besier-Kurven, Schnittbestimmung) und Umwandlung in Algorithmen.
6) TCP/IP: Entwicklung eines Clients basierend auf den Telnet- und FTP-Protokollen (Socket - Programmierung; Dateitransfer und Ausführen komplexer Aufgaben auf der Server-Seite; Realisierung in C, in Form einer statischen Bibliothek).
7) CA Ingres - Open Road (4GL) unter Windows und Unix- ca. 10 Projekte: Erstellung und Pflege mehrerer komplexer SQL - Datenbankapplikationen. Bereiche:
8) Verwaltung von KKW-Daten
a) DB-Erstellung, Altdaten-Übernahme/Anpassung, Reporterstellung unter Einsatz von MS Word/DDE.
b) BTX-Seitenerstellung. Zusammenführung bestehender Applikationen.
c) Tool zum Aufspüren von falsch eingetragenen Datensätzen.
d) Entwicklung und Installation beim Endkunden.
9) Internes, weltweites Tool für Halbleiter - Hersteller: Internationalisierung (Deutsch/Englisch).
Januar bis April 1995 Firma EOS (Branche Rapid Prototyping)
Entwicklung eines Teststandes für die Erfassung mechanischer Messwerte: Hardware und Datenerfassungssoftware. Verbindung DSP-uC- und Ansteuerungssoftware für Schrittmotore in MS Visual C++; Auswertung und grafische Darstellung Makro-gesteuert in MS Excel).