iPodとのシリアル通信させてみる(その3)
![]() [0xFF]-[0x55]-[0x03]-[0x00]-[0x01]-[0x04]-[0xF8] を送ると「アドバンス・iPod・リモートモード」になる。 そのとき画面はNIKEのマークみたいのが出る。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
【モード0x04:アドバンスド・iPod・リモート(=AdvancediPodRemote)】
|
今までのを統合するとこんな感じ・・・(;´∀`)

| 固定リンク | 0
![]() [0xFF]-[0x55]-[0x03]-[0x00]-[0x01]-[0x04]-[0xF8] を送ると「アドバンス・iPod・リモートモード」になる。 そのとき画面はNIKEのマークみたいのが出る。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
【モード0x04:アドバンスド・iPod・リモート(=AdvancediPodRemote)】
|
| 固定リンク | 0
この記事へのトラックバック一覧です: iPodとのシリアル通信させてみる(その3):
» iPodとのシリアル通信させてみる(その4) [じむの(とりあえず)やってみたの巻]
前回書いたMode4(AiRモード)で『[0x00]-[0x32]』コマンドは4 [続きを読む]
受信: 2007/12/24 14:37
コメント
だんでろんさん、書込みどーもです。
え〜っと、ずいぶん昔のネタだったので、かなり忘れています。
久々に読み返しての回答をしたいと思います。
通常“チェックサム”をデータ末尾に付けるのですが、付けていますでしょうか?
提示された例題コマンドを見て、そう感じました。
投稿: じむ | 2012/02/12 15:52
はじめまして。
ipodからのデータ取得部分について、情報を探していたらこのブログにたどり着きました。
コマンドを送信して、モード4への移行はできたようなのですが、
0xff 0x55 0x03 0x04 0x00 0x14
のようなコマンドを送信しても、返信がありません。
acknowrichというシリアル通信ソフトを使って確認しています。
なにか命令は間違っていますでしょうか。
投稿: だんでろん | 2012/02/12 11:45
saitoさんコメントどーもです。
動き始めたようですね。
シリアル通信にはユーザが解析した資料がありますが、コレといった教科書が無いので自分が思ったように動けばそれが正解だと思っています。
では早速質問に答えます。
最初にマスターであるPCやらPICからのiPod名要求コマンド(0x14)を送信すると、それに対してiPodが以下のように返信してきます・・・
受信配列 その内容
[0][1] [0xFF][0x55]・・・データヘッダ
[2] [0x??] ・・・以後続くデータ長
[3] [0x04] ・・・モード4
[4] [0x00] ・・・コマンド頭固定値(?)
[5] [0x15] ・・・以後iPod名だよ
: :
[n] チェックサム
の順でデータが送られてくるはずです。
これはマスターであるPC(PIC)が送るコマンドと同じ構成で返信データ(キャラクター群)が反ってくるというこってす。
なのでPC(PIC)のやることは、
1)iPodのデータが欲しいコマンドを送る
2)iPodからデータがくるのを待つ
(要タイムアウト処理)
3)来たデータからヘッダーを見つけ出し、
4)送ったコマンドに対する返答データか判断する
5)もしそうなら、キャラクターを抽出
→それが欲するデータ
てな感じでしょうか。
iPodからもらったデータで最後のチェックサムを受け取るまで待って、それからそれを使ってデータの信頼性をあげるのも良し、信頼性は落ちるけれど無視して得たデータをすぐさま使うのも良し、それはsaitoさんの好きでよろしいんではないでしょうか。
投稿: じむ | 2008/10/30 01:37
こんにちは。
その後色々読んでみると、AiRモード解除には、再生/一時停止コマンドを送ると良いという事が分かり、
再生/一時停止を二回(再生→一時停止)送ってみたところ、Dockコネクタを外した時点でAiRモードが解除されました。ご報告まで・・・
改めて質問なんですが、iPodからの戻り値は、
例えば『iPod名』だと
[0xFF]-[0x55]-[0x03]-[0x04]-[0x00]-[0x15]のあとにiPod名が続くんでしょうか?また、その場合のチェックサムはどうなるでしょうか?
投稿: saito | 2008/10/29 14:05
早速のお返事ありがとうございます!
合間合間に進めていますが、付属リモコンからRX線を引き出して接続し、モード1へは移行するのですけれどそこから他のモードへ移行しなかったり、
ドックコネクタからだと一切反応がなかったりと散々な現状ですが(笑)七転八倒して完成させたいと思います。
それでは、失礼致します。
投稿: saito | 2008/10/22 18:44
saitoさん、コメントどーもです。
PICですか。今私もライターを造っているところです。(近日ブログで発表予定)
さて、ご質問にお答えします。
1)AIRモードから通常に戻す場合。
通常モードって言うのはモード2のことなので、モード切換えコマンドで"モード2"を送ればメニュー画面に戻ります。
具体的には
[0xFF][0x55][0x03][0x00][0x01][0x02][CheckSUM]
です。
2)AIRモードに行かないというのは、ナイキのマークみたいなのが出ないってことなんでしょうか?
特に前準備というのはしていませんねぇ。
上で答えたのがモード2の話で、AIRだとモード4にすれば良いため_
[0xFF][0x55][0x03][0x00][0x01][0x04][CheckSUM]
を送っているだけですよ。
とここまで書いて思い出しましたが、ボタンリリースのコマンドも送ってみてはどうでしょう。
ブログでも書きましたが、コマンドって送ったのはずーっと生きているので「ボタンを離したよコマンド」を送る訳です。
[0xFF][0x55][0x03][0x02][0x00][0x00][CheckSUM]
です。
うまく動くと良いですね〜
投稿: じむ | 2008/10/22 00:18
こんにちは。
PICでiPodを制御しようと試行錯誤している者です。
通信プロトコルの解説を大変分かりやすく解説していただきありがとうございます。
二つ質問があるのですが、お答え頂くと幸いです。
1.AIRモード等から通常の状態へ戻すには、iPodを再起動させれば宜しいですか?
2.今現在、お恥ずかしい話ですがAIRモードに移行してくれず難儀している最中です。コマンドを送信するにあたり、前段階で行うべき操作等ありますでしょうか?
以上、よろしくお願いいたします
投稿: saito | 2008/10/21 11:08