- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-05-27T11:44:53+09:00","","")
#contents
*はじめに [#ic08d530]
ZigBeePRO SDKは、ZigBeePRO準拠のマイコンプログラムをC言語で開発できる環境を提供します。ZigBee機能を直接扱うため、いくらでも凝ったアプリケーションを作ることができます。そのため最初はどこから着手して良いか戸惑うかもしれません。スカイリーでは以下の流れで進んで行くことをお勧めします。
+付属のQuickStartGuideを参考にして、ビルド済みのサンプルプログラムをデバイスに書き込んで実行してみてください。ネットワークビューワと組み合わせるとZigBeeネットワークの様子が分かります。サンプルプログラムには、PAN生成、アクティブスキャンとPANへの参加、データ送信、ポーリングなど、標準的なZigBeeの動作が一通り実装されています。
+サンプルプログラムのソースコードを改変、リビルド、実行して、挙動がどのような変化するか実験してみてください。スニファを使うとトラフィックの変化を把握できます。
+一通りサンプルプログラムを把握したら、次にATコマンドプログラムを使ってみてください。ATコマンドはサンプルよりも本格的なZigbee制御を可能にします。用意されている個々のコマンドが、ZigBeeの個々の機能と基本的に1対1で対応しています。そのためATコマンドのコマンドセットを調べて使い方を知ることがZigBeeをマスターする早道になります。またコマンドの実装を見ることでライブラリAPIの使い方を知ることもできます。ソースコードを改変して、独自コマンドの追加やコマンド引数の追加などを試してみてください。
+いよいよ独自アプリケーションの開発を進める場合は、''ATコマンドプログラム''をベースにコードを追加していくと、後々、使い勝手がよくなります。サンプルプログラムはすぐに動作するという意味で手軽ですが、固有の余計な処理も多く入っています。これが後々、独自アプリケーションでは予期しないトラブルになるケースが多いです。
*追加のドキュメント [#pc357324]
ZigBeePRO SDKに収録されていない資料で、有用と思われるものを順次ご紹介いたします。
-[[ZigBeeアプリケーション構築ガイド:http://www.skyley.com/ZigBee_AppGuide.pdf]]
-[[ZigBeeSDKツールクイックガイド:http://www.skyley.com/ZigBeePRO_Tools.pdf]]
*FAQ [#v5829180]
**Windows 7へのインストール [#h2bcb51f]
ZigBeePRO SDKはWindows 7でも動作します(Vistaは動作保証していません)。
Windows XP用インストーラを使ってSDKをWindows 7にインストールする場合、初期値で指定される「C:\Program Files」ディレクトリを避けて、ユーザの「マイドキュメント」やドライブ直下を指定してください。
またZigbeePROライブラリ(78K0R ,V850)及びATコマンドについては、Windows 7版のインストーラをご用意してありますので、お使いのOSにあわせてファイルをダウンロードしてください。
* ATコマンド[#i414e3c6]
** ATSTARTPAN [#t732305c]
ATSTARTPANでコーディネータを起動しようとして何度も失敗する場合があります。
コーディネータは起動時にチャンネルスキャンをして空きチャンネルを探します。しかし無線LANなどの影響で空きチャンネルがないと、起動に失敗します。
そのような場合、チャンネルマスクを0にしてATSTARTPANコマンドを実行してみてください。チャンネルスキャンせずに指定のチャンネルで起動するようになります。
チャンネルマスクは以下のコマンドで設定します。
ATSREG S10 0
** Association Permit [#l2089219]
MAC層のAssociate Permitを設定するにはS3レジスタを操作します。
ATSREG S3 1
接続許可
ATSREG S3 0
接続拒否
**エンドデバイスをスリープタイプで動かすには [#ia974613]
SCレジスタ (gnSK_MAC_macRxOnWhenIdle) をTRUEにしてATJOINコマンドをエンドデバイス指定で実行します。コマンドは
ATSREG SC 1~
ATJOIN XXXX 0
その後、ATPOLLコマンドで周期ポーリングを実行します。ATPOLLは0を指定すると周期ポーリングを停止させられます。
*サンプルプログラム [#da41d67b]
**ノード設定ツール [#y7c345b8]
ノード設定ツールは主にサンプルプログラムで使うことを想定しています。ATコマンドではノード設定ツールで設定できる項目すべてとそれ以上のものが、すべてコマンド経由で設定できます。慣れたらATコマンドに移行しましょう。
* API関数[#a67694b4]
** APS層Ackオプションの指定方法 [#iac3f08b]
SK_APS_Data_req関数の第9引数に0x04を指定します。
** 要求したAck受信の判定 [#z3f41432]
送信先から長さゼロのデータが同じクラスタ番号で通知されれば、それがAckです。