0

Symbol MC3000 デバイス用のアプリケーションを開発しています。Windows CE 4.2 Professional を実行しています。アプリケーションは、ストア内の製品に関する情報を保存する単純なデータ駆動型アプリです。

私のクライアントは、シリアルおよび USB インターフェイスを介してデバイスと通信し、アプリケーションに保存されているデータを読み取りたいと考えています。そして、ここで私は立ち往生しています。

彼は、コンソールのようにデバイスにコマンドを送信したくありません。

RES:GET:DATA? - デバイスからすべてのデータを spec.format で受け取る

RES:GET:VN? - ソフトウェアのバージョンを取得します。

等々。

シリアルラインは大したことではありません。しかし、これを USB ポート経由でどのように実装しますか。(アクティブな同期またはネットワーク ソケットなし)

(デバイスは Linux または Windows マシンの USB に接続されている可能性があり、それらの端末コマンドは機能するはずです)

この問題を設計する方法について何かアイデアはありますか?

参考になる文献や資料を教えてください。

どうもありがとうございました。

アレフ

4

2 に答える 2

1

簡単で短い答えは「あなたはしない」です。

より複雑で長い答えは、それは可能ですが、必要な作業量は値よりもはるかに高価である可能性が高く、代替手段を検討する必要があります (たとえば、ネットワーク インターフェイスのメカニズムがある場合は、ソケット)。

USB 側については、USB がどのように機能するかを少なくとも一般的に理解する必要があります。そのデバイスを PC に接続するとき、PC には、デバイスとの通信方法を理解するドライバーが必要です。同時に、デバイスには、PC との通信方法を理解するドライバーが必要です。これらのドライバーは、効果的に通信できるように、お互いがどのように機能するかを理解する必要があります。

ActiveSync を使用すると、(古い 4.2 のもので) PC 上の ActiveSync にはシリアル オーバー USB ドライバーがあるため、デバイスを接続すると、PC は「これはシリアル デバイスのようです」と言い、 ActiveSync 自体は、そのシリアル層を使用してシリアル接続で PPP を実行します。デバイスで、接続が確立されると、OEM が入れたドライバー (具体的には usbser.dll) が起動して PC とネゴシエートし、ActiveSync のデバイス クライアントを起動してネットワークの作成を完了します。やった、やった。新しいデバイスは同様のメカニズムを使用しますが、PC には ENDIS サポートが付属しており、より堅牢で高速であるため、通常は Serial over USB の代わりに RNDIS を使用します。

ActiveSync を削除したいので、それらのドライバーを提供する必要があります - 両端に。最も抵抗の少ない方法は、おそらくHIDを使用することです。少なくともこの方法で PC 側は実行されます (マウスが使用するのと同じプロトコルなので、USB マウスを理解する Windows や Linux などの PC には、このためのドライバーがあります)。デバイスの HID ドライバーを作成する必要があります。それができたら、その USB パイプを使用して通信するためのアプリを両端で作成できます。

もちろん、これにはすべて、ドライバーをデバイスと場合によっては PC に展開することも必要になります。

于 2009-01-22T19:38:39.723 に答える
0

デバイスと PC の間に USB シリアル リンクを構築するのは困難です。Windows プラットフォームでは、回避策として RAPI を使用できます。デバイスは、ActiveSync を介して PC に接続します。次に、RAPI を使用して、リモート デバイスのレジストリを読み取り、デバイスでアプリケーションの実行を開始し、2 つの間でファイルを転送することができます。

データのリアルタイム転送が必要ない場合は、これでうまくいくと思います。Linux の場合、利用可能な RAPI SDK があるかどうかはわかりません。Windows では、OpenNetCF の RAPI SDK を使用できます。これにより、作業がずっと楽になります。

于 2009-01-23T13:35:52.293 に答える