Oui j'ai été le lire il y a un petit peu de temps maintenant. Mais ils ne disent rien à propos de l'IDE QtCreator. Sous Linux j'arrive à compiler avec G++ Omnidriver mais pas sous Windows avec MSVC2013 64 bits, avec MSVC2013 32 bits oui mais au moment de lancer le code pour l'acquisition, la première ligne me fait planter le programme.
La page 54/134 (ds pdfReader) ou page 54 de la doc?
C'est comme ça que le pack a été construit visiblement!
Mais vu que le projet date de 2010 omme tu dis, je vais déjà tester la compilation avec MSVC2012.
Si c'est pas avec MSVC2010 ou antérieur que le projet a été compilé!
Je ne sais pas si des versions antérieurs de MSVC posent problème
If you are developing with Microsoft Visual Studio, you may use any of these interface methods.
However, if you are developing with any other IDE (e.g., Borland C++ Builder), you may only use the C
and COM interfaces. This is because there is no standard for how C++ name mangling is performed, and
the OmniDriver C++ interface was developed using Microsoft Visual Studio. Using the C++ interface
with an IDE other than Visual Studio results in many "undefined symbol" errors.
Peut être qu'on peut passer par du C sous le compilateur C++ de Qt qui est une surcouche de C++.
Si j'utilise le code C, je n'utiliserais pas la notion d'objet dans ce cas la.
Je retournerais juste les deux tableaux de double.
C'est ca aussi que j'appréhende un peu
Je veux bien faire ça mais pour la suite j'aimerais mettre mon code dans un système embarqué. SeaBreeze est apparemment fait pour ça. Et vu que SeaBreeze fonctionne aussi pour créer mon logiciel, je me dis que ça pourrais être bien de m'en servir pour le logiciel et pour le système embarqué.
je suis bloqué pour faire du multithread avec mon logiciel d'ailleurs!
Je voulais dire par la que je suis entrain de développer la communication un thread pour ça et un pour la gestion de l'interface graphique.
tu utilises donc ton propre code pour dialoguer avec l'appareil
Non, j'utilise les fonctions C++ de SeaBreeze pour dialoguer avec l'appareil.
si tu utilises un logiciel fournit par le fournisseur oceanoptics,
tu as aussi le "bug" sur l "USB400", ou bien tu as ces erreurs de données uniquement avec ton logiciel ?
Si j'utilise un logiciel de chez eux on aurait pas ce problème car ils doivent utiliser Omnidriver avec Mcirosoft Visual Basic et Omnidriver n'est compatible uniquement avec le compilateur C++ MSVC. J'utilise SeaBreeze pour développer mon logiciel sous QtCreator.
L'erreur, il n'y en a pas. Enfin, je sais juste observer que les valeurs que je récupère ne sont pas les bonnes. Après je n'ai pas regardé plus loins encore à ce niveau la.
En ce moment je suis bloqué pour faire du multithread avec mon logiciel d'ailleurs! Mais ça c'est une autre histoire
En fait je lance le protocole d'acquisition classique pour récupérer deux tableaux.
Un tableau concernant les nanomètres
Un tableau concernant les intensités
Tous deux de taille 3648 pour le matériel USB4000
Lorsque je fait un printf du tableau de nanomètre, j'obtiens des valeurs incompréhensible! Mon professeur m'a dit que c'était peut être du à une incompatibilité avec le driver USB sous Linux (ou alors vstmod). Je ne sais pas …
Je pensais peut être qu'avec la description suivante, que je puisse utiliser la fonction udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
TAG : Attach a tag to a device. This is used to filter events for users of libudev's monitor functionality, or to enumerate a group of tagged devices. The implementation can only work efficiently if only a few tags are attached to a device. It is only meant to be used in contexts with specific device filter requirements, and not as a general-purpose flag. Excessive use might result in inefficient event handling.
Par contre, j'aurais dit comme ceci la syntaxe mais je ne suis pas sur :
Je connais déjà le subsystem et le devtype de mon appareil grâce à un programme, je cherche plutôt à mettre un TAG ou alors créer un groupe dans le .rules afin de noter plusieurs périphériques particuliers dont j'aimerais noter les caractéristiques dans mon interface.
Pour le TAG j'ai :
udev_monitor_filter_add_match_tag (struct udev_monitor *udev_monitor, const char *tag);
Pour Subsystem et Devtype j'ai :
udev_monitor_filter_add_match_subsystem_devtype (struct udev_monitor *udev_monitor, const char *subsystem, const char *devtype);
Avec d'autres paramètres je ne peux rien faire. Comme ajouter un groupe je ne sais pas si ça va changer Devtype par exemple…
Problème : la lib qui récupère les infos de mon matériel n'est pas compilable en C++
Solution :
-soit faire un programme pour la gestion de l'USB sous Linux
-soit utiliser une bibliothèque QtCreator pour l'USB, peut être QSerialPort pour gérer l'USB pour toute les platforme et appeler ensuite le programme qui va interroger le matériel.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Oui j'ai été le lire il y a un petit peu de temps maintenant. Mais ils ne disent rien à propos de l'IDE QtCreator. Sous Linux j'arrive à compiler avec G++ Omnidriver mais pas sous Windows avec MSVC2013 64 bits, avec MSVC2013 32 bits oui mais au moment de lancer le code pour l'acquisition, la première ligne me fait planter le programme.
La page 54/134 (ds pdfReader) ou page 54 de la doc?
Oui j'ai lu aussi
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
J'utilise Omnidriver.
C'est comme ça que le pack a été construit visiblement!
Mais vu que le projet date de 2010 omme tu dis, je vais déjà tester la compilation avec MSVC2012.
Si c'est pas avec MSVC2010 ou antérieur que le projet a été compilé!
Je ne sais pas si des versions antérieurs de MSVC posent problème
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1. Dernière modification le 02 juin 2015 à 21:48.
du C oui et du C++ (QT) et du Java pour la communication avec l'appareil.
C'est à cette ligne de code que ça plante :
wrapperHandle = Wrapper_Create(); //ERREUR ICI
Avec ceci avant la ligne qui bug :
WRAPPER_T wrapperHandle;
Ca plante avant d'ouvrir une connection !!
Je devrais surement mettre les .dll, .lib et .jar dans mon dossier de projet aussi. Je vais faire le test
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1. Dernière modification le 02 juin 2015 à 20:34.
Je fais appel à une librairie qui se sert de machine virtuelle JAVA (du JDK).
En mode Debug j'ai cette erreur de compilation :
The inferior stopped because it triggered an exception.
Stopped in thread 0 by: Exception at 0x75cac42d, code: 0xc06d007e: , flags=0x0.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Maintenant j'arrive à compiler avec un compilateur MSVC 32 bits sous windows et les libs en 32 bits.
Le souci c'est que mon programme plante lorsque je fais une acquisition ^
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Pour le moment j'essai de charger les librairies dans mon projet QtCreator et lorsque je compile avec MSVC voici ce que j'obtiens :
error: LNK1181: impossible d'ouvrir le fichier en entrée 'OmniDriver64.lib'
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Pour Omnidriver, voici ce qui est dit :
If you are developing with Microsoft Visual Studio, you may use any of these interface methods.
However, if you are developing with any other IDE (e.g., Borland C++ Builder), you may only use the C
and COM interfaces. This is because there is no standard for how C++ name mangling is performed, and
the OmniDriver C++ interface was developed using Microsoft Visual Studio. Using the C++ interface
with an IDE other than Visual Studio results in many "undefined symbol" errors.
Peut être qu'on peut passer par du C sous le compilateur C++ de Qt qui est une surcouche de C++.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Si j'utilise le code C, je n'utiliserais pas la notion d'objet dans ce cas la.
Je retournerais juste les deux tableaux de double.
C'est ca aussi que j'appréhende un peu
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Je veux bien faire ça mais pour la suite j'aimerais mettre mon code dans un système embarqué. SeaBreeze est apparemment fait pour ça. Et vu que SeaBreeze fonctionne aussi pour créer mon logiciel, je me dis que ça pourrais être bien de m'en servir pour le logiciel et pour le système embarqué.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Il est dispo seulement pour la compilation gcc mais non avec g++ sous QtCreator.
J'ai déjà testé hors QtCreator avec Omnidriver. Ca fonctionne
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Je voulais dire par la que je suis entrain de développer la communication un thread pour ça et un pour la gestion de l'interface graphique.
Non, j'utilise les fonctions C++ de SeaBreeze pour dialoguer avec l'appareil.
Si j'utilise un logiciel de chez eux on aurait pas ce problème car ils doivent utiliser Omnidriver avec Mcirosoft Visual Basic et Omnidriver n'est compatible uniquement avec le compilateur C++ MSVC. J'utilise SeaBreeze pour développer mon logiciel sous QtCreator.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Je vais tester les manips que tu me dis dès que j'ai du temps pour ça.
Le blacklister ne servirait à rien alors visiblement !
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Je l'ai compilé sur une machine 64 bits.
L'erreur, il n'y en a pas. Enfin, je sais juste observer que les valeurs que je récupère ne sont pas les bonnes. Après je n'ai pas regardé plus loins encore à ce niveau la.
En ce moment je suis bloqué pour faire du multithread avec mon logiciel d'ailleurs! Mais ça c'est une autre histoire
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Qu'entends-tu par protocole de test?
Tu parles de SeaBreeze?
J'ai pas très bien saisi ce que tu voulais dire!
Ce que je peux assurer c'est que SeaBreeze fonctionne avec un matériel mais pas avec l'USB4000 de leur gamme sous Linux.
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
En fait je lance le protocole d'acquisition classique pour récupérer deux tableaux.
Un tableau concernant les nanomètres
Un tableau concernant les intensités
Tous deux de taille 3648 pour le matériel USB4000
Lorsque je fait un printf du tableau de nanomètre, j'obtiens des valeurs incompréhensible! Mon professeur m'a dit que c'était peut être du à une incompatibilité avec le driver USB sous Linux (ou alors vstmod). Je ne sais pas …
[^] # Re: tes infos datent de 2010...
Posté par electro575 . En réponse au message Projet : conflit avec vstmod. Évalué à 1.
Merci pour ta réponse. J'ai pris SeaBreeze sur ce lien la : SeaBreeze
Je n'ai pas pris le temps de regarder le support pour le moment
[^] # Re: réponse rapide
Posté par electro575 . En réponse au message Licence LGPL & GPL. Évalué à 1.
Merci beaucoup pour tes précisions. Bonne fin de journée à toi !
[^] # Re: au hasard du web
Posté par electro575 . En réponse au message Lister les périphériques USB plutôt que hidraw. Évalué à 1.
Je n'avais pas testé le code de la personne pour le premier lien. Il s'avère que son programme peut lister les périphériques USB.
A moi d'adapter le code à mon application.
Le deuxième lien m'a permit de faire tourner le démon usb.
Une personne m'a indiqué cette librairie pour la communication USB multiplatforme :
Libusb
[^] # Re: revoir l'enoncé et choisir ce qui va bien
Posté par electro575 . En réponse au message Communication entre deux processus pere-fils bloquante . Évalué à 1.
Merci à toi
[^] # Re: Un exemple simple pere/fils
Posté par electro575 . En réponse au message Communication entre deux processus pere-fils bloquante . Évalué à 1.
Merci à toi
[^] # Re: Doc d'udev
Posté par electro575 . En réponse au message Communication USB avec la lib udev. Évalué à 1.
Je pensais peut être qu'avec la description suivante, que je puisse utiliser la fonction udev_monitor_filter_add_match_tag(struct udev_monitor *udev_monitor, const char *tag);
TAG : Attach a tag to a device. This is used to filter events for users of libudev's monitor functionality, or to enumerate a group of tagged devices. The implementation can only work efficiently if only a few tags are attached to a device. It is only meant to be used in contexts with specific device filter requirements, and not as a general-purpose flag. Excessive use might result in inefficient event handling.
Par contre, j'aurais dit comme ceci la syntaxe mais je ne suis pas sur :
ATTRS{idVendor}=="", ATTRS{idProduct}=="", SYMLINK+="", TAG:="essai", MODE:=""
Liens :
LibUdev
Syntaxe_rules
[^] # Re: Doc d'udev
Posté par electro575 . En réponse au message Communication USB avec la lib udev. Évalué à 1.
Oui j'ai lu cette page mais pas entièrement.
L'outil udevadm est bien utile.
Je connais déjà le subsystem et le devtype de mon appareil grâce à un programme, je cherche plutôt à mettre un TAG ou alors créer un groupe dans le .rules afin de noter plusieurs périphériques particuliers dont j'aimerais noter les caractéristiques dans mon interface.
Pour le TAG j'ai :
udev_monitor_filter_add_match_tag (struct udev_monitor *udev_monitor, const char *tag);
Pour Subsystem et Devtype j'ai :
udev_monitor_filter_add_match_subsystem_devtype (struct udev_monitor *udev_monitor, const char *subsystem, const char *devtype);
Avec d'autres paramètres je ne peux rien faire. Comme ajouter un groupe je ne sais pas si ça va changer Devtype par exemple…
Voila le lien de la libudev : libudev
[^] # Re: Solution
Posté par electro575 . En réponse au message Créer un démon : surveiller la présence d'un périphérique USB. Évalué à 1.
Avec ce lien, je ne pense pas qu'il existe de bibliothèque Qt permettant la discussion par USB sur toutes les platformes.
Texte du lien
[^] # Re: Solution
Posté par electro575 . En réponse au message Créer un démon : surveiller la présence d'un périphérique USB. Évalué à 1.
Problème : la lib qui récupère les infos de mon matériel n'est pas compilable en C++
Solution :
-soit faire un programme pour la gestion de l'USB sous Linux
-soit utiliser une bibliothèque QtCreator pour l'USB, peut être QSerialPort pour gérer l'USB pour toute les platforme et appeler ensuite le programme qui va interroger le matériel.
La deuxième solution serait l'idéal.
[^] # Re: Solution
Posté par electro575 . En réponse au message Créer un démon : surveiller la présence d'un périphérique USB. Évalué à 1.
Ha ben j'ai pas penser directement passer par une lib Qt pour discuter depuis tous les OS en USB mais effectivement …
Je vais me diriger vers cette option multiplatforme.