-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme_utf8.txt
42 lines (30 loc) · 2.74 KB
/
readme_utf8.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
=== 上り下り送信を行う子機のデモ ==============================
本デモンストレーションでは、電池駆動の子機を想定し、子機からデータを送信後、ネットワークからの
メッセージを受信し、メッセージ受信が終了した時点でスリープします。
■ ネットワーク参加時の上位ノード探索の最適化
通常の動作では、電源投入時上位ノードを探索し、データを送信すべき親機もしくは中継機を発見し、
スリープ復帰時には中継機にダミー通信を行い、失敗すれば再探索する手続きを取ります。
本デモではこの手続きを省略する例を紹介します。
EndDevice.c の vProcessEventCore
E_STATE_APP_WAIT_NW_START_BOOT状態
ネットワーク開始待ちのディレー(必須ではないが、同時電源投入時の混雑を避ける)
ToCoNet_Nwk_bInit(), ToCoNet_Nwk_bStart() により初回ネットワーク参加を実施
ここで設定パラメータに以下を追加しています。.u8ResumeOpt を 0x01 にすると、
起床時の ToCoNet_Nwk_bResume() 時にダミー通信を行わず、通信先が存在すると
仮定します。.u8Second_To_Relocate を 0xFF とすると、定期的に行うダミー通信
を省略します。
sAppData.sNwkLayerTreeConfig.u8ResumeOpt = 0x01;
sAppData.sNwkLayerTreeConfig.u8Second_To_Relocate = 0xFF;
これらのオプションは通信相手先が通信不能になった場合に、問題となります。
このため、通信の失敗などを材料に明示的に再スキャンするコードを含めます。
E_STATE_IDLE状態
スリープ起床時の処理ですが、sAppData.u8failct により、通信の失敗回数の蓄積
に応じて、ToCoNet_Nwk_bResume() を実行するか、再度スキャンし直すかを決定し
ています。
■ メッセージプールの要求とデータ送信を同時に行う API 関数の利用
メッセージプールの要求とデータ通信はほぼ同時に実施されますが、このような通信を行うと上りと
下りの送受信が入り乱れることになり、通信の成功率が低下します。このため、データ送信に加え
メッセージプールの要求を行う API 関数を利用しています。本デモでは、3スロット分のプール
を一度に要求しています(必要無ければ1スロットとしてください)
ToCoNet_MsgPl_bRequest_w_Payload_to_Parenet()
================================================