5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

USBドライバーって

1 :よっち:02/04/23 00:32
初めて書き込ませてもらいます。

最近、USBドライバを作らないといけなくなったのですが
C++ビルダー5でUSBドライバを作ることはできるのでしょうか?

ネットで調べた限りではVC++でDDKを使ってつくるとしか載っていなかったので
おそらくダメだとは思いますけど・・・

初心者質問ですみませんがよろしくお願いします。
m(__)m



2 :デフォルトの名無しさん:02/04/23 00:32


3 :デフォルトの名無しさん:02/04/23 00:37
   ((⌒))
    | | |
   ( ゚д゚)ドカーン

4 :デフォルトの名無しさん:02/04/23 06:29
よっちのチンチン舐め舐めしたい・・・

5 :デフォルトの名無しさん:02/04/23 07:01
なぜ質問スレに書かなかったのですか?

6 :デフォルトの名無しさん:02/04/23 08:30
このスレは以下放置でお願いします。
単発質問スレは避け、下記の総合スレまたはそれぞれの専用スレでお願いします。

***すれ立てるまでもない質問はここで 第13刷***
http://pc.2ch.net/test/read.cgi/tech/1018752281/l50

7 :デフォルトの名無しさん:02/04/23 23:07
>>1
http://www.google.co.jp/search?hl=ja&q=USB+%83h%83%89%83C%83o+%8AJ%94%AD&lr=lang_ja

Linux で USB ドライバを作ってみたいんだけど、サンデープログラマーでも
作れちゃうものなの?
あと、h/w のアーキテクチャ (x86, Alpaha, PowerPC, etc...) も勉強する必要
ある?

8 :デフォルトの名無しさん:02/04/23 23:21
>なぜ質問スレに書かなかったのですか?
DelphiとVBとHSPのスレばっかり立つので飽きてきてる。
漏れは毛色の違うスレの伸びに期待したいところ。
反デルとかそういうのじゃなくて変化が欲しいね。

9 :デフォルトの名無しさん:02/04/23 23:23
RS232Cの方が簡単でよさげな予感

10 :デフォルトの名無しさん:02/04/23 23:30
うすぶ頭後薄れ
http://pc.2ch.net/test/read.cgi/linux/1002630729/


11 :デフォルトの名無しさん:02/04/24 00:36
Builderじゃ無理でしょ。素直にVCで作りなさい。
仕事ならなおさら、Builderで動かそうとする時間自体もったいない。

とりあえず、DDKのサンプルをごちゃごちゃいじれば、一応動くモノは
できるよ。


以上、USBドライバは一応作ったことのあるDel厨でした。


12 :デフォルトの名無しさん:02/04/24 10:32
適当なハードとそのUSB仕様が手に入ればプログラム自体はそんなに難しくない。
ただし↑の方が実は難しいという罠。

/usr/src/linux/drivers/usbとかの下を見て、適当にアレンジすればよいと思う。
(どれも高々500行程度なのでいくつか読んでれば書き方のパターンが見えてくる)
内部解説が欲しい場合ははオライリー「Linuxデバイスドライバ」とusb.hを見るべし。
USBプロトコル仕様はInterface増刊とかに載ってる。ここにはLinuxサンプルドライバも
載ってるが、あまり見ないほうが良い(w

h/wの違いはLinux側で吸収してくれるので考慮する必要は無し。…と思う。
以上、健闘を祈る。

13 :デフォルトの名無しさん:02/04/25 20:25
>>12
thanx!

14 :デフォルトの名無しさん:02/04/29 21:04
質問なんですが、あるジョイスティックで操作するソフトがあって、そのパソコンとUSBで接続された
もう一つのパソコンのソフトでジョイスティックの入力をまねることは出来ますか?

15 :デフォルトの名無しさん:02/04/29 23:39
>>14
いまいち意味が伝わらないが、
ようするにリモートコントロールをしたいってことか?

16 :デフォルトの名無しさん:02/05/01 01:52
>>15
レスありがとうございます。

説明が悪かったようですね。

>ようするにリモートコントロールをしたいってことか?

はい。リモートコントロールがしたいのです。
ただし、リモートコントロールの対称のソフトにはUSBのジョイスティックも
つなげれるようにしたいのです。

そこで今お尋ねしたいことは、リモートコントロールの操作を行うソフトがある
パソコンのUSBから、USBのジョイスティックの様な出力を行う事が
できるのかということです。

17 :デフォルトの名無しさん:02/05/01 02:58
>>16
正しい日本語、正しい漢字でお願いします。


18 :デフォルトの名無しさん:02/05/01 03:00
>>17
すいません。
対称->対象
これでいいですか?

19 :デフォルトの名無しさん:02/05/01 03:05
>>18
よくないけど、まぁ、理解できなくもないけど。

とりあえずUSBケーブルを眺めてPC同士がつながるかどうか
ためしてみませぅ。

20 :デフォルトの名無しさん:02/05/01 03:05
USB 接続か。昔 2ch で見たのを保存しといたな、と古いファイル
漁ったらこんなん出てきた↓。
____________________________________________________________
int main()
  char Buffer[256];
  HANDLE hUsb;

  hUsb = CreateFile(
    "\\\\USB0", // USB1,USB2,USB3・・・・
    GENERIC_READ | GENERIC_WRITE,
    0,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL
  );
  if (hUsb == INVALID_HANDLE_VALUE)
  {
    return NULL;
  }

  DWORD rb;
  ReadFile(hUsb, Buffer, 256, &rb, NULL); // receive
  WriteFile(hUsb, (LPVOID)Buffer, 256, &rb, NULL); // send
  CloseHandle(hUsb);
  return 0;
}


21 :デフォルトの名無しさん:02/05/01 03:11
すいません。今USBのケーブルを持っていないので、試すことが出来ません。
ここに「USB ←→ USB ネットワーク」と書いてあるので
USBでパソコン同士を接続することはできると思うんですけど、
出来ないのですか?
http://linux.nikkeibp.co.jp/column/inflection/6/usb3.html

22 :デフォルトの名無しさん:02/05/01 03:27
http://www.picfun.com/usb00.html
ここのページで少し勉強していたんですが、
USBには4種類のプロトコルがあり、ジョイスティックなども
そのプロトコルの内のどれかを使うことによってデータを送信
しているわけですよね?

ということは、同じプロトコルを用いて通信すればパソコンからの
出力でジョイスティックの操作の代わりが出来ると思うのですが
どうですか?

23 :デフォルトの名無しさん:02/05/01 03:27
(少し情報が古いかも)
USBはバスあたりホストノード(パソコン)1台となります。
USBクロスリンクケーブルはデバイスノードが2つありそれぞれ
論理的にアイソレートされています。
パソコン間をUSBで接続するには専用ドライバが必要にないります。


24 :22:02/05/01 03:44
>>23
ということは、ジョイスティックを接続するのとは違うということですね。

それでは、ジョイスティックが差されているのか、他のパソコンが差されているのかを
ソフトで判断し、それぞれに合わせた処理を行わす事は出来るのでしょうか?

それとも、別々のプログラムとして作成しなくてはならないのでしょうか?

あと、どのようなことがやりたいのかもう少し具体的に説明しますね。
 僕がやりたいことは、ヘリコプターをコンピュータで制御することです。
で、実機で実験していては壊れたら大変なので、まずヘリコプターのシミュレータ
を作成します。で、もう一つのパソコンからUSBを用いて制御するソフトを
作成しようと思っています。
その時、人間の操作とコンピュータの制御との比較を行いたいので、
プロポ(ラジコンの操作するやつ)型のジョイスティックとコンピュータを取り替え
れるようにしたいのです。

25 :22:02/05/01 04:23
http://www.qst.co.jp/
ここを見ていると、どうやらパソコン同士を接続するためには
特殊なUSBケーブルが必要なようですね。

26 :23:02/05/01 04:29
>>24
22とかぶってしまいました。23はクロスリンクケーブルのことのみです。

ヘリコプター版CCVですか?かなり主観が入ってますが3つの問題点があります。

@デバイスドライバを自分で作成するレベルがあればどのような組み合わせ
 実現可能です。経験がなければ、かなりの工数を取られます。

AヘリのシミュレータとJOYエミュレータのソフトを自分で制作するなら
 API(DirectX等)を1まいラッピングしたクラスを定義して
 ラッパーをアプリケーションのインターフェースとします。(結構思いつきですが)
 ラッパーを交換するとによりJYOとJYOエミューレータの切り替えを行います。
 ラッパーの作成はC++などの経験が多少必要かも知れません。(Cで組めなくないが)
 制御シミュレーションソフトにMatlabなど使うとこの方法はとりにくいと思います。

Bパソコンは人命にかかわる機器を制御できません。(たとえ模型のヘリと
 いえども)パソコン周辺機器についても同じことが言えると思います。
 シミュレータはまったく問題ないと思います。
 (ジョイステックでヘリのシミュレーションをするだけなら
  MS Flight Sim.で十分ですが・・・)



27 :23:02/05/01 04:33
>>25
確かI/O-DATAでも同じような商品を出していたと思いますが
ドライバはUSBドライバでなく、LANドライバになってたと思います。
(下の層はUSBドライバでしょうけど)

28 :デフォルトの名無しさん:02/05/01 13:29
シリアルでやった方が早くない?
ジョイスティックだから、、そんなにデータは流さないでしょ・・・


29 :デフォルトの名無しさん:02/05/01 23:55
つーか、今のご時世TCP/IPでやった方が断然楽だと思うんだが・・・

30 :22:02/05/02 02:05
レスが遅れてすいません。

>>26
こういうことをCCVというんですね、勉強になりました。
Googleで調べて参考にしてみます。

>>@
確かに工数が問題ですね。
USBの部分より他のことに力を入れたいのであまり工数が掛かりすぎる
のはいけませんね。

>>A
C++の経験はあります。というか、C++とJAVAくらいしかわかりません。
やはり、ラッパーを交換するような形になりますかね。

>>B
同意です。
自分の乗っている飛行機がWindowsで飛んでいたらかなりいやですね。

>>28
それもそうなんですけど、自分のプログラミングの技術の向上になると
思うので。
それとも、USBはあまり将来性がないのでしょうか?

>>29
TCP/IPではジョイスティックを差したりは出来ないですよね?
たぶん、パソコン同士の接続の部分について言ってるんだと思いますが。
間違っているかもしれませんが、TCP/IPではアナログな機器の制御
などはできませんよね。
最終的に実機のラジコンヘリを制御したいわけで、パソコンからの出力
をプロポの出力に変換する必要があります。
この時TCP/IPではできないと思うのです。
というか、TCP/IPなどはもっと上位の部分でなんか違う気がするんですけど。


31 :デフォルトの名無しさん:02/05/02 02:11
コントローラクラスで、パッドを実装したクラスと、
TCP/IPによるコントロールを実装したクラスを作って、
統一的に扱えるようにしろって事じゃないの?

32 :22:02/05/02 02:39
>>31
ってことは、26さんが言ってるのとおなじようなことですね?
つまり、シミュレータ側にコントローラとTCP/IPを扱うクラスの二つを
作り、状況に合わせて切り替えられる用にする。
また、制御する側にも二つのクラスを作り、シミュレータを用いる時と
実機を操作する時で使い分けるということですね。

TCP/IPのプログラミングはやったことがあるので、パソコン同士の
接続はこれが一番楽だとは思います。
あまり良い解決策がみつからなければ、この方法を用いるかもしれません。

ただ、美しくないというか・・・。
USBだけで済ませられる方がかっこよくありませんか?
あと、純粋にUSBではどのようなことができるのか知りたいってのもあります。

33 :デフォルトの名無しさん:02/05/02 02:46
>>32
だったら、USBコントローラから自作しろよ。

34 :デフォルトの名無しさん:02/05/02 02:52
>32
「美しくない」 なんて言葉は、最後まで作り上げたものだけが吐ける台詞だ。
まず作れ。 で、あとでうまい方法思いついたら差し替えられるようにしとけ。

35 :デフォルトの名無しさん:02/05/02 02:59
とりあえず、USBクロスケーブルで作るのは無理
(というか、ドライバ2つ作るから面倒)だから、

プロトコルを変換するハードを作って、
シミュレータがあるPCにはUSBコントローラと認識させて、
コントローラ側のPC用のドライバだけ書き上げるのがいいんじゃないか。

36 :22:02/05/02 02:59
>>33
来ると思ってました。
こういうやりとり今まで見てきましたけど、あまり2chで発言しないんで
自分がその立場になるのは、うれしいというか・・・。
期待どうりの答えが返ってくるのはなんかおもろいです。

それから、31さんの意見とかは参考にしてます。
ただ、スレッドのタイトルからUSBに話を持っていった方が有益かと
思われたので。

USBコントローラ自作するのは厳しいので遠慮します。



37 :22:02/05/02 03:26
すいません。書き込んでる間にレスしてくれたようで。

>>34
そうですね。すいません偉そうなことを言って。
シミュレータの部分は作りかけています。
とりあえず、自分のできる所から作って行こうと思います。
話変わりますけど、今はなんとか動く物が作れるだけで、
メンテのしやすさとか、そういったものまで考えた
プログラムを作るのは難しいですね。
本当はフローチャートとか作成したりしてきっちりとした仕様を
作った方が良いんでしょうけど、いきあたりばったりで作っているんで
クラスの仕様の変更とか良く起こります。
まだまだ、勉強が必要ですね。

>>35
ホストへの転送として送られたものをエンドポイントへの転送に変換し、
また、その逆を行ったりするということでしょうか?

38 :23:02/05/02 05:19
30
厳密に言うと、CCVとは能動制御を前提とした機体または機体設計のことを指します。

能動制御装置(ACTIVE CONTROLER)の制御定数を触り、状態変数を観測して
チューニングするのが目的(?)なので装置は下の構成になると思います。

@人間の操作を記録
 human       pc1                 pc2
 [joy]--USB/MIDI--[--recorder-->ACTIVE CONTROLER-]->[ Fli.Sim.]->[CRT]

A人間の操作を再生(チューニングモード)
[ player-->ACTIVE CONTROLER-]->[ Fli.Sim.]->[CRT]

B本番(or 製品)                             
 human       pc1
 [joy]--USB/MIDI--[-- pass -->ACTIVE CONTROLER-]->[propo]->[servo]->[airplane]

このACTIVE CONTROLERとrecoder/playerのソースを自作する限りUSBコントローラ/MIDI
ポートに関する知識は不要です。むしろDirectInputの方が重要だと思います。

蛇足ですが多くの(ある種の?)制御屋は、Ethernet&TCPIPで物を制御し動かす
ことを好みません。使う場合は情報系と制御系を分離しています。


39 :デフォルトの名無しさん:02/05/19 18:03
>38
IPで操作を嫌う理由って何?
速度とかコネクションがいつ切れてもおかしくない仕様だから?

40 :SH3:02/06/17 07:14
SH3のUSBファンクションがうまく動かないのですが、参考になるソースを
どこかで公開していませんか。
あちこちのオープンソースのサイトを探してみたのですが、発展途上でどこも
公開をしてくれていないのですね。
だれか、知っている人いませんか。

16 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)