Я работаю над устройством, которое взаимодействует с ПК через (виртуальный) последовательный порт. Проблема в том, что данные, которые мы отправляем, иногда неправильно идентифицируются Windows как мышь с шиной, после чего загружается драйвер "Microsoft Serial Ballpoint", и указатель мыши начинает прыгать на экране и случайным образом нажимать на вещи.
Немного Googling показывает, что это старая и хорошо известная проблема с последовательными устройствами, где обычное обходное устройство - это немного взлома реестра, чтобы отключить драйвер. Тем не менее, нам очень нужно требовать от наших пользователей, и я бы предпочел не использовать наше приложение в реестре пользователей. Особенно, когда исправление зависит от версии Windows, и пользователь вполне может использовать мышь с шиной.
Вместо этого я хотел бы избежать этой проблемы, изменив наш протокол, чтобы не отправлять какие-либо данные, которые могут оказаться неверно идентифицированными как мышь. Единственная проблема заключается в том, что я не совсем уверен, какие шаблоны следует избегать. По-видимому, протокол Microsoft Mouse состоит из пакетов из четырех байтов, где установлен MSB первого, а третий из них - ясный.
Будет ли достаточно отправлять только 7-бит ASCII? Есть ли другие устройства, о которых мне нужно беспокоиться о том, чтобы их можно было обнаружить как?