問題タブ [com0com]

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.

0 投票する
2 に答える
6716 参照

linux - LinuxにCOM0COMのようなプログラムはありますか?

Windowsでのプログラムテストにcom0comを使用していますが、Linuxでcom0comのようなプログラムはありますか?

pts / ptmxがあることは知っていますが、私が欲しいのは、2つの仮想シリアルポートを提供するスタンドアロンプ​​ログラムです...

次に、2つのプログラムを開くことができます。各プログラムは1つに参加します...

0 投票する
1 に答える
3526 参照

java - com0com RS232 ターミナル Java プログラム

2 つの RS-232 ポートを備えたコンピューターで実行される Java プログラムを作成しました。

それはかなりうまくいきます。RS-232 経由で相互に通信する 2 つのデバイスを接続しました。パソコンをケーブルの間に挟みました。

端末ウィンドウですべてが送信されているのを確認できます。

しかし、ランダムな時間が経過すると、1 つのデバイスがクエリに応答しなくなります。

通常、デバイス 1 はクエリ 1 を送信し、デバイスは応答します。

しかし、しばらくすると、デバイスがクエリ 2 の送信を開始し、デバイス 2 が応答しなくなります。

ここにキャプチャがあります:

  • 最初の列: COM ポート ID
  • 2 列目: 文字の 10 進数表示
  • 3 列目: 文字の視覚化

https://i77.photobucket.com/albums/j74/bertyhell/errors/capture.png?t=1281084570

なぜこれが機能しないのですか?ターミナルプログラムは将来的にオープンソース化する予定です。

編集:コードが機能するため、コードを投稿しませんでした。5分から1時間後にのみ動作を停止します。

接続コードは次のとおりです。

これはレシーバーです:

これは送信者の 1 人です。

0 投票する
1 に答える
2011 参照

windows-xp - com0comサイレントインストール(テスト署名されたcom0com.sysは、エクスプローラーでサインインされているように表示されますが、デバイスマネージャーでは表示されません)

私の目標は、WinXPとWin2000の両方でインストールウィザードをポップアップせずにcom0comシリアルドライバをインストールすることです。

私はWinXPx86に取り組んでいます。私はcom0comドライバーのテスト署名手順に従い、60行目でamd64をi386に置き換えました。

次のコマンドを使用して、rootプロバイダーとtrustedproviderの両方としてテスト証明書を追加しました。

そして、それが両方の場所にリストされていることを確認しました。

次に、新しくビルドしたsetup.exeを実行します。これにより、署名されたcom0com.sysファイルがC:\ WINDOWS \ system32 \ DRIVERSにインストールされ、仮想シリアルポートのペアとそれらの間にバスがセットアップされます。エクスプローラーを使用して、DRIVERSディレクトリに移動し、com0com.sysファイルを右クリックして、「テスト」デジタル署名があることを確認します。次に、デバイスマネージャに移動し、「com0comシリアルポートエミュレータ」エントリを開き、エントリを選択して[プロパティ]-> [ドライバ]を実行し、「デジタル署名されていません」と表示されていることを確認します。ドライバーの詳細をクリックすると、署名されていることを確認したcom0com.sysドライバーファイルを参照していることがわかります。

関連する問題を見つけましたが、よくわかりません。WinXPはWHQL署名を要求しますか?もしそうなら、それはcom0com.sysファイルが署名されているのに、デバイスドライバーのエントリが署名されていないと言っている理由を説明していますか?

0 投票する
1 に答える
3521 参照

c# - C#シリアルポート、シリアルポート書き込みのシミュレーション

シリアルポートを介してPCをデバイスに接続するac#アプリがあります。

デバイスにデータを送信するときに、デバイスがデータを送り返すと、datareceivedイベントが発生します。

そして、私はこれを聞きたいです。デバイスのデータ送信をシミュレートする方法はありますか?

つまり、デバイスがデータを送信するときだけでなく、datareceivedイベントを発生させたいのです。

これは可能ですか?

0 投票する
3 に答える
13616 参照

winapi - com0com仮想ポートが見つかりません

私は64ビットのWindows7マシンにcom0comv2.2.2.0をインストールしました。

次のようなコマンドユーティリティを実行します。

注:「使用中」としてログに記録されたのはエラーメッセージではありませんか?

それから私はこのようにCOM8を開こうとします

これは失敗します

「COM8」と。の両方を試しまし"\\.\COM8"た。

CreateFileAへのまったく同じ呼び出しは、「実際の」COMポートで完全に機能することに注意してください。

Q:誰かが問題を教えてもらえますか?

A:Windows 7 64ビットでは、署名されていないドライバーのテストを有効にする必要があります。

  • 管理者としてコマンドプロンプトを実行します。(管理者権限を持つアカウントから実行するだけでは不十分です。これを行う方法の詳細については、ここを参照してください。)

  • コマンドを入力しますbcdedit -set TESTSIGNING ON

  • リブート。(Windowsは、デスクトップの右下に「テストモード」のメモを配置します)

Windows 8の場合、この方法は十分または簡単には機能しません。ここでは、問題と回避策について説明します。

あるいは、署名されたバージョンを試してみることもできます-私はこれを自分で試していません。

0 投票する
3 に答える
7157 参照

c# - C#でバッチファイルを作成する

バッチを作成するのはこれが初めてです。基本的に私はコマンドPromtにコマンドを書きたいです。だから私はバッチファイルが必要なので、C#でそれを実行してタスクを実行できます。

コマンドは次のようになります。

バッチファイルを作成し、c#コードを使用して実行する方法。

ありがとう

詳細:私はcom0comを使用して仮想ポートを作成しているので、主なアイデアはプロセスを自動化することです。これにより、コマンドポートに移動してコマンドを記述せずにポートを作成できます。

0 投票する
1 に答える
1427 参照

c# - C# で仮想 COM ポートを削除する

com0com を使用する前に作成された仮想 com ポートを削除するバッチ ファイルを作成しています。作成時に、ポート名が次のように名前変更されました。

したがって、削除する場合は、次のような元の名前を使用する必要があります。

元のポート名に対応するCNCA2

それで、ここで私がしようとしているのは、ユーザーがポート COM20 を削除することを選択した場合、どのようにして元の名前を取得できるのCNCxxでしょうか?

以下は、私が使用したコマンドのサンプルです:ここに画像の説明を入力

ご覧のとおり、書いremove COM150ても変化がないので、対応する名前を取得する必要がありremove 2ます.

listc#アプリケーションから、手動でコマンドを使用せずに対応する名前を取得するにはどうすればよいですか?

ありがとう。

0 投票する
1 に答える
612 参照

installation - How to know when com0com port installation is complete?

I am writing InstallAware script which installs com0com, creates several COM ports and also installs my application which uses those ports.

To create ports I run setupc.exe install with some options. Setupc does its job and quits very quickly. After that Windows starts its lengthy process telling user that a new device was found and do they want to install driver etc.

At the end of the installation process user sees standard screen saying that installation finished, do you want to run the app. I get to this point before windows finished installing drivers and can't proceed before it is done.

How can I know when all driver were installed and ports were created and I can use them?

I thought of writing a small app which would periodically try to open my ports. Installation script would wait till this app quits and then proceed to the final screen.

Is there any other way? Can I get any notification from Windows that driver installation is complete?

0 投票する
1 に答える
856 参照

serial-port - com0com インターセプト opos プリンター x はオフラインです

POS とプリンターの間でデータを傍受しようとしています。

私たちが遭遇した問題は、プリンター x を com0com エンドポイントに接続したときにプリンター x がオフラインであると POS が報告することです。

com0com エンドポイントの両側にあるハイパーターミナルのインスタンスは、相互に通信します。

ハードウェアが実際にシリアル ポートに接続されているかどうかを検出する方法があることを知りませんでした。通常、リッスンしているデバイスがあるかどうかに関係なく、com ポートに書き込みます。プリンターと通信するための基本的な方法であるため、pos は opos を使用することを知っています。プリンタがオフラインであると pos アプリケーションに通知するために opos が起動するイベントは何ですか? ハードウェアは、デバイスが接続されているかどうかをどのように識別しますか? com0com を使用しているときにこのイベントを回避する方法はありますか?

0 投票する
2 に答える
3861 参照

c# - C# で仮想シリアル ポートを開くと ArgumentException がスローされる

シリアル ポート経由でデバイスに接続するユーティリティがあります。このアプリケーションをテストするために、デバイス用のシミュレーターを作成しています。

どちらのアプリケーションも、同じ Windows 7 マシンで実行することを目的としています。

私はC#でシミュレーターを書いています。com0com を使用して、仮想ポートのペアを作成しました (この場合、既存のペアがいくつかあるため、CNCA8 と CNCB8 です)。

シミュレーターで CNCB8 を開こうとしています (アプリケーションはまだ実行されていません)。例外が発生します。

System.dll で 'System.ArgumentException' 型の未処理の例外が発生しました

追加情報: 指定されたポート名が COM/com で始まっていないか、有効なシリアル ポートに解決されません。

サンプルコード:

未使用の仮想ポートであるため、この質問は関係ありません (IsOpen は問題がある場合は false を返します): C# SerialPort#Open() メソッドは、ポート名のために ArgumentException をスローしますか?

編集:ポート名が SerialPort.GetPortNames() に表示され、Windows のデバイス マネージャーの「com0com シリアル ポート エミュレーター」の下に表示されることも確認しました。また、B の代わりに CNCA を使用して (いくつかの異なる既存の仮想ポートを使用して)、「HandShake」行を削除して、念のためにボーレートを 115200 に変更してみました (ただし、最終的には 9600 が必要です)。