XBeeの通信チャンネルの指定の仕方

2016/9/12 修正 当初 S2C で ch 26 が使えないとしてましたが対応しているようです。
元記事

XBee ついでなので、XBee ZB S2C が使う通信チャンネルの指定の仕方。

直感的には AT CH コマンドがあるから、これで指定できそうに見えるのだけれども、AT CH は無慈悲にも「read-only」。
どうすんだよ!と言うと、コーディネータで AT SC コマンドを使い、スキャンするチャンネル=選択可能なチャンネルを制限してしまう。
例えばチャンネル12を使いたい場合は SC に 0x0002 を与えて、そこしか選べないようにする。

ch11 0x0001
ch12 0x0002
ch13 0x0004
ch14 0x0008
...
ch25 0x4000
ch26 0x8000

という感じ。
チャネル26相当の 0x8000 も設定できてしまうけれど、XBee ZB S2C はチャンネル26に対応していないから通信できなくなる。(2016/9/12 修正)

また、ルータとエンドデバイスでは、この方法でチャンネル指定しないほうがよい。
ルータとエンドデバイスは、スタートアップ時にコーディネータにぶら下がる形になっているので、どのみちコーディネータが使っているチャネルになるし、コーディネータのチャンネルと違うチャンネルに制限してしまうとjoinできなくなってしまう。