compte tour sur ecran - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
Re: compte tour sur ecran
GzavSnap se fendait de cette prose :

Quoted text here. Click to load it

Et pourquoi ne pas utiliser le troisième bouton ?

--
LeLapin

Re: compte tour sur ecran

Quoted text here. Click to load it

Ca ne resoud pas le probleme : le systeme va gerer les messages
de souris et eventuellement les rediriger vers une autre fenetre,
le prog ne les recevra pas toujours, et ca va etre le souk.

Bien sur on peut contourner cela en capturant les messages
systeme en provenance de la souris pour forcer leur redirection
vers le prog avec les fonctions SetCapture() et ReleaseCapture()
mais on va finir par monter une usine a gaz ... c'est pas tip-top.

De plus un message souris n'a pas vraiment une priorite realtime,
donc on risque de carrement perdre des pulses ... ca craint !

Je donne quand meme le detail de ces fonctions:

SETCAPTURE :
 The SetCapture function sets the mouse capture to the specified
window
 belonging to the current thread. Once a window has captured the
mouse,
 all mouse input is directed to that window, regardless of whether
 the cursor is within the borders of that window.

RELEASECAPTURE :
 The ReleaseCapture function releases the mouse capture from a window
 in the current thread and restores normal mouse input processing.

Re: compte tour sur ecran
Quoted text here. Click to load it

J'y pense jamais à celui là !
mdr... j'en ai pas sur ma souris !

Quoted text here. Click to load it
Surtout que notre Windows met en buffer les cliques lors de
l'attente d'affichage/accès disque ...
C'est pas trop bon pour un programme de gestion direct...
Pour le comptage c'est moins grave.

Quoted text here. Click to load it
En Direct input.
Et ça complique tout!
Pour une appli. Vb... avec une gestion du "sub fom1_click ( ) ",
le résultat est aléatoire et dépend des temps d'attente au niveau
des rafraîchisement de cette fenêtre. ( avec des DoEvents partout!)

Quoted text here. Click to load it
Je ne pense pas vu que les données sont tomponnées... mais ça risque
de décaller un bon nombre de donnée reçues.



Re: compte tour sur ecran
Jean-Christophe se fendait de cette prose :

Quoted text here. Click to load it

Attends mais tu vas où là ?
On écrit une appli de dix lignes en n'importe quel langage dans un gros
bouton qui incrémente à chaque fois qu'on clique, et on affiche le tout en
très gros, point !

--
LeLapin

Re: compte tour sur ecran

Quoted text here. Click to load it

Zut, tu veux dire que j'aurai saute des lignes ?
Si c'est le cas : desole ... si, si.

Je croyais qu'il s'agissait de compter des impulsions
en utilisant la souris comme organe d'entree, oui ?
Si c'est le cas, alors mes remarques sont valables :
il faut capturer les messages de la souris pour forcer leur
destination vers le programme qui va compter les impulsions,
sinon le systeme dirige les messages de la souris vers la fenetre
qui se trouve sous le curseur de la souris, et le prog ne les recoit
pas.
Et dans ce cas, autant utiliser un autre organe d'entree. (port I/O)

Re: compte tour sur ecran
Jean-Christophe se fendait de cette prose :

Quoted text here. Click to load it

Si tu mets ton appli en plein écran et que tu détectes la souris sur le
fond  de la fenêtre ça marche aussi !
Sinon tu peux même utiliser des trucs genre setfocus et lostfocus, pour que
le focus ne sorte jamais de ta fenêtre.

--
LeLapin

Re: compte tour sur ecran

Quoted text here. Click to load it

Ok, je pensais qu'il voulait injecter un signal tout-ou-rien
via un hack du hard de la souris ... autant pour moi.
Dans le cas d'un click souris alors tout ca devient trivial ;-)


Re: compte tour sur ecran

Quoted text here. Click to load it
que

Heu... moi aussi je le pensais !
Bon, désolé Jean-Christophe.... pas de PIC.
Mais je parle aussi du "via un hack du hard de la souris ",
On met un interrupteur en parallèle avec le micro-switch
 de la souris... et c'est twické...
Ca simule l'appuie phisique du bouton avec un doigt !
... ça fait comme si que ... quoi !
Le sytème y croit qui c'est nous ... mais bon...
 c'est l'aimant de l'interrupteur magnétique! (en faît !!!!)
Mais, sur le focus de la fenêtre... pas de problème.
Il se gère avec l'intercéption de l'événement :

sub form1.MouseDown(...)
si appuie sur bouton#2 alors compter=compter+1
end sub
(c'est tout simple!)

Pas besoin de passer par l'IRQ, c'est le driver qui
s'occupe du reste!



Re: compte tour sur ecran
 >> Si tu mets ton appli en plein écran et que tu détectes la souris sur le
Quoted text here. Click to load it

Ca y est !
J'ai fait un programme d'exemple avec la clique droite de la souris...
... et c'est loin d'être simple.
C'est plus compliqué que ça en a l'air.
Le Vb renvoie tous les doubles cliques vers une routine qui de donne
pas l'orgine de l'action... tous les bouton en double clique sont
renvoyé vers form_dblclick() !
Résultat, il faut utiliser Direct input !
Mais, là encore un autre problème.
A chaque scan du clique, le compteur va s'incrémenter.
Tout comme le joystick, un appuie sur le bouton pendant 1 seconde
va donner un "5215" au compteur.
Il faudra ruser un peut, capturer le front montant et invalider l'info
lors d'un relachement de la souris.
L'exemple sous gdi est dispo ici :
http://zx81.ordi5.free.fr/divers/comteur3.zip

J'ai aussi retrouver un exemple de PcTeam avec le "inpout32.dll"
en RS232 : http://zx81.ordi5.free.fr/divers/RS232.zip
(Il y a la les doc sur les branchements de la Rs232)
Cet exemple pourra visualiser le changement d'état des registres
sur la RS323.



Re: compte tour sur ecran

Quoted text here. Click to load it

L'exemple sous DirectX est dispo ici :
 http://zx81.ordi5.free.fr/divers/comteur4.zip



Re: compte tour sur ecran
On 14 juil, 18:08, "GzavSnap"
<zx81.pas.de.spam.ordi5.chez.free.en.france> wrote:
Quoted text here. Click to load it

Bonjour E0% tous,

suite E0% mon premier exemple, en VB, utilisant
le port COM comme entrE9%e (voir plus haut dans ce thread),
voici un exemple complet (3 compteurs) sur le mEA%me principe
http://vede.free.fr/electronique/counter2.rar
(avec sources, dll et executable),

oF9% j'ai ajoutE9% des boutons "start" et "stop"
qui lancent et arrEA%tent le chrono et
les comptages, ainsi qu'un champ de
saisie "tours" qui permet de dE9%finir
le nombre de tours...

lorsque l'on appuie sur "start", cela
re-initialise E0% zE9%ro le chrono et les
compteurs, puis lance le chrono et
les comptages...

lorsqu'un compteur  arrive au nbr
de tours E0% faire, il s'affiche, en dessous
du compteur, son  temps/chrono...

lorsque les 3 compteurs sont arrivE9%s
au nbr de tours, ou bien lorsque l'on
clique sur "stop", le chrono s'arrEA%te...

il faut connecter les 3 boutons poussoirs
(des compteurs) au port com/rs232 ainsi:
- compteur 1 : BP entre les pins 1 (DCD) et 3 (TXD)
- compteur 2 : BP entre les pins 4 (DTR) et 6 (DSR)
- compteur 3 : BP entre les pins 7 (RTS) et 8 (CTS)

sans E7%a,  c'est sur, le chronomE9%trage n'est pas exact*
(dE9%pend des ressources du PC...entre autres...), mais
la marge d'erreur est commune aux 3 compteurs...
on pourrait sFB%rement amE9%liorer la prE9%cision, en, par
exemples, utilisant l'horloge interne du PC comme base
de temps pour les secondes...ou en augmentant le
"Thread Priority"....ou en n'affichant pas le dE9%filement
des centiE9%mes pendant le chronomE9%trage...

bon'soirE9%e,
vede
;O]

* ne correspondra pas E0% l'affichage d'un chrono temps rE9%E9l...

Re: compte tour sur ecran

Quoted text here. Click to load it

Oui : lire la valeur d'une horloge ininterruptible est surement
le meilleur moyen de conserver une valeur de temps correcte,
malgre les swaps du systeme.

Re: compte tour sur ecran
Salut Vede,

Quoted text here. Click to load it

Bon travail !
Par contre, le driver souris doit-être enlevé si on branche
le montage sur le même port.
Pour le timer en surcharge, il vaut mieux utiliser une bonne
machine... sous peine d'oublier des signeaux ... mais
il est préférable de ne pas l'utiliser avec une frèquence
trop élevée.
Sinon, ça peut fonctionné... je ne l'ai pas testé avec
le montage décrit, mais la redondance au niveau
du scan est testé... donc pas de multi-validation
du signal.
Par contre, sur ma machine, les boutons start/stop sont hors cadre !



Re: compte tour sur ecran
On 15 juil, 21:42, "GzavSnap"
<zx81.pas.de.spam.ordi5.chez.free.en.france> wrote:
Quoted text here. Click to load it

Bonsoir E0% tous,

avec le chrono/compteur counter2.rar,
la dE9%rive dans le temps pouvait EA%tre
assez grande par apport E0% un "vrai chrono"...

c'est pourquoi j'ai vite fait une nouvelle
version, qui utilise l'horloge du systE8%me
comme rE9%fE9%rence  pour les secondes, oF9%
la dE9%rive (par apport E0% un "vrai chrono")
n'E8%xcE8%dera jamais plus d'une demie seconde,
ce mEA%me aprE8%s plusieurs minutes de comptage...

et avec la marge d'erreur sur les 50 derniers
centiE8%mes de chaque seconde...marge
commune aux 3 compteurs...comme d'ab...

la version3 ;O]
http://vede.free.fr/electronique/c3.rar

bon'nuit,
vede
;O]

Re: compte tour sur ecran

Quoted text here. Click to load it

Avec l'horloge systeme d'un PC, tu as
une precision de l'ordre de la milliseconde.

Re: compte tour sur ecran
Le 16-07-2009, ? propos de
Re: compte tour sur ecran,
 Jean-Christophe ?crivait dans fr.sci.electronique :
Quoted text here. Click to load it

    Certainement pas. J'ai déjà vu des PC qui dérivaient, mais qui
dérivaient...

    JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
We've slightly trimmed the long signature. Click to see the full one.
Re: compte tour sur ecran

Quoted text here. Click to load it


... qui derivent par rapport a quelle horloge de reference ?

L'horloge systeme est la seule reference de temps
ininterruptible que l'on ait sur un PC standard,
et sa precision est d'une milliseconde.

typedef struct {
 WORD wYear;
 WORD wMonth;
 WORD wDayOfWeek;
 WORD wDay;
 WORD wHour;
 WORD wMinute;
 WORD wSecond;
 WORD wMilliseconds; // ca, c'est des millisecondes !
} SYSTEMTIME;

Re: compte tour sur ecran
Le 16-07-2009, ? propos de
Re: compte tour sur ecran,
 Jean-Christophe ?crivait dans fr.sci.electronique :
Quoted text here. Click to load it

    Ã‡a, c'est la théorie, lorsque la référence de temps (quartz ou
autre) de l'horloge système est de qualité. J'ai vu passer des tas de PC
qui dérivaient de plus d'une minute par heure, et une minute par heure,
ça fait une dérive de plus d'un centième de seconde par seconde (soit
plus de 1%).

    Au passage, tu confonds la précision de l'horloge et ce que renvoie
l'appel système qui sont deux choses différentes. Sur mes OS, les appels
systèmes renvoient des microsecondes ou des nanosecondes. Ce n'est pas
pour cela que la précision est de l'ordre des nanosecondes puisque
le système ne remet pas à jour le champ en question toutes les
nanosecondes (en supposant qu'il soit capable de le faire). Typiquement,
sur un Linux, la précision est de HZ, par défaut 250 sur les noyaux
récents (donc 4 ms, en supposant que l'horloge ne dérive pas, ce qui est
envisageable si elle est asservie par un ntp).

    Cordialement,

    JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
We've slightly trimmed the long signature. Click to see the full one.
Re: compte tour sur ecran

Quoted text here. Click to load it

Pourtant, un quartz a une assez bonne precision a court terme,
sa derive ne devient genante qu'apres un temps assez long.
Bien sur, si on considere une horloge basee sur un circuit RC,
ou un autre genre de truc low-cost, alors on change de sujet.
Sans parler des conditions de constance en temperature, etc...
Mais a court terme, obtenir une precision d'une milliseconde avec
un quartz suivi d'une bardee de diviseurs ne pose aucun probleme.

Quoted text here. Click to load it

Exact, tu as tout a fait raison : j'aurais du parler d'un
intervalle elementaire de comptage plutot que de precision.

Quoted text here. Click to load it

Oui, mais pour mesurer un *intervalle de temps* a une milliseconde
pres,
cela me semble raisonnable, vu que l'horloge tourne tout le temps.
Donc tu peux memoriser l'instant de depart, memoriser l'instant
d'arret,
lui soustraire l'instant de depart, tu obtiens bien l'intervalle de
temps
qui les separe, puisque le delai ajoute par l'appel systeme s'annule.
( oui, c'est optimiste ... mais pour un ordre de grandeur
 de la milliseconde, j'ose maintenir cette affirmation :-)

Quoted text here. Click to load it

Mais comment fais-tu pour evaluer la precision d'une horloge,
il te faudra bien une horloge de reference (atomique ?) ...

Re: compte tour sur ecran
Le 16-07-2009, ? propos de
Re: compte tour sur ecran,
 Jean-Christophe ?crivait dans fr.sci.electronique :
Quoted text here. Click to load it

    Sauf que un PC, c'est du low cost. La base de temps n'est pas
franchement à la hauteur. Si on tape dans du supermicro ou du tyan, pas
de problème, c'est du lourd. Dans du Asus, ça va. Si maintenant, on
attaque le design and made in China, on peut assez rapidement avoir des
surprises.

Quoted text here. Click to load it

    Non. Je ne suis pas d'accord. Sur mes OS, la mise à jour par défaut
de la valeur de la structure se fait 250 fois par seconde, ce qui veut
dire que la précision maximale sera de 4 ms. Maintenant, entre 4 et 8
ms, mon calcul me renverra 4 ms, soit une erreur possible de 100 % ! Le
problème n'est pas la lenteur ou non de l'appel système, mais le taux de
rafraîchissement de cette valeur par l'OS. Il ne faut pas croire que tu
vas directement lire cette valeur dans le registre de l'horloge. C'était
possible du temps du DOS ou d'autres trucs du même genre, mais avec les
systèmes moderne, tu passes par l'OS pour des histoires de gestion de
matériel et l'OS à d'autre choses à faire que de maintenir la structure
time à jour.

Quoted text here. Click to load it

    nptd est ton ami.

rayleigh:[~] > ntptrace
localhost: stratum 3, offset 0.005333, synch distance 0.095057
metroid.nerim.net: stratum 2, offset -0.000426, synch distance 0.038108
ntp-p1.obspm.fr: stratum 1, offset -0.000171, synch distance 0.002431,
refid 'TS-2'

    Mes horloges sont toutes synchronisées sur une référence fiable. Si
j'ai une carte GPS, je peux faire la même chose en les synchronisant sur
l'horloge GPS ou sur n'importe quelle autre horloge.

    Cordialement,

    JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline