問題タブ [usbserial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serial-port - C#で特定のRFID USBデバイスに接続する方法
USB(シリアルポートまたはCOM)経由でPCに接続し、データを送信するRFIDデバイスを持っていますが、接続したポートの名前を取得するにはどうすればよいですか? どうすればそのデータを取得できますか? (16 バイトを 16 進形式で送信します)
このコードは C# で書いたのですが、うまくいきません!
このデバイス接続を検出し、そこからデータを受信するのを待ちたいと思います。私がそれをするのは初めてです。私は今とても混乱しています。:(
android - USB(多産)からAndroidデバイスへのデータ転送
FTDI デバイスの USB データの読み取りについて投稿された質問を見つけました。 データ転送 USB このコードを大量のデバイスに使用しました。conn.bulkTransfer() が -1 を返すことを除いて、usb を検出できます。
どのような変更を加える必要があるか誰か教えてもらえますか? 前もって感謝します。
c# - System.IO.Serial
照会時に番号を送信することになっているUSBデバイスがあります。
私が持っている指示は次のとおりです。
- USBポートをPCに接続し、仮想シリアルポートを9600ボー、8データビット、パリティなし、1ストップビットで開きます。
- ESCを送信します(文字27だと思います)
- 確認応答として「>」が表示されます
- 「c」を送信すると、カウントの後に「<」が続きます
私はどこを見ても、ユニットからの応答を得る方法がわからないので、私が読んでいるものを理解してはいけません。
- 「ESC」キーを正しく送信していますか?
- 応答を適切に照会していますか?
- 想定される応答を正しく表示していますか?
libusb
調査する必要があるものはありますか?以前のバージョンの.NET用のライブラリだと思いました。
前もって感謝します。
これが私のコードです:
}
ubuntu - Ubuntu 12.04 の USB シリアル ポートでボー レートを設定できない
USBシリアルポートを介して115,200ボーで組み込みデバイスを接続するプロジェクトで、Ubuntu 10.04からアップグレードしました。これをアップグレードしたら動かなくなったのですが、再起動したら接続できました。システムをシャットダウンして再起動してから、接続できませんでした。シリアル回線が間違ったボーレートで接続されているようです (次のような高速な文字列:
USB デバイスは として認識され、セットアップされてい/dev/ttyUSB0
ます。ボーレートを設定しようとすると、次のstty
ようになります。
設定しようと9600
すると、うまくいくようです:
しかし、それ以外は失敗します:
stty が見るものは次のとおりです。
stty (echo、echoe など) を使用して他の値を変更できますが、ボーレートは変更できません。
誰かがMinicomでボーを設定できるが、コマンドラインからは設定できないというコメントをオンラインで見たので、Minicom を入手して試しましたが、同じ結果が得られました (ボーレートが間違っているようです)。
私もsetserialを試しましたが、それも/dev/ttyUSB
デバイスの受け入れを拒否しています:
最後に、デバイスと dmesg からのセットアップを次に示します。
私はこのデバイスを Ubuntu 10.04 で数か月間使用しており、先週は使用できましたが、シャットダウンして再起動してから使用できませんでした。オンラインで調べたところ、同様の問題を抱えている人が何人か見つかりましたが、解決策はありませんでした。この問題を解決するにはどうすればよいですか?
python - Pythonでの半二重シリアル通信
USB /シリアルアダプタが組み込まれたデバイスがあります(Prolific PL2303として表示されます)。デバイスのドキュメントには、デバイスとの通信方法の詳細と、サンプルのWindowsアプリが記載されています。ただし、Linuxで使用する必要があります。理想的にはPythonで使用しますが、それについてはそれほど貴重ではありません。
デバイスのドキュメントには、デバイスが9600、8N1、ハーフデュプレックスで実行されていると記載されています。Windowsアプリは正常に動作します-デバイスは正常に動作します(したがって、デバイスの問題ではないことがわかります)。ただし、LinuxでPythonを使用して通信することはできません。私はpySerialを使用しており、正常に動作する同様の(全二重、PL2303も)デバイスを試しました。
xonxoff、rtsctsなどの設定のいくつかの組み合わせを試しました。また、setRTS(True)を使用してRTSを切り替え、CTSやDSRなどをチェックしてみました。すべてFalseが返されます。pySerialを使用してデバイスを正常に開くことができ(アクティビティライトが点滅しているのがわかります-シンプルですが効果的なテストです)、読み取り/書き込み中にプラグを抜くとpySerialが文句を言います。
設定したフラグ/行や送信するデータは関係ないようですが、常に同じ結果が得られます。
書き込みコマンドのデータを無視します。これは単なるステータスチェックコマンドです。そこに何が入っていても、デバイスは応答またはエラーで応答する必要があります。
さまざまなctsrtsフラグなどを設定し、プラグを抜いたり再度差し込んだりして強制的にリセットするまでの間に、デバイスを閉じてから再度開くこともしました。上記のように、Windowsテストアプリを使用しても引き続き正常に動作します。Portmonなどを使用してWindowsポートトラフィックをスニッフィングすることはできません。これは64ビットのWin7インストールであり、現在XPマシンを構築する時間がないためです。
何かご意見は?
更新:デモアプリが動作するのと同じWindowsボックスでPythonを使用して、上記のすべてを試しました。それは間違いなくポートを開いて通信しますが、何が書かれているかに関係なく、再び情報は返されません。
UPDATE2:デバイスドライバーに関連している可能性があります。いくつかの追加の背景調査は、一部のPL2303チップが半二重をサポートする機能を備えていることを示唆していますが、これはLinuxドライバーではサポートされていません。Windowsデモアプリには専用のデバイスドライバーが付属しており、デフォルトのWindowsドライバーを使用するクリーンなテストマシンではアプリは動作しません。これにより、Pythonを介して正常に接続できますが、二重通信を制御できない(たとえば、STX / ETXの方法でも)ため、これは絶望的なケースである可能性があります。 ため息。
UPDATE3:以下のコメントをありがとう。しかし、私はこれを回避する方法を見つけることができませんでした。USBプロトコルアナライザーを試し、ドライバーを分解しようとしましたが、かなり時間がかかったので、最終的にデバイスを分解し、いじくり回した後、既存のusb-シリアルアダプターを適切なPL2303パーツに交換することができました-デバイス側では、基本的な2線式シリアルインターフェイスであるため、何が通信しているのかは気になりませんでした。この質問を閉じることができないようですので、そのままにしておきます。
android - androidusbホスト許可確認ダイアログをバイパスする
業界でAndroidを使いたい、
slickdevlabs.comライブラリを使用してProfilicおよびFtdiUSBtoSerialチップに問題なく接続できます。
アプリケーションにはサービスがあり、起動時に起動し、USBシリアルポートに接続して他のことを行います。
私の問題は、ホストデバイスがユーザーと対話しないことです。
だからアンドロイドが尋ねるとき
[OK]をクリックする人は誰もいません。
[デフォルトで使用する...]チェックボックスをオンにしても、USBを再挿入するか、ホストデバイスを再起動すると、次回の起動時に再度要求されます。
スーパーユーザーモードでサービスとアプリを実行しましたが、違いはありません。もう一度尋ねます。
インテントフィルターを追加しましたが、違いはありません。毎回尋ねられます。
それをバイパスまたは無効にする方法についての意見はありますか?
ルートとSUにアクセスできます。
windows - Windows XP で USB シリアル ドングル用の安定した COM ポートを取得するにはどうすればよいですか?
組み込みシステムを開発していて、通信用のシリアル ポートが必要です。
Windows XP では、USB シリアル ポート ドングルの番号が頻繁に変化するため、スクリプトやメイクファイルで使用するのが難しくなります (たとえば、組み込みのブートローダーを介して NXP コントローラーをフラッシュ プログラミングする場合や、ターゲットと 2 つのラボ デバイスを同じ場所で制御する場合など)。同時)。
このようなドングルの COM ポートを修正する方法はありますか? Linux では、FTDI ドングルのシリアル番号と照合することで、udev を介してこれを行うことができます (この質問に対する回答を検索しているときに私が提供したこの回答を参照してください)。
c - シリアル ポートの read() が一度に取得できるバイト数は少なくなります
オペレーティングシステム: Ubuntu
使用するシリアルポート: USB->シリアルアダプタ (豊富な PL2303)
サンプルのシリアル ポート読み取りおよび書き込みプログラムがあります。アプリケーションの実行中に、4100バイトを送信しようとしています。これを一発で実行できるプログラムを作成します。
ここで「n」値を確認していますが、4100 です。
I*ストロング テキスト*n 受信側
上記の行はループしています。1 回の読み取り試行で 32 バイト以下しか取得できません。そのため、128 回を超える読み取り試行 (32+32+32 など) を実行して、完全なバイト (4100) を取得します。
送信側では全バイトを一発でプッシュできるのに、なぜ一発で受信できないのでしょうか?
c# - USB 接続の「セマフォのタイムアウト時間の期限が切れました」エラー
このエラーが発生しています...
セマフォのタイムアウト期間が満了しました。
この線で...
ThePorts.ActivePort1.Open();
…でもたまにしか出てこない。それが起こるとき、それは何度も何度も起こります。その後、問題は数時間または数日にわたって解消されますが、その後再発します。
シリアルポートは、BlueTooth が接続された USB です。
この男は非常によく似た問題を抱えていたと思いますが、C#ではそうではありませんでした
usbser.sys で SerialPort.Open / DeviceIoControl / GetcommState でフリーズする
私が推定できる限り、私は彼の問題全体、結果のコメント、および回答を読みましたが、どれが彼の問題を解決したのか、または C# が彼が経験していたものと大きく異なるのかどうかはわかりません。
無知のための助けをありがとう。これは、それが起こっている実際のコードです。
visual-c++ - USBデバイスを一意に識別する方法は?
オペレーティングシステムがMac-ID、ハードディスクID、イーサネットカードIDが一意の識別子を持っているように、USBデバイスを一意の識別子で識別することは可能ですか?USBパーティションのボリュームシリアル番号を簡単に変更できること、またはユーザーがフォーマットするときに変更できることを知っています。
しかし、WMIサービスを使用してMFC(Visual C ++またはC#)を介して取得できる「USBハードディスクIDまたはUSBハードウェアID」のようなIDはありますか?そのような識別子は物理デバイスに固有ですか?親切に明確にしてください...