株式会社SPA GPSセンター

e-mail: gps@spa-japan.com
tel: 03-6421-7192, fax: 03-6421-7194

シリアル通信

■ GPSレシーバをPCに接続するとマウスカーソルが暴れる

症状

 シリアル(RS-232C)出力のGPSレシーバをPCに繋ぐと、 マウスポインタ―が暴れだして操作できなくなる。
 ※USB/シリアル変換機能を使用した、USB接続のGPSレシーバ あるいは、USB/シリアル変換アダプターでも同様の症状が発生することがある。

原因

 昔からよく知られている、Windowsの不具合。
 シリアルポートにケーブルを接続し、一定時間以内にデータを受信すると Windowsは「シリアルマウス」が接続されたと誤認識し、シリアル機器を serial ballpointに割り当てる。
 受信したGPSデータは、シリアルマウスの出力データとして扱われるので、 マウスカーソルが暴れる。

対策【基本的な考え方】

 誤認識されたGPSレシーバは、COMの serial ballpointに割り当てられているので、それを「無効」とすれば良い。
 これにより、次にGPSレシーバを接続したとき、 serial ballpointへの割当ては行われず、通常のCOMポートに割当てられる。
 ※「削除」すると、再接続したときに、再びserial ballpointに割当てられてしまう 可能性があるので、不可。

【操作方法】
 [コントロールパネル]-[デバイスマネージャ]-[マウスとそのほかのポインティングデバイス]にある[serial ballpoint]を右クリックし、「無効」を選択する。

【問題点】
 暴れているマウスカーソルをどのように鎮めて、デバイスマネージャを開くか? がポイント。
 ※誤認識されたGPSレシーバをPCから外すと、[デバイスマネージャ]の [serial ballpoint]項目も消えてしまうので、この操作は、 GPSレシーバをPCに接続したままで行う必要がある。

対策【具体例】
◆シリアル/USB変換ケーブルを使用している場合

  1. (シリアル/USB変換ケーブルとPCは接続したまま) シリアル/USB変換ケーブルからGPSレシーバを外す。
  2. (マウスカーソルが静止するので) [デバイスマネージャ]の [serial ballpoint]を「無効」とする。
  3. GPSレシーバをシリアル/USB変換ケーブルに接続する。

対策でない(?)対策

※一般に対策として言われている以下の方法は、 当社ではその効果を確認しておりません。

◆レジストリを書き換える

 MicroSoft社が推奨している方法。
https://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/windows-7-recognized-usb-gps-as-a-serial-mouse-in/0c3f0d94-6181-4a43-9e90-bcea8a21415d?page=2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sermouse
のレジストリを書き換えて、シリアルマウスを無効にする。

【当社での結果】
 一時的に直ることがありますが、しばらくすると元に戻ります。

◆隠れているserial ballpointを表示し、無効にする

 誤認識されているGPSレシーバをPCから外すと [デバイスマネージャ]の [serial ballpoint]が 消えてしまうので、 隠れているすべてのデバイスを表示 (環境変数:devmgr_show_nonpresent_devices = 1)してから、 [serial ballpoint]を無効にする。
 ※デバイスマネージャは、コマンドプロンプトから起動(コントロールパネルから起動すると、変更した環境変数が反映されない)。

【当社での結果】
 [serial ballpoint]は表示されますが、右クリックで「無効」が表示されません。