Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
880 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Demande d'avis pour choix langage de programmation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Demande d'avis pour choix langage de programmation

n°2090445
rockeurfoo
Posté le 20-07-2011 à 17:50:15  profilanswer
 

Bonjour à tous !!
 
Je reviens par ici pour avoir votre avis sur l'utilisation de tel ou tel langage.
 
D'abord le projet :
Je possède un écran tactile relié à un automate. Sur cet écran, j'ai en incrustation video le signal venant d'un ordinateur.
Je vais positionner sur la zone video une multitude de boutons qui enverront , par le biais de l'automate, en rs232, des trames (une par bouton).
 
Je dois récupérer ces trames avec le pc, les analyser, et ensuite déplacer la souris puis cliquer sur l'emplacement désigné par la trame.
J'ai tourné le problème dans tous les sens, je suis coincé, j'ai pas d'autre solution matérielle.
 
 
Le seul langage que je connais (et ca fait longtemps) est le C, j'ai eu fait un peu de vb quand j'étais jeune mais rien de très probant.
Ma question est donc par rapport au langage. Le C c'est bien mais qu'en est il des applis sous windows? Je ne sais pas du tout comment prendre le problème. Je n'ai rien contre le fait d'apprendre un nouveau langage, à part le temps que ca va me prendre.
 
Néanmoins, si c'est moins compliqué dans un autre langage, il vaudra peut etre mieux que j'en apprenne un autre...
 
 
En tout cas merci à ceux qui auront pris le temps de me lire :)
Bonne fin de journée
LB

mood
Publicité
Posté le 20-07-2011 à 17:50:15  profilanswer
 

n°2090568
theshockwa​ve
I work at a firm named Koslow
Posté le 21-07-2011 à 10:51:43  profilanswer
 

"déplacer la souris", ca fait peur. Tu peux envoyer des messages à l'autre application sans chercher à déplacer le pointeur.
 
Ensuite, cette application que tu dois contrôler à distance, tu n'as pas son code source ? Tu ne peux pas la contrôler à coup d'arguments en ligne ed commande ?


---------------
last.fm
n°2090613
rufo
Pas me confondre avec Lycos!
Posté le 21-07-2011 à 12:43:42  profilanswer
 

C ou C++ sous windows, ça marche très bien. Sinon, y'a Delphi aussi ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090637
Tamahome
⭐⭐⭐⭐⭐
Posté le 21-07-2011 à 14:35:57  profilanswer
 

en Ruby.

n°2091600
rockeurfoo
Posté le 26-07-2011 à 19:00:25  profilanswer
 

Merci pour vos réponses !
 
En fait le but de la manoeuvre est de piloter wondows (n'importe quel programme) avec l'écran tactile de l'automate.
 
Par exemple, je mets un bluray, le lecteur se lance, et je clique avec mon écran tactile.
C'est pour ca que je pensais a faire bouger la souris.

n°2091607
Tamahome
⭐⭐⭐⭐⭐
Posté le 26-07-2011 à 20:37:51  profilanswer
 

ah ok, alors faut faire ca en Ada.

n°2091658
rufo
Pas me confondre avec Lycos!
Posté le 27-07-2011 à 09:12:27  profilanswer
 

rockeurfoo a écrit :

Merci pour vos réponses !
 
En fait le but de la manoeuvre est de piloter wondows (n'importe quel programme) avec l'écran tactile de l'automate.
 
Par exemple, je mets un bluray, le lecteur se lance, et je clique avec mon écran tactile.
C'est pour ca que je pensais a faire bouger la souris.


 
AutoIt alors ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2091659
rufo
Pas me confondre avec Lycos!
Posté le 27-07-2011 à 09:12:54  profilanswer
 

Tamahome a écrit :

ah ok, alors faut faire ca en Ada.


 
Petit rigolo, va :D


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2091684
olivthill
Posté le 27-07-2011 à 10:28:58  profilanswer
 

Je conseille aussi AutoIt, qui est plus simple que d'autres langages pour faire cela, mais qui demande malgré tout un peu de lecture de sa documentation et d'étude.

n°2091699
rufo
Pas me confondre avec Lycos!
Posté le 27-07-2011 à 10:54:53  profilanswer
 

Sur Korben, j'avais vu aussi 2 autres softs du même genre qu'AutoIt :  
http://korben.info/actions-pour-au [...] coder.html
 
http://sikuli.org/    -> très original, basé sur des captures d'écran pour produire le code ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 27-07-2011 à 10:54:53  profilanswer
 

n°2095813
rockeurfoo
Posté le 17-08-2011 à 21:41:58  profilanswer
 

merci pour vos réponses, je poste un peu tard car j'ai déménagé, ce qui m'a pris pas mal de temps.
Je me renseigne sur les languages dont vous avez parlé.
 
Merci !
 
edit : sikuli aurait pu le faire, mais il m'impose de travailler toujours avec le meme logiciel.

Message cité 1 fois
Message édité par rockeurfoo le 17-08-2011 à 21:52:13
n°2095866
rufo
Pas me confondre avec Lycos!
Posté le 18-08-2011 à 09:30:43  profilanswer
 

rockeurfoo a écrit :

merci pour vos réponses, je poste un peu tard car j'ai déménagé, ce qui m'a pris pas mal de temps.
Je me renseigne sur les languages dont vous avez parlé.
 
Merci !
 
edit : sikuli aurait pu le faire, mais il m'impose de travailler toujours avec le meme logiciel.


 
Je comprends pas bien ce que tu veux dire :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2096094
rockeurfoo
Posté le 18-08-2011 à 19:31:32  profilanswer
 

c'est vrai, apres relecture c'est vraiment pas compréhensible. :pt1cable:  
 
ce que je veux dire, c'est que l'appli doit pouvoir fonctionner sur n'importe quel logiciel. Je dois pouvoir cliquer sur le bureau, ou sur le logiciel qui lit les blu ray, ou sur mon interface AV... enfin partout quoi.
 
Sikuli fonctionne par capture d'écran, donc ca ne peut fonctionner que si je veux cliquer tout le temps sur le meme logiciel.
 
Ou alors j'ai rien compris  :cry:  
 
 
J'ai commencé a regarder Autolt mais c'est pas gagné l'affaire, surtout pour récupérer les données depuis le port com...

n°2096098
SquiZZ
Posté le 18-08-2011 à 19:47:38  profilanswer
 

tu peux regarder la : http://www.autoitscript.com/forum/ [...] m-port-udf
j'ai pas testé mais ça a l'air intéressant.

n°2096143
rockeurfoo
Posté le 18-08-2011 à 21:19:00  profilanswer
 

ok...
 
donc si je fais quelque chose du genre  
 
 

Code :
  1. #include <CommMG.au3>
  2. _CommGetString($valeur)
  3. Switch $valeur
  4. Case "pos1"
  5.        MouseMove( 16, 15, 0)
  6. Case "pos2"
  7.        MouseMove( 55, 16, 0)
  8. EndSwitch


 
 
en le répétant des milliers de fois, ca devrait le faire. (pos1 et pos2 serait les trames envoyées par mon automate)
Ca me parait bien simple, pas de variable spéciale pour du texte? ca va trop vite???

n°2096144
rufo
Pas me confondre avec Lycos!
Posté le 18-08-2011 à 21:19:08  profilanswer
 

Ben c'est autoIt v3 : on a été plusieurs à le proposer.


Message édité par rufo le 18-08-2011 à 21:20:56

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2096147
SquiZZ
Posté le 18-08-2011 à 21:27:38  profilanswer
 

rockeurfoo a écrit :

ok...
 
donc si je fais quelque chose du genre  
 
 

Code :
  1. #include <CommMG.au3>
  2. _CommGetString($valeur)
  3. Switch $valeur
  4. Case "pos1"
  5.        MouseMove( 16, 15, 0)
  6. Case "pos2"
  7.        MouseMove( 55, 16, 0)
  8. EndSwitch


 
 
en le répétant des milliers de fois, ca devrait le faire. (pos1 et pos2 serait les trames envoyées par mon automate)


avec un

Code :
  1. While 1
  2.   Switch  toto
  3.    ...
  4. WEnd


ça devrait être plus simple

rockeurfoo a écrit :


Ca me parait bien simple, pas de variable spéciale pour du texte? ca va trop vite???


En autoit, par défaut, les variables sont 'créées' lors de leur première utilisation mais tu peux les déclarer explicitement avec les mots clés Dim, Local, Global ou Const.
Tu peux aussi désactiver la création automatique avec une commande dont je ne me rappelle plus pour le moment
[edit] pour forcer la déclaration explicite des variables :

Code :
  1. Opt("MustDeclareVars", 1)


Message édité par SquiZZ le 18-08-2011 à 21:37:02
n°2096149
rockeurfoo
Posté le 18-08-2011 à 21:33:47  profilanswer
 

Merci pour vos réponses rapides.
 
Le fait d'ajouter une boucle while 1 me permet simplement de jouer le programme en boucle non?
Je suis quand meme obligé d'utiliser un switch case à l'intérieur?  
 
Par contre j'ai des problèmes pour utiliser l'udf. j'ai copié la dll dans le dossier windows, et le au3 dans le dossier include du logiciel, mais il doit y avoir autre chose. Je pensais avoir bien lu pourtant...

n°2096154
SquiZZ
Posté le 18-08-2011 à 21:51:05  profilanswer
 

La DLL ne marche que si ton script est compilé en 32 bits.
Si tu utilises l'éditeur scite fourni avec la dernière version d'autoit, tu peux compiler ton script avec CTRL+F7 et choisir l'option use x86.
 
J'ai juste décompressé le zip dans un répertoire, compilé CommgExample.au3 en x86, et ça m'affiche bien une boite de sélection de port série et les options.
Je peux pas tester plus loin vu que j'ai qu'un port série ;)

n°2096159
rockeurfoo
Posté le 18-08-2011 à 21:58:47  profilanswer
 

effectivement ca fonctionne bien, j'ai plus qu'a tirer de tout ca le petit bout qui m'intéresse.
Je pense que je vais aller dormir et repenser a ca plus tard, par ce que ca commence a faire des noeuds.
 
Merci de votre aide, et bonne nuit.  
 
la suite au prochain épisode.

n°2096482
SquiZZ
Posté le 20-08-2011 à 01:18:28  profilanswer
 

Hello, j'ai bricolé un petit truc pour refaire un peu d'autoit, ça utilise directement la dll windows kernel32 donc ça marche sans autre dépendance : http://pastebin.com/t1KzjJh7
Pour l'utiliser :  

Code :
  1. #include "SerialRead.au3"
  2. $com = OpenCom("\\.\COM3", 9600)
  3. If $com = $INVALID_HANDLE_VALUE Then
  4.     MsgBox(16, "Erreur", "Impossible d'ouvrir le port com" )
  5.     Exit
  6. EndIf
  7. While 1
  8.     Local $str = ReadComString($com)
  9.     ConsoleWrite($str & @CR)
  10.     If $str = "exit" Then
  11.         ExitLoop
  12.     EndIf
  13. WEnd
  14. CloseCom($com)


 
OpenCom permet d'ouvrir le port (dingue, non ?) à la vitesse spécifiée. Ca configure en 8 bits, pas de parité, un bit de stop.
ReadComString retourne la chaîne lue, par défaut ça coupe sur retour chariot \n mais on peut préciser le caractère voulu en option.
J'ai testé sur un XP et sur un Windows 7 64bits, c'est basique, je dis pas que c'est un code exceptionnel, mais ça ne doit pas mettre le feu au PC.
a+


Message édité par SquiZZ le 20-08-2011 à 01:19:56
n°2096575
rockeurfoo
Posté le 21-08-2011 à 08:52:47  profilanswer
 

bravo pour le boulot !!!
 
Donc du coup j'ai plus qu'à copier ton boulot (j'ai droit au copyright?).
Il suffit que j'insère dans la boucle while mes conditions pour que je clique a tel ou tel endroit.
Mieux vaut utiliser une série de if then ou plutot un switch case? (je pencherais pour le deuxième?)
 
 
Bon ben y'a plus qu'à!
Merci d'avoir partagé vos connaissances !
 
 
edit :  
 
Je viens de faire un essai, mais sur un pc sous vista. ben SerialRead.au3 est inconnu.
Faut que je branche le futur pc sous 7 pour tester.


Message édité par rockeurfoo le 21-08-2011 à 09:00:52
n°2096604
SquiZZ
Posté le 21-08-2011 à 20:43:53  profilanswer
 

t'as récupéré le fichier sur pastebin ?
Si tu copies le texte de la partie "RAW Paste Data" dans la lien pastebin que j'ai donné et que t'enregistres dans un fichier SerialRead.au3 dans le répertoire de ton script ça devrait marcher.
Pour la suite, si tu remplaces le If $str = "exit ..." de l'exemple que j'ai mis dans mon post prédécent par tes tests ça devrait marcher.


Message édité par SquiZZ le 21-08-2011 à 20:44:22
n°2097005
rockeurfoo
Posté le 23-08-2011 à 20:33:05  profilanswer
 

et bien écoutes oui j'ai récupéré le fichier.
 
Je viens de faire l'essai avec seven et c'est ok, mais sous vista impossible de le faire jouer... Doit encore y avoir une merde la dedans qui bloque tout.
 
C'est pas bien grave vu que c'est sous seven que ca tournera.
Il me reste plus qu'a faire un bout d'essai.
 
 
Encore merci pour votre aide à tous, je posterais l'avancée du projet, ou si j'ai des problèmes aussi !!  :whistle:  
 
Bonne soirée à tout!

n°2099972
rockeurfoo
Posté le 06-09-2011 à 20:45:33  profilanswer
 

Salut tout le monde!
 
juste pour dire que le programme est terminé, en Autoit, et ca marche niquel!!
Merci a vous pour votre avis et pour m'avoir fait découvrir ce langage tout a fait adapté a ce bout de programme !
 
Bonne soirée !

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Demande d'avis pour choix langage de programmation

 

Sujets relatifs
Imprimante TEC B452 - pour un trait epais en langage TECPRINTmémoriser choix liste déroulante IE
programmation d'un stockage partagé pour groupe de travailQuel langage choisir ?
Recherche de l'émergence du choix (free will)Programmation différence finie sous Excel
Exercice structure langage cerreur de syntaxe, probleme langage C
Aide ! Récupérer le langage binaire d'un fichier. 
Plus de sujets relatifs à : Demande d'avis pour choix langage de programmation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR