source: UsbWattMeter/trunk/ecnl_lwip/echonet_chk.tf@ 473

Last change on this file since 473 was 167, checked in by coas-nagasima, 8 years ago

MIMEにSJISを設定

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain; charset=SHIFT_JIS
File size: 6.1 KB
Line 
1$ =====================================================================
2$
3$ TOPPERS ECHONET Lite Communication Middleware
4$
5$ Copyright (C) 2014-2016 Cores Co., Ltd. Japan
6$
7$ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
8$ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
9$ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
10$ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
11$ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
12$ スコード中に含まれていること.
13$ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
14$ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
15$ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
16$ の無保証規定を掲載すること.
17$ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
18$ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
19$ と.
20$ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
21$ 作権表示,この利用条件および下記の無保証規定を掲載すること.
22$ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
23$ 報告すること.
24$ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
25$ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
26$ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
27$ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
28$ 免責すること.
29$
30$ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
31$ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
32$ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
33$ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
34$ の責任を負わない.
35$
36$ @(#) $Id: echonet_chk.tf 167 2016-03-08 11:37:45Z coas-nagasima $
37$
38$ =====================================================================
39
40$ =====================================================================
41$ 必須プロパティのチェック
42$ =====================================================================
43
44$FUNCTION compare$
45 $RESULT = ARGV[1] - ARGV[2]$
46$END$
47
48$ プロファイルオブジェクトスーパークラス
49$ProfileObjectSuperClass.EPC = { 0x88, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x9D, 0x9E, 0x9F }$
50$ProfileObjectSuperClass.MUST = { EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
51
52$ ノードプロファイルクラス
53$NodeProfileClass.EPC = { 0x80, 0x82, 0x83, 0x89, 0xBF, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7 }$
54$NodeProfileClass.MUST = { EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_ANNO, EPC_RULE_GET, EPC_RULE_GET }$
55
56$ 機器オブジェクトスーパークラス
57$DeviceSuperClass.EPC = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x93, 0x97, 0x98, 0x99, 0x9A, 0x9D, 0x9E, 0x9F }$
58$DeviceSuperClass.MUST = { EPC_RULE_GET, EPC_RULE_SET|EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$
59
60$ResultOfGetPropertyInfo = {}$
61
62$FUNCTION GetPropertyInfo$
63 $eoj.x1 = ARGV[1]$
64 $eoj.x2 = ARGV[2]$
65 $attr = ARGV[3]$
66 $list = {}$
67 $FOREACH i { 0 , 1 , ... , 15 }$
68 $map[i] = 0x00$
69 $END$
70
71 $IF (attr != EPC_ANNOUNCE) && (attr != EPC_RULE_SET) && (attr != EPC_RULE_GET)$
72 $ERROR$$FORMAT("%1% is illegal value, must be EPC_RULE_ANNO or EPC_RULE_SET or EPC_RULE_GET.", attr)$$END$
73 $END$
74
75 $IF eoj.x1 == EOJ_X1_SENSOR$
76 $i = 0$
77 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
78 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
79 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
80 $END$
81 $i = i + 1$
82 $END$
83 $ELIF eoj.x1 == EOJ_X1_AIR_CONDITIONER$
84 $i = 0$
85 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
86 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
87 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
88 $END$
89 $i = i + 1$
90 $END$
91 $ELIF eoj.x1 == EOJ_X1_AMENITY$
92 $i = 0$
93 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
94 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
95 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
96 $END$
97 $i = i + 1$
98 $END$
99 $ELIF eoj.x1 == EOJ_X1_HOUSEWORK$
100 $i = 0$
101 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
102 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
103 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
104 $END$
105 $i = i + 1$
106 $END$
107 $ELIF eoj.x1 == EOJ_X1_WELLNESS$
108 $i = 0$
109 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
110 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
111 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
112 $END$
113 $i = i + 1$
114 $END$
115 $ELIF eoj.x1 == EOJ_X1_CONTROLLER$
116 $i = 0$
117 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
118 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
119 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
120 $END$
121 $i = i + 1$
122 $END$
123 $ELIF eoj.x1 == EOJ_X1_AUDIO_VISUAL$
124 $i = 0$
125 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
126 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
127 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
128 $END$
129 $i = i + 1$
130 $END$
131 $ELIF eoj.x1 == EOJ_X1_PROFILE$
132 $i = 0$
133 $WHILE i < LENGTH(ProfileObjectSuperClass.EPC)$
134 $IF (AT(ProfileObjectSuperClass.MUST, i) & attr) != 0$
135 $list = APPEND(list, AT(ProfileObjectSuperClass.EPC, i))$
136 $END$
137 $i = i + 1$
138 $END$
139 $IF eoj.x2 == EOJ_X2_NODE_PROFILE$
140 $i = 0$
141 $WHILE i < LENGTH(NodeProfileClass.EPC)$
142 $IF (AT(NodeProfileClass.MUST, i) & attr) != 0$
143 $list = APPEND(list, AT(NodeProfileClass.EPC, i))$
144 $END$
145 $i = i + 1$
146 $END$
147 $END$
148 $ELIF eoj.x1 == EOJ_X1_USER_DEFINED$
149 $i = 0$
150 $WHILE i < LENGTH(DeviceSuperClass.EPC)$
151 $IF (AT(DeviceSuperClass.MUST, i) & attr) != 0$
152 $list = APPEND(list, AT(DeviceSuperClass.EPC, i))$
153 $END$
154 $i = i + 1$
155 $END$
156 $END$
157
158 $i = 0$
159 $WHILE i < LENGTH(list)$
160 $pos = AT(list, i) & 0xF$
161 $bit = (AT(list, i) >> 4) - 8$
162 $map[pos] = map[pos] | (1 << bit)$
163 $i = i + 1$
164 $END$
165
166 $ResultOfGetPropertyInfo = {}$
167 $i = 0$
168 $WHILE i < LENGTH(list)$
169 $ResultOfGetPropertyInfo = APPEND(ResultOfGetPropertyInfo, AT(list, i))$
170 $i = i + 1$
171 $END$
172
173 $RESULT = ResultOfGetPropertyInfo$
174$END$
Note: See TracBrowser for help on using the repository browser.