- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_agent.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 4 4 * Copyright (C) 2015-2016 Cores Co., Ltd. Japan 5 5 * 6 * ä¸è¨èä½æ¨©è 7 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 8 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 9 * å¤ã»åé 10 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 11 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 12 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 13 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 14 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 15 * ç¨ã§ããå½¢ã§åé 16 å¸ããå ´åã«ã¯ï¼åé 17 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 18 * è 19 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 20 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 21 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 22 * ç¨ã§ããªãå½¢ã§åé 23 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 24 * ã¨ï¼ 25 * (a) åé 26 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 27 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 28 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 29 * (b) åé 30 å¸ã®å½¢æ 31 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 32 * å ±åãããã¨ï¼ 33 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 34 * 害ãããï¼ä¸è¨èä½æ¨©è 35 ããã³TOPPERSããã¸ã§ã¯ããå 36 責ãããã¨ï¼ 37 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 38 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ãã 40 * å 41 責ãããã¨ï¼ 42 * 43 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 44 ã 45 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 46 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 47 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 48 * ã®è²¬ä»»ãè² ããªãï¼ 6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 11 * スコード中に含まれていること. 12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 15 * の無保証規定を掲載すること. 16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 18 * と. 19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 20 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 22 * 報告すること. 23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 27 * 免責すること. 28 * 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 49 34 * 50 35 * @(#) $Id$ … … 52 37 53 38 /* 54 * ECHONET Lite åççæãã¼ã39 * ECHONET Lite 動的生成ノード 55 40 */ 56 41 … … 65 50 66 51 /* 67 * ãã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©52 * キューのデータ構造の定義 68 53 */ 69 54 typedef struct ecn_agent_queue { 70 55 #ifdef _DEBUG 71 struct ecn_agent_queue *p_parent; /* 親ãã¥ã¼ã¸ã®ãã¤ã³ã¿*/56 struct ecn_agent_queue *p_parent; /* 親キューへのポインタ */ 72 57 #endif 73 struct ecn_agent_queue *p_next; /* 次ã¨ã³ããªã¸ã®ãã¤ã³ã¿*/74 struct ecn_agent_queue *p_prev; /* åã¨ã³ããªã¸ã®ãã¤ã³ã¿*/58 struct ecn_agent_queue *p_next; /* 次エントリへのポインタ */ 59 struct ecn_agent_queue *p_prev; /* 前エントリへのポインタ */ 75 60 } ecn_agent_queue_t; 76 61 … … 84 69 ID eobjId; 85 70 EOBJINIB inib; 86 uint8_t pmapSet[16]; /* SETããããã£ããã */ 87 uint8_t pmapGet[16]; /* GETããããã£ããã */ 88 uint8_t pmapAnno[16]; /* ç¶æ 89 å¤åæéç¥ããããã£ããã */ 71 uint8_t pmapSet[16]; /* SETプロパティマップ */ 72 uint8_t pmapGet[16]; /* GETプロパティマップ */ 73 uint8_t pmapAnno[16]; /* 状態変化時通知プロパティマップ */ 90 74 uint8_t pmapFlag; 91 uint8_t eprpcnt; /* ECHONET Lite ããããã£æ°*/92 uint8_t annocnt; /* éç¥ããããã£ã®æ°*/93 uint8_t setcnt; /* è¨å®ããããã£ã®æ°*/94 uint8_t getcnt; /* åå¾ããããã£ã®æ°*/75 uint8_t eprpcnt; /* ECHONET Lite プロパティ数 */ 76 uint8_t annocnt; /* 通知プロパティの数 */ 77 uint8_t setcnt; /* 設定プロパティの数 */ 78 uint8_t getcnt; /* 取得プロパティの数 */ 95 79 } ecn_obj_t; 96 80 … … 158 142 typedef struct ecn_inm_get_device_item 159 143 { 160 ID eobjid; /* ECHONET Lite ãªãã¸ã§ã¯ãID */ 161 ID enodid; /* ECHONET Lite ãã¼ããããã¡ã¤ã«ãªãã¸ã§ã¯ãID */ 162 uint8_t state; /* æ 163 å ±åéç¶æ 164 */ 165 uint8_t eojx1; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */ 166 uint8_t eojx2; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã³ã¼ã */ 167 uint8_t eojx3; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */ 168 ECN_ENOD_ID addrid; /* éä¿¡ã¬ã¤ã¤ã¼ã¢ãã¬ã¹åå¾ç¨ID */ 144 ID eobjid; /* ECHONET Lite オブジェクトID */ 145 ID enodid; /* ECHONET Lite ノードプロファイルオブジェクトID */ 146 uint8_t state; /* 情報収集状態 */ 147 uint8_t eojx1; /* ECHONET Lite オブジェクトのクラスグループコード */ 148 uint8_t eojx2; /* ECHONET Lite オブジェクトのクラスコード */ 149 uint8_t eojx3; /* ECHONET Lite オブジェクトのインスタンスコード */ 150 ECN_ENOD_ID addrid; /* 通信レイヤーアドレス取得用ID */ 169 151 } ecn_inm_get_device_item_t; 170 152 … … 191 173 } ecn_inm_get_device_info_res_t; 192 174 193 /* åæå*/175 /* 初期化 */ 194 176 void ecn_agent_init(ecnl_svc_task_t *svc); 195 /* ãã¼ããæ¤ç´¢*/177 /* ノードを検索 */ 196 178 ecn_node_t *ecn_agent_find_node(ecnl_svc_task_t *svc, ECN_ENOD_ID enodid); 197 /* æ©å¨ãæ¤ç´¢*/179 /* 機器を検索 */ 198 180 ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj); 199 /* ãªãã¸ã§ã¯ãIDãåå¾*/181 /* オブジェクトIDを取得 */ 200 182 ID ecn_agent_get_eobj(const EOBJINIB *pk_obj); 201 /* 次ã®æ©å¨ãåå¾*/183 /* 次の機器を取得 */ 202 184 const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj); 203 /* ãªãã¸ã§ã¯ãIDããEOJã¨ãã¼ãIDãåå¾*/185 /* オブジェクトIDからEOJとノードIDを取得 */ 204 186 bool_t ecn_agent_get_eoj_enodid(ecnl_svc_task_t *svc, ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid); 205 /* ã¿ã¤ã ã¢ã¦ãå¤ãè¿ã*/187 /* タイムアウト値を返す */ 206 188 TMO ecn_agent_get_timer(ecnl_svc_task_t *svc); 207 /* ã¿ã¤ãã¼ã®æéãé²ãã*/189 /* タイマーの時間を進める */ 208 190 void ecn_agent_progress(ecnl_svc_task_t *svc, TMO interval); 209 /* ã¿ã¤ã ã¢ã¦ãå¦çï¼ã®ããã®å¼ã³åºãï¼*/191 /* タイムアウト処理(のための呼び出し) */ 210 192 void ecn_agent_timeout(ecnl_svc_task_t *svc); 211 /* å 212 é¨ã¡ãã»ã¼ã¸å¦ç */ 193 /* 内部メッセージ処理 */ 213 194 bool_t ecn_agent_proc_int_msg(ecnl_svc_task_t *svc, ECN_FBS_ID fbs, uint8_t cmd); 214 /* ECHONET é»æåä¿¡å¦ç*/195 /* ECHONET電文受信処理 */ 215 196 void ecn_agent_proc_ecn_msg(ecnl_svc_task_t *svc, const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv); 216 /* ECHONET é»æåä¿¡å¦ççµäº*/197 /* ECHONET電文受信処理終了 */ 217 198 void ecn_agent_proc_ecn_msg_end(ecnl_svc_task_t *svc); 218 /* ããããã£ãåå¾*/199 /* プロパティを取得 */ 219 200 const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item); 220 201
Note:
See TracChangeset
for help on using the changeset viewer.