05/2011 - 2/2012 Industrie
Windows 7
Visual Studio 2010
C++
Interbus
XML
Visual SourceSafe
Hardware Nahe Programmierung
Embedded Linux
Ultraschall Materialprüfung
Das Projekt beinhaltet 2 Baustellen:
1. Weitereintwicklung eines vorhandenen rudimentären Konfigurators für die Konfiguration der
Ultraschall-Meßeinrichtung. Hinzugefügt wurden Bestandteile des Konfigurators, die
einen Zugriff auf den Interbus erforderten, wie z.B Explorieren des Busses, Extrahieren
der Module, Ermöglichen und Vergleichen des Byte-Mappings mit den Möglickeiten
des Busses, u.s.w.
2. Wieterentwicklung eine Busmonitors, der den Zustand des Busses darstellt. Hinzugefügt
wurden Teile des Monitors, die z.B. einen Start des Interbuses ermöglichen, nachdem eine
Überprüfung auf die Richtigkeit der Konfiguration und ein Vergleich mit den vorhandenen
Busdaten erfolgte.
Das Projekt wurde verlängert.
07/2010 - 09/2010 Industrie
Green Hills Integrity
Windows XP
MULTI-Compiler
Visual Studio 2005
C/C++
Power PC
Clearcase
Doxygen
Ein IP-Router sollte erstellt werden für ein Funk-Kommunikations-System. Aufbauend auf dem vorhandenen Router von Green Hills wurde die Funbktionalität an die Anforderungen des Kunden angepaßt.
02/2010 - 04/2010 Automotive
OSEK,
Windows XP
Visual Studio, C/C++
AMD DRAGON CPU
SourceSafe (TortoiseSVN), PC-Lint
HMI, Graphics,
LUA, Doxygen
Für ein Simulationsprogramm eines neuen HMI-Frameworks wird das Graphic Display erweitert und angepaßt.
LUA-Scripts für Testproceduren werden erstellt.
12/2008 - 01/2009 Industrie
RTOS-UH
Windows XP
C/C++
BORLAND Make
CAN, Vector Tools,
Power PC,
Lauterbach,
MKS Source Integrity
Kransteuerung: LMB (Lastmoment-Berechnung) und
Visualisierung
- Im Kundenauftrag werden Veränderungen und/oder Erweiterungen an vorhandener
LMB-Software und der damit verbundenen Visualisierung vorgenommen.
- Entwicklung einer Embedded Testsuite ausgehend von der frei
verfügbaren Software CPPUNIT. Der Datenaustausch wird über Sockets realisiert.
Ein Server wird auf der embedded Seite eingerichtet, der Client ist in eine
Windows GUI integriert. Es können verschiedene Tests definiert werden.
09/2008 - 11/2008 Automotive
Visual Studio 2005
Windows XP
embedded Windows CE 6.0
CM Synergy
CAN, CANoe, Vector Tools
ARM, KITL, TUX
Erweiterung des bereits vorhandenen CAN Drivers:
- Acceptance Mask akzeptiert Messages oder lehnt diese ab (Performance)
- Messages können im Packet aus dem Buffer gelesen werden (Performance)
- Power aware CAN
Programmiert wird Treiber Software sowohl für User Mode als auch für Kernel
Mode (OAL).
03/2008 - 05/2008 Automotive
Visual Studio 2005
Windows XP
embedded QNX
Perforce
MOST, CAN
SH4
Projekt in der neu gebildeten System-Debug Gruppe. Bugsuche und -lösung entsprechend den erhaltenen Bug-Reports. Performance Optimierung. Multithreadingprobleme durch dynamische Prioritätenanpassung hnd spezielle Eventverarbeitung verringern.
01/2008 - 02/2008 Automotive
Visual Studio 2005
Windows XP,
SourceSafe
OSEK,
I2C BUS,
Phillips Microcontroller
Treibersoftware für eine HAL.
Für eine geplante Umstellung auf neue Microcontroller eines Automotive
Audiosystems werden neue Treiber Software benötigt, die eine Hardware
Abstraction ermöglicht. Vorhandene Low Level Gerätetreiber werden über
vordefinierte Interfaces angesprochen (Read/Write) und über definierte
Interfaces wird mit der Application Software kommuniziert. Die Software wird
für OSEK compiliert und mittels eines Testplatzes überprüft. Dazu wird außerdem
Testsoftware benötigt um einzelne Testfälle abarbeiten zu können.
10/2007 - 12/2007 Medizintechnik
Visual Studio 2005
Windows XP,
Serena PVCS,
COM, UNICODE
Ein bestehendes System sollte auf Memory Leaks untersucht werden, die durch die
Verwendung von COM-Technologie entstanden. Zahlreiche Leaks wurden beseitigt.
Zusätzlich war eine Umstellung des Projektes auf Verwendung von UNICODE zu
erledigen.
03/2007 - 09/2007 Air Navigation / Avionic
Visual Studio,
Windows XP, Linux,
StarTeam, CaliberRM,
Für die Hubschraubernavigationssoftware wird eine Bild- ,Höhen- und Vektor-
datanbank erzeugt. Dabei werden die Quelldaten von unterschiedlichen
Herstellern (Zulieferern) zunächst in ein unabhängiges Zwischenformat
überführt. Diese Zwischenformate sind WGS84 rektifiziert und liegen in unter-
schiedlichen Auflösungen vor. Daraus wird über spezielle Algorithmen eine für
das Display darstellbare "Kachelverteilung" erzeugt mit einer vorgegebenen
Auflösung (es wird i.A. die beste Auflösung zu Grunde gelegt - die anderen
Dateien werden umgerechnet).
06/2006 - 02/2007 Medizintechnik,
Circulation,
Visual Studio,
Objektorientierte Datenbank VERSANT,
Windows XP,
ClearCase, ClearQuest,
Für eine Applikation aus der Medizintechnik werden Möglichkeiten geschaffen,
verschiedene Scans (von verschiedenen Applikationen) zur gleichen Zeit zu laden
und anzuzeigen. Dazu muß das verhalten beim Ladevorgang verallgemeinert werden.
Es wird dazu ein "InputManager" entwickelt, der das Laden aus unterschiedlichen
Applikationen steuert. Dieser muß zusätzlich threadsafe gemacht werden.
05/2004 - 06/2006 Automotive (Automobil),
Navigation Kernel,
VisualStudio (C/C++), Sniff, Tornado,
embedded Visual C++
VxWorks, Windows NT, Windows XP,
Windows XP, Windows CE, Platformbuilder
ClearCase, ChangeSynergy
Hitachi SH4, CP1, CP2, Hitachi SH7750
CVS,
ARMV4, Pocket PC
Treiber-Entwicklung für Windows CE
Wiedereinstieg in Projekt 10/2003 - 02/2004 Automotive
Mitarbeit an der Weiterentwicklung eines bestehenden Navigationssystems.
Entwicklung eines Virtual COM Port Drviers für Windows CE.
Design der Suche nach Querstraßen als Navigationsziel.
Aufbau von "Initial Street Search" Index Files: Vor allem auf dem
amerikanischen Markt ist die Zielsuche anders - es wird zuerst die Straße
eingegeben und eine Liste von Städten erwartet, in denen diese Straße vorkommt.
Aus dieser Liste kann dann eine Stadt ausgesucht werden. Die Daten lagen aber
nur für die "europäische" Suche vor (also Stadt => Straße).
Mitarbeit im Debug-Team. Fehlersuche anhand von Traces und Fehlermeldungen.
Mithilfe von Code Review werden vom Testteam berichtete Fehler eingegrenzt,
lokalisiert und nach Möglichkeit behoben. Wenn das nicht möglich ist, wird der
Part lokalisiert, in dem der Fehler auftritt. Das erfolgt in enger
Zusammenarbeit mit den betreffenden Entwicklern. Da die Fehlersuche im embedded
System nur über Traces erfolgt, werden entsprechende Tools gebaut, die eine
gezielte Auswertung ermöglichen oder vereinfachen. Ein anderes Tool wurde
gebaut, daß einen Screenshot vom Target via TCP (Sockets) auf den Host
überträgt. Ein weiteres Tool wurde zur Kontrolle des Voice Output geschrieben.
Zur Darstellung von Kartenmaterial zusammen mit Sateliten- und Luftbildern
müssen die vorhandenen Images in in eine Datenbank eingetragen werden. Um die
Images schnell zur Laufzeit finden zu können, wird ein Indexfile erzeugt.
Ein optimierter Algorithmus liefert die Indizees der Images mit
verschiedenen Auflösungen. Die Datenbank muß erzeugt werden, also ist ein
Datenbank-Compiler zu schreiben.
Beim Erstellen der Datanbank wird das vorhandene Datenmaterial über
Filterähnliche Funktionen an die Anforderungen für die Images angepaßt, die
zur Laufzeit gestellt werden. Dabei werden sämtliche Pixel für die
Images aus den vorhandenen Rohdaten neu berechnet. Die Berechnung der Pixel
erfolgt über einen selbst geschaffenen Algorithmus.
Zur Optimierung der Datenbankzugriffe werde angepaßte Caching-Algorithmen
entwickelt. Die Indizierung der Datenbank-Chunks wird unter dem Gesichtspunkt
"größte mögliche Lokalität" (durch fraktale Unterteilung der geografischen
Daten) vorgenommen, so daß sowohl die Daten aus dem Indexfile als auch unter
bestimmten Bedingungen die Rohdaten selbst "cached" werden können.
Zusätzlich ClearCase-Administation für das Projekt.
03/2004 - 04/2004 Sicherheit
VisualStudio.NET 2003 (C/C++), COM,
IDL, embedded Windows XP, MFC, ATL
TestClient für Video-Übertragung,
MPEG4, YUV, DirectDraw
Zum Testen der entwickelten Software (Vidoe-Streaming wird via PCI-Bus
importiert) ist ein bereits mit geringem Funktionsumfang existierender
TestClient weiterzuentwickeln. Als Funktionalitäten werden hinzugefügt:
- Auflisten der laufenden Übertragungsjobs
- Einstellungsmöglichkeit der Parameter (Resolution, Bitrate, Leave out value,
Key frame interval, ...)
- Umwandlung der MPEG4-Sequenzen von der Überwachungskamera in eine YUV-Sequenz,
- Darstellung dieser YUV-Sequenz (für jeden laufenden Übertragungsjob extra)
in einem eigenen Fenster als Video. Dazu wird DirectDraw verwendet.
10/2003 - 02/2004 Automotive
C/C++, MSVC6, COM/DCOM, XML, IDL
NT, Windows CE (embedded Systems)
ClearQuest, ClearCase,
MFC,
Hitachi SH4
Navigation HMI/MMI
Navigation Machine
Wiedereinstieg in das Projekt 12/2000 - 11/2001 Automotive
Aufbau einer Demo-Version für eine Navi, die mit chinesischen Schriftzeichen
afrbeitet. Dazu teilweise Umbau der bestehenden Software unter Einführung und
Verwendung von Unicode. Die bestehende Datenbank ist nur auf ASCII eingerichtet.
So wurde ein paralleles Mapping in XML vorgenommen, das die Datenbank-Einträge
in Pin-Yin (chinesische Lautumschrift mit lateinischen Buchstaben) zusammen mit
den chinesischen Unicode-Ensprechungen enthielt. Die bisherigen Zugriffe auf
die Datenbank wurden je nach gewählter Anzeige (Pin-Yin oder Unicode) entweder
beibehalten (für Pin-Yin) oder auf das Mapping umgeleitet.
Optimierung bestehender Teile, Performancesteigerung, Bugfixing.Neudesign und
-entwicklung eines Teiles der Navigation machine.
Wiedereintritt in Projekt 12/2000 - 11/2001: Fahrernavigationssystem.
Bugfix und Performancesteigerung für angegebenes Projekt. Auslagerung von
Aufgaben der Software in gesonderte Threads.
12/2001 - 06/2002 Industrie
C/C++ MSCVC6, COM/DCOM, IDL, STL,
NT4.0, Windows 2000,
MFC,
MS-Access,
ClearCase, PCLint, VTune,
Windows Systemprogrammierung,
Windows Memory Management,
Windows Messaging,
Multithreading
Testsoftware
Für bestehende und neu zu entwickelnde Software wird Black- und White-Box
Testsotftware erstellt. Die entwickelte Testsoftware dient auch zur Erkennung
von Memoryleaks und CPU Consumption (Virtual Memory Management von NT und 2000). Getestet werden Dll"s.
Es werden für die Entwickler Testklassen vorbereitet.
Die Testklassen können exportierte Funktionen aus der zu testenden Dll aufrufen.
In den Testklassen werden Testfunktionen deklariert.
In einer der Testklasse wird über Makros eine init-Function definiert, die über
Windows-Messages die Namen der Testfunktionen und den Namen der Testklasse
an die GUI sendet. Diese Funktion wird exportiert.
Andere Makros definieren die Ausgabe von Ergebnissen innerhalb einer
Testfunktion in zur Laufzeit angelegte Spalten. Für jede Testklasse gibt es
eine Setup-Funktion, die die Voraussetzung für die Testfunktionen
der Testklasse schaffen kann (z.B. CoInitialize() bei Verwendung von COM)
und eine Teardown-Routine, die die notwendigen Aufräumarbeiten
übernimmt (z.B. CoUnititialize() für COM). Vor dem Aufruf der eigentlichen
Testfunktion wird ein Timestamp geholt und das Memory gescannt, ebenfalls
nach Aufruf der Testfunktion. Ein Vergeleich liefert die Zeit der Testfunktion
und den Speicherverbrauch. Zusätzliche Makros ermöglichen die Untersuchungen
von Teilen innerhalb einer Testfunktion. Im Debug-Mode können Memory-Leaks
erkannt werden. Beim Auftreten eines Leaks wird dann ein Dump ausgeführt für
einen bestimmten Abschnitt innerhalb der Testfunktion.
Die Testergebnisse werden in eine Access-Datenbank eingetragen.
12/2000 - 11/2001 Automotive
C/C++, MSVC6, COM/DCOM, XML, IDL
NT, Windows CE (embedded Systems)
ClearQuest, ClearCase,
MFC,
Hitachi SH4
Navigation HMI/MMI
Weiterentwicklung des Softwareparts nach Kundenwünschen. Hinzufügen neuer
Interfaces für neue Funktionalitäten sowie der zugehörigen Interfacemethoden.
Definition von angezeigten Bildschirmseiten über XML-Files. Eine vorhandene
Library von Controls wird innerhalb einer Seite zur Anzeige genutzt. Die Seiten
können definierte Events auslösen. Diese Events werden abgefangen und
entsprechende Reaktionen innerhalb von den Seiten zugeordneten Klassen/Objekten
in Klasseneigenen Eventhandlern behandelt. Über die Interface-Functions der
Controls können diese manipuliert werden und deren Erscheinungsbild an
definierte Systemzustände angepaßt werden. Aktuelle Systemzustände werden über
COM-Interfaces an eine darunterliegende Schicht geschrieben - der
Informationsfluß in die umgekehrte Richtung erfolt wiederum Events oder über
CallBacks. Daher ist ein weiterer wichtiger Bestandteil des Projektes die
Synchronisierung des Zugriffes auf einzelne Daten.
Die Interfaces werden bei Bedarf durch neue oder erweiterte IDL"s ergänzt.
Coding Guidelines and Rules werden durch PC-Lint überprüft.
02/2000 - 11/2000 Industrie
C/C++, TCP/IP, Profibus, IPC, SmartSockets
NT
Projekt für die Bahn. Multithreading, Multitasking. Protokollkonverter von
verschiedenen Netzwerkprotokollen. Es handelt sich um die Ansteuerung von
elektronischen Stellwerken und deren Kommunikation mit Bedien- und
Protokollstationen.
Es werden zwischen den einzelnen Stationen unterschiedliche Netzwerkprotokolle
verwendet. Über einen Router werden die Nachrichtenpakete an bestimmte Empfänger
verteilt. Die einzelnen Protokolle werden über protokolltypische Applikationen
(Threads) an ein Interface übergeben, auf dessen anderer Seite einheitliche
Threads laufen, welches die Steuerung dieser Applikationen übernehmen. Diese
Threads bilden einen Prozeß. Über IPC (Named Pipes) werden Nachrichten an einen
Router-ähnlichen Prozess übergeben, der die Nachrichten an bestimmte Empfänger
weitergibt. Diese Empfänger werden über IPC an die oben genannten Prozesse
verteilt. Echtzeitbetrieb. Analyse, Design und Implementierung des Systems.
Erweiterung der Router-Applikation zu zustandsabhängigen Reaktionen im Sinne
einer Redundanz. Der Router kann aktiv und passiv sein. Mit projektierbaren
Zuständen (Projektierungsdatei) kann der Router bei Ausfall bestimmter
(projektierbarer) Verbindungen vom aktiven in den passiven Zustand übergehen.
Von außen kann er sowohl von aktiv nach passiv, als auch umgekehrt geschalten
werden. Die Überwachung der Zustände dient der Verfügbarkeit. Wenn durch
Verbindungsausfall von ausgesuchten Verbindungen abgeleitet werden kann, daß
der IP-Stack des betreffenden Rechners weggebrochen ist, kann automatisch auf
einen zweiten Rechner umgeschaltet werden. Der erste Rechner geht dann in den
Passiv-Zustand, der zweite wird vom Passiv- in den Aktivzustand umgeschaltet.
Weiterhin Erstellung eines Test-Tools und Testsoftware für TCP.
Mittels ICMP Überwachung der Verbindung zu allen remote parties. Dazu werden
Packete vom ECHO-Type von einem "Raw-Socket" abgeschickt und die "ECHO-REPLY"-
Packete werden den Absendern zugeordnet.
10/1997-02/2000 Industrie
Borland C++Builder, VCL, INTERBASE, PARADOX,
Ethernet, TCP/IP,
BDE (Borland Database Engine)
NT
PVCS
Projekt wird erweitert als Client-Server-Apllication. Es greift nur noch ein
Prozeß auf die Datenbanken zu. Der Informationsaustausch wird über einen Server-
Prozeß realisiert. Der Serverprozeß nimmt die Anforderungen entgegen, verteilt
diese auf die Clients und schickt deren Rückmeldung an den Prozeß zurück, der
die Anforderung abgeschickt hat. Alle drei Teilprojekte arbeiten in Echtzeit.
Visualisierung und Steuerung von SPS (Siemens) vom PC aus Multi-User und
Multi-Tasking. Bestehend aus drei Teilprojekten:
1. Kommunikation PC-SPS und Eintragen der aktuellen Werte in eine Datenbank
(INTERBASE, PARADOX), Ständiges Pollen der aktuellen SPS-Werte und Eintragen in
Datenbank sowie lesen von Schreibaufträgen für SPS durch mehrere Threads .
2. Visualisierung und Grafik-Designer: Offline-Gestalten von Anlagenbildern und
Eintragen von Datenpunkten; Online: Aktualisierung der Datenpunkte (Eintragen
von Istwerten, geänderten Sollwerten u.s.w.) Absetzen von Schreibaufträgen in
die SPS
3. Zentrale Verwaltung: Generiert automatische Protokolle, die vom Nutzer frei
definiert werden können wie z.B. Störungsmeldungen, Gefahrmeldungen und andere
Meldungen. Die Protokoll-Generierung wird durch drei Faktoren gesteuert:
Auszulösende Aktionen, auslösende Zustände und aktuelle Zustände.
Der Nutzer kann aus einer Reihe von vorgegebenen Aktionen frei wählen, z.B.
Mitprotokollieren, Drucken, Faxen, Personanrufanlage betätigen u.s.w.
Deutschland: Projektsprache Englisch ist OK.