私が取り組んでいるプロジェクトは、Netduino 3 WIFI(C#.NETマイクロフレームワーク)とPCアプリケーション(C#.NET Framework)とのインターフェイスになります。シリアルTTLカメラはNetduinoのCOMポートの1つに接続され、PCアプリは別のCOMポートに接続します。すべて8ビットUARTで通信します。私は、コマンドを送信して確認する目的のために、PC、Netduino、およびCameraの間でbyte []を送受信するのに成功しています。主な目的は、カメラに「画像取り込み」コマンドを送信し、.JEPGバイト[]が戻ってくるようにすることです。データ受信イベントが発生すると、データの受信を開始したいと考えています。私は多くの情報をオンラインで見つけることはできませんが、私が読んだことから、serialport.basestreamプロパティ、またはビットマップコンストラクタ(ストリーム)を使用する必要があるかもしれません。私はストリームのコンセプトにあまり慣れていないだけで、誰かが私に何らかの情報を教えてもらうか、これを設定する方法の例を与えることを願っています。シリアルポート経由で.JPEGストリームを受信し、保存して再送信
-1
A
答えて
0
ポートReadTimeoutをゼロに設定し、DataReceivedイベントにハンドラをインストールすることをお勧めします。これにより、データを送信する前に適切なヘッダーを送信すると、データをキャプチャして正しい次元のバイト配列に直接バッファすることができます(単純なチェックサムはおそらく間違っていません)。ハンドラは処理されるデータにチャンクで対処する必要がありますが、一度受け取ったら、バイト配列を処理してjpgを再構築して破棄することができます。 DataReceivedイベントは各バイトごとに発生しないので、そこに入ると、ハンドラを終了する前にゼロバイトを返すまでポートでReadを発行し続ける必要があります。
関連する問題
- 1. シリアルポート経由でデータを送信する
- 2. c#シリアルポート経由でコマンドを送信
- 3. シリアルポート経由でデータを送信
- 4. HTML5ページからシリアルポート経由で情報を送受信する
- 5. QSerialPortを使用してシリアルポート経由でデータを送信
- 6. ストリーム経由でファイルを送信する
- 7. Red5:受信ストリームの保存
- 8. webrequest経由でオブジェクトを送信し、Webサービスで受信
- 9. htmlフォームを保存し、ajax経由でPHPに送信
- 10. TCPソケット経由でバイト[]を送受信
- 11. シリアルポート受信中にデータを送信イベント
- 12. シリアルポート経由で小数点配列を送受信する方法は?
- 13. 3G経由のゲームセンター(GameKit)経由でデータを送受信する
- 14. Windowsコマンドプロンプトでシリアルポート経由でファイルを送信する方法
- 15. LinuxとCでシリアルポート経由でファイルを送信する
- 16. C#でシリアルポート経由で64バイトのパケットを送信
- 17. C#でシリアルポート経由でctrl + Cを送信していますか?
- 18. シリアルポート経由でPelco Dコードを送信するOpenWRT
- 19. C#Windowsフォームからシリアルポート経由でマイクロコントローラにコマンドを送信
- 20. シリアルポート経由で複数の値を送信
- 21. C# - シリアルポート経由でKPLコマンドをzebra ttp 2010プリンタに送信
- 22. ソケット経由の配列の送受信
- 23. シリアルポート経由での送信中にデータが破損する
- 24. AJAXを経由して送信ボタンを
- 25. シリアルポート経由で受信したデータからBufferedImageを作成する方法
- 26. HTTP経由で送信した後にJPEGが破損しました
- 27. HTTP経由の送受信データの保護
- 28. GameKit経由でNSDataを送受信します
- 29. websocket経由でファイルを受信し、ローカルフォルダに保存/書き込み
- 30. S3:putObject()POST経由で受信するストリーム
シリアルポートは8ビットパリティなしに設定する必要があります。 jpegを送信するときは、バイナリデータの前に4(または8ビット)の長さを付けます。その後、データをバイトとして送信します。受信側は、データの先頭から長さを取り除き、バイト(バイナリデータ)を読み取る必要があります。 – jdweng