|
| Inicio → WINDEV 2025 → [WinDev 21] Java, Raspberry, RXTX et fonctions de gestion des ports séries |
| [WinDev 21] Java, Raspberry, RXTX et fonctions de gestion des ports séries |
| Iniciado por fred.leudon, dez., 31 2015 8:48 AM - 49 respostas |
| |
| | | |
|
| |
Membro registado 14 mensagems |
|
| Publicado em dezembro, 31 2015 - 8:48 AM |
Bonjour,
Je rencontre les plus grandes difficultés à communiquer via les fonctions natives de gestion des ports séries de WinDev dans une application Java tournant sur un Raspberry (rasbian)
Voici mon code:
nPort est un entier Trace("Ouverture du port série")
nPort = sOuvre("/dev/ttyUSB0", 4096, 4096) SI ErreurDétectée ALORS Trace(ErreurInfo(errComplet)) SINON
sFixeParamètre(nPort, 115200, 1, 8, 0)
bufCmd est un Buffer = "$GV*C1"+RC Trace("Envoi de la commande "+bufCmd) nNbcar est un entier = sEcrit(nPort,bufCmd) Trace("Nb caractères écrits : "+nNbcar) nNbcar = sDansFileEntrée(nPort) Trace("Nb car dans buffer d'entrée : "+nNbcar) bufRetour est un Buffer = sLit(nPort,nNbcar) Trace("$GV*C1 : "+bufRetour) sFerme(nPort) FIN
et voici la trace obtenue

En utilisant une procédure en Java, cela fonctionne parfaitement .... mais c'est lourd à gérer ....
Je suis preneur de toute info me permettant de résoudre ce problème.
Joyeuses fêtes. |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em janeiro, 24 2016 - 9:20 AM |
Bonjour Frederic,
Malheureusement je ne pourrais pas t'aider mais je profite de ton post car j'aimerais bien developer des petites applications bénéficiant de la puissance d'un Raspberry et je cherche qqun qui pourrait m'aider commencer en me conseillant sur le choix du matériel et les premiers pas pour entrer dans ce petit monde.
Ma première idée de projet pour commencer simple et d'utiliser un Raspberry comme sonde de température et de la communiquer avec une application WD ou WM par exemple.
Je me suis commandé un kit de démarrage Raspberry qui devrait arriver cette semaine, je dispose déjà de WD,WM et WB. J'ai déjà trouvé des tutos qui expliquent comment démarrer le Raspberry et installer un serveur Apache. Et c'est ensuite ou j'aurais besoin d'une petite aide pour les premières manipulations. J'ai déjà parcouru la LST 96 avec l'exemple fourni mais je pense que ça va pas être aussi simple que ça quand on démarre avec ce petit appareil 
Si jamais par avance merci pour ton aide
Cordialement
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 102 mensagems |
|
| Publicado em janeiro, 25 2016 - 5:39 AM |
Bonjour,
Comment fais-tu pour lancer une appli java sur Raspberry ? - tu lance le .jar ? Quelles manipulations sont à faire sur le Rasberry pour pouvoir le faire ?
Merci de ton aide
-- Cordialement.
Karl |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em janeiro, 25 2016 - 10:17 AM |
Bonjour,
Effectivement si on peut passer par l'éxecution d'une appli java je pense que ca simplifierait le processus et eviterait toutes les couches pour communiquer avec des applis tierce sur d'autre appareils.
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 14 mensagems |
|
| Publicado em janeiro, 25 2016 - 7:21 PM |
Le raspberry se comporte comme une machine sous Linux.
On y fait tourner des archives Java.
La ligne de commande est sensiblement la suivante : Java -jar monarchive.jar |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em janeiro, 25 2016 - 8:47 PM |
Bonsoir ou as tu placé ton jar RXTX?
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 14 mensagems |
|
| Publicado em janeiro, 26 2016 - 4:07 AM |
| Dans le même répertoire que celui de mon archive WinDev. |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em janeiro, 26 2016 - 8:50 AM |
bon, et bien désolé, nous avons aussi des applis linux java, ça fonctionne. le problème est souvent un problème de path, ou de version de jar. Quel est ton pb exactement? tu n'as aucun message d'erreur?
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em janeiro, 26 2016 - 8:51 AM |
Bonjour et Merci Frédéric pour vos réponses à ses questions de débutants.
Si j'ai bien compris
1 - Depuis WD je créé une application au format Archive java 2 - Je la copie physiquement dans le Raspberry 3 - à l'aide d'une ligne de commande je l'execute
Sans abuser et question de tout de suite commencer à comprendre et travailler sur du concret, aurais-tu un petit bout de code WD qui permettrait simplement d'allumer une LED via un simple bouton poussoir ? Ce petit bout de code me permettrait de comprendre comment en pratique envoyer un signal et surtout récupérer un signal ?
Par avance merci et bon début de journée, et encore désolé pour nos questions d'ultra-débutants, mais j'ai compris que dans tout nouvel apprentissage si tu n'as pas tout de suite les bons interlocuteurs ou "conseilleurs" tu peux vite être dégouté.
Bonne journée
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em janeiro, 26 2016 - 9:15 AM |
Je pense que tu as essayer de délocker le fichier? perso je pense à un problème de version de la lib RXTX
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em janeiro, 26 2016 - 9:16 AM |
en executant le jar en sudo? tu as le même problème?
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em janeiro, 30 2016 - 6:23 PM |
Bonjour à tous,
Ca y est je me suis lancé, j'ai un Raspberry et commence à faire mumuse avec.... bon j'en suis juste au stade ou j'arrive à allumer une LED via une ligne de commande "gpio write 3 1", je sais ça fait cher le gadget pour "juste" allumer un voyant 
Ma question est simple et j'espère que la réponse aussi...
est-il possible de créer une appli java sous WD ou WM qui comme "sous-entendu" dans l'exemple de la LST 96 peut executer cette commande gpio en étant installé sur le raspberry ? J'ai tenté avec la fonction execute() comme pour un site Webdev mais cette commande ne fonctionne pas en WD ou WM
Merci pour vos retours
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em janeiro, 31 2016 - 10:09 AM |
Possible oui. Simple oui si maîtrise java et linux
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em fevereiro, 01 2016 - 8:50 AM |
Effectivement après de longue heures, des tutos, des experimentations, ca y est j'arrive à piloter une lampe depuis mon iPhone (avec retour d'état), et ça fonctionne assez bien. le but étant d'avoir une télécommande domotique adapté à mes besoins et surtout très design Je suis assez content de la réactivité car il n'y a aucun latence, ni au lancement de l'application, ni a l'exécution des commandes d'allumage extinction.
Pour communiquer entre l'application WM et le Raspberry, j'ai opté pour l'installation d'un serveur apache + PHP et j'ai ecrit une page PHP que j'appelle via une requête POST depuis IOS, (incluant les commandes en ligne via exec("GPIO WRITE 22 1"), exec("GPIO READ 22"),...
Prochaine étape de mon apprentissage est de piloter ce même relais à distance, je vais tester les émetteurs/récepteurs 433Mhz ...
J'ai juste un petit soucis avec le capteur de température DHT 22 qui me donne bien les infos directement en ligne de commande sur le Raspberry, mais quqnd j'utilise une requette POST cela ne m retourne rien, je suppose que c'est lié au délai que met le capteur à retourner ses valeurs... je vais creuser et probablement passer par une interrogation en 2 étapes (envoi de la demande, stockage du resultat dans un fichier puis lecture de ce fichier)
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 102 mensagems |
|
| Publicado em fevereiro, 02 2016 - 12:03 AM |
Bonjour,
J'ai fait un bout d'appli Java pour m'amuser. Dans quel dossier du Raspberry dois-je mettre le .jar généré pour pouvoir le lancer avec la commande : Java -jar MonAppli.jar ?
Je sèche un peu et tourne en rond, si quelqu'un pouvais m'aiguiller.
D'avance merci
-- Cordialement.
Karl |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em fevereiro, 02 2016 - 8:49 AM |
Steve a écrit : > Effectivement après de longue heures, des tutos, des experimentations, ca y est j'arrive à piloter une lampe depuis mon iPhone (avec retour d'état), et ça fonctionne assez bien. le but étant d'avoir une télécommande domotique adapté à mes besoins et surtout très design Je suis assez content de la réactivité car il n'y a aucun latence, ni au lancement de l'application, ni a l'exécution des commandes d'allumage extinction.
Super, bienvenu dans le monde des IOT, c'est une des facettes importante de notre activité.
Pour communiquer entre l'application WM et le Raspberry, j'ai opté pour l'installation d'un serveur apache + PHP et j'ai ecrit une page PHP que j'appelle via une requête POST depuis IOS, (incluant les commandes en ligne via exec("GPIO WRITE 22 1"), exec("GPIO READ 22"),...
Bien, mais on peut faire mieux, en direct. monter un serveur apache pour faire ça c'est un peu lourd, le python est bien mieux adapté dans ce cas.
> Prochaine étape de mon apprentissage est de piloter ce même relais à distance, je vais tester les émetteurs/récepteurs 433Mhz ...
Là ce n'est plus la même bière, il va te falloir un protocole robuste. Attention il te faudra surement une paire E/R (selon le modèle) sur chaque device si tu veux faire du bi-directionnel.
J'ai juste un petit soucis avec le capteur de température DHT 22 qui me donne bien les infos directement en ligne de commande sur le Raspberry, mais quqnd j'utilise une requette POST cela ne m retourne rien, je suppose que c'est lié au délai que met le capteur à retourner ses valeurs...
essaye de une requete de type long polling, je ne sais pas comment marche ton appli ios, mais en gros, tu dois avoir une emmission, et une attente de retour sur une fonction de call back N'oublie pas, tu es totalement asynchrone
un petit logiciel sympa, que tu peux utiliser pour tes coms sur raspi..."socat", un truc assez magique
> Steve
Bon Dev.
PS : j'ai lancé un appel à contribution il y a qq semaines autour d'un projet MQTT (client en WL) peut être serais tu intéressé?
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em fevereiro, 02 2016 - 10:12 AM |
Bonjour Dominique et merci pour ta réponse.
Je suis fortement interéssé par ce que tu dis dans le sans ou si je peux éviter un serveur Apache pour communiquer avec le Raspberry ça serait ...moins lourd, quoi que je l'admet une fois installé ça tourne pas mal. Que me conseillerais-tu comme communication en direct ?
Pour les émetteurs j'ai commandé un peu à l'arrache car sous l'euphorie de vouloir tester diverses technos pour commander à distance des prises (si tu as une solution ou conseil de prises toutes faites avec ce qu'il faut pour les commander via le RP et dans l'absolue via un appli WM ou WD je suis preneur). le plus dur étant de trouver le bon materiel et surtout les bonnes méthodes pour faire dialoguer tout ça.
Pour l'appel à contribution, pourquoi pas, pourrais-tu m'envoyer par mail les infos et les liens je vais y jeter un oeil : steveroselmac@mac.com
PS : hier en voulait tenter de régler mon soucis j'ai vu qu'il pouvait y avoir un soucis de droit pour lancer le programme python depuis une page web et donc ils conseillaient de modifier le fichier etc/sudoers et manque de pot j'ai du faire une erreur dans la saisie car maintenant chaque commande sudo me fait une erreur ...bienvenue dans le monde Linux donc je suis bon pour réinstaller le binz mais dans l'ensemble ça me dérange pas trop car quand je vois que je n'ai pas trop galéré à le mettre en route je suis confiant, et puis c'est en prenant les pieds dans le tapis qu'on apprend à marcher 
Encore merci pour ta contribution
Steve |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em fevereiro, 02 2016 - 11:22 AM |
pour l'appel à contribution, tapes MQTT dans le moteur de recherche du forum Pour la com en direct, le plus simple c'est un module python qui écoute un port, traite ta demande et réponds  ça se trouve facile sur le net.
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement enfoui - M2M |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em fevereiro, 02 2016 - 11:29 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 244 mensagems |
|
| Publicado em fevereiro, 02 2016 - 2:28 PM |
| Merci pour ces informations, j'ai commencé à jeter un oeil et effectivement l'utilisation d'un simple programme écoutant les sockets pourraient dans un premier temps et pour mes besoins basiques faire l'affaire. |
| |
| |
| | | |
|
| | |
| |
| Publicado em março, 16 2016 - 4:22 PM |
"ÿÿÿÿÿÿÿÿÿÿ" a exprimé avec précision :
Bonjour, Je rencontre les plus grandes difficultés à communiquer via les fonctions natives de gestion des ports séries de WinDev dans une application Java tournant sur un Raspberry (rasbian) Voici mon code: nPort est un entier Trace("Ouverture du port série")
nPort = sOuvre("/dev/ttyUSB0", 4096, 4096)[/quote]
Il y a une erreur dans ton code, sOuvre renvoie 1 ou 0 : le port ouvert ou fermer tu ne peux pas utiliser nPort pour récuperer les données
[quote]SI ErreurDétectée ALORS Trace(ErreurInfo(errComplet)) SINON sFixeParamètre(nPort, 115200, 1, 8, 0) bufCmd est un Buffer = "$GV*C1"+RC Trace("Envoi de la commande "+bufCmd) nNbcar est un entier = sEcrit(nPort,bufCmd) Trace("Nb caractères écrits : "+nNbcar) nNbcar = sDansFileEntrée(nPort) Trace("Nb car dans buffer d'entrée : "+nNbcar) bufRetour est un Buffer = sLit(nPort,nNbcar) Trace("$GV*C1 : "+bufRetour) sFerme(nPort) FIN et voici la trace obtenue

En utilisant une procédure en Java, cela fonctionne parfaitement .... mais c'est lourd à gérer .... Je suis preneur de toute info me permettant de résoudre ce problème. Joyeuses fêtes.
-- Cordialemnt
Franck DUMONT |
| |
| |
| | | |
|
| | |
| |
Membro registado 14 mensagems |
|
| Publicado em março, 16 2016 - 6:11 PM |
| Merci, je vais tester en stipulant le port à chaque appel. |
| |
| |
| | | |
|
| | |
| |
| Publicado em maio, 05 2016 - 10:48 PM |
Bonjour, Depuis quelques temps j'essayer de communiquer avec un Raspberry et un arduino, mais sans succes J'indique bien dans l'execution du programme la librairie RXTX native:
java -Djava.library.path=/usr/lib/jni -cp /usr/share/java/RXTXcomm.jar -jar /home/pi/windev_prg/testRS.jar
j'ouvre le port avec : nPort est un entier nPort = sOuvre("/dev/ttyACM0", 4096, 4096) (SI ErreurDétectée) me renvoie aucun probleme je fixe les parametres de com sFixeParamètre(nPort, 9600, 0, 8, 0, Faux, Faux, Faux) la communication a l'air de s'établir, car a ce moment la l'arduino fait un reset comme sous l'IDE puis j'envoie une commande de lecture char(6): sEcrit(nPort,"6") //demande serie
mais la, RIEN, l'arduino devrais m'afficher sur son LCD cette demande comme sur le monitoring de l'IDE sous windows, mais il reste muet! si je trace nPort, il est egal a zero, est sa je trouve pas sa normal ! Une idée, peut etre ? Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Membro registado 367 mensagems |
|
| Publicado em maio, 06 2016 - 10:06 AM |
Verifies su tu n'envoie pas de l Unicode pas hasard. ..
-- Dominique "QNX" Lecocq IC Industrie - Binary Activity Développement M2M, Embarqué SlooBloo Project. icindus@gmail.com gsm : +33 650 000 329 |
| |
| |
| | | |
|
| | |
| |
| Publicado em maio, 06 2016 - 11:03 AM |
Dominique Lecocq a écrit :
Verifies su tu n'envoie pas de l Unicode pas hasard. ..
Merci pour ta reponse rapide. Tu voudrais dire peut etre que j'enverais le Char(6) au lieu du caractere ascii 54 ? Comment envoyer donc l'ascii 54 ? merci |
| |
| |
| | | |
|
| | |
| |
| Publicado em maio, 06 2016 - 5:01 PM |
Bonjour Jean Luc,
Tu voudrais dire peut etre que j'enverais le Char(6) au lieu du caractere ascii 54 ? non, il veut dire que si tu boucles sur les caractères d'une chaine et que tu les envoyer octet par octet, et que ta chaine est déclarée en unicode, un caractère sur deux sera un zéro.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 12 2016 - 1:51 PM |
puis j'envoie une commande de lecture char(6): sEcrit(nPort,"6") //demande serieFabrice Harari a écrit :
non, il veut dire que si tu boucles sur les caractères d'une chaine et que tu les envoyer octet par octet, et que ta chaine est déclarée en unicode, un caractère sur deux sera un zéro.
Merci Fabrice pour aide, mais non sa fonctionne toujours pas, j' ecrit exactement sa : Trace("Envois 6 sur port "+NumériqueVersChaîne(nPort)) bufCom est un Buffer ="6" sEcrit(nPort,bufCom) //demande serie
rien n'y fait, j' ai demande de l'aide aussi sur le support "Windev" mais sans grand changement Je commence vraiment a desesperer, a ce demander si je vais pas finir par developper completement en python S'est dommage car ce n'est que le debut d'une appli que j'ai deja crée sous windows, et qui fonctionne tres bien ! j'aimerai bien savoir quand meme, qu'est ce que retourne 'Souvre' avec ttyACM0, car moi s'est toujours 0 |
| |
| |
| | | |
|
| | |
| |
| Publicado em maio, 12 2016 - 2:58 PM |
Bonjour Jean Luc,
-SI- tu es en unicode, "6" est en unicode et donc représente DEUX octets 6 et 0
C'est pour ca qu'il faut utiliser des chaines ANSI MaChaineANsi est chaine ansi="6"
et envoyer machaineansi
Je te conseille de lire un peu sur le web sur les chaines ansi et unicode, parceque le problème existe quel que soit le language utilisé
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 19 2016 - 9:49 AM |
Bonjour a tous Je tiens a vous remercier ainsi qu'a l'equipe de PCSOFT pour l'aide que vous m'avaient donnée dans l'orientation de mes recherches sur le probleme RS232 des Rasberry Pi 3. 
En effet, 3 choses a savoir sur le Pi3 Malgré l'install du pack rxtx par la methode standart " sudo apt-get install librxtx-java", les librairies ne sont pas les bonnes.
1/le Pi 3, utilise un processeur ARM V7. Il faut absolument telecharcher la bonne librairie native pour ARM :
https://git.itm.uni-luebeck.de/bimschas/motap-tmp/blob/8ae38f61a12752b82d14247883215922fde106d0/serial/src/main/resources/armv7/librxtxSerial.so
Ensuite, recopier ce fichier dans son dossier nominatif :
pi@raspberrypi:/ $ cd /home/pi/partage/RXTX_ARMV7/librxtxSerial.so pi@raspberrypi:~/partage/RXTX_ARMV7 $ cp librxtxSerial.so /usr/lib/jni/
j'ai suivi ensuite les instructions donnée par PCSOFT,
2/ c'est a dire de crée une procedure en java qui sera appelée avant 'sOuvre' :
public static void SERIALINIT () { String SerialPortID = "/dev/ttyACM0" ;// ou ttyUSB0 ou ... System . setProperty ( "gnu.io.rxtx.SerialPorts" , SerialPortID ); }
Puis integrer dans la compilation JAVA sous Windev le fichier rxtxcomm.jar
3/ Et enfin crée un batch d'execution de cette application :
#!/bin/bash java -Djava.library.path=/usr/lib/jni/ -jar /home/pi/Windev_Prog/RS232_Raspberry.jar exit 0
Voila , le programme ce lance normalement et le port lui est attribué le numero 586433796, bien loin des numero standart sous windows Com1-2-3... |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 23 2016 - 10:21 AM |
Bonjour,
Je suis également débutant sous windev ainsi que sur la raspberry pi. Mon but est de créer une application graphique qui permet de distribuer des produits via un écran tactile. Du coup j'utilise une carte raspberry avec un écran tactile et je veux communiquer avec une carte CPU utilisant un pic (dspic 33f...) en utilisant la comm UART. Côté CPU, la communication est déjà gérée. Il reste à faire la partie comm sur la raspberry, et c'est la que ça se gatte pour moi. Jean Luc ROYER est-il nécessaire d'installer librxtx-java? vu qu'il faut télécharger une autre librairie? Est-il possible d'avoir un aperçu de ton application et plus précisément le code au niveau de la comm stp?
Merci par avance!Mensagem modificada, maio, 23 2016 - 10:42 AM |
| |
| |
| | | |
|
| | |
| |
| Publicado em maio, 23 2016 - 1:13 PM |
steyf65 a écrit :
Bonjour,
Je suis également débutant sous windev ainsi que sur la raspberry pi. Mon but est de créer une application graphique qui permet de distribuer des produits via un écran tactile. Du coup j'utilise une carte raspberry avec un écran tactile et je veux communiquer avec une carte CPU utilisant un pic (dspic 33f...) en utilisant la comm UART. Côté CPU, la communication est déjà gérée. Il reste à faire la partie comm sur la raspberry, et c'est la que ça se gatte pour moi. Jean Luc ROYER est-il nécessaire d'installer librxtx-java? vu qu'il faut télécharger une autre librairie? Est-il possible d'avoir un aperçu de ton application et plus précisément le code au niveau de la comm stp?
Merci par avance!
Bonjour steyf65 Oui, si tu développe avec Windev tu doit compiler en Java, est seul la lib rxtxcomm doit être utilisé pour gérer les COM La gestion pose encore quelques problèmes dont : suivant la typologie de la connexion employer, le code change: Câble convertisseur USB Série le Raspberry le reconnait en ttyUSB0 Puce FDTI intégré sur circuit genre ARduino Mega, le port est reconnu en ttyACM0
Pour l'instant, pour ma part (connexion sur Arduino) l'envoie du Raspberry vers l'arduino est bien reconnu Mais la réception sur le Raspberry, là problème , ce que je reçois est illisible (du chinois). Voir Photo

Pour le code, je peut te l'envoyer en MP, vus qu'il utilise quelques procédures A+ |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 24 2016 - 4:59 PM |
Bonjour,
J'ai continué à essayé de faire fonctionner cette communication... Tout d'abord j'ai juste testé la communication serie entre les 2 pcs avec un cable usb serial converter et tera term. Je lit et j'écrit des 2 côtés. Puis j'ai lancé mon application windev depuis mon pc pour communiquer avec le 2nd pc (également sous windows). Cela fonctionne correctement avec un câble usb serial converter. Cela signifie que mon code au niveau de l'uart est bon. Ensuite je suis passé sur la raspberry pi et j'ai testé avec minicom (côté raspberry) et toujours tera term de l'autre coté, la communication série via le câble usb serial converter. Cela fonctionne également dans les 2 sens.
Et maintenant, la où je bloque, je lance l'application windev sur la rpi3 (java -Djava.library.path=/home/pi/partage -jar /home/pi/Desktop/mon_projet_.mon_projet.jar) et la je reçois un message d'erreur fatale de programmation: "Erreur dans le traitement Procédure globale UART_Open. Vous avez appelé la fonction sOuvre. La librairie native (dll, so ou jnilib) utilisée par la librairie RXTX n'a pas été trouvée. Vérifier que la librairie native correspondant au système d'exploitation utilisée se trouve bien dans le répertoire d'exécution de l'application ou dans le chemin des librairies de l'application (librarypath)". et sur terminal de RPI3 j'ai un message également: "java.lang.UnsatisfiedLinkError : /home/pi/partage/librxtxSerial.so : /home/pi/partage/librxtxSerial.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type thrown while loading gnu.io.RXTXCommDriver Exception in thread "AWT-EventQueue-O"
J'ai essayé également de copier ce fichier dans /usr/lib/jni sauf qu'il y a d'autres fichiers et quand j'ai lancé l'application j'ai eu le même problème mais avec un message diffèrent:" java.lang.UnsatisfiedLinkError : /usr/lib/jni/librxtxSerial-2.2pre1.so : /usr/lib/jni/librxtxSerial-2.2pre1.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type thrown while loading gnu.io.RXTXCommDriver Exception in thread "AWT-EventQueue-O"
Pour plus d'explications, Voila comment j'ai procédé avant de lancer l'application sur la rpi3: - J'ai activer avec raspi-config la communication serie -j'ai installé librxtx (sudo apt-get install librxtx-java) et j'ai dl le fichier librxtxSerial.so comme indiqué par Jean Luc Royer. -J'ai copier ce fichier dans le répertoire /home/pi/partage/ (et également dans /usr/lib/jni) - J'ai également intégrer la RXTXComm.jar au moment de la création de l'archive java (lorsqu'on me demande si je veux intégrer d'autres archives java dans l'archive finale, par exemple les drivers JDBC utilisés par votre application) - j'ai lancé l'application via le terminal avec la ligne : java -Djava.library.path=/home/pi/partage -jar /home/pi/Desktop/mon_projet_.mon_projet.jar
1) Faut-il peut être supprimer les autres fichiers contenus dans le dossier jni? 2) Je ne sais pas si c'est à cet endroit qu'il faut mettre le fichier RXTXComm.jar mais je n'ai pas trouvé d'autres endroits... 3) Comment la fonction SERIALINIT() doit-elle être intégrée dans le projet?
J'espère avoir été suffisamment compréhensible, n'hésitez pas à me contacter si vous ne comprenez ce que j'essaye d'expliquer ou évidemment, si vous avez des SOLUTIONS 
Merci d'avance, |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 24 2016 - 10:34 PM |
Bonsoir Steyf
Deja dans ton lanceur tu ne dirige pas vers le bon répertoire des librairies java , j'ai eu le même problème au début
"java -Djava.library.path=/home/pi/partage -jar /home/pi/Desktop/mon_projet_.mon_projet.jar"
tu devrais plutôt mettre : java -Djava.library.path="/usr/lib/jni/ -jar (est ensuite ton répertoire ou ce trouve ton programme, évite de mettre dans Desktop, sa devient vite le bordel
exemple java -Djava.library.path="/usr/lib/jni/ -jar /home/pi/windev_prg/mon_project.jar
et pour l'histoire du "/home/pi/partage/librxtxSerial.so : /home/pi/partage/librxtxSerial.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type "
tu remarquera que dans usr/lib/jni, il y a un autre fichier qui doit s'appeler "librxtxSerial-2.2 pre1.so . il est appelé par librxtxSerial.so (c'est le fichier partagé)
ensuite:
- J'ai activer avec raspi-config la communication serie Sa ne sert a rien, car elle ne sert a ouvrir la com que pour le GPIO, donc par pour toi
-j'ai installé librxtx (sudo apt-get install librxtx-java) et j'ai dl le fichier librxtxSerial.so comme indiqué par Jean Luc Royer. OK pour SA
J'ai copier ce fichier dans le répertoire /home/pi/partage/ (et également dans /usr/lib/jni) POURQUOI home/pi/partage/puisque que tu a copier ton programme dans desktop ? uniquement dans /usr/lib/jni
- J'ai également intégrer la RXTXComm.jar au moment de la création de l'archive java (lorsqu'on me demande si je veux intégrer d'autres archives java dans l'archive finale, par exemple les drivers JDBC utilisés par votre application) C'EST BIEN SA !
1) Faut-il peut être supprimer les autres fichiers contenus dans le dossier jni? NON SURTOUT PAS, tu pourrais virer les parallel,Raw,RS485 ... mais vos mieux pas toucher
2) Je ne sais pas si c'est à cet endroit qu'il faut mettre le fichier RXTXComm.jar mais je n'ai pas trouvé d'autres endroits... Le RXTXComm.jar doit être compiler dans ton programme, donc il n'est pas présent seul dans le PI3? IL EST INTEGRER DANS TON PRG
3) Comment la fonction SERIALINIT() doit-elle être intégrée dans le projet? A intégrer que si le port connecté est déclaré en ACM0 uniquement sinon pas nécessaire
POUR MA PART, JE TE DONNE LES RÉSULTATS DE MES EXPÉRIENCES DE DEBUTANT, je ne suis pas un Pro en LINUX ou Raspberry. Si je me trompe dans mes raisonnements, toutes les aident et correction sauront les bienvenus. Bon courage a toi ! |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 9:20 AM |
Bonjour Jean Luc ROYER!
Merci beaucoup pour ton aide!
tu devrais plutôt mettre : java -Djava.library.path="/usr/lib/jni/ -jar (est ensuite ton répertoire ou ce trouve ton programme, évite de mettre dans Desktop, sa devient vite le bordel Je vais directement changer d'endroit mon projet. J'avais essayé les 2 solutions. Lorsque j'ai mis la la sollution avec /usr/lib/jni j'ai eu également le problème : " java.lang.UnsatisfiedLinkError : /usr/lib/jni/librxtxSerial-2.2pre1.so : /usr/lib/jni/librxtxSerial-2.2pre1.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type thrown while loading gnu.io.RXTXCommDriver Exception in thread "AWT-EventQueue-O"
C'est à cause de ce message que je pensais qu'il fallait supprimer librxtxSerial-2.2pre1
Du coup mon RXTXComm.jar est bien intégré dans mon programme.
- J'ai activer avec raspi-config la communication serie Sa ne sert a rien, car elle ne sert a ouvrir la com que pour le GPIO, donc par pour toi Merci pour l'info, je ne savais pas, mais du coup je vais le laisser ouvert car mon but ensuite est de communiquer via le gpio avec une carte CPU (dspic33f)
Pour la fonction SERIALINIT() si j'ai bien compris, je ne l'utilise pas pour le moment car je suis avec un cable serial converter (donc USB0) Mais je pense qu'avec les gpio il sera utilise de l'utiliser non ?
Je vais retester tout ça... mais j'ai peur d'avoir le même message d'erreur que précédemment avec le librxtxserial-2.2pre1.so |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 9:55 AM |
Je viens du coup de re tester en changeant ce que tu m'as dit (cad le projet de place). J'ai réinstaller la librxtx-java et je re téléchargeais le fichier librxrxSerial.so avec le liens que tu as fournis précédemment. J'ai également copier ce fichier dans le dossier jni. Lorsque je lance l'application et que je clique sur mon image pour envoyer des données par le port série j'ai toujours ce message : java.lang.UnsatisfiedLinkError : /usr/lib/jni/librxtxSerial-2.2pre1.so : /usr/lib/jni/librxtxSerial-2.2pre1.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type thrown while loading gnu.io.RXTXCommDriver Exception in thread "AWT-EventQueue-O"
Je ne comprends vraiment pas l'erreur. Pourquoi il ne peut pas ouvrir le fichier d'objet partagé? Problème d'autorisation? |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 25 2016 - 10:08 AM |
Bonjour Steyf on dirait que tu as un probleme de driver RXTX. a force de bidouler avec ce truc, je suis parvenu a le planter litteralement, et la reinstallation complete du raspberry a etait le remede ! en est tu la ? si tu as suivi imperativement mon post de 19 mai, sa doit fonctionner.
Pour finir,Je viens finalement de reussir a ecrire et lire avec le raspberry il me semble que sFixeParamètre(nPort,9600,0,8,0) ne fonctionne pas correctement sur le raspberry pi3. si tu l'enleve carrement, ton RS est configuré par defaut en 9600,pas de parité,8bits.1stop, donc nickel pour moi. Par contre, ce qui a de bien avec le linux, s'est que tu peut ouvrir un port RS232 avec ton programme et ensuite le reouvrir avec un utilitaire comme hyperterminal. Donc l'ouvre le port avec mon programme, puis je lance l'utilitaire j'ouvre le port aussi, je regle les parametres, et j'envoie ma trame sur l'arduino, et la il me repond en FRANCAIS. !! Cool
Reste maintenant a trouver comment parametrer ce port avec une ligne de commande par le terminal, ou directement avec une fonction JAVA comme SERIALINIT, mais la c'est pas gagné d'avance, mais je tiens le bon bout, a suivre ... |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 10:33 AM |
Re Jean Luc,
Félicitation à toi et bon courage, tu vas y arriver!!
Oui j'ai suivi à la lettre ton tuto mais j'ai pas bidouiller (je pense) en installant puis désinstallant des fichiers. Tu pense que je devrais résintaller completement rapsbian? Au fait tu utilise raspbian jessie? |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 25 2016 - 11:08 AM |
| steyf, je peut tenvoyer mes fichiers ce trouvant dans jni en mp si tu veut pour faire un test |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 11:30 AM |
Je veux bien oui si ça te dérange pas. Merci Je suis également en train de réinstaller rapsbian sur une autre carte sd pour tout reprendre de 0 au cas où. |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 25 2016 - 11:55 AM |
il me faudrait ton adresse mail pour sa  |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 12:02 PM |
ah désolé 
stephanecarpene@gmail.com |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 25 2016 - 2:57 PM |
Je reviens vers toi! Alors j'ai bien réinstaller rapsbian sur un 2em carte SD et j'ai suivi ce que tu as dit. Malheureusement j'ai toujours le même problème avec le même message d'erreur... je ne vois pas comment faire
Est-il faisable d'intégrer un code python (qui servira à gérer la communication série) dans mon projet windev? Je pense que ça pourrait contourner le problème.. |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 25 2016 - 10:30 PM |
je viens de t'envoyer mon jni complet, recopie pour voir dans ton répertoire jni
Pour le python, j'ai essayer (beaucoup de chose j'ai essayer), le problème c'est que s'est un langage interpréter (non compilé) donc impossible d’intégrer a windev a ma connaissance. j'ai essayer de lancer un script en python qui réceptionne les trames recu de la RS et qui me les écrits dans un fichier txt . puis je récupère ce fichier pour le traiter dans windev : Trop long, trop instable, donc pas réalisable. Ta seule solution s'est soit de développer en python, ou autres soit de réussir a te servir de rxtx sous Windev, et sa fonctionne vraiment !
Ne te décourage pas , tu doit reussir ! |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em maio, 25 2016 - 11:32 PM |
Steyf, désolé mais ton email est invalide stephanecarpene@gmail.com, le mail ma etait retourné ! |
| |
| |
| | | |
|
| | |
| |
Membro registado 10 mensagems |
|
| Publicado em maio, 26 2016 - 8:32 AM |
Merci beaucoup!
c'est bizarre parce que c'est vraiment mùon adresse email sinon si tu peux envoyer sur celle la: stephane.carpene@viacesi.fr Pense à zipper tes fichiers parce que des fois ça n'envoi pas le mail à cause de ça. Encore merci à toi! J'espère vraiment y arriver ^^ |
| |
| |
| | | |
|
| | |
| |
| Publicado em julho, 01 2016 - 10:54 AM |
Pour information j'ai enfin réussi à utiliser le port "/dev/ttyAMA0" sur mon Raspberry Pi 2, sans remplacer la librairie rxtx du RPI. Toutes les instructions données par Jean luc ROYER sont à suivre mise à par si dans votre cas comme dans le mien vous avez un Raspberry Pi inférieur à 3 dans ce cas la simple installation de la librairie avec un sudo apt-get install suffit.
Autre point comme évoqué plus haut, le fonction sFixeParametre() pose plus de problème qu'autre chose donc si possible ne pas l'utilisé, dans mon cas cela à résolue mon problème.
Cordialement,
William |
| |
| |
| | | |
|
| | |
| |
Membro registado 12 mensagems |
|
| Publicado em julho, 01 2016 - 3:41 PM |
Exactement le meme probleme pour sFixeParametre, sans sa fonctionne tres bien, si peut que la configuration par defaut de la RS et la meme que celui du péripherique 9600 8bits 1stop
Par contre j'ai entre 5 et 10 blocages de communication par jours en lecture 24/24. Pour parer ce probleme, je detecte la non reponse pendant x secondes puis je reinitialise la communication par mon logiciel, donc sa me gene pas plus que sa !
Voila, pour conclure ! A+
Jean luc |
| |
| |
| | | |
|
| | |
| |
| Publicado em janeiro, 26 2021 - 11:52 AM |
Bonjour, je reviens 4 ans plus tard, j'ai un projet de BTS qui consiste à faire communiquer une balance et un Raspberry en RS232. Je dois créer une application java WINDEV 26 qui doit tourner sur un PI4. J'ai suivi à la lettre toute les manipulations de ce forum. mais aucun moyen de faire fonctionner la liaison série sur le PI4 par l'application JAVA avec les fonctions : sOuvre, sEcrit, sLit... Est-ce car la librxtxSerial.so ARMV7 n'est pas utilisable par le PI4 car celui-ci est en ARMV8. J'ai besoin de votre aide.
En vous remerciant d'avance. |
| |
| |
| | | |
|
| | |
| |
| Publicado em junho, 11 2021 - 4:20 PM |
| C'est bon enfaite projet terminé |
| |
| |
| | | |
|
| | |
| |
| Publicado em janeiro, 03 2023 - 4:13 PM |
Bonjour Pierre,
As-tu la solution pour la connexion à un port série sur un Raspberry ? |
| |
| |
| | | |
|
| | | | |
| | |
|