OSCとUART

ここ数日、というか1週間くらい、OSCをUART上で取り扱うのに四苦八苦
というか頭抱えてます。
 
何をしているかというと、TELEC認証を取得してるWi-Fiモジュールのテスト。
認証取得済みのモジュールはほぼUARTでマイコンと通信を行うので、OSCの
送受信時に、どうしてもUARTを介することになる。
 
相性が悪いというか、OSCはUDP上で扱われることを想定して作られたフォー
マットなので、UART上では扱いにくい。何が問題かというと、デリミターが
ないということ。パケットの長さが4の倍数でしかなく、終端が分からない。
 
送信はともかく、UARTからの受信がね。どうもポーリングだと上手く行かず、
受信割り込みで1バイトずつ取得してるけど、Mainループでやってる既存のOSC
処理との排他処理が・・・な感じ。
 
受信割り込みを抜ける前にバッファが空か確認して、空だったらOSCメッセージ
の受信完了とみなし、バッファが空じゃなかったら引き続き受信としてるけど、
受信割り込み内部で、バッファの状態確認するって、おいおいな気がしてならない。
バッファが空だから割り込みがかからない、バッファにデータがあるから割り込み
がかかるって事だからね。
 
OSCメッセージの引数の末尾にデリミターの役割を果たす引数を必ずつければ、
良いんだけど、それもなんか悔しい。
 
一旦寝かせて、頭冷やさないとダメな感じなので、ひとまず経過を殴り書き。ふー。

コメントをどうぞ

Your email address will not be published. Required fields are marked *

*