Мышь подключается последовательному порту RS232/V24. Для получения
более подробной информации прочтите
ttys(4)
ОПИСАНИЕ
Введение
ниже приведено описание разъема c девятью контантами, используемого
для подключения мыши:
контакт
название
используется для
2
RX
Данные
3
TX
-12 V, Imax = 10 mA
4
DTR
+12 V, Imax = 10 mA
7
RTS
+12 V, Imax = 10 mA
5
GND
Заземление
Это описание приводится в документации, хотя 9-и V хватит почти любой мыши.
Драйвер мыши может распознать мышь, посылая слабый сигнал RTS и затем увеличивая его.
Примерно через 14 миллисекунд мышь вернет 0x4D ('M').
Еще через 63 милисекунды трехкнопочная мышь Microsoft-compatible
вернет сигнал
0x33 ('3').
Относительное движение мыши посылается как dx (положительное значение означает
движение направо)
и dy (положительное значение означает движение вниз). Различные мыши могут
работать с разными скоростями.
Для определения скорости устанавливаются следующие ее значения (по очереди):
9600, 4800, 2400 и 1200 бит/с; каждый раз при установке значения скорости пишутся
2 символа из таблицы, приведенной ниже, и после этого идет время ожидания, равное 0,1 секунды.
В таблице указаны скорости и символы, соответствующие им:
бит/с
символы
9600
*q
4800
*p
2400
*o
1200
*n
первый байт из пакета может использоваться для синхронизации.
Протокол Microsoft
Протокол Microsoft использует один начальный бит, 7 битов данных (без проверки
четности), один стоп-бит; протокол работает со скоростью 1200 бит/с.
Данные пересылаются в RxD трехбайтовыми
пакетами. Движения по dx и dy пересылаются как дополнения друг друга.
Значение lb (rb) устанавливается при нажатии левой (правой)
кнопки:
байт
d6
d5
d4
d3
d2
d1
d0
1
1
lb
rb
dy7
dy6
dx7
dx6
2
0
dx5
dx4
dx3
dx2
dx1
dx0
3
0
dy5
dy4
dy3
dy2
dy1
dy0
Протокол Microsoft для трехкнопочной мыши
Обычно мышь Microsoft имеет две кнопки. Но есть несколько трехкнопочных
мышей, также использующих протокол Microsoft. О нажатии средней кнопки сообщается
отсыланием пакета с нулевым движением и ненажатыми клавишами.
(Таким образом, в отличие от двух других кнопок, статус средней
не отображается в каждом пакете).
Протокол Logitech
Трехкнопочная мышь Logitech использует варианты протокола
Microsoft: когда средняя кнопка отпущена, посылается вышеописанный трехбайтовый пакет,
а когда она нажата, посылается четырехбайтовый пакет, где четвертый байт
имеет значение 0x20. В частности, о нажатии средней кнопки сообщается с помощью пакета
0,0,0,0x20 при том, что остальные кнопки остаются ненажатыми.
Протокол Mousesystems
Протокол Mousesystems использует один начальный бит, 8 битов данных, не использует
проверку по четности и два стоп-бита при скорости 1200 бит/с. Данные посылаются на RxD
пятибайтовыми пакетами. dx посылается как совокупность двух величин, состоящих из
двух частей, dy посылается как совокупность двух отрицательных величин, состоящих из
двух частей. lb (mb, rb) обнуляются при нажатии левой (средней,
правой) кнопки:
байт
d7
d6
d5
d4
d3
d2
d1
d0
1
1
0
0
0
0
lb
mb
rb
2
0
dxa6
dxa5
dxa4
dxa3
dxa2
dxa1
dxa0
3
0
dya6
dya5
dya4
dya3
dya2
dya1
dya0
4
0
dxb6
dxb5
dxb4
dxb3
dxb2
dxb1
dxb0
5
0
dyb6
dyb5
dyb4
dyb3
dyb2
dyb1
dyb0
Четвертый и пятый байты описывают изменения, произошедшие за время передачи
второго и третьего байта.
Протокол Sun
Протокол Sun - это трехбайтовая версия протокола
Mousesystems (описанного выше), только два последних байта не отсылаются.
Протокол MM
Протокол MM производит проверку на нечетность, использует один начальный бит,
восемь битов данных и один стоп-бита при скорости 1200 бит/с. Данные посылаются
на RxD трехбайтовыми пакетами. dx и dy отсылаются как отдельные значения
со своими знаками, бит знака имеет отрицательное значение. lb (mb, rb)
отсылаются при нажатии левой (средней, правой) кнопки:
байт
d7
d6
d5
d4
d3
d2
d1
d0
1
1
0
0
dxs
dys
lb
mb
rb
2
0
dx6
dx5
dx4
dx3
dx2
dx1
dx0
3
0
dy6
dy5
dy4
dy3
dy2
dy1
dy0
ФАЙЛЫ
/dev/mouse
- это обычно используемая символьная ссылка на устройство "мышь".