le 02-06-2014 05:10 AM
Je cherche des Bêta-Testeurs pour faire bugger mon vi
(oui, soi-même on fait toujours les mêmes manips)
Le contexte:
L'idée de départ provient d' ici .
Dans la "question de départ", JC51 présente en pièce jointe un "virtual-keyboard". (Simulated Alpha and Numberical Keypad.llb)
Ce ""virtual-keyboard" (VK) provient en fait d' ici .
avis perso de niveau 1:
J'ai regardé le code de ce VK (le 2eme lien ci-dessus)
C'est une abomination, aussi bien sur le fond que sur la forme ... une horreur !
avis perso de niveau 2 :
même si ce code ne provient pas de NI lui-même (il s'agit d'un code extérieur proposé en exemple),
on ne devrait pas laisser "trainer" des "choses comme ça" sur une page contenant le logo NI.
Quelqu'un qui ne connaît pas LV pourrait se dire : "ah ...c'est ça du code LV ? " (alors que "non", c'est pas "ça" du tout !)
J'ai cherché sur le net pour trouver "mieux", et franchement, je n'ai rien trouvé de réellement au point sur le sujet.
Comme ... la critique est aisée et l'art difficile ... je m'y suis collé moi-même.
La bête :
Ce genre de "fonction" ne semble pas (à priori) difficile à résoudre,
et pourtant ... cela soulève pas mal de petits soucis (et des gros aussi ...pour avoir un résultat digne de ce nom)
Juste pour donner envie de "tester"
Il s'agit donc d'un on-screen keyboard.
comprenant un écran de 3lignes de 50 caractères (c'est une "fenêtre, le nb de lignes n'est pas limité)
L'acquisition se fait via le "clavier-virtuel" et/ou le "clavier-normal".
Seules les touches qui sont disponibles sur le clavier-virtuel sont disponibles que le clavier-normal.
(il serait possible d'activer toutes les touches du clavier-normal indépendamment des possibilités du clavier-virtuel.)
Les frappes du "clavier-normal" sont interceptées et re-traitées par le code.
Les carriage-return sont générés et gérés par le code (clavier virtuel ou normal)
J'ai prévu un Undo de 100 step. (les "key-repeat" sont traités par le Undo comme étant un step unique)
Les 2 controles numériques donnent la position du curseur (plus précisément la position du caractère "devant" le curseur)
Le booléen indique "l'entrée" de la souris sur le vk (juste pour faire joli 🙂 )
Il est possible d'entrer un "Titre" pour l'acquisition.
La "sortie" est une chaine de carctères sans les carriage-return (c'est un choix, "avec les cr" ne poserait évidemment aucun soucis)
il y aurait des améliorations possibles (bien entendu)
je n'ai pas de "key-repeat" depuis le clavier-virtuel. (j'y travaille)
Je n'ai pas de "wrapping" (difficile ça, j'y pense)
Le but est d'avoir une acquisition "fluide", sans comportement "bizarre" ou bug quel qu'il soit.
Ce, aussi bien au départ du clavier-virtruel que du clavier-normal.
Si vous avez le temps 10min pour regarder le code, c'est super.
(testez le, secouez le, faites le bugger, merci)
Avis, critiques, rafales de mitrailleuse, tous est le bienvenu.
ci-joint le code en LV2011
Résolu ! Accéder à la solution.
le 02-06-2014 06:51 AM
salut je note de regarder cela. Mais il faut terminer ma présentation pour NIDAYs... après je teste! A+
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 02-06-2014 07:30 AM
Azerty please ? 🙂
Je teste ça dès que je retrouve mes lunettes de soleil (pour le orange... - oui je chambre :D)
Luc, tu n'as pas d'outils pour dégager du temps pour faire du powerpoint ? 🙂 A mardi en tout cas
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 02-06-2014 07:46 AM
Eric.M a écrit :
Luc, tu n'as pas d'outils pour dégager du temps pour faire du powerpoint ? 🙂 A mardi en tout cas
!!!!!!!! elle est géniale !!!!!!!
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 02-06-2014 09:26 AM
@Eric :
azerty, qwerty, inuit, alphabétique ... disons que c'est un détail (adaptable suivant besoins et même par menu si on veut)
Ce n'est que l'ordre des codes dans un Tableau.
J-4 .. un bon NIDAYs pour vous deux.
le 02-07-2014 01:59 AM
Eric.M a écrit :
Luc, tu n'as pas d'outils pour dégager du temps pour faire du powerpoint ? 🙂
Cette présentation ne sera donc pas réalisée avec une application "self-made" du type powerpoint écrite avec LabVIEW ? Je suis déçu !
Je chambre évidemment. Ceci dit, lors d'un NIDAYS en Suisse, un conférencier ne jurant que par LabVIEW, s'était servi d'une telle application pour présenter son exposé.
le 02-07-2014 02:12 AM
Salut à tous, merci merci mais je vais déjà finir ma présentation en « juste powerpoint »…
Bonne journée à tous, et à mardi pour certains, à lundi soir pour d’autres !
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
02-07-2014 02:23 AM - modifié 02-07-2014 02:25 AM
Peut-être (à tout hasard), un d'entre vous aurait-il "un avis" sur le comportement suivant :
Le code concené :
en fait, c'est l'ensemble de mon virtual_KB (+ un virtual key-repeat que je viens d'ajouter)
Quand ?
après une ou deux manip bien précises, par exemple :
"une sélection+delete en fin de string" ... au début ou au milieu cela ne le fait pas.
Quoi?
Le curseur se fige ... c.a.d. que le curseur est toujours là, mais il ne clignote plus.
Le KeyFocus est toujours True, manipuler Selection_position ou scroll_position n'y change rien ... en fait rien ne fait !
la solution (?)
J'ai trouvé un contournement qui fonctionne pour tous les cas où la chose se produit (j'ai cherché 3 jours!)
Malgré que le Keyfocus soit toujours True (quand le phénomène se produit)
si je fais : Keyfocus=False et ensuite à nouveau Keyfocus=True ... alors c'est bon.
(faire uniquement Keyfocus=True ne fonctionne pas)
Je rappelle que si je "read" le keyfocus au moment du comportement ... il est True !
Je dois faire OFF, et ensuite à nouveau ON pour que ce comportement disparaisse
Un d'entre vous aurait-il déjà rencontré le curseur "qui est présent mais qui ne clignote plus" ?
Un d'entre vous aurait-il déjà utilisé cette manip "keyfocus False + keyfocus True"
Merci.
le 02-08-2014 04:46 PM
Salut chef, beau travail, et même gros travail !
> Il fonctionne bien. Je n’ai pas eu de problème à l’utiliser.
> Difficile de donner un avis en 10 minutes !!!
> Commentaires pertinents, par exemple « Obligé d'utiliser une Flat Séquence ... douleur !! » 🙂
> Très bonne utilisation des évènements utilisateurs
> La gestion du undo est intéressante et pertinente
Par contre :
> Beta.vi : je ne suis pas vraiment d’accord avec la gestion d’erreur. Une boite de dialogue d’erreur dans un sous-vi, je ne suis pas pour. Pour moi nous devons transmettre l’erreur dans les sous-vi avec error in et error out. Puis gérer l’erreur de façon centralisée.
> Je ne suis pas pour des connecteurs de sous-vi supérieurs au 4x2x2x4
> L’aide dans les sous-vi ? Ctrl+H ? pas facile de suivre la documentation développeur dans les vi’s. Manque un peu de documentation pour te suivre (le code est pas toujours simple)
> Je pense que myC devrait être un TypDef.
> Pour moi la référence « » n’est pas utile, car sur « ce VI »
> Si tu n’aimes pas « Obligé d'utiliser une Flat Séquence ... douleur !! » Alors pourquoi tu ne places pas l’indicateur Title avant la structure « While » (au niveau de la création des évènements utilisateurs)
> Les boutons OK et cancel sont en « … jusqu’au relâchement » je pense que le standard est plutôt « … au relâchement », ce qui permet d’annuler en ressortant du bouton.
> Le bouton « Ctrl » ?
Mais pour conclure bravo pour le travail, car il y a du travail !!
Je ne veux pas donner « juste » l’impression de critiquer
A+
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
02-08-2014 05:14 PM - modifié 02-08-2014 05:17 PM
Merci Luc.
Super ... "ça" c'est "avis" qui en vaut la peine ... "ça" aussi ça prend du temps (super merci)
bon ....
"Beta.vi : je ne suis pas vraiment d’accord avec la gestion d’erreur ..."
100% d'accord avec toi ... il n'y a pas de gestion de l'erreur dans Beta, juste une bidouille lamentable.
Pourquoi ? ... je ne suis pas parvenu a "intégrer graphiquement" la chose (si, c'est vrai)
je veux dire par la que faire "descendre" le flux d'erreur dans Beta (dans l'Event Action/Core) ... est très moche (graphiquement)
et oui !!! donc la gestion d'erreur dans Beta est restée à l'état de réflexion.
Je ne suis pas pour des connecteurs de sous-vi supérieurs au 4x2x2x4
oui, d'accord ... mais on fait quoi quand on a beaucoup de input/output.
et aussi ... un 6-4-4-6 permet d'aligner tip-top sur un unbundle_by_name. (l'alignement, c'est mon truc )
L'aide dans les sous-VI
y'en a pas ... c'est un de mes gros gros défauts (je le sais) il n'y a jamais d'aide avec moi (je vais y réfléchir)
myC en typeDef et pas de ref pour "ce vi" ... ok, compris.
Si tu n’aimes pas « Obligé d'utiliser une Flat Séquence ... douleur !! »
Alors pourquoi tu ne places pas l’indicateur Title avant la structure « While » (au niveau de la création des évènements utilisateurs)
Parceque dans l'Event Action/Init ... je réinitialise tous aux" valeurs par défaut" ...
et l'indicateur Title est remis à défaut aussi ... donc s'efface.
Je dois écrire dans l'indicateur Title "après" la remise aux valeurs pas défaut.
Les boutons OK et cancel sont en « … jusqu’au relâchement » je pense que le standard est plutôt « … au relâchement »,
ce qui permet d’annuler en ressortant du bouton.
Comprends pas "ce qui permet d’annuler en ressortant du bouton"
Le bouton « Ctrl » ?
ah ? y'a un bouton qui traine ? j'irai voir ça.
oui, c'est du boulot.
Le key-repeat sur le clavier virtuel est implémenté, ça fonctionne tip-top. (avec une while en // et un notifier)
je suis en train d'ajouter l'option wrapping.
encore merci Luc.
-edit-
Je ne veux pas donner « juste » l’impression de critiquer
Je n'ai jamais eu cette "impression" ... et ici encore moins ... c'est au contraire très constructif.