IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Solution pour scripter une application : exportation de classe et appel de script


Sujet :

MFC

  1. #1
    Membre �clair�

    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    F�vrier 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 464
    Par d�faut Solution pour scripter une application : exportation de classe et appel de script
    Bonjour,

    J'ai du reprendre une IHM de simulation de client r�seau sur un protocole proche de Modbus. L'IHM est cod�e avec VC++ 6.0.
    Lors des essais j'ai oubli� d'int�grer un bouton � cocher d'�mission p�riodique.
    Le testeur, plut�t que de reprendre les sources a pr�f�r� coder en python des essais compl�mentaire.
    Je voudrais exposer les classes (en particulier les m�thodes d'�mission/r�ception) � un script qui serait appel� via la GUI, et inversement lister les fonctions d'un script trouv� dans un fichier s�lectionn�. Cela permettrait � l'IHM de s'adapter � des essais compl�mentaire tout en gardant une pr�sentation �pur�e.

    J'avais fait cela tr�s facilement avec une autre application Qt qui int�grait un moteur Javascript (tr�s bien fait avec un �diteur/d�bogueur qui se lan�ait en cas de Pb).
    Ici c'est moins �vident, ou alors j'ai trop de choix : entre OLE, ActiveX, et COM mon coeur balance.
    D'autres solutions (LUA, python) seraient envisageables mais elles cr�ent de nouvelles d�pendances sur des softs � installer que je pr�f�rerais �viter.

    J'ai fais quelques recherches et parcouru en diagonale des chapitres de livres, mais �a s'adresse plut�t � ceux qui savent d�j� ce qu'est OLE/ActiveX et COM et pr�sente l'utilisation.

    Merci pour vos suggestions.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Le rapport avec les MFC ?

    OLE, ActiveX, et COM, c'est pareil.

    OLE2 a �t� impl�ment� avec COM (OLE1, oubli� depuis plus de 20ans)
    ActiveX �tait le "nouveau" nom, plus "hype", de COM.

    Je ne comprends pas trop votre probl�me, c'est int�grer un interpr�teur dans un code C++ ?
    http://www.codeproject.com/Articles/...ing-Lua-into-C

    Mais je ne vois vraiment pas l'int�r�t d'une IHM pour un simulateur de client r�seau.

    Cela devrait �tre une simple application console avec un simple "script" indiquant les choses � �mettre sur la socket.

  3. #3
    Membre �clair�

    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    F�vrier 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 464
    Par d�faut
    "ActiveX �tait le "nouveau" nom, plus "hype", de COM."
    Le livre que j'ai consult� (VC6 Ivor Horton) le pr�sentait comme un nom marketing, mais j'ai bien trois chapitres distincts.

    "c'est int�grer un interpr�teur dans un code C++ ?"
    C'est �a.

    Mais je ne vois vraiment pas l'int�r�t d'une IHM pour un simulateur de client r�seau.
    C'est plus conviviale pour un premier contact, on assiste � la construction de la trame, on affiche les donn�es qui vont �tre envoy�es, etc... Elle a une utilit� pour un sc�nario de test non automatis� et convenait dans la plupart des cas.

    "Cela devrait �tre une simple application console avec un simple "script" indiquant les choses � �mettre sur la socket. "
    Pour l'imagination des testeurs je suis d'accord.

    Donc vous vous conseilleriez malgr� tout LUA quitte � installer un interpr�teur. Je vais regarder �a j'ai peu de temps mais si l'interpr�teur fonctionne bien sous windows pourquoi pas.
    Merci.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    "Donc vous vous conseilleriez malgr� tout LUA quitte � installer un interpr�teur. Je vais regarder �a j'ai peu de temps mais si l'interpr�teur fonctionne bien sous windows pourquoi pas."

    Non.

    Les possibilit�s pour un client r�seau, c'est juste des trames � envoyer dans un ordre ou dans un certain d�lai.

    Pas la peine d'impl�menter tout un langage pour �a.

    Une routine d'interpr�tation ligne � ligne d'un fichier, avec des s�parateurs de colonne pour les param�tres, devrait faire largement l'affaire.

    c'est quelques lignes de code, pas plus.

  5. #5
    Membre �clair�

    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    F�vrier 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 464
    Par d�faut
    "Une routine d'interpr�tation ligne � ligne d'un fichier, avec des s�parateurs de colonne pour les param�tres, devrait faire largement l'affaire."
    Oui pourquoi pas...
    En fait, oui, on peut d�finir quelques commandes et lire basiquement ligne � ligne un fichier.

    Mais le but de l'interpr�teur c'est de r�aliser ces op�rations banales sans restriction, et �ventuellement d'utiliser l'affichage pour analyser les �changes et lister les r�sultats. Si c'est facile � int�grer c'est une solution aussi, applicable partout

    Discuter de ce choix n'est pas vraiment l'objectif de thread, m�me si je pense qu'au vu du temps que j'ai je vais faire comme vous le proposez.
    Avez-vous une exp�rience sur l'int�gration d'un interpr�teur avec les MFC, est-ce si compliqu� pour pr�f�rer s'en passer ?

    Merci.

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Mode relou On.

    Ajouter une fonctionnalit� sans besoin r�ellement d�termin�, c'est jamais un bon calcul.

    Le langage, ou le type de langage donc il faut int�grer l'interpreter doit �tre d�termin� en fonction du besoin.
    Un interpreter prolog ou lisp n'a pas grand chose � voir avec python mais bien plus efficace pour appliquer des r�gles de comportement.

    Int�grer un interpreter n'est jamais anodin.

    Donc, vous le voyez comment votre "ces op�rations banales sans restriction" ?

    Car un interpr�ter ligne � ligne avec peu ou pas de variable d'�tat, cela est bien plus simple, et l'affichage devrait �tre adapt� au domaine fonctionnel.

    Si c'est un outil pour d�veloppeur, il faut juste int�grer l'interpreter du langage f�tiche du d�veloppeur le plus casse-noisette avec cette "fonctionnalit�".

    Mais int�grer un interpreter n'est jamais anodin.

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Citation Envoy� par bacelar Voir le message
    OLE, ActiveX, et COM, c'est pareil.
    Pour moi, ActiveX est une technologie COM, plus pr�cis�ment les contr�les qui doivent impl�menter tout plein d'interfaces (IObjectWithSite, IOleInPlaceActiveObject, etc.) pour marcher.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre �clair�

    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    F�vrier 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 464
    Par d�faut
    Bon,
    On se fait du mal l�.

    J'avais eu une bonne exp�rience avec Qt/Javascript. C'�tait tr�s simple j'avais cr�e un simulateur d'automate, et je cr�ais une liste de sc�narios avec des scripts que l'interpr�teur me listait et que j'affichais avec des boutons � cliquer.


    A la base j'ai une classe du genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    classe CTCPProtoClient
    {
       Reponse SendAndReceive()
       Connect()
       Deconnect()
       SetRequeteEcriture(list<param,val>)
       SetRequeteLecture(list<param>)
       GetRawFrameToSend()
    }
    Voil� dans l'IHM j'ai ajout� :
    • quelques boutons/listes pour cr�er de fa�on simple la requ�te.
    • Quelques contr�le de param�trage, un contrple d'�dition directe de la trame � envoyer.
    • Un bouton send qui provoque l'envoi de la trame et le d�codage/affichage de la r�ponse, avec quelques infos dans une fen�tre de log.

    Tout pour que �a "fonctionne bien", �a permet de r�aliser de nombreux tests.

    Mais le testeur � pens� � d'autres cas, envoi r�p�t�s rapides, donn�es al�atoires, �missions group�es, gestion d�grad�e des connexions/d�connexion, analyse de la r�ponse (genre test1 ok), etc...
    Plut�t d'ajouter des contr�les pour tous les cas, j'ai propos� d'int�grer un interpr�teur et exposer CTCPProtoClient, pour que le testeur ajoute ses tests automatis�s : il profite des boucles de contr�le de l'int�pr�teur, des instructions de tests/comparaison, de sauvegardes, etc...

    Le besoin est-il clair maintenant ?

    Le fichier simple je n'y avais pas pens�, �a peut faire l'affaire comme je vous l'ai dit. Apr�s c'est par curiosit� que j'insiste sur la possibilit� de l'int�gration de interpr�teur.

  9. #9
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Je vois plein de solutions � base de .NET mais en technologie "Native", je vois que les "Active Scripting Interfaces" en technologie pure M$.

    Sinon, l'Engine JavaScript de Qt est-il si adh�rent � Qt ?

    P.S.: Ca marche aussi avec les MFC.

  10. #10
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 537
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 537
    Par d�faut
    Citation Envoy� par bizulk Voir le message
    J'avais fait cela tr�s facilement avec une autre application Qt qui int�grait un moteur Javascript (tr�s bien fait avec un �diteur/d�bogueur qui se lan�ait en cas de Pb).
    Ici c'est moins �vident, ou alors j'ai trop de choix : entre OLE, ActiveX, et COM mon coeur balance.
    avant d'embrayer toute une usine � gaz un simple fichier XML de configuration ne suffit pas ?
    Sinon si tu cr�es un Active X je ne vois pas comment cela te servira � incorporer un interpr�teur

  11. #11
    Membre �clair�

    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    F�vrier 2005
    Messages
    464
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 464
    Par d�faut
    Toute une usine � gaz ?
    Peut-�tre que le moteur Javascript de Qt est une usigne � gaz, mais je l'ai int�gr� en deux coups de cuill�re � pot. Et j'ai expos� mes objets Qt tr�s rapidement.
    Avec un fichier xml, il faut que je rapporte toutes les commandes que je souhaiterais appliquer pour permettre le d�veloppement d'une batterie de tests. Pas si compliqu� � faire mais fastidieux.
    Bah pour l'instant je suis ailleurs, mais je pr�f�re encore porter l'application sous Qt si je m'y mets.

Discussions similaires

  1. R�ponses: 13
    Dernier message: 22/05/2015, 11h25
  2. R�ponses: 0
    Dernier message: 12/04/2013, 15h19
  3. Quelle solution pour programmer une application de gestion �l�ve ?
    Par LouReed dans le forum Langages de programmation
    R�ponses: 10
    Dernier message: 19/05/2008, 14h50
  4. touche pour acc�der � une application : hook system?
    Par Fox_magic dans le forum API, COM et SDKs
    R�ponses: 3
    Dernier message: 22/01/2003, 00h02
  5. R�ponses: 1
    Dernier message: 13/05/2002, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo