6.メモリを返却(解放)する。7.デバイスやライブラリなどの終了処理をする。8.デバイスのファイルを閉じる。5の前後で、受け取った画像をファイルに書き出したり、サーバにアップロードしたりします。これらの処理を行うプログラムを作成しながら、要所要所にメッセージを仕込みました。作成中のプログラムは、ミスや足りない部分が多発するので、いざプログラムを実行した時に、そのプログラムがどこまで正しく動いているのか、外から眺めていても良く分かりません。そこで、プログラムのいたるところに、「この処理を通過した」とか「この処理を実行した後のこの変数の値はこうだった」といったメッセージを仕込むのです。しておけば、うまく動かなかった時に、「どこまで進んでどこで止まったのか」、うまくすれば「この時の変数の値がおかしいから、この処理がおかしい」とか直ぐにアタリを付けられます。動作した時も、「本当に完璧か?」「実は途中でまずい動きがあったが、結果的に最後まで動作しただけ」とか、色々と大事な収穫を得ることができます。実際、このプログラムも、設計中はもっと大量のメッセージを仕込んでいました。手抜きのメッセージ(後から見ても何のメッセージかわからないものとか)がほとんどですし、かっこ悪いのでほとんど消しましたが。メッセージに加えてタイムスタンプを仕込みました。どこの処理で時間がかかり、どこの部分を工夫すれば、課題を解決できるかわからなかったためです。これについては、WEBやサイトを見てもはっきりしませんでした。処理時間を知るためには、秒単位ではなく、ms(ミリ秒)単位の仕込みが必要です。そこで、timestamp()という関数を用意しました。これは、その関数を実行したその瞬間の時間をms単位で書き出すものです。して、課題解決のポイントが判明しました。撮影を止めて、再開(VIDIOC_STREAMON)しようとしてしまうと、また撮影開始までに待たされてしまうのです。撮影を止めなくても、画像の受け皿であるバッファを撮影処理(キュー)から切り離し、ファイルに落とした後に戻せば、継続して撮影画像を得ることができました。JPEGファイル化の処理を実行している間もキャプチャ処理が進んでいるので、2枚目以降のキャプチャ処理時間は、単純な足し算(200ms+190ms)よりも短い時間(約330ms)で実現します。JPEGファイル化や転送処理を行っている間もキャプチャを継続する様にしたので、処理中にキャプチャ用のバッファ(buf_count)が一杯になってしまう可能性があります。なるとキャプチャは一時停止し、処理が終わってバッファが解放されると、再びキャプチャが開始され、1枚キャプチャが終わるまで待たされます。その際の処理時間は約330msではなく、単純な足し算(200ms+190ms)と同じくらいになります。このプログラムにより、撮影に約2秒必要としていた所要時間が、約0.3秒になりました。して取得した画像データを、JPEGファイルにします。長くなるので、続きは別ページにします。プログラムのオプションこのプログラムの使い方を説明しておきましょう。入力し、コンパイルします。入力して実行することができます。以下のオプションがあります。JPEGファイル生成完了時に実行するコマンドやスクリプトを指定-sは次のように使用します。/var/www/html/というフォルダに置きながら、サーバにアップロードします。コメントをキャンセルメールアドレスが公開されることはありません。様々なセンサーやモジュールを利用ターゲットは小型ドローン。technology.。