電話のカメラのフラッシュライトを使用してモールス符号を送信するアプリを開発しようとしています。私の送信部分は正常に動作します。DOT または DASH に基づいてフラッシュをオンにし、GAP、LETTER_GAP、および WORD_GAP に基づいてオフにします。すべての DOT、DASH、GAP、LETTER_GAP、および WORD_GAP は、オンまたはオフになる期間が異なります。
受信側でこれをデコードする方法を理解するのに苦労しています...画像に明るいスポットがあるかどうかを確認するためにopencpバイナリしきい値を使用しています。カメラの fps に基づいて、ドット/ダッシュ/ギャップを決定するフラッシュが連続してオンまたはオフになったフレームの数を計算できます。ここに例があります。
送信機の電話から、「abc xyz」を文字列として送信しているとします。受信者の電話でこれらの文字列を取得しています
. -#- .*. .#- .*- . - .*. -#- .*- -#- -*.*. どこ、
「。」- ドット "-" - ダッシュ "*" - ギャップ "#" - 文字ギャップ " " - 単語ギャップ
この文字列は「abc xyz」を正確に表しています。問題は、すべてが光信号を使用して送信されているため、受信側の電話が新しいメッセージを探し始め、いつ停止するかを考えることができないことです。送信と受信の間に同期はありません。私はopencvによって提供された生のカメラフレームを処理するだけなので、受信機が開始信号と終了信号を識別する方法がないことを意味します。これらを課す方法はありますか?または検出/デコードを行うための代替ソリューション?
よくわからない場合はお知らせください。ありがとう!