Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.7.1 - Qt Creator : 4.2.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Bluetooth sur rpi3 et installation Qt

Bonjour à tous,

je suis actuellement en "panne" complête sur le bluetooth de ma raspberry. Je développe actuellement une application contenant de l'I2C, des échanges TCPIP, des thread, etc... enfin plein de trucs (pour moi des trucs de OUF même!) qui aujourd'hui marchent pas trop mal mais le bluetooth me résiste !!
j'ai essayé des trucs dans tout les sens, tellement que je ne serai vous les citer.
A force de recherche et en lisant tout avec parfois n'importe quoi (souvant?) j'en arrive à me demander si ce n'est pas des incompatibiltés de versions entre Qt et BlueZ (le drivers bluetooth de raspbian) ou encore mon installation de Qt.

Donc pour faire simple je développe directement sur la Raspberry Pi3 (car je n'ai rien compris de l'installation de Cross Compiler et même si j'ai réussi une fois le résultat était toujours en plein écran),
Raspbian Jessie 8.0
Qt 5.3.2
QtCreator 3.2.1
avec apt-get install qt-default
et apt-get install qtcreator
Sur cette installation tout fonctionne bien sauf ... le bluetooth !!!

j'ai fini par réussir à installer une version plus récente (peut être la dernière même!?) avec Qt 5.7.1 et Qt Creator 4.2.0 (en passant Raspbian jessie en stretch juste pour l'installation de Qt)
Là par contre je n'ai pas réussi à paramétrer le kit et la compilation d'une application "vide" se plante directement avec environ 380 erreurs... j'suis perdu!

Tout réinstaller ne me fait pas peur, même compiler toute une nuit si il le faut. J'ai certainement dû oublier d'installer un truc style "QtConnectivity" ou de le compiler ou les deux (j'en parle mais je ne sais pas le faire)...

Bref, si une âme charitable a une petite idée sur la bonne installation ou s'est déjà frotté au bluetooth sur Rpi3....

Merci d'avance




Réponses

  • Slt,
    Donc pour faire simple je développe directement sur la Raspberry Pi3
    ça doit être très long à compiler ? Surtout dès que l'application devient un peu sérieuse. Déjà, moi qui compile sur un ubuntu virtualisé, je trouve cela long.
    (car je n'ai rien compris de l'installation de Cross Compiler et même si j'ai réussi une fois le résultat était toujours en plein écran),
    Quelle est l'objectif ? Garder une distribution Linux complète (avec son bureau, ...) qui s'exécute sur le RPI ?
    Car c'est pas forcement la bonne solution si c'est pour faire un système industrielle.

    "QtConnectivity" n'existe plus de mémoire. Qt5Bluetooth est un module à part comme le montre le .pro de l'exemple "Bluetooth Scanner Example" :
    QT = core bluetooth widgets
    la compilation d'une application "vide" se plante directement avec environ 380 erreurs
    Peux tu nous montrer ? Enfin, ne copie pas cela ici (pastebin, dropbox...).
  • Bonjour Loupium et merci de ton intérêt,

    mon application n'est pas du tout compliquée (même "Super Lite" pour vous je pense!!):
    - échange de trames ethernet "maison" entre le Rpi3, un automate et éventuellement un autre Rpi3.
    - récupération de données en I2C
    - récupération de données Bluetooth
    - faire un bel affichage de ces données sur un 15" tactile, saisir des consignes, messages d'alarmes/événements...
    - archiver ces données (éventuellement afficher en courbes mais pour l'instant c'est un rêve...)
    - une gestion d'horloge hebdomadaire
    Voilà les grandes lignes et quand je parles de données à récupérer on atteint à peine la dizaine, c'est dire...
    Donc pour la compilation de mon application pour l'instant le Rpi3 s'en sort haut la main (en même temps je n'ai pas encore fait spécialement de pages...)

    Effectivement l'objectif n'est pas de garder une distribution complète, pas du tout même. Ce qui m'a rebuté sur la Cross Compilation c'est l'installation de Qt et dès le premier essai même un changement de la police du fameux "Hello world !" ne fonctionnait pas. D'être en plein écran m'a fait pensé que je ne pourrai peut être pas créer de petites fenêtres de validation, d'avertissement, de saisie,etc... à tort peut être ?
    Ce n'est pas une application industrielle mais c'est tout à fait comparable. A terme et selon mes résultats certainement commercialisée en embarquée pour le particulier et pour des espaces publiques.

    Je ne suis pas sûr mais de mémoire "QtConnectivity" devait être utilisé pour des versions inférieurs à Qt5.4 (ou environ) et c'est pourquoi j'ai cherché à installer une version plus récente à Qt 5.3.2
    Qt5Bluetooth est un paquet à part mais il est possible de l'installer après coup??

    Pour info j'ai installer Qt 5.71 et QtCreator 4.2.0 sur une installation propre de Raspbian (passée en stretch juste pour l'installation) en tapant simplement:
    "apt-get install qt-default"
    "apt-get install qtcreator"

    et.... c'est tout.... j'ai peut être oublier un truc ? (un "build-essential" ou un "g++" ??) ou un "Qt5Bluetooth" :))
    Pour faire court, à la compilation dans les "problèmes" j'ai
    "#error Qt requires a C++11 compiler and yours does not seem to be that." :(

    Voilà, ma réponse est un roman, désolé et merci encore
  • Salut,
    j'ai un peu lu post en travers mais :
    Il faut effectivement installer build-essential.
    Pour la cross compilation et le problème de police, aucune police pour Qt n'est installée par défaut, normalement la fenêtre de sortie te dit qu'il faut télécharger des fonts (il donne le lien ainsi que l'endroit où les placer).
    Je m'étais fait une petite doc complète pour la cross compilation et l'installation de la font. Je posterai ça ce soir, vers 22 heures.
  • Salut babaOroms,
    C'est de la cross-compilation depuis Linux ou Windows?
    Je verrai bien ce soir excuse moi...
    j'ai tenté un "apt-get install build-essential" mais il semble que les dernières versions sont déjà installées ... ?!?

    Pour mon problème de projet vide qui ne se compile pas sous Qt 5.7.1 c'est bon:
    j'ai ajouté "CONFIG += c++11" dans le fichier .pro de mon projet
    et dans les paramètres de compilation GDB j'ai mis usr/bin/g++ au lieu de usr/bin/arm-linux.....g++
    et c'est bon !! Evidemment je n'ai rien compris pour autant mais ça fonctionne....
    Demain je vais tester mon début de projet dessus mais je vais me REconfronter au bluetooth. Il y a une installation
    particulière à faire pour avoir ce module Qt5Bluetooth (ex: apt-get-install ....) ??

    Merci encore à vous et bonne soirée
  • 3 Apr modifié
    il s'agit d'une cross-compilation depuis linux.
    Pour le bluetooth aucune idée. Je sais juste que ma cross-compilation a générer le libQt5Bluetooth.so. Jamais testé
    As-tu aussi ce fichier ?
    pdf
    pdf
    crosscompilation Qt5 raspbian2.pdf
    2M
  • 3 Apr modifié
    Donc pour faire simple je développe directement sur la Raspberry Pi3 (car je n'ai rien compris de l'installation de Cross Compiler et même si j'ai réussi une fois le résultat était toujours en plein écran),
    Si le mode fenêtré est disponible lorsque tu développes directement sur la Raspberry Pi3, alors il le sera en Cross Compilant, car tu utilises probablement un raspbian d'origine qui possède un compositeur de fenêtre.
    D'être en plein écran m'a fait pensé que je ne pourrai peut être pas créer de petites fenêtres de validation, d'avertissement, de saisie,etc... à tort peut être ?
    Comme sur windows, le plein écran d'une fenêtre n'interdit pas l'ouverture d'une autre fenêtre (comme une boite de dialogue).
    Sauf si comme moi tu supprimes le compositeur de fenêtre (ou du moins je ne l'ai pas installé) ce qui m'oblige à créer mes propres fenêtres, mais c'est plus flexible, personnalisable et "industriel" puisque cela permet de faire cela : https://www.qt.io/built-qt-medec-medical-devices/
    (voir la vidéo qui ressemble beaucoup à ce que j'avais fait mais dans le domaine animal)

    En fait, pour atteindre mon objectif d'un comportement "industriel" c'est à dire booter en une poignée de seconde sur une application plein écran (mais aussi sans compositeur de fenêtre) (comme Boot to Qt http://blog.qt.io/blog/2013/05/21/introducing-boot-to-qt-a-technology-preview/), j'ai utilisé un créateur d'OS nommé buildroot. Car je me voyais mal dégraisser correctement et efficacement une distribution aussi complexe que raspbian.

    Je ne connais donc pas raspbian mais je peux peut être ajouter et tester le module Qt5Bluetooth sur mon OS créé avec buildroot.
    Il faut effectivement installer build-essential.
    Il est quand même dingue que se genre de dépendance ne soit toujours pas correctement géré en 2017.

  • 4 Apr modifié
    Il est quand même dingue que se genre de dépendance ne soit toujours pas correctement géré en 2017.
    C'est peut-être le cas, mais comme c'est toujours la première chose que j'installe, je ne sais pas si d'autres packages le font du fait de leur dépendance.

    En parlant de compositeur, quelqu'un à testé wayland ? Sur un pi ?
  • Merci à vous 2 pour ces infos,
    ça donne envie ces vidéos et effectivement ça ressemble à l'idée que je me fait de mon application. Dès que le bluetooth fonctionne je m'attaquerai à la cross-compilation en suivant la "petite" doc de babaOroms.
    J'ai regarder rapidement Buildroot et je garde l'idée dans ma poche ... mais là ça va un peux loin pour moi je pense, ou trop rapidement :-O
    déjà que je ne sais pas comment m'y prendre pour installer Qt5bluetooth, ou libQt5Bluetooth.so, ou les deux, et les compiler, ou le déclarer dans le .pro ..... :))

    Merci encore pour vos infos, pas eu le temps d'y bosser aujourd'hui mais je vous informerai de ma "progression" !!
    Au fait, c'est quoi wayland ???
  • Salut,
    tu dois pourvoir installer qtconnectivity5-dev via apt-get. A confirmer quand même.
    Wayland est un serveur d'affichage. Voici un petit tuto : https://youtube.com/watch?v=9vWMUTvFgdU
Connectez-vous ou Inscrivez-vous pour répondre.