Changeset 389 for azure_iot_hub/trunk/ntshell/echonet/echonet.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/ntshell/echonet/echonet.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 4 4 * Copyright (C) 2014 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 責ãããã¨ï¼ 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 * 免責すること. 42 28 * 43 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 44 ã 45 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 46 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 47 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 48 * ã®è²¬ä»»ãè² ããªãï¼ 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 49 34 * 50 35 * @(#) $Id$ … … 68 53 69 54 #define EOBJ_NULL 0x00 70 #define EOBJ_LOCAL_NODE 0x01 /* èªãã¼ã*/71 #define EOBJ_SYNC_REMOTE_NODE 0x02 /* ä»ãã¼ã*/72 #define EOBJ_ASYNC_REMOTE_NODE 0x04 /* ä»ãã¼ãï¼éåæï¼*/73 #define EOBJ_DEVICE 0x08 /* æ©å¨ãªãã¸ã§ã¯ã*/55 #define EOBJ_LOCAL_NODE 0x01 /* 自ノード */ 56 #define EOBJ_SYNC_REMOTE_NODE 0x02 /* 他ノード */ 57 #define EOBJ_ASYNC_REMOTE_NODE 0x04 /* 他ノード(非同期) */ 58 #define EOBJ_DEVICE 0x08 /* 機器オブジェクト */ 74 59 75 60 #define EPC_NONE 0x00 76 #define EPC_RULE_SET 0x01 /* ã¢ã¯ã»ã¹ã«ã¼ã« Set */ 77 #define EPC_RULE_GET 0x02 /* ã¢ã¯ã»ã¹ã«ã¼ã« Get */ 78 #define EPC_RULE_ANNO 0x04 /* ã¢ã¯ã»ã¹ã«ã¼ã« Anno */ 79 #define EPC_ANNOUNCE 0x40 /* ç¶æ 80 å¤åæéç¥ */ 81 #define EPC_VARIABLE 0x80 /* å¯å¤é·ãã¼ã¿ */ 61 #define EPC_RULE_SET 0x01 /* アクセスルール Set */ 62 #define EPC_RULE_GET 0x02 /* アクセスルール Get */ 63 #define EPC_RULE_ANNO 0x04 /* アクセスルール Anno */ 64 #define EPC_ANNOUNCE 0x40 /* 状態変化時通知 */ 65 #define EPC_VARIABLE 0x80 /* 可変長データ */ 82 66 83 67 typedef enum _echonet_enod_id 84 68 { 85 ENOD_NOT_MATCH_ID = -1, /* ã¢ãã¬ã¹IDç»é²ãªã*/86 ENOD_MULTICAST_ID = 0, /* ãã«ããã£ã¹ãã¢ãã¬ã¹ID */87 ENOD_LOCAL_ID = 1, /* èªãã¼ãã¢ãã¬ã¹ID */88 ENOD_API_ID = 2, /* API ã¢ãã¬ã¹ID */89 ENOD_REMOTE_ID = 3, /* ä»ãã¼ãã¢ãã¬ã¹ID */69 ENOD_NOT_MATCH_ID = -1, /* アドレスID登録なし */ 70 ENOD_MULTICAST_ID = 0, /* マルチキャストアドレスID */ 71 ENOD_LOCAL_ID = 1, /* 自ノードアドレスID */ 72 ENOD_API_ID = 2, /* APIアドレスID */ 73 ENOD_REMOTE_ID = 3, /* 他ノードアドレスID */ 90 74 } ECN_ENOD_ID; 91 75 92 /* ECHONET Lite è¦æ ¼*/76 /* ECHONET Lite規格 */ 93 77 typedef enum 94 78 { … … 96 80 } ECN_EHD1_ECL_VERSION; 97 81 98 /* é»æå½¢å¼1/2 */82 /* 電文形式1/2 */ 99 83 typedef enum 100 84 { 101 ECN_EDH2_FORMAT_1 = 0x81, /* é»æå½¢å¼1 */102 ECN_EDH2_FORMAT_2 = 0x82 /* é»æå½¢å¼2 */85 ECN_EDH2_FORMAT_1 = 0x81, /* 電文形式1 */ 86 ECN_EDH2_FORMAT_2 = 0x82 /* 電文形式2 */ 103 87 } ECN_EHD2_FORMAT; 104 88 105 /* ECHONET Lite ãµã¼ãã¹ã³ã¼ã*/89 /* ECHONET Liteサービスコード */ 106 90 typedef enum _echonet_service_code 107 91 { 108 ESV_NOP = 0, /* ( æ©è½æå®ãªã) */109 ESV_SET_I = 0x60, /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çä¸è¦ï¼*/110 ESV_SET_C = 0x61, /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çè¦ï¼*/111 ESV_GET = 0x62, /* ããããã£å¤èªã¿åºãè¦æ±*/112 ESV_INF_REQ = 0x63, /* ããããã£å¤éç¥è¦æ±*/113 ESV_SET_GET = 0x6E, /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±*/114 ESV_SET_RES = 0x71, /* ããããã£å¤æ¸ãè¾¼ã¿å¿ç*/115 ESV_GET_RES = 0x72, /* ããããã£å¤èªã¿åºãå¿ç*/116 ESV_INF = 0x73, /* ããããã£å¤éç¥*/117 ESV_INFC = 0x74, /* ããããã£å¤éç¥ï¼å¿çè¦ï¼*/118 ESV_INFC_RES = 0x7A, /* ããããã£å¤éç¥å¿ç*/119 ESV_SET_GET_RES = 0x7E, /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãå¿ç*/120 ESV_SET_I_SNA = 0x50, /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç*/121 ESV_SET_C_SNA = 0x51, /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç*/122 ESV_GET_SNA = 0x52, /* ããããã£å¤èªã¿åºãä¸å¯å¿ç*/123 ESV_INF_SNA = 0x53, /* ããããã£å¤éç¥ä¸å¯å¿ç*/124 ESV_SET_GET_SNA = 0x5E /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãä¸å¯å¿ç*/92 ESV_NOP = 0, /* (機能指定なし) */ 93 ESV_SET_I = 0x60, /* プロパティ値書き込み要求(応答不要) */ 94 ESV_SET_C = 0x61, /* プロパティ値書き込み要求(応答要) */ 95 ESV_GET = 0x62, /* プロパティ値読み出し要求 */ 96 ESV_INF_REQ = 0x63, /* プロパティ値通知要求 */ 97 ESV_SET_GET = 0x6E, /* プロパティ値書き込み・読み出し要求 */ 98 ESV_SET_RES = 0x71, /* プロパティ値書き込み応答 */ 99 ESV_GET_RES = 0x72, /* プロパティ値読み出し応答 */ 100 ESV_INF = 0x73, /* プロパティ値通知 */ 101 ESV_INFC = 0x74, /* プロパティ値通知(応答要) */ 102 ESV_INFC_RES = 0x7A, /* プロパティ値通知応答 */ 103 ESV_SET_GET_RES = 0x7E, /* プロパティ値書き込み・読み出し応答 */ 104 ESV_SET_I_SNA = 0x50, /* プロパティ値書き込み要求不可応答 */ 105 ESV_SET_C_SNA = 0x51, /* プロパティ値書き込み要求不可応答 */ 106 ESV_GET_SNA = 0x52, /* プロパティ値読み出し不可応答 */ 107 ESV_INF_SNA = 0x53, /* プロパティ値通知不可応答 */ 108 ESV_SET_GET_SNA = 0x5E /* プロパティ値書き込み・読み出し不可応答 */ 125 109 } ECN_SRV_CODE; 126 110 127 111 /* 128 * ECHONET Lite é»æãããã¼112 * ECHONET Lite電文ヘッダー 129 113 */ 130 114 typedef struct 131 115 { 132 uint8_t ehd1; /* ECHONET Lite é»æãããã¼1 ECN_EHD1_ECL_VERSION */133 uint8_t ehd2; /* ECHONET Lite é»æãããã¼2 ECN_EHD2_FORMAT */134 uint16_t tid; /* ãã©ã³ã¶ã¯ã·ã§ã³ID */116 uint8_t ehd1; /* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */ 117 uint8_t ehd2; /* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */ 118 uint16_t tid; /* トランザクションID */ 135 119 } __attribute__((packed)) T_ECN_HDR; 136 120 137 121 /* 138 * ECHONET Lite ãªãã¸ã§ã¯ãã³ã¼ã122 * ECHONET Liteオブジェクトコード 139 123 */ 140 124 typedef struct 141 125 { 142 uint8_t eojx1; /* ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã*/143 uint8_t eojx2; /* ã¯ã©ã¹ã³ã¼ã*/144 uint8_t eojx3; /* ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã*/126 uint8_t eojx1; /* クラスグループコード */ 127 uint8_t eojx2; /* クラスコード */ 128 uint8_t eojx3; /* インスタンスコード */ 145 129 } __attribute__((packed)) T_ECN_EOJ; 146 130 147 131 /* 148 * ECHONET Lite ãã¼ã¿ãããã¼132 * ECHONET Liteデータヘッダー 149 133 */ 150 134 typedef struct 151 135 { 152 T_ECN_EOJ seoj; /* éä¿¡å 153 ECHONET Liteãªãã¸ã§ã¯ãæå® */ 154 T_ECN_EOJ deoj; /* ç¸æå 155 ECHONET Liteãªãã¸ã§ã¯ãæå® */ 156 uint8_t esv; /* ECHONET Liteãµã¼ãã¹ (ECN_SRV_CODE) */ 157 uint8_t opc; /* å¦çããããã£æ° */ 136 T_ECN_EOJ seoj; /* 送信元ECHONET Liteオブジェクト指定 */ 137 T_ECN_EOJ deoj; /* 相手先ECHONET Liteオブジェクト指定 */ 138 uint8_t esv; /* ECHONET Liteサービス (ECN_SRV_CODE) */ 139 uint8_t opc; /* 処理プロパティ数 */ 158 140 } __attribute__((packed)) T_ECN_EDATA_BODY; 159 141 160 142 /* 161 * ECHONET Lite ããããã£143 * ECHONET Liteプロパティ 162 144 */ 163 145 typedef struct 164 146 { 165 uint8_t epc; /* ECHONET Lite ããããã£ã³ã¼ã*/166 uint8_t pdc; /* EDT ã®ãã¤ãæ°*/167 /*void *p_edt;*/ /* ããããã£å¤ãã¼ã¿*/147 uint8_t epc; /* ECHONET Liteプロパティコード */ 148 uint8_t pdc; /* EDTのバイト数 */ 149 /*void *p_edt;*/ /* プロパティ値データ */ 168 150 } __attribute__((packed)) T_ECN_PRP; 169 151 170 152 /* 171 * ECHONET Lite ãã¼ã¿153 * ECHONET Liteデータ 172 154 */ 173 155 typedef struct … … 179 161 180 162 /* 181 * ECHONET Lite é»æ163 * ECHONET Lite 電文 182 164 */ 183 165 typedef struct echonet_object_data … … 189 171 190 172 /* 191 * å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼173 * 応答電文解析イテレーター 192 174 */ 193 175 typedef struct echonet_epc_enumerator 194 176 { 195 177 T_EDATA *pk_esv; 196 uint8_t count; /* ä»èªã¿åãä¸ã®ãããã¯ã«ããããããã£ç·æ°*/197 uint8_t got_ct; /* ä»èªã¿åãä¸ã®ãããã¯ã§ãèªã¿åã£ãæ°*/198 uint8_t next_blk_ct; /* å¾ç¶ãããã¯æ°*/199 uint8_t is_eof; /* çµç«¯ã«éããæãé0 */178 uint8_t count; /* 今読み取り中のブロックにあるプロパティ総数 */ 179 uint8_t got_ct; /* 今読み取り中のブロックで、読み取った数 */ 180 uint8_t next_blk_ct; /* 後続ブロック数 */ 181 uint8_t is_eof; /* 終端に達した時、非0 */ 200 182 int cur; 201 183 } T_ENUM_EPC; … … 204 186 205 187 /* 206 * ECHONET Lite ããããã£ã®è¨å®é¢æ°188 * ECHONET Lite プロパティの設定関数 207 189 */ 208 190 typedef int (EPRP_SETTER)(const EPRPINIB *item, const void *src, int size, bool_t *anno); 209 191 210 192 /* 211 * ECHONET Lite ããããã£ã®åå¾é¢æ°193 * ECHONET Lite プロパティの取得関数 212 194 */ 213 195 typedef int (EPRP_GETTER)(const EPRPINIB *item, void *dst, int size); 214 196 215 197 /* 216 * ECHONET Lite ããããã£åæåãããã¯198 * ECHONET Lite プロパティ初期化ブロック 217 199 */ 218 200 struct echonet_property_initialization_block 219 201 { 220 uint8_t eprpcd; /* ECHONET Lite ããããã£ã³ã¼ã */ 221 ATR eprpatr; /* ECHONET Lite ããããã£å±æ§ */ 222 uint8_t eprpsz; /* ECHONET Lite ããããã£ã®ãµã¤ãº */ 223 intptr_t exinf; /* ECHONET Lite ããããã£ã®æ¡å¼µæ 224 å ± */ 225 EPRP_SETTER *eprpset; /* ECHONET Lite ããããã£ã®è¨å®é¢æ° */ 226 EPRP_GETTER *eprpget; /* ECHONET Lite ããããã£ã®åå¾é¢æ° */ 202 uint8_t eprpcd; /* ECHONET Lite プロパティコード */ 203 ATR eprpatr; /* ECHONET Lite プロパティ属性 */ 204 uint8_t eprpsz; /* ECHONET Lite プロパティのサイズ */ 205 intptr_t exinf; /* ECHONET Lite プロパティの拡張情報 */ 206 EPRP_SETTER *eprpset; /* ECHONET Lite プロパティの設定関数 */ 207 EPRP_GETTER *eprpget; /* ECHONET Lite プロパティの取得関数 */ 227 208 }; 228 209 229 #define TMIN_EOBJID 1 /* ECHONET Lite ãªãã¸ã§ã¯ãIDã®æå°å¤*/230 231 /* 232 * ECHONET Lite ãªãã¸ã§ã¯ãåæåãããã¯210 #define TMIN_EOBJID 1 /* ECHONET Lite オブジェクトIDの最小値 */ 211 212 /* 213 * ECHONET Lite オブジェクト初期化ブロック 233 214 */ 234 215 typedef struct echonet_object_initialization_block 235 216 { 236 ATR eobjatr; /* ECHONET Lite ãªãã¸ã§ã¯ãå±æ§ */ 237 ID enodid; /* ECHONET Lite ãã¼ããããã¡ã¤ã«ãªãã¸ã§ã¯ãID */ 238 intptr_t exinf; /* ECHONET Lite ãªãã¸ã§ã¯ãã®æ¡å¼µæ 239 å ± */ 240 uint8_t eojx1; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã°ã«ã¼ãã³ã¼ã */ 241 uint8_t eojx2; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ã³ã¼ã */ 242 uint8_t eojx3; /* ECHONET Lite ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ã³ã¼ã */ 243 const EPRPINIB *eprp; /* ECHONET Lite ããããã£åæåããã㯠*/ 244 uint_t eprpcnt; /* ECHONET Lite ããããã£åæåãããã¯æ° */ 217 ATR eobjatr; /* ECHONET Lite オブジェクト属性 */ 218 ID enodid; /* ECHONET Lite ノードプロファイルオブジェクトID */ 219 intptr_t exinf; /* ECHONET Lite オブジェクトの拡張情報 */ 220 uint8_t eojx1; /* ECHONET Lite オブジェクトのクラスグループコード */ 221 uint8_t eojx2; /* ECHONET Lite オブジェクトのクラスコード */ 222 uint8_t eojx3; /* ECHONET Lite オブジェクトのインスタンスコード */ 223 const EPRPINIB *eprp; /* ECHONET Lite プロパティ初期化ブロック */ 224 uint_t eprpcnt; /* ECHONET Lite プロパティ初期化ブロック数 */ 245 225 } EOBJINIB; 246 226 247 227 /* 248 * ECHONET Lite ãã¼ã管çãããã¯228 * ECHONET Lite ノード管理ブロック 249 229 */ 250 230 typedef struct echonet_object_control_block 251 231 { 252 const EOBJINIB *profile; /* ECHONET Lite ãã¼ããããã¡ã¤ã«ã¸ã®ãã¤ã³ã¿*/253 const EOBJINIB **eobjs; /* ECHONET Lite ãªãã¸ã§ã¯ããªã¹ãã¸ã®ãã¤ã³ã¿*/254 uint_t eobjcnt; /* ECHONET Lite ãªãã¸ã§ã¯ãæ°*/232 const EOBJINIB *profile; /* ECHONET Lite ノードプロファイルへのポインタ */ 233 const EOBJINIB **eobjs; /* ECHONET Lite オブジェクトリストへのポインタ */ 234 uint_t eobjcnt; /* ECHONET Lite オブジェクト数 */ 255 235 } EOBJCB; 256 236 257 237 /* 258 * ECHONET Lite ãã¼ãã¨IPã¢ãã¬ã¹ã®å¯¾å¿æ 259 å ±ãããã¯ã®å®ç¾© 238 * ECHONET Lite ノードとIPアドレスの対応情報ブロックの定義 260 239 */ 261 240 typedef struct echonet_node_address_block 262 241 { 263 bool_t inuse; /* 使ç¨ç¶æ³*/264 uint8_t ipaddr[16]; /* IP ã¢ãã¬ã¹*/242 bool_t inuse; /* 使用状況 */ 243 uint8_t ipaddr[16]; /* IPアドレス */ 265 244 } ENODADRB; 266 245 267 246 /* 268 * ECHONET Lite ãªãã¸ã§ã¯ãIDã®æ大å¤ï¼echonet_cfg.cï¼247 * ECHONET Lite オブジェクトIDの最大値(echonet_cfg.c) 269 248 */ 270 249 extern const ID tmax_eobjid; 271 250 272 251 /* 273 * ECHONET Lite ãªãã¸ã§ã¯ãåæåãããã¯ã®ã¨ãªã¢ï¼echonet_cfg.cï¼252 * ECHONET Lite オブジェクト初期化ブロックのエリア(echonet_cfg.c) 274 253 */ 275 254 extern const EOBJINIB eobjinib_table[]; 276 255 277 256 /* 278 * ECHONET Lite ãã¼ã管çãããã¯ã®æ°257 * ECHONET Liteノード管理ブロックの数 279 258 */ 280 259 extern const int tnum_enodid; 281 260 282 261 /* 283 * ECHONET Lite ãªãã¸ã§ã¯ã管çãããã¯ã®ã¨ãªã¢ï¼echonet_cfg.cï¼262 * ECHONET Lite オブジェクト管理ブロックのエリア(echonet_cfg.c) 284 263 */ 285 264 extern EOBJCB eobjcb_table[]; 286 265 287 266 /* 288 * ECHONET Liteãã¼ãã¨IPã¢ãã¬ã¹ã®å¯¾å¿æ 289 å ±ã®æ° 267 * ECHONET LiteノードとIPアドレスの対応情報の数 290 268 */ 291 269 extern const int tnum_enodadr; 292 270 293 271 /* 294 * ECHONET Lite ãã¼ãã¨IPã¢ãã¬ã¹ã®å¯¾å¿æ 295 å ±ãããã¯ã®ã¨ãªã¢ï¼echonet_cfg.cï¼ 272 * ECHONET Lite ノードとIPアドレスの対応情報ブロックのエリア(echonet_cfg.c) 296 273 */ 297 274 extern ENODADRB enodadrb_table[]; 298 275 299 276 /* 300 * ECHONET Lite ã«ã¼ãã«ãªãã¸ã§ã¯ãID277 * ECHONET Lite カーネルオブジェクトID 301 278 */ 302 279 extern const ID ecn_svc_taskid; … … 311 288 312 289 /* 313 * ECHONET Lite ãªãã¸ã§ã¯ã管çãããã¯ããECHONET Lite ãªãã¸ã§ã¯ãIDãåãåºãããã®ãã¯ã290 * ECHONET Lite オブジェクト管理ブロックからECHONET Lite オブジェクトIDを取り出すためのマクロ 314 291 */ 315 292 #define EOBJID(p_eobjcb) ((ID)(((p_eobjcb) - eobjcb_table) + TMIN_EOBJID)) 316 293 317 294 /* 318 * ECHONET Lite ãªãã¸ã§ã¯ãæ©è½ã®åæå295 * ECHONET Lite オブジェクト機能の初期化 319 296 */ 320 297 extern void initialize_echonet_object(void); … … 327 304 328 305 /* 329 * ECHONET Lite ãµã¼ãã¹å¦çéå§306 * ECHONET Liteサービス処理開始 330 307 */ 331 308 ER ecn_sta_svc(); 332 309 333 310 /* 334 * ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡311 * インスタンスリスト通知の送信 335 312 */ 336 313 ER ecn_ntf_inl(); 337 314 338 315 /* 339 * ECHONETãªãã¸ã§ã¯ãåç 340 § 316 * ECHONETオブジェクト参照 341 317 */ 342 318 ER ecn_ref_eobj(ID eobjid, T_REOBJ *pk_eobj); 343 319 344 320 /* 345 * ECHONETããããã£åç 346 § 321 * ECHONETプロパティ参照 347 322 */ 348 323 ER ecn_ref_eprp(ID eobjid, uint8_t epc, T_RPRP *pk_eprp); 349 324 350 325 /* 351 * ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çä¸è¦ï¼é»æä½æ326 * プロパティ値書き込み要求(応答不要)電文作成 352 327 */ 353 328 ER ecn_esv_seti(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 354 329 355 330 /* 356 * ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çè¦ï¼é»æä½æ331 * プロパティ値書き込み要求(応答要)電文作成 357 332 */ 358 333 ER ecn_esv_setc(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 359 334 360 335 /* 361 * ããããã£å¤èªã¿åºãè¦æ±é»æä½æ336 * プロパティ値読み出し要求電文作成 362 337 */ 363 338 ER ecn_esv_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc); 364 339 365 340 /* 366 * ããããã£å¤éç¥è¦æ±é»æä½æ341 * プロパティ値通知要求電文作成 367 342 */ 368 343 ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID eobjid, uint8_t epc); 369 344 370 345 /* 371 * ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»æä½æ346 * プロパティ値書き込み・読み出し要求電文作成 372 347 */ 373 348 ER ecn_esv_set_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 374 349 375 350 /* 376 * ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»ææãè¿ãæå®351 * プロパティ値書き込み・読み出し要求電文折り返し指定 377 352 */ 378 353 ER ecn_trn_set_get(T_EDATA *pk_esv, int *p_trn_pos); 379 354 380 355 /* 381 * ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»æçµäºæå®356 * プロパティ値書き込み・読み出し要求電文終了指定 382 357 */ 383 358 ER ecn_end_set_get(T_EDATA *pk_esv, int trn_pos); 384 359 385 360 /* 386 * ããããã£å¤éç¥ï¼å¿çè¦ï¼é»æä½æ361 * プロパティ値通知(応答要)電文作成 387 362 */ 388 363 ER ecn_esv_infc(T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc); 389 364 390 365 /* 391 * è¦æ±é»æã¸ã®ããããã£æå®è¿½å366 * 要求電文へのプロパティ指定追加 392 367 */ 393 368 ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc); 394 369 395 370 /* 396 * è¦æ±é»æã¸ã®ããããã£ãã¼ã¿è¿½å371 * 要求電文へのプロパティデータ追加 397 372 */ 398 373 ER ecn_add_edt(T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt); 399 374 400 375 /* 401 * è¦æ±é»æã®éä¿¡376 * 要求電文の送信 402 377 */ 403 378 ER ecn_snd_esv(T_EDATA *pk_esv); 404 379 405 380 /* 406 * å¿çé»æã®åä¿¡æ°¸é å¾ 407 ã¡ 381 * 応答電文の受信永遠待ち 408 382 */ 409 383 ER ecn_rcv_esv(T_EDATA **ppk_esv); 410 384 411 385 /* 412 * å¿çé»æã®åä¿¡å¾ 413 ã¡ã¿ã¤ã ã¢ã¦ããã 386 * 応答電文の受信待ちタイムアウトあり 414 387 */ 415 388 ER ecn_trcv_esv(T_EDATA **ppk_esv, int tmout); 416 389 417 390 /* 418 * å¿çé»æã®åä¿¡ãã¼ãªã³ã°391 * 応答電文の受信ポーリング 419 392 */ 420 393 ER ecn_prcv_esv(T_EDATA **ppk_esv); 421 394 422 395 /* 423 * å¿çé»æã®ç ´æ£396 * 応答電文の破棄 424 397 */ 425 398 ER ecn_rel_esv(T_EDATA *pk_esv); 426 399 427 400 /* 428 * å¿çé»æã®éä¿¡å 429 ãã¼ããåå¾ãã 401 * 応答電文の送信元ノードを取得する 430 402 */ 431 403 ID ecn_get_enod(T_EDATA *pk_esv); 432 404 433 405 /* 434 * å¿çé»æã®éä¿¡å 435 æ©å¨ãªãã¸ã§ã¯ããåå¾ãã 406 * 応答電文の送信元機器オブジェクトを取得する 436 407 */ 437 408 ID ecn_get_eobj(T_EDATA *pk_esv); 438 409 439 410 /* 440 * å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼åæå411 * 応答電文解析イテレーター初期化 441 412 */ 442 413 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv); 443 414 444 415 /* 445 * å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã416 * 応答電文解析イテレーターインクリメント 446 417 */ 447 418 ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt); 448 419 449 420 /* 450 * å¿çé»æå¾ 451 ã¡ã®å²ãè¾¼ã¿éä¿¡ 421 * 応答電文待ちの割り込み送信 452 422 */ 453 423 ER ecn_brk_wai(const void *p_dat, int datsz); 454 424 455 425 /* 456 * å²ãè¾¼ã¿ãã¼ã¿ã®åå¾426 * 割り込みデータの取得 457 427 */ 458 428 ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz); 459 429 460 430 /* 461 * ãã¼ã¿è¨å®é¢æ°431 * データ設定関数 462 432 */ 463 433 int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno); 464 434 465 435 /* 466 * ãã¼ã¿åå¾é¢æ°436 * データ取得関数 467 437 */ 468 438 int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size);
Note:
See TracChangeset
for help on using the changeset viewer.