Previous: 9.1.4.1. USART |
Up: 9.1.4. ソフトウェアと外付け回路の詳細 |
Next: 9.1.4.3. フルカラーLED |
XBeeは初期化に時間がかかりますが、XBeeの初期化が終わるまでマウスが起動しないというのは問題です。そこでXBeeの初期化はそれ自体を一つのタスクとして実装します。xbee.cのprvTask_XBee_Controlがそのタスクです。
さらにXBeeが接続を確立したかどうかを検証できるようにしたいので、一定周期で相手方のXBeeにある番号を送り、その番号が送り返されてきたら接続確立と判断することにします。確認の際には$と<CR>で挟んで番号を送り、受け取った側は&と<CR>で挟んで受け取った番号を送り返します。
このタスクでは現在の接続状態をグローバル変数XBeeStatusで保持します。内容は以下のいずれかの列挙型で指定します。それぞれ、「未接続・接続試行を行っていない」「未接続・接続試行中」「未接続・接続試行完了」「接続済み」を意味しています。タスクの中ではこの状態に応じて処理を行っています。
typedef enum { ? XBEE_DISCONNECTED = 0, ? XBEE_INITIATING = 1, ? XBEE_INITIATED = 2, ? XBEE_CONNECTED = 3 } XBeeStatus_Type; |
なお現在のところバグがあるようで、一旦接続が途切れた後の再接続がうまくいかないようです。
Previous: 9.1.4.1. USART |
Up: 9.1.4. ソフトウェアと外付け回路の詳細 |
Next: 9.1.4.3. フルカラーLED |