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