No.3ベストアンサー
- 回答日時:
No.1です。
>僕が作りたいのはUSBマウス的なものです。HIDだし、転送方式もインタラプトなので、上のURLの質問者様と同じ様にHIDクラスを用いれば実装が楽になるのかなと考えました。
>…質問の解釈違いでしたらすいません。
実際にPCドライバ、及びUSBデバイスを組んだ開発者としての発言になりますが、
極端なことを書きますが、USBデバイス側から見ればデバイスクラスななんてはっきり言えばどうでもいいんですよ。
「PCでこんなことをしたい」→「だったら○○クラスでインターフェースクラス(データ転送)は△△だ」
というのが設計の基本ですから。
今回は「USBマウス的なもの」とのことですから、HIDクラスで問題ないと思います。
>・HIDクラスを使用する際、あらかじめ用意(インストール?)しておく必要がある物は?
OSが標準でHIDドライバーを用意しているのであれば特になし。
>・HIDクラスドライバを用いることで新たにドライバを開発する必要はなくなる。
デバイスはHIDとして認識されているので開発の必要はなし。
>HIDデバイスとして正しく実装されているものであれば、初めての接続時でも自動的にOS(?)が適切なクラスドライバを適用してくれるので、こちらでドライバを用意する必要がない。(クラスドライバはあらかじめsystem32フォルダなどに入っている???)
前述のとおり。OSが標準でHIDをサポートしているのであれば必要なし。
>・PICFUNや秋月のキット(AKI-H8-USB)のサンプルなどでバルク転送による通信を行うサンプルが公開されていますが、これをHIDデバイス用として流用しようとするのは可能か。また、可能ならどのあたりの処理部を修正・追加する必要があるのか。
流用は可能。
提示のキットは使用したことがないけど、同系列であればコンフィグレーションの変更と、送受信ルーチンの若干の変更可能。
重要なのはバルク(データ保障)ではなくインタラプト(割り込み)であること。この部分の処理は必要。
返信ありがとうございます。
またお礼遅くなってしまい、すいません。
インタフェース・ディスクリプタの中でHIDクラス(Mouse)であることを定義し、その他必要な処理・記述があればあとはPCのドライバの問題になるのででデバイス側にとってはどうでも良い・・・ということでしょうか。
バルク転送のプログラムを流用する際、デバイス側の実装で必要になるのは
・既存のディスクリプタの必要な部分を改変
・HID、リポート、フィジカルディスクリプタの記述
・インタラプト転送の実装(バルク転送の送受信ルーチンの変更で可能?)
の3つでよろしいでしょうか。
No.2
- 回答日時:
No.1です。
>2. HIDクラスの利用(使用)方法。
これこそ「何で使用しますか」というのが先かと。
PCでならHIDクラスで定義したものなら、それこそHIDデバイスとして利用できるとしか回答しようがありません。
>3. そもそもHIDクラスが具体的にどんな機能を持っているのか、よくわからない
「HID」は「Human Interface Device」の略。
つまるところ、キーボードやマウスも含め、「人が扱う(PCと入出力できる)デバイス全般」が対象となります。
今までの質問と返答を読むと「HIDクラスとして実装」の前に、「○○を行うから××クラスにする」というのが前提に必要ではないかと。
ひょっとしたら、別のクラス……場合によっては独自デバイス(要:PCドライバ開発)での検討も必要かもしれませんし。
ttp://oshiete1.goo.ne.jp/qa3466279.html
僕が作りたいのはUSBマウス的なものです。HIDだし、転送方式もインタラプトなので、上のURLの質問者様と同じ様にHIDクラスを用いれば実装が楽になるのかなと考えました。
…質問の解釈違いでしたらすいません。
現時点での解釈とわからない部分です。まだまだ勉強不足なので間違った解釈などあると思いますが、その際はご指摘くだされば幸いです。
・HIDクラスを使用する際、あらかじめ用意(インストール?)しておく必要がある物は?
・HIDクラスドライバを用いることで新たにドライバを開発する必要はなくなる。
HIDデバイスとして正しく実装されているものであれば、初めての接続時でも自動的にOS(?)が適切なクラスドライバを適用してくれるので、こちらでドライバを用意する必要がない。(クラスドライバはあらかじめsystem32フォルダなどに入っている???)
・PICFUNや秋月のキット(AKI-H8-USB)のサンプルなどでバルク転送による通信を行うサンプルが公開されていますが、これをHIDデバイス用として流用しようとするのは可能か。また、可能ならどのあたりの処理部を修正・追加する必要があるのか。
No.1
- 回答日時:
>何か教えていただけないでしょうか。
何を知りたいのでしょうか?
とりあえず、USBアナライザーにUSBマウスを繋いるだけで、
どのような通信データが必要かについては十分にな情報が所得できます。
コンフィグレーションであれば、USB関連の書籍はいろいろとあります。
定番ではCQ出版の赤本(最近は青本)がありますが。
ご回答ありがとうございます。
コンフィギュレーションでやりとりされるデータやその流れについてはある程度理解しているつもりです。
1. それらの処理をプログラムにするには一体どうすれば良いのか??
2. HIDクラスの利用(使用)方法。
3. そもそもHIDクラスが具体的にどんな機能を持っているのか、よくわからない
の3つで困っています。
…と、ここまで書いてからしばらくPCを放置していたのですが。
放置している間に1つ目の原因を考えていましたら、
・USBコントローラ(USBN9604)の使い方
がわかれば糸口はつかめそうな気がしてきました。
1についてはこれとは別に新しく質問したいと思います。なので知りたいのは2と3になります。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マウス・キーボード キーボードが動作しなくなりました。 4 2022/04/29 09:49
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- マウス・キーボード 【マルチペアリングのキーボード&マウスのセット】 1 2022/10/30 00:20
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- 大学・短大 大学一年生です レポートについて質問します レポートを制作しているのですが 教科書から全てを引用した 1 2023/06/02 03:21
- マウス・キーボード HPのデスクトップでいつも使っているHID準拠マウスですが、 2 2022/12/06 20:48
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- 数学 最大エントロピー原理をpythonで実装したい 2 2022/06/21 13:10
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グローバルIPとプライベートIP...
-
「天声人語」をインターネット...
-
eclipseのパッケージって何?
-
IPアドレスの3バイト目の呼び方
-
java eclipse 型に解決できません
-
同じクラスにならない確率を教...
-
CString: 識別子が見つかりません
-
ネスカフェ エクセラ と UCCク...
-
配列の重複する値とその個数を...
-
河合塾のクラス分けについて
-
Applet、Panelのクラス体系につ...
-
中学2年です‼︎ 明日.学級の級長...
-
dllと同じプロジェクトにする方法
-
どこからも呼ばれていない無意...
-
packageとimport の違いって?
-
標準モジュールとクラスモジュ...
-
クラスのプロパティに構造体を...
-
重複エラーを解決するには
-
UMLのクラス図はmain()も含むん...
-
標準入力 System.in について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3年間同じクラスになる確率
-
「天声人語」をインターネット...
-
配列の重複する値とその個数を...
-
自分事ですが、私のLINEのスク...
-
java eclipse 型に解決できません
-
同じクラスにならない確率を教...
-
どこからも呼ばれていない無意...
-
グローバルIPとプライベートIP...
-
担任にプレゼント
-
数学の計算問題。 3年間同じク...
-
クラスのプロパティに構造体を...
-
河合塾のクラス分けについて
-
IPアドレスのクラスAを取得して...
-
共通で使う関数を集めたクラス...
-
自作のクラスファイルがインポ...
-
1 つのヘッダファイルに複数の...
-
ヒートテックやファイバーヒー...
-
dllと同じプロジェクトにする方法
-
main()を持つクラスが2つ以上...
-
同一パッケージにあるクラスが...
おすすめ情報