2

自分で設計した電子機器と(シリアルポート経由で)通信するアプリケーションを書いています。

私のPCアプリケーションが起動すると、使用可能なCOMポートが1つずつ開き、文字列が送信されます(たとえば、「What areyou?」)。

私のデバイスは、その「魔法の質問」に自分のIDで応答するようにプログラムされています(たとえば、「私は従業員を監督するための邪悪なデバイスです」)。

私のPCソフトウェアがその「魔法の応答」を受信すると、正常に動作し始め、他のポートを検索しなくなります。

もちろん、データ送信で愚かな質問を使用していません。これは単なる例です。

質問は-デバイスを検出するために、すべての(ビジーではない)ポートのように文字列を送信できますか?

可能であれば、その「質問」文字列はどのように表示されますか?正規化された標準はありますか?

これは私の机の上のこのような最初のプロジェクトではありませんが、今は小さな業界向けのソリューションを開発しています。COMポートに接続されている他のデバイスがある可能性があり、それらがどのようにできるかわからないため、アプリケーションが何をしているかにもっと注意を払う必要があります反応します。

申し訳ありませんが、言語を間違えた場合は、英語が私の3番目の言語です。

返信ありがとうございます。

4

2 に答える 2

5

Alvin Wong が私の懸念を確認した後、もう一度考え直して、デバイス検出機能を再設計しました。そのアイデアを放棄したくないからです。

デバイスから 1 ~ 5 秒ごとに一意の複雑な ID を送信します。

PC が起動すると、使用可能なすべてのポートを順番に開こうとし、その ID を数秒間リッスンします。

アプリケーションがその ID を受信すると、ポート番号/名前が正しいことを確認し、接続が確立されます。

于 2012-10-01T17:04:48.857 に答える
2

いいえ、あなたはそれをしたくないでしょう。


COMシリアルポートを使用している場合、ポートに何が接続されているかわかりません。それは、あなたのデバイス、モデム、マウス(私はもう誰もこれを使用していないと信じていますが...)、またはあなたが想像することさえできないものである可能性があります。

別のコンピューター(おそらくLinux /ルーター)に接続されている場合、送信すると「そのコマンド」が実行され、予期しない影響が生じる可能性があります(プログラムは気付かない場合があります)。または、プログラムが不適切なデバイスの場合、ファームウェアにバグが発生し、デバイスに障害が発生して誤動作する可能性があります。

つまり、最悪の場合、壊滅的なイベントを引き起こす可能性があります。


シリアル(RS232またはUART)通信には、デバイスを識別するための指定された転送プロトコルがないため(USBにはあります)、フェイルセーフではありません。ユーザーは、正しいポートを選択したことを確認する必要があります。これはおそらく、ハードウェアメーカーがUSBを選択する理由の1つであり、コンピューターのバカにもUSBが非常に人気がある理由の1つです。

于 2012-10-01T16:25:07.820 に答える