”かふぇルネ“はルネサス製品に関してユーザ同士が自由に会話をするツールであり、回答者はルネサス社内外の方たちとなります。ルネサス製品やソリューションに関して正式な回答をご希望の場合は、ルネサス技術サポート問合せをご使用ください。

USBマウスについて

こんにちわ スマです

アプリケーションノート(R01AN0664JJ0215)  USB Host Human Interface Device Class Driver (HHID) using Basic Mini Firmware を使って

USBマウスを使ってます(RL78/G1C)。

古いタイプの3バイトデータ(ボタン,X,Y)を受信するマウスは問題なく動作してますが、

今時のマウスで6バイトデータを受信するマウスを動かしたいのです。

古いタイプのマウスと新しいタイプのマウスを見分けるための情報、または、アプリケーションノートの

ソースの改造ポイントなど、教えてください。

  • スマさん、こんにちは。NoMaYと申します。

    検索していたら以下のウェブページに辿り着いたのですが、教科書的にはHID レポートディスクリプタをパースして区別する、大雑把にはHID レポートディスクリプタの一部もしくはサイズを目安にして区別する、といったやり方はどうでしょうか?

    USB/ディスクリプタ > デバイスディスクリプタ > コンフィグレーションディスクリプタ > インターフェイスディスクリプタ > HIDディスクリプタ
    レポートディスクリプタ
    https://wiki.onakasuita.org/pukiwiki/?レポートディスクリプタ

    もし大雑把なやり方で区別したのであれば、区別した後は、事前に上記ページに紹介されているレポートディスクリプタ表示ツールで調べておいたデータ位置から決め打ちでマウスデータを抜き取ってみてはどうだろうかと思ったのです。

    [メモ]

    すみません、自分用のメモです。置かせて下さい。

    HID Usage Tables
    www.usb.org/sites/default/files/documents/hut1_12v2.pdf
     

  • NoMaYさん

    ありがとうございます。

    レポートディスクリプタを見ると区別できそうですね。ご教示頂いたURLやメモ参考にさせて頂きます。

    また、アプリケーションノートのソースの何処でレポートディスクリプタを参照できるかがまだ把握できて

    いないため、これからソースを読み込んでみます。もしわかる方いればアドバイスお願いします。

  • こんにちわ スマです。その後の状況です。

    アプリケーションノート(R01AN0664JJ0215) のソースコードをひたすら読みこんで、

    usb_hhid_task タスク関数の中の、ステータス USB_HHID_APL_OFFSET_SETUP あたりで、

    usb_hhid_smpl_get_report_descriptor関数をコールすれば、レポートディスクリプタを参照できそうな

    気がしてます。多分。。。

    usb_hhid_smpl_get_report_descriptor関数 はドキュメント上は未使用となっており、

    引数 p_data、lengthに何を指定すると良いのかがわかりません。もしわかる方おられたら

    教えてください。