Moin moin liebe Mitstudierenden und Interessenten der Wirtschaftsinformatik!
Nachdem ihr nun grob wisst wo ich gearbeitet habe möchte ich euch näher erläutern was genau ich gemacht habe.
Wie im ersten Teil schon beschrieben sollte ich für eine kleine aber leistungsfähige Mako-G Kamera eine Software schreiben mit der man die Kamera steuern kann. Angeschlossen wird die Kamera an einen PC/Laptop mit Hilfe eines Ethernet-Kabels.
Die Kamera lag beim Team schon länger rum, war also älter, und es hatte noch keiner wirklich was damit gemacht. Mir wurde dann die Kamera übergeben und gesagt, ich solle mal gucken wie ich die zum Laufen bringe und was man damit am Ende machen wollen würde. Dafür wurde mir ein sehr alter Rechner, der übrig war zur Verfügung gestellt, an dem ich die Kamera anschließen durfte. Auf diesem lief noch Windows XP und der schnellste war er auch nicht mehr.
Zuerst habe ich mir im Internet viele verschiedene Handbücher besorgt, um erstmal Informationen zu sammeln. Da außer der Kamera nichts dabei war musste ich mich auch um ein entsprechendes Netzteil mit Anschlusskabeln und Ethernet-Kabel kümmern, sodass ich die Kamera erstmal zum Laufen bringen konnte. Nachdem ich verschiedene Treiber installiert habe, wollte die Kamera immer noch nicht laufen…woran lag es? Die Netzwerkkarte, die in dem Rechner verbaut war hat keine 100Mbit/s Verbindungen unterstützt, sodass ich erstmal eine neue Netzwerkkarte für den Rechner besorgen musste…hat zum Glück geklappt, aber da muss man erstmal draufkommen. Man liest dann doch die Handbücher und Anleitungen mehrere Male durch!
Die API der Kamera hat verschiedene Programmiersprachen unterstützt, C++, C#, Java,… .Da ich in meinem Bachelor mit Java programmieren gelernt habe, war für mich klar die Anwendung für die Steuerung der Kamera auch in Java zu schreiben. Ich kannte damals zwei Möglichkeiten in Java Oberflächen zu programmieren: 1. AWT+ Swing ; 1. JavaFX. JavaFX ist herausgekommen, als ich ca. im 4. oder 5. Semester war. Da wir Oberflächenprogrammierung in den Vorlesungen nicht hatten und FX wesentlich neuer als AWT+Swing war, entschied ich mich dafür mit FX die Oberflächen zu bauen.
Zur Ansteuerung der Kamera gab es eine Bibliothek mit verschiedenen Klassen und Methoden, unter anderem natürlich auch eine Methode um ein Bild von der Kamera abzufragen. Diese Methode lieferte das Bild als Objekt vom Typ „BufferedImage“. Als ich mit der Programmierung endlich soweit war, konnte ich erste Test machen. Beim Testen konnte ich die vom Hersteller versprochene Framerate bei Weitem nicht erreichen…sehr komisch! Ich habe bestimmt 1-2 Wochen nach dem Fehler gesucht: JavaFX benutzt als Bildobjekt das sogenannte „WritableImage“, zu welchem ich das „BufferedImage“ von der Kamera um konvertiert habe. Diese Konvertierung war so zeitaufwendig, dass die Framerate darunter rapide gelitten hat!
Deshalb habe ich dann die ganze Steuerung noch einmal mit AWT+Swing gebaut, weil es in FX keinen Weg gab, das „BufferedImage“ zu benutzen…sehr ärgerlich!
Mein Tipp: Guckt vorher nach welche Version einer Programmiersprache ihr am besten nutzen solltet, wenn ihr mit fremden Bibliotheken etwas programmiert!