マイコン工作実験日記

Microcontroller を用いての工作、実験記録

MW600の動きを調べてみる -- その2

2010-12-10 23:21:18 | Weblog
MW600の続きです。今回はMW600の動きをWT32側から見てみます。MW600の電源を入れると、直前にペアリングしてあった相手に自動的に接続してきますが、その時の様子を見てみると。。↓



HFPの接続後に、MW600はなにやらいくつものATコマンドを送ってきているのですが、WT32はこれらをサポートしていないためにメッセージを表示しています。これらのコマンドのうち、AT+CCLK?が時刻を問い合わせているコマンドのようです。こいつに応答して現在の時刻を表す文字列を返してやれば、MW600はそのディスプレイに時刻を表示してくれるのであろうと推測されます。

発信者番号については、WT32にRINGコマンドを送る際に、引数で番号を指定してやります。最初の引数は着信音を鳴らす最大回数です。



とすると。。




このとおり、発信者番号が表示されます。最初にプラスが表示されてしまうのは、番号のフォーマットの指定の問題だと思うのですが、iWRAPからどのようにしてフォーマットのタイプを指定するのかわかりません。ちょっと気になるのですが、見て見ぬフリをする方向で。。

上記の例ではMW600を使って応答した後で、MW600から切断をかけています。音声も呼もちゃんと切れるのですが、どういうわけかA2DPとAVRCPの接続まで切れてしまいます。ログでNO CARRIER 4が通話のSCOが切れたところなのですが、続く3, 2, 1のNO CARRIERでA2DPとAVRCPが切れてしまっているのです。この問題、いつも発生するわけでもないようなのですが、どうもiWRAPとMW600のBluetoothスタックの相性というか、どちらかの実装に問題があるんじゃないかと思われます。

発信者番号だけでなく名前も引数として追加してやると最初に着信音が鳴る時には番号が表示されますが、2回目以降は名前が表示されるようです。最初のATコマンドでUTF8という文字が見えたので、UTF8で送ってやれば日本語での表示もできるのではないかと想像して試してみました。



予想どおり、バッチリ日本語表示できました↓。文字数は、これが限界のようで、横スクロールするような芸はありませんでした。



このように名前を表示するための手段はわかったのですが、今のところジャケットには電話帳機能がありません。そのため、発信者番号から名前を求めることができないので、この機能を活かすことができず、発信者番号の表示しかしていません。

もうひとつの残念な機能が曲名表示。こちらはAVRCPの機能なのですが、WT32 iWRAPのtarget側実装ではこの機能がサポートされていません。controller側には、曲名情報を要求するコマンドがサポートされているのですが。。。まぁ、iWRAPという仕掛けの制約というか限界というところでしょうか。こうゆう制約を見るにつけ、やはりWT32はAVRCPではtarget側よりはcontoller側、HFPではAGよりもHF側として使った方が、その機能を活かすことができるように思われます。つまり、MW600のようなものを自作するのに向いていると言えます。