Auto Multimedia System

L I V E Stammtisch ab 20:30 Uhr im Chat
  • /home/pi/car/Car ist korrekt soweit das repo nicht einfach nur geklont sondern auch der Sourcecode kompiliert wurde

    Ich hab die Anleitung mal raus genommen, da das Projekt dann doch sehr speziell (Hardwaretechnisch) ist. Bei Interesse kann ich natürlich helfen, das ganze mal einzurichten bzw ich kann mal ein funktionierendes Raspbian Image hochladen, wo die Arbeit erledigt ist

    Ich kann mich irgendwann mal dran setzen, das ganze etwas allgemeiner zu schreiben und an verschiedene Hardware anzupassen, aber vorher würde ich gern die bereits angesprochenen Probleme Radioempfang und Equalizer lösen.

    Einmal editiert, zuletzt von Silveryard (27. Juni 2016 um 16:39)

  • Wo war da ne Anleitung? :-/

    Wenn man "git clone" verwendet wird ein Verzeichnis "Car_System" erstellt. In diesem Verzeichnis sind alle Verzeichnisse exakt so wie auf github. Dort ist dann also ein Verzeichnis " Car " in dem wiederum Quellcode zum kompilieren zu finden ist. Wenn man das Zeuchs für mono fertig kompiliert hat nennt sich die ausführbare Datei " Car "....
    Bedeutet: Wenn ich als Benutzer "pi" das repo clone und dann kompiliere, lautet der Pfad zur Binary: /home/pi/Car_System/Car/Car
    Deshalb wunderte ich mich wieso das bei swoopo davon abweicht.


    PS: Wäre es nicht besser auf mono und dem Windows Zeuchs zu verzichten? Schließlich soll es für ein Linux System sein

  • Ich hatte ne Anleitung in der Readme, wo die einzelnen Steps zur Einrichtung standen. Bearbeiten von Config, Installation von Tools etc ^^

    Ich builde das Projekt nicht direkt auf dem Pi sondern über VisualGDB entwickle ich das ganze unter Windows (Rechner und Laptop) und cross compile das direkt dort.
    Wundert mich, dass ihr überhaupt compilen könnt :D

    Wie gesagt, bei Interesse kann ich das ganze Projekt mal etwas aufbereiten und für alle zugänglicher machen. Für mich allein war es nur angenehm, Visual Studio verwenden zu können.

    Einmal editiert, zuletzt von Silveryard (27. Juni 2016 um 16:45)


  • Wundert mich, dass ihr überhaupt compilen könnt :D

    Hat mich auch etwas Zeit gekostet da ich aus der Anleitung nicht schlau wurde bzw keine executable, images oder fonts als solche gefunden hab, also war es für mich keine Anleitung sondern erschien mir eher sowas wie Notizen für Dich zu sein ;)

  • Respekt dafür :D
    Nachdem auf allen meinen Geräten die Visual GDB trial ausgelaufen ist, hab ich mir auch mal ein Ubuntu System aufgesetzt. Mal schauen, ob ich das alles so eingerichtet bekomm, wie ich das will ^

    Images und Fonts liegen im Data Ordner
    Ich lade allerdings gerade ein Backup auf GitHub hoch, das ich am Samstag von meiner SD-Karte gemacht habe. Also relativ neu und sollte auch funktionieren (zumindest bei mir tut es das)

  • Okay ich versuche gerade, das ganze projekt rein auf CMake zu trimmen. Gar nicht mal so schwer wie ich das gedacht hatte. Die CMakeLists.txt ist relativ übersichtlich.
    Aber leider findet er die zlib nicht mehr, die von der taglib genutzt wird und meines wissens schon in libtag.a enthalten ist.
    Die Änderungen sind online, vielleicht findet einer meinen Fehler..


  • Gesendet von meinem SM-G935F mit Tapatalk

  • Ich hab jetzt eine Art Treiber-System implementiert, mit denen man mit abweichender Hardware umgehen kann.
    Wenn man den Radio Chip nicht hat, einfach statt

    Zitat


    cmake ..

    Zitat


    cmake -DFmDriver=None ..

    aufrufen.
    Das gleiche gibt es für das Display (-DScreenDriver), falls man andere Techniken als den Framebuffer verwenden will, kann man hierfür einen Treiber schreiben. Oder das ganze headless laufen lassen, wenn man das unbedingt möchte.

  • So dann will ich mal n paar Neuerungen vorstellen ^^

    Erst mal bischen was buntes:

     
     

    Neuerung 1: Ich habe die Texte links durch Bilder ersetzt. Find ich dann doch etwas schöner.

    Auch haben die Settings einen komplett neuen Anstrich bekommen. Dieses "alles über 4 Buttons regeln" war ganz nett, aber echt unintuitiv und hat zu vielen verschachtelten Menüs mit Text geführt. Wärend der Autofahrt eher kontraproduktiv.

    Autoplay und Shuffle sind Toggles und ändern ihre Farbe je nachdem ob die Option aktiviert ist oder nicht.
    Wenn man auf Volume klickt, bekommt man den oben dar gestellten Slider, den man über Touch verändern kann. Nicht mehr 30x klicken, um die Musik hoch oder runter zu drehen.
    In dem Punkt "Speaker" hab ich Fade und Balance vereint. Diese Einstellung habe ich noch nicht fertig, ist aber (wenn mal eingestellt) auch nicht das wichtigste.

    Auch unter der Haube hat sich viel getan. Z.B. ein neues Dateiformat für Bilder. Das ermöglicht kleinere Dateigrößen, schnellere Ladezeiten und mehr Performance. Der Screen mit dem Skoda Logo ist bei meinem Pi3 von 160FPS auf 250FPS hoch. Ich hoffe, diesen Boost mit in ein Dateiformat für Videodateien nehmen zu können. Fancy Loadingscreen incoming :)


    Es war etwas nervig, die Software immer erst aufs Radio (das ich dafür ausbauen muss) zu ziehen, um sie testen zu können.
    Deswegen hab ich mein weiter oben erwähntes Treibersystem dafür genutzt, einen GTK-Treiber zu schreiben. Wenn GTK3 installiert ist kann man mit:

    Code
    cmake -DFmDriver=None -DScreenDriver=Gtk .. && make

    bauen.
    Ich kenne mich mit Gtk nicht wirklich aus und habe das quick&dirty geschrieben. Deswegen kann der Treiber mein Grafiksystem nicht voll ausnutzen und bis ich eine Möglichkeit gefunden hab, mehrere Pixel gleichzeitig zu zeichnen läuft das ganze nur mit 1-2FPS (statt 200+). Aber für einen ersten Eindruck oder Debugging reicht es :)

    Bin gespannt auf eure Meinung ;)
    Silveryard

    Einmal editiert, zuletzt von Silveryard (2. April 2017 um 21:30)

  • Moin,

    wollt mir mal das update ansehen, bekomme aber immer folgenden Fehler.

    Code
    /home/pi/car/Car/../3rdParty/taglib-1.11beta2/build/taglib/libtag.a: error adding symbols: File format not recognized
    collect2: error: ld returned 1 exit status
    CMakeFiles/Car.dir/build.make:685: recipe for target 'build/bin/Car' failed
    make[2]: *** [build/bin/Car] Error 1
    CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/Car.dir/all' failed
    make[1]: *** [CMakeFiles/Car.dir/all] Error 2
    Makefile:76: recipe for target 'all' failed
    make: *** [all] Error 2
  • Gerade nachgesehen. Ich habe anscheinend aus Versehen meine taglib Binaries mit gepusht. Die sind für x86_64 kompiliert. Lösch einfach mal alles in 3rdParty/taglib-1.11beta2/build und bau sie mit

    Code
    cmake && make  -j 4

    mal neu.

    Edit: Mal noch ne kleine Anleitung, wie ihr vorgehen müsst:

    /home/pi/car ist nicht mehr fest vorgegeben. Ihr könnt das ganze in einem beliebigen Ordner machen. Ich nehme hier mal trotzdem /home/pi/car, weil es bei mir so ist.

    Code
    git clone https://github.com/Silveryard/Car_System.git
    cd Car_System/3rdParty/taglib-1.11beta2/build
    sudo rm -r *
    cmake ..
    make -j 4
    cd ../../../Car
    nano CMakeLists.txt

    Ändert

    Zitat


    link_directories("${PROJECT_SOURCE_DIR}/../3rdParty/fmodstudioapi10802linux/api/lowlevel/lib/x86_64")

    so, dass der entsprechende Ordner für eure Architektur gewählt wird. Für das Raspberry wäre das

    Zitat


    link_directories("${PROJECT_SOURCE_DIR}/../3rdParty/fmodstudioapi10802linux/api/lowlevel/lib/arm")

    Code
    mkdir build
    cd build

    Für Linux/GTK:

    Code
    cmake -DFmDriver=None -DScreenDriver=Gtk -DCMAKE_BUILD_TYPE=Release ..

    für Raspberry:

    Code
    cmake -DFmDriver=None -DCMAKE_BUILD_TYPE=Release ..
    Code
    make -j 4
    mkdir /home/pi/car
    mkdir /home/pi/car/system
    mkdir /home/pi/car/settings
    mkdir /home/pi/car/system/images
    mkdir /home/pi/car/system/fonts
    cp ./bin/Car /home/pi/car/Car
    sudo chmod +x /home/pi/car/Car

    kopiert
    - die Dateien aus Car_System/Data/Fonts nach /home/pi/car/System/fonts
    - die Dateien aus Car_System/Data/Images/rif nach /home/pi/car/System/images

    Startet mit:

    Code
    sudo /home/pi/car/Car

    Einmal editiert, zuletzt von Silveryard (24. Juli 2016 um 19:17)

  • Moin,

    bin kurz mal deine Anleitung durchgegangen. Haben sich ein paar Fehler eingeschlichen:

    Code
    git clone https://github.com/Silveryarc/Car_System.git
    ...
    ...

    Dies müsste wie folg sein:

    Code
    git clone https://github.com/Silveryard/Car_System.git


    Code
    ...
    ...
    sudo chmox +x /home/pi/car/Car

    Und dies:

    Code
    sudo chmod +x /home/pi/car/Car


    Edit:

    Fehler behoben. Man sollte auch fmod installieren :shy:

    Einmal editiert, zuletzt von swoopo (24. Juli 2016 um 18:55)

  • Allerdings habe ich jetzt ein neues Problem/Fehler !?

    Nun sehe nach dem Starten des Programm entweder nur den blinkenden Cursor oder aber auch die ganze Konsolenzeile.
    Desweiteren kann ich keinen Button drücken. (Das kann aber auch im Moment daran liegen das ich ein Pollin Touch Display benutze. Die Auflösung habe ich auf 800x480px Eingestellt).

  • Moin,

    so hab mich jetzt nochmal ein wenig hiermit beschäftigt.


    Erfolgreich geladen ist erst, wenn das Skoda Logo angezeigt wird.

    Also bestätigen kann ich es nicht, dass das Programm vollständig geladen ist wenn das Logo geladen wurde.
    Die Konsole erscheint bei mir auch nachdem das Logo geladen wurde.



    Starte mal per ssh oder redirecte den Output in eine Datei. Was kommt dabei raus?

    Hab mal ein Bild von Output gemacht, da im Output in eine Externe Datei komischer weise nicht alles steht was in der Konsole steht.
    Output.jpg

  • Hmm im unteren Screenshot sieht es so aus, als würde das Programm noch laufen.
    Du könntest in Car.cpp Z. 34

    Code
    //#define LOG_FPS

    durch

    Code
    #define Log_FPS

    ersetzen. Solang du in der Konsole Logausgaben bekommst, läuft alles noch.

    Nachdem das Skoda Logo angezeigt wird, wird nur noch der Update-Thread für FMOD und den USB-Dienst gestartet und die Main Loop aufgerufen. Die Main Loop wartet dann auf Touch Input. Hast du den Treiber schon auf deinen Touchscreen angepasst?


    Liste mal alle Input/Outpu devices auf mit:

    Code
    cat /proc/bus/input/devices

    Bei mit ist input1 der Touchscreen mit dem Namen "FT5406 memory based driver" (Offizielles Touch Display).
    Diesen Namen musst du in /Drivers/Screen/Framebuffer/touch.cpp in Zeile 768 eintragen.

    In Zeile 30 könntest du noch

    Code
    //#define TOUCH_LOG

    durch

    Code
    #define TOUCH_LOG

    ersetzen, dann bekommst du Logausgaben bei jedem Input.

    Wird der Screen erkannt, bekommst du am Anfang einige Logausgaben zu den Events deines Screens. Solltest du trotz erkanntem Screen keinen Touch Input bekommen, sind eventuell die Event Keys anders als beim offiziellen Display.

    Hoffe das hilft, den Fehler zu finden :)

  • Moin,
    Hab gestern nochmal getestet. Mein Display wird erkannt. Beim drücken aufs Display reagiert das Programm und gibt in Konsole auch etwas auch (was genau weis ich grad aus dem Kopf nicht mehr, ergänze ich nachher aber). Leider wird aber weiterhin die Konsole im Hintergrund angezeigt.

    Edit:
    Folgende Ausgabe nach Start des Programms

    Einmal editiert, zuletzt von swoopo (29. Juli 2016 um 16:09)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!