|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MEGATRON
Z.I. de Noyer
B.P. n° 1
74200 Allinges
France
|
|
|
|
|

|
|
MEGATRON
Joystick en RS232
(émulation Souris ou Joystick)
|
 |
|
|
Émulation Souris
Les souris RS232 sont connectées directement au port série et utilisent
un des protocoles RS232C.
La souris obtient son alimentation par les pattes TXD, DTR et RTS du port
et consomme moins de 15 mA.
|
Nom
|
Broche
|
Usage
|
|
RXD
|
2
|
Emission de Données
|
|
TXD
|
3
|
-12V et
Réception de Données
|
|
DTR
|
4
|
+12V
|
|
GND
|
5
|
Masse
|
|
RTS
|
7
|
+12V
|
Les joysticks qui émulent une souris utilisent un des ces protocoles,
ils sont percus comme des souris par le PC.
Le pilote peut s'assurer de la présence d'une souris en abaissant la
tension sur la broche RTS et en la remontant.
Environ 14 ms plus tard, la souris enverra l'octet $4D (`M') sur la ligne
RXD.
Encore 63 ms plus tard, les souris compatible Microsoft enverront $33
(`3') sur RXD
Le déplacement relatif de la souris est transmis en tant que dx
(positif vers la droite) et dy (positif vers le bas).
Diverses souris peuvent travailler avec des vitesses différentes. Pour
sélectionner la vitesse, il faut parcourir le cycle 9600, 4800, 2400 et
1200 baud, en envoyant chaque fois les deux caractères de la table ci-dessous,
et attendre 0,1 seconde.
|
bit/sec
|
Message
|
|
9600
|
*q
|
|
4800
|
*p
|
|
2400
|
*o
|
|
1200
|
*n
|
Pour chaque trame, le premier octet peut être utilisé pour se synchroniser.
| Protocole Microsoft |
Le protocole Microsoft utilise une liaison série:
1200 Baud, 1 bit de Start, 7 bits de données, sans parité, 1 bit
de Stop.
Les données sont transmises sur la ligne RXD par paquets de 3 octets.
|
|
bit 6
|
bit 5
|
bit 4
|
bit 3
|
bit 2
|
bit 1
|
bit 0
|
|
Octet 1
|
1
|
L
|
R
|
Y7
|
Y6
|
X7
|
X6
|
|
Octet 2
|
0
|
X5
|
X4
|
X3
|
X2
|
X1
|
X0
|
|
Octet 3
|
0
|
Y5
|
Y4
|
Y3
|
Y2
|
Y1
|
Y0
|
- L = Left (Bouton Gauche 1:appuyé; 0:Relaché)
- R = Right (Bouton Droit (1:appuyé; 0:Relaché)
- X0..X7 = dx déplacement X sur 8 bits complémenté
à deux, soit une valeur entre -128 et +127
- Y0..Y7 = dy déplacement Y sur 8 bits complémenté
à deux, soit une valeur entre -128 et +127
|
| Protocole Logitech |
Les souris série Logitech
à trois boutons peuvent utiliser plusieurs extensions du protocole
Microsoft : lorsque le bouton central est en haut, le paquet de 3
octets décrit ci-dessus est envoyé. Lorsque le bouton est en bas,
un paquet de 4 octets est envoyé, dont le quatrième octet a la valeur
$20 (ou au moins le bit $20 à 1). En clair, une pression sur le bouton
central seul est indiquée par $0, $0, $0, $20. |
|
Protocole Mouse Systems Corp.
|
Le protocole Mousesystems utilise 1200 Baud, 1 bit de Start, 8
bits de données, sans parité et 2 bits de Stop.
Les données sont envoyées sur RXD par trames de 5 octets.
|
|
bit 7
|
bit 6
|
bit 5
|
bit 4
|
bit 3
|
bit 2
|
bit 1
|
bit 0
|
|
Octet 1
|
1
|
0
|
0
|
0
|
0
|
L
|
M
|
R
|
|
Octet 2
|
0
|
dx6
|
dx5
|
dx4
|
dx3
|
dx2
|
dx1
|
dx0
|
| Octet 3 |
0
|
dy6
|
dy5
|
dy4
|
dy3
|
dy2
|
dy1
|
dy0
|
| Octet 4 |
0
|
dx6
|
dx5
|
dx4
|
dx3
|
dx2
|
dx1
|
dx0
|
|
Octet 5
|
0
|
dy6
|
dy5
|
dy4
|
dy3
|
dy2
|
dy1
|
dy0
|
- L(Left), M (Middle) et R (Right) sont mis à zéro quand respectivement
les boutons Gauche, Central et Droit sont pressés.
- dx transmis sur l'octet 2 est émis comme la somme des deux valeurs
en complément à 2.
- dy transmis sur l'octet 3 est émis comme inverse de la somme
des deux valeurs en complément à 2.
- Les octets 4 et 5 indiquent les changements qui se sont produits
depuis le début d'émission des octets 2 et 3.
|
|
JOYSTICKS
Protocole CTI RS232
This data is provided to the customer to be used as a guide in writing
a software driver routine to interface CTI joystick products that transmit
in the absolute position mode. This is not required for CTI’s Industrial
Mouse® joysticks which emulate directly the mouse drivers provide with
Windows® operating systems.
|
|
bit 7
|
bit 6
|
bit 5
|
bit 4
|
bit 3
|
bit 2
|
bit 1
|
bit 0
|
info |
|
Byte 1
|
0
|
0
|
1
|
S5
|
S4
|
S3
|
S2
|
S1
|
Switch data, 1 = on, 0 = off |
|
Byte 2
|
0
|
1
|
0
|
0
|
X7
|
X6
|
Y7
|
Y6
|
MSB’s X & Ydata |
| Byte 3 |
1
|
1
|
X5
|
X4
|
X3
|
X2
|
X1
|
X0
|
LSB’s X data |
| Byte 4 |
1
|
0
|
Y5
|
Y4
|
Y3
|
Y2
|
Y1
|
Y0
|
LSB’s Y data |
- Binary Data: Joystick position data is absolute binary format in 2’s
complement. The data is spread over three data bytes as shown. Each
transmission is always a complete data packet.
- Switch Data: Left, middle and right switches are encoded as S3, S2
and S1 respectfully. Optional push-button switch on the knob is S4.
If the device has an additional switch that would be encoded as S5.
- Baud Rate: 9600 , one start bit, 8 data bits, no parity, one stop
bit. CTS echoes RTS, not used otherwise.
- Mode: Default to stream mode, switch-able to polled-mode by customer
software, see sheet 2.
- Repetition rate: Variable when in stream mode, up to a maximum of
30 per second. In polled mode the repetition rate is controlled by the
customers software.
|
Command From Host (Hex)
|
Action by joystick interface |
|
11
|
Clear polled mode, enable stream mode, interface transmits a complete
data packet anytime there is a change in data, up to a maximum repetition
rate of 30 times per second. This is the default mode after power
on. |
|
13
|
Set polled mode, interface will only respond when polled. |
|
EE
|
Prompt command, interface will send a complete data packet. Also,
will set prompt mode if not already set. |
Absolute position example typical X axis:
|
X7
|
X6
|
X5
|
X4
|
X3
|
X2
|
X1
|
X0
|
Value
|
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
+127
|
maximum positive deflection |
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
+1
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
Center |
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
-1
|
|
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
-2
|
|
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
|
|
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
-128
|
maximum negative deflection |
|
| |
|