Changeset 321 for EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/mrb_ecnl.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 4 4 * Copyright (C) 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 責ãããã¨ï¼ 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 */ … … 136 121 rprop = RARRAY_PTR(props); 137 122 icnt = RARRAY_LEN(props); 138 count = icnt + 3; /* ããããã£ãããå*/123 count = icnt + 3; /* プロパティマップ分 */ 139 124 140 125 for (i = 0; i < icnt; i++) { … … 148 133 prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]); 149 134 150 /* ããããã£ãããã®å ´åã¯æ¸ç®*/135 /* プロパティマップの場合は減算 */ 151 136 switch (prop->inib.eprpcd) { 152 137 case 0x9D: case 0x9E: case 0x9F: … … 181 166 prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]); 182 167 183 /* ããããã£ãããã®å ´åã¯ç¡è¦*/168 /* プロパティマップの場合は無視 */ 184 169 switch (prop->inib.eprpcd) { 185 170 case 0x9D: case 0x9E: case 0x9F: … … 208 193 T_MRB_ECNL_EPROPERTY *prop; 209 194 210 /* æ©å¨ãªãã¸ã§ã¯ãã®è¨å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã*/195 /* 機器オブジェクトの設定として取り込まれた場合は破棄しない */ 211 196 if (obj->base.svc != NULL) 212 197 return; … … 293 278 rprop = RARRAY_PTR(props); 294 279 icnt = RARRAY_LEN(props); 295 count = icnt + 8; /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å*/280 count = icnt + 8; /* インスタンスリストなどの分 */ 296 281 297 282 for (i = 0; i < icnt; i++) { … … 305 290 prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]); 306 291 307 /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯æ¸ç®*/292 /* インスタンスリストなどの場合は減算 */ 308 293 switch (prop->inib.eprpcd) { 309 294 case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7: … … 315 300 316 301 nod = (ecn_node_t *)mrb_calloc(mrb, 1, sizeof(ecn_node_t) + count * sizeof(EPRPINIB *) 317 + (sizeof(EPRPINIB) * 8)/* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å*/);302 + (sizeof(EPRPINIB) * 8)/* インスタンスリストなどの分 */); 318 303 DATA_TYPE(self) = &mrb_ecnl_enode_type; 319 304 DATA_PTR(self) = nod; … … 337 322 prop = (T_MRB_ECNL_EPROPERTY *)DATA_PTR(rprop[i]); 338 323 339 /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ããªã©ã®å ´åã¯ç¡è¦*/324 /* インスタンスリストなどの場合は無視 */ 340 325 switch (prop->inib.eprpcd) { 341 326 case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7: … … 365 350 T_MRB_ECNL_EPROPERTY *prop; 366 351 367 /* ãã¼ãã®è¨å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã*/352 /* ノードの設定として取り込まれた場合は破棄しない */ 368 353 if (nod->base.svc != NULL) 369 354 return; … … 476 461 int count = 0; 477 462 478 /* éç¥æ°ã®ä½ç½®ã空ãã¦ãã*/463 /* 通知数の位置を空けておく */ 479 464 pos++; 480 465 for (int i = inst_list_pos; (i < eobjcnt) && (count < 84); i++) { … … 489 474 490 475 inst_list_pos += count; 491 /* æå¾ã¾ã§éä¿¡ãçµãã£ã¦ãããåããã*/476 /* 最後まで送信し終わっていたら初めから */ 492 477 if (inst_list_pos >= eobjcnt) 493 478 inst_list_pos = 0; … … 509 494 *pos++ = eobjcnt; 510 495 else 511 *pos++ = 255; /* ãªã¼ãã¼ããã¼*/496 *pos++ = 255; /*オーバーフロー*/ 512 497 513 498 for (int i = 0; (i < eobjcnt) && (i < 84); i++) { … … 530 515 *pos++ = eclscnt; 531 516 else 532 *pos++ = 255; /* ãªã¼ãã¼ããã¼*/517 *pos++ = 255; /*オーバーフロー*/ 533 518 534 519 len = 2 * eclscnt; … … 617 602 eobj = (ecn_obj_t *)DATA_PTR(prop->eobj); 618 603 619 /* ããããã£ã®è¨å®ã¨ãã¦åãè¾¼ã¾ããå ´åã¯ç ´æ£ããªã*/604 /* プロパティの設定として取り込まれた場合は破棄しない */ 620 605 if (eobj != NULL) 621 606 return; … … 625 610 } 626 611 627 /* ECHONET Lite ããããã£ã³ã¼ã*/612 /* ECHONET Lite プロパティコード */ 628 613 static mrb_value mrb_ecnl_eproperty_get_pcd(mrb_state *mrb, mrb_value self) 629 614 { … … 635 620 } 636 621 637 /* ECHONET Lite ããããã£å±æ§*/622 /* ECHONET Lite プロパティ属性 */ 638 623 static mrb_value mrb_ecnl_eproperty_get_atr(mrb_state *mrb, mrb_value self) 639 624 { … … 645 630 } 646 631 647 /* ECHONET Lite ããããã£ã®ãµã¤ãº*/632 /* ECHONET Lite プロパティのサイズ */ 648 633 static mrb_value mrb_ecnl_eproperty_get_sz(mrb_state *mrb, mrb_value self) 649 634 { … … 655 640 } 656 641 657 /* ECHONET Lite ããããã£ã®æ¡å¼µæ 658 å ± */ 642 /* ECHONET Lite プロパティの拡張情報 */ 659 643 static mrb_value mrb_ecnl_eproperty_get_exinf(mrb_state *mrb, mrb_value self) 660 644 { … … 666 650 } 667 651 668 /* ECHONET Lite ããããã£ã®æ¡å¼µæ 669 å ±è¨å® */ 652 /* ECHONET Lite プロパティの拡張情報設定 */ 670 653 static mrb_value mrb_ecnl_eproperty_set_exinf(mrb_state *mrb, mrb_value self) 671 654 { … … 682 665 } 683 666 684 /* ECHONET Lite ããããã£ã®è¨å®é¢æ°*/667 /* ECHONET Lite プロパティの設定関数 */ 685 668 static mrb_value mrb_ecnl_eproperty_get_setcb(mrb_state *mrb, mrb_value self) 686 669 { … … 695 678 } 696 679 697 /* ECHONET Lite ããããã£ã®åå¾é¢æ°*/680 /* ECHONET Lite プロパティの取得関数 */ 698 681 static mrb_value mrb_ecnl_eproperty_get_getcb(mrb_state *mrb, mrb_value self) 699 682 { … … 708 691 } 709 692 710 /* ECHONET Lite ããããã£ã®éç¥æç¡*/693 /* ECHONET Lite プロパティの通知有無 */ 711 694 static mrb_value mrb_ecnl_eproperty_get_anno(mrb_state *mrb, mrb_value self) 712 695 { … … 721 704 } 722 705 723 /* ECHONET Lite ããããã£ã®éç¥æç¡è¨å®*/706 /* ECHONET Lite プロパティの通知有無設定 */ 724 707 static mrb_value mrb_ecnl_eproperty_set_anno(mrb_state *mrb, mrb_value self) 725 708 { … … 737 720 738 721 /* 739 * ãã¼ã¿è¨å®é¢æ°722 * データ設定関数 740 723 */ 741 724 static int mrb_ecnl_prop_set(ecnl_svc_task_t *svc, const EPRPINIB *item, const void *src, int size, bool_t *anno) … … 771 754 772 755 /* 773 * ãã¼ã¿åå¾é¢æ°756 * データ取得関数 774 757 */ 775 758 static int mrb_ecnl_prop_get(ecnl_svc_task_t *svc, const EPRPINIB *item, void *dst, int size) … … 835 818 } 836 819 837 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»ææãè¿ãæå®*/820 /* プロパティ値書き込み・読み出し要求電文折り返し指定 */ 838 821 static mrb_value mrb_ecnl_trn_set_get(mrb_state *mrb, mrb_value self) 839 822 { … … 851 834 } 852 835 853 /* è¦æ±é»æã¸ã®ããããã£æå®è¿½å*/836 /* 要求電文へのプロパティ指定追加 */ 854 837 static mrb_value mrb_ecnl_add_epc(mrb_state *mrb, mrb_value self) 855 838 { … … 870 853 } 871 854 872 /* è¦æ±é»æã¸ã®ããããã£ãã¼ã¿è¿½å*/855 /* 要求電文へのプロパティデータ追加 */ 873 856 static mrb_value mrb_ecnl_add_edt(mrb_state *mrb, mrb_value self) 874 857 { … … 919 902 920 903 921 /* å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼åæå*/904 /* 応答電文解析イテレーター初期化 */ 922 905 static mrb_value mrb_ecnl_itr_ini(mrb_state *mrb, mrb_value self) 923 906 { … … 942 925 } 943 926 944 /* å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã*/927 /* 応答電文解析イテレーターインクリメント */ 945 928 static mrb_value mrb_ecnl_itr_nxt(mrb_state *mrb, mrb_value self) 946 929 { … … 1092 1075 svc = (ecnl_svc_task_t *)mrb_calloc(mrb, 1, sizeof(ecnl_svc_task_t) 1093 1076 + (1 + eobjcnt) * sizeof(EOBJINIB *) 1094 + (2 * eobjcnt)/* ã¯ã©ã¹ãªã¹ãç¨*/);1077 + (2 * eobjcnt)/*クラスリスト用*/); 1095 1078 DATA_TYPE(self) = &mrb_ecnl_svctask_type; 1096 1079 DATA_PTR(self) = svc; … … 1101 1084 svc->mrb = mrb; 1102 1085 svc->self = self; 1103 svc->tnum_enodid = 1; /* ãã®çã§ã¯ãã¼ã«ã«ãã¼ãï¼ã¤*/1086 svc->tnum_enodid = 1; /* この版ではローカルノード1つ */ 1104 1087 svc->tmax_eobjid = 1 + 1 + eobjcnt; 1105 1088 svc->eobjinib_table = (const EOBJINIB **)&svc[1]; … … 1129 1112 } 1130 1113 1131 /* ã¯ã©ã¹ãªã¹ãã®ä½æ*/1114 /* クラスリストの作成 */ 1132 1115 svc->eclslst = (uint8_t *)&svc->eobjinib_table[1 + eobjcnt]; 1133 1116 uint8_t *pos = svc->eclslst; … … 1154 1137 svc->eclscnt = eclscnt; 1155 1138 1156 /* ECHONET ããã«ã¦ã§ã¢ãèµ·å*/1139 /* ECHONETミドルウェアを起動 */ 1157 1140 ret = ecn_sta_svc(svc); 1158 1141 if (ret != E_OK) { … … 1177 1160 { 1178 1161 ecnl_svc_task_t *svc = (ecnl_svc_task_t *)ptr; 1179 #if 0 /* ã©ããã§è§£æ¾ãã¦ããããã・・・*/1162 #if 0 /* どこかで解放しているらしい・・・ */ 1180 1163 const EOBJINIB **table = svc->eobjinib_table; 1181 1164 const EOBJINIB **end = &table[svc->tmax_eobjid]; … … 1206 1189 } 1207 1190 1208 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çä¸è¦ï¼é»æä½æ*/1191 /* プロパティ値書き込み要求(応答不要)電文作成 */ 1209 1192 static mrb_value mrb_ecnl_esv_set_i(mrb_state *mrb, mrb_value self) 1210 1193 { … … 1245 1228 } 1246 1229 1247 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çè¦ï¼é»æä½æ*/1230 /* プロパティ値書き込み要求(応答要)電文作成 */ 1248 1231 static mrb_value mrb_ecnl_esv_set_c(mrb_state *mrb, mrb_value self) 1249 1232 { … … 1285 1268 } 1286 1269 1287 /* ããããã£å¤èªã¿åºãè¦æ±é»æä½æ*/1270 /* プロパティ値読み出し要求電文作成 */ 1288 1271 static mrb_value mrb_ecnl_esv_get(mrb_state *mrb, mrb_value self) 1289 1272 { … … 1323 1306 } 1324 1307 1325 /* ããããã£å¤éç¥è¦æ±é»æä½æ*/1308 /* プロパティ値通知要求電文作成 */ 1326 1309 static mrb_value mrb_ecnl_esv_inf_req(mrb_state *mrb, mrb_value self) 1327 1310 { … … 1361 1344 } 1362 1345 1363 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»æä½æ*/1346 /* プロパティ値書き込み・読み出し要求電文作成 */ 1364 1347 static mrb_value mrb_ecnl_esv_set_get(mrb_state *mrb, mrb_value self) 1365 1348 { … … 1400 1383 } 1401 1384 1402 /* ããããã£å¤éç¥ï¼å¿çè¦ï¼é»æä½æ*/1385 /* プロパティ値通知(応答要)電文作成 */ 1403 1386 static mrb_value mrb_ecnl_esv_infc(mrb_state *mrb, mrb_value self) 1404 1387 { … … 1448 1431 } 1449 1432 1450 /* è¦æ±é»æã®éä¿¡*/1433 /* 要求電文の送信 */ 1451 1434 static mrb_value mrb_ecnl_snd_esv(mrb_state *mrb, mrb_value self) 1452 1435 { … … 1486 1469 } 1487 1470 1488 /* é»æã®ç ´æ£*/1471 /* 電文の破棄 */ 1489 1472 static mrb_value mrb_ecnl_rel_esv(mrb_state *mrb, mrb_value self) 1490 1473 { … … 1524 1507 svc->mrb = mrb; 1525 1508 1526 /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡*/1509 /* インスタンスリスト通知の送信 */ 1527 1510 ret = _ecn_tsk_ntf_inl(svc); 1528 1511 if (ret != E_OK) { … … 1590 1573 1591 1574 /* 1592 * Echonet é»æåä¿¡å¦ç1575 * Echonet電文受信処理 1593 1576 */ 1594 1577 static void main_recv_esv(ecnl_svc_task_t *svc, T_EDATA *esv) … … 1603 1586 1604 1587 /* 1605 * å¿çé»æå¾ 1606 ã¡ã®å²ãè¾¼ã¿å¦ç 1588 * 応答電文待ちの割り込み処理 1607 1589 */ 1608 1590 static void main_break_wait(ecnl_svc_task_t *svc, uint8_t *brkdat, int32_t len) … … 1623 1605 ER ret; 1624 1606 1625 /* Echonet é»æåä¿¡ã®å ´å*/1607 /* Echonet電文受信の場合 */ 1626 1608 if ((p_msg)->hdr.type == ECN_MSG_ECHONET) { 1627 /* Echonet é»æåä¿¡å¦ç*/1609 /* Echonet電文受信処理 */ 1628 1610 main_recv_esv(svc, (T_EDATA *)p_msg); 1629 1611 1630 /* é å解æ¾ã¯GCã«ä»»ãã1612 /* 領域解放はGCに任せる 1631 1613 ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg); 1632 1614 if (ret != E_OK) { … … 1635 1617 } */ 1636 1618 } 1637 /* å¿çé»æå¾ 1638 ã¡ã®å²ãè¾¼ã¿ã®å ´å */ 1619 /* 応答電文待ちの割り込みの場合 */ 1639 1620 else if ((p_msg)->hdr.type == ECN_MSG_INTERNAL) { 1640 /* å¿çé»æå¾ 1641 ã¡ã®å²ãè¾¼ã¿ãã¼ã¿åå¾ */ 1621 /* 応答電文待ちの割り込みデータ取得 */ 1642 1622 ret = ecn_get_brk_dat(mrb, (T_EDATA *)p_msg, brkdat, sizeof(brkdat), &len); 1643 1623 if (ret != E_OK) { … … 1646 1626 } 1647 1627 1648 /* å¿çé»æå¾ 1649 ã¡ã®å²ãè¾¼ã¿å¦ç */ 1628 /* 応答電文待ちの割り込み処理 */ 1650 1629 main_break_wait(svc, brkdat, len); 1651 1630 1652 /* é å解æ¾*/1631 /* 領域解放 */ 1653 1632 ret = ecn_rel_esv(mrb, (T_EDATA *)p_msg); 1654 1633 if (ret != E_OK) { … … 1688 1667 } 1689 1668 1690 /* éä¿¡ã¬ã¤ã¤ã¼ããã®å 1691 ¥å */ 1669 /* 通信レイヤーからの入力 */ 1692 1670 static mrb_value mrb_ecnl_svctask_recv_msg(mrb_state *mrb, mrb_value self) 1693 1671 { … … 1879 1857 _module_ecnl = mrb_define_module(mrb, "ECNL"); 1880 1858 1881 /* æªè¨å®*/1859 /* 未設定 */ 1882 1860 mrb_define_const(mrb, _module_ecnl, "EPC_NONE", mrb_fixnum_value(EPC_NONE)); 1883 /* ã¢ã¯ã»ã¹ã«ã¼ã«Set */1861 /* アクセスルール Set */ 1884 1862 mrb_define_const(mrb, _module_ecnl, "EPC_RULE_SET", mrb_fixnum_value(EPC_RULE_SET)); 1885 /* ã¢ã¯ã»ã¹ã«ã¼ã«Get */1863 /* アクセスルール Get */ 1886 1864 mrb_define_const(mrb, _module_ecnl, "EPC_RULE_GET", mrb_fixnum_value(EPC_RULE_GET)); 1887 /* ã¢ã¯ã»ã¹ã«ã¼ã«Anno */1865 /* アクセスルール Anno */ 1888 1866 mrb_define_const(mrb, _module_ecnl, "EPC_RULE_ANNO", mrb_fixnum_value(EPC_RULE_ANNO)); 1889 /* ç¶æ 1890 å¤åæéç¥ */ 1867 /* 状態変化時通知 */ 1891 1868 mrb_define_const(mrb, _module_ecnl, "EPC_ANNOUNCE", mrb_fixnum_value(EPC_ANNOUNCE)); 1892 /* å¯å¤é·ãã¼ã¿*/1869 /* 可変長データ */ 1893 1870 mrb_define_const(mrb, _module_ecnl, "EPC_VARIABLE", mrb_fixnum_value(EPC_VARIABLE)); 1894 1871 1895 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çä¸è¦ï¼*/1872 /* プロパティ値書き込み要求(応答不要) */ 1896 1873 mrb_define_const(mrb, _module_ecnl, "ESV_SET_I", mrb_fixnum_value(ESV_SET_I)); 1897 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çè¦ï¼*/1874 /* プロパティ値書き込み要求(応答要) */ 1898 1875 mrb_define_const(mrb, _module_ecnl, "ESV_SET_C", mrb_fixnum_value(ESV_SET_C)); 1899 /* ããããã£å¤èªã¿åºãè¦æ±*/1876 /* プロパティ値読み出し要求 */ 1900 1877 mrb_define_const(mrb, _module_ecnl, "ESV_GET", mrb_fixnum_value(ESV_GET)); 1901 /* ããããã£å¤éç¥è¦æ±*/1878 /* プロパティ値通知要求 */ 1902 1879 mrb_define_const(mrb, _module_ecnl, "ESV_INF_REQ", mrb_fixnum_value(ESV_INF_REQ)); 1903 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±*/1880 /* プロパティ値書き込み・読み出し要求 */ 1904 1881 mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET", mrb_fixnum_value(ESV_SET_GET)); 1905 /* ããããã£å¤æ¸ãè¾¼ã¿å¿ç*/1882 /* プロパティ値書き込み応答 */ 1906 1883 mrb_define_const(mrb, _module_ecnl, "ESV_SET_RES", mrb_fixnum_value(ESV_SET_RES)); 1907 /* ããããã£å¤èªã¿åºãå¿ç*/1884 /* プロパティ値読み出し応答 */ 1908 1885 mrb_define_const(mrb, _module_ecnl, "ESV_GET_RES", mrb_fixnum_value(ESV_GET_RES)); 1909 /* ããããã£å¤éç¥*/1886 /* プロパティ値通知 */ 1910 1887 mrb_define_const(mrb, _module_ecnl, "ESV_INF", mrb_fixnum_value(ESV_INF)); 1911 /* ããããã£å¤éç¥ï¼å¿çè¦ï¼*/1888 /* プロパティ値通知(応答要) */ 1912 1889 mrb_define_const(mrb, _module_ecnl, "ESV_INFC", mrb_fixnum_value(ESV_INFC)); 1913 /* ããããã£å¤éç¥å¿ç*/1890 /* プロパティ値通知応答 */ 1914 1891 mrb_define_const(mrb, _module_ecnl, "ESV_INFC_RES", mrb_fixnum_value(ESV_INFC_RES)); 1915 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãå¿ç*/1892 /* プロパティ値書き込み・読み出し応答 */ 1916 1893 mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_RES", mrb_fixnum_value(ESV_SET_GET_RES)); 1917 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç*/1894 /* プロパティ値書き込み要求不可応答 */ 1918 1895 mrb_define_const(mrb, _module_ecnl, "ESV_SET_I_SNA", mrb_fixnum_value(ESV_SET_I_SNA)); 1919 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ä¸å¯å¿ç*/1896 /* プロパティ値書き込み要求不可応答 */ 1920 1897 mrb_define_const(mrb, _module_ecnl, "ESV_SET_C_SNA", mrb_fixnum_value(ESV_SET_C_SNA)); 1921 /* ããããã£å¤èªã¿åºãä¸å¯å¿ç*/1898 /* プロパティ値読み出し不可応答 */ 1922 1899 mrb_define_const(mrb, _module_ecnl, "ESV_GET_SNA", mrb_fixnum_value(ESV_GET_SNA)); 1923 /* ããããã£å¤éç¥ä¸å¯å¿ç*/1900 /* プロパティ値通知不可応答 */ 1924 1901 mrb_define_const(mrb, _module_ecnl, "ESV_INF_SNA", mrb_fixnum_value(ESV_INF_SNA)); 1925 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãä¸å¯å¿ç*/1902 /* プロパティ値書き込み・読み出し不可応答 */ 1926 1903 mrb_define_const(mrb, _module_ecnl, "ESV_SET_GET_SNA", mrb_fixnum_value(ESV_SET_GET_SNA)); 1927 1904 1928 /* ã¢ãã¬ã¹IDç»é²ãªã*/1905 /* アドレスID登録なし */ 1929 1906 mrb_define_const(mrb, _module_ecnl, "ENOD_NOT_MATCH_ID", mrb_fixnum_value(ENOD_NOT_MATCH_ID)); 1930 /* ãã«ããã£ã¹ãã¢ãã¬ã¹ID */1907 /* マルチキャストアドレスID */ 1931 1908 mrb_define_const(mrb, _module_ecnl, "ENOD_MULTICAST_ID", mrb_fixnum_value(ENOD_MULTICAST_ID)); 1932 /* èªãã¼ãã¢ãã¬ã¹ID */1909 /* 自ノードアドレスID */ 1933 1910 mrb_define_const(mrb, _module_ecnl, "ENOD_LOCAL_ID", mrb_fixnum_value(ENOD_LOCAL_ID)); 1934 /* API ã¢ãã¬ã¹ID */1911 /* APIアドレスID */ 1935 1912 mrb_define_const(mrb, _module_ecnl, "ENOD_API_ID", mrb_fixnum_value(ENOD_API_ID)); 1936 /* ä»ãã¼ãID */1913 /* 他ノードID */ 1937 1914 mrb_define_const(mrb, _module_ecnl, "ENOD_REMOTE_ID", mrb_fixnum_value(ENOD_REMOTE_ID)); 1938 1915 … … 1941 1918 mrb_define_method(mrb, _class_object, "initialize", mrb_ecnl_eobject_initialize, MRB_ARGS_REQ(5)); 1942 1919 1943 /* ããããã£å¤æ¸ãè¾¼ã¿*/1920 /* プロパティ値書き込み */ 1944 1921 mrb_define_method(mrb, _class_object, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4)); 1945 1922 1946 /* ããããã£å¤èªã¿åºã*/1923 /* プロパティ値読み出し */ 1947 1924 mrb_define_method(mrb, _class_object, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3)); 1948 1925 … … 1951 1928 mrb_define_method(mrb, _class_node, "initialize", mrb_ecnl_enode_initialize, MRB_ARGS_REQ(2)); 1952 1929 1953 /* ããããã£å¤æ¸ãè¾¼ã¿*/1930 /* プロパティ値書き込み */ 1954 1931 mrb_define_method(mrb, _class_node, "data_prop_set", mrb_ecnl_eobject_data_prop_set, MRB_ARGS_REQ(4)); 1955 1932 1956 /* ããããã£å¤èªã¿åºã*/1933 /* プロパティ値読み出し */ 1957 1934 mrb_define_method(mrb, _class_node, "data_prop_get", mrb_ecnl_eobject_data_prop_get, MRB_ARGS_REQ(3)); 1958 1935 … … 1961 1938 mrb_define_method(mrb, _class_property, "initialize", mrb_ecnl_eproperty_initialize, MRB_ARGS_REQ(6)); 1962 1939 1963 /* ECHONET Lite ããããã£ã³ã¼ã*/1940 /* ECHONET Lite プロパティコード */ 1964 1941 mrb_define_method(mrb, _class_property, "pcd", mrb_ecnl_eproperty_get_pcd, MRB_ARGS_NONE()); 1965 /* ECHONET Lite ããããã£å±æ§*/1942 /* ECHONET Lite プロパティ属性 */ 1966 1943 mrb_define_method(mrb, _class_property, "atr", mrb_ecnl_eproperty_get_atr, MRB_ARGS_NONE()); 1967 /* ECHONET Lite ããããã£ã®ãµã¤ãº*/1944 /* ECHONET Lite プロパティのサイズ */ 1968 1945 mrb_define_method(mrb, _class_property, "sz", mrb_ecnl_eproperty_get_sz, MRB_ARGS_NONE()); 1969 /* ECHONET Lite ããããã£ã®æ¡å¼µæ 1970 å ± */ 1946 /* ECHONET Lite プロパティの拡張情報 */ 1971 1947 mrb_define_method(mrb, _class_property, "exinf", mrb_ecnl_eproperty_get_exinf, MRB_ARGS_NONE()); 1972 1948 mrb_define_method(mrb, _class_property, "set_exinf", mrb_ecnl_eproperty_set_exinf, MRB_ARGS_REQ(1)); 1973 /* ECHONET Lite ããããã£ã®è¨å®é¢æ°*/1949 /* ECHONET Lite プロパティの設定関数 */ 1974 1950 mrb_define_method(mrb, _class_property, "setcb", mrb_ecnl_eproperty_get_setcb, MRB_ARGS_NONE()); 1975 /* ECHONET Lite ããããã£ã®åå¾é¢æ°*/1951 /* ECHONET Lite プロパティの取得関数 */ 1976 1952 mrb_define_method(mrb, _class_property, "getcb", mrb_ecnl_eproperty_get_getcb, MRB_ARGS_NONE()); 1977 /* ECHONET Lite ããããã£ã®éç¥æç¡*/1953 /* ECHONET Lite プロパティの通知有無 */ 1978 1954 mrb_define_method(mrb, _class_property, "anno", mrb_ecnl_eproperty_get_anno, MRB_ARGS_NONE()); 1979 1955 mrb_define_method(mrb, _class_property, "set_anno", mrb_ecnl_eproperty_set_anno, MRB_ARGS_REQ(1)); … … 1983 1959 mrb_define_method(mrb, _class_data, "initialize", mrb_ecnl_edata_initialize, MRB_ARGS_NONE()); 1984 1960 1985 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»ææãè¿ãæå®*/1961 /* プロパティ値書き込み・読み出し要求電文折り返し指定 */ 1986 1962 mrb_define_method(mrb, _class_data, "trn_set_get", mrb_ecnl_trn_set_get, MRB_ARGS_NONE()); 1987 1963 1988 /* è¦æ±é»æã¸ã®ããããã£æå®è¿½å*/1964 /* 要求電文へのプロパティ指定追加 */ 1989 1965 mrb_define_method(mrb, _class_data, "add_epc", mrb_ecnl_add_epc, MRB_ARGS_REQ(1)); 1990 1966 1991 /* è¦æ±é»æã¸ã®ããããã£ãã¼ã¿è¿½å*/1967 /* 要求電文へのプロパティデータ追加 */ 1992 1968 mrb_define_method(mrb, _class_data, "add_edt", mrb_ecnl_add_edt, MRB_ARGS_REQ(2)); 1993 1969 1994 /* å¿çé»æãµã¼ãã¹ã³ã¼ãåå¾*/1970 /* 応答電文サービスコード取得 */ 1995 1971 mrb_define_method(mrb, _class_data, "esv", mrb_ecnl_get_esv, MRB_ARGS_NONE()); 1996 1972 1997 /* å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼åæå*/1973 /* 応答電文解析イテレーター初期化 */ 1998 1974 mrb_define_method(mrb, _class_data, "itr_ini", mrb_ecnl_itr_ini, MRB_ARGS_NONE()); 1999 1975 … … 2002 1978 mrb_define_method(mrb, _class_iterator, "initialize", mrb_ecnl_eiterator_initialize, MRB_ARGS_NONE()); 2003 1979 2004 /* å¿çé»æ解æã¤ãã¬ã¼ã¿ã¼ã¤ã³ã¯ãªã¡ã³ã*/1980 /* 応答電文解析イテレーターインクリメント */ 2005 1981 mrb_define_method(mrb, _class_iterator, "itr_nxt", mrb_ecnl_itr_nxt, MRB_ARGS_NONE()); 2006 1982 … … 2014 1990 mrb_define_method(mrb, _class_svctask, "initialize", mrb_ecnl_svctask_initialize, MRB_ARGS_NONE()); 2015 1991 2016 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çä¸è¦ï¼é»æä½æ*/1992 /* プロパティ値書き込み要求(応答不要)電文作成 */ 2017 1993 mrb_define_method(mrb, _class_svctask, "esv_set_i", mrb_ecnl_esv_set_i, MRB_ARGS_REQ(3)); 2018 1994 2019 /* ããããã£å¤æ¸ãè¾¼ã¿è¦æ±ï¼å¿çè¦ï¼é»æä½æ*/1995 /* プロパティ値書き込み要求(応答要)電文作成 */ 2020 1996 mrb_define_method(mrb, _class_svctask, "esv_set_c", mrb_ecnl_esv_set_c, MRB_ARGS_REQ(3)); 2021 1997 2022 /* ããããã£å¤èªã¿åºãè¦æ±é»æä½æ*/1998 /* プロパティ値読み出し要求電文作成 */ 2023 1999 mrb_define_method(mrb, _class_svctask, "esv_get", mrb_ecnl_esv_get, MRB_ARGS_REQ(2)); 2024 2000 2025 /* ããããã£å¤éç¥è¦æ±é»æä½æ*/2001 /* プロパティ値通知要求電文作成 */ 2026 2002 mrb_define_method(mrb, _class_svctask, "esv_inf_req", mrb_ecnl_esv_inf_req, MRB_ARGS_REQ(2)); 2027 2003 2028 /* ããããã£å¤æ¸ãè¾¼ã¿ã»èªã¿åºãè¦æ±é»æä½æ*/2004 /* プロパティ値書き込み・読み出し要求電文作成 */ 2029 2005 mrb_define_method(mrb, _class_svctask, "esv_set_get", mrb_ecnl_esv_set_get, MRB_ARGS_REQ(3)); 2030 2006 2031 /* ããããã£å¤éç¥ï¼å¿çè¦ï¼é»æä½æ*/2007 /* プロパティ値通知(応答要)電文作成 */ 2032 2008 mrb_define_method(mrb, _class_svctask, "esv_infc", mrb_ecnl_esv_infc, MRB_ARGS_REQ(3)); 2033 2009 2034 /* è¦æ±é»æã®éä¿¡*/2010 /* 要求電文の送信 */ 2035 2011 mrb_define_method(mrb, _class_svctask, "snd_esv", mrb_ecnl_snd_esv, MRB_ARGS_REQ(1)); 2036 2012 2037 /* é»æã®ç ´æ£*/2013 /* 電文の破棄 */ 2038 2014 mrb_define_method(mrb, _class_svctask, "rel_esv", mrb_ecnl_rel_esv, MRB_ARGS_REQ(1)); 2039 2015 2040 /* ã¤ã³ã¹ã¿ã³ã¹ãªã¹ãéç¥ã®éä¿¡*/2016 /* インスタンスリスト通知の送信 */ 2041 2017 mrb_define_method(mrb, _class_svctask, "ntf_inl", mrb_ecnl_svctask_ntf_inl, MRB_ARGS_NONE()); 2042 2018 2043 /* ã¡ãã»ã¼ã¸å¦çã«ã¼ã*/2019 /* メッセージ処理ループ */ 2044 2020 mrb_define_method(mrb, _class_svctask, "set_timer", mrb_ecnl_svctask_set_timer, MRB_ARGS_REQ(1)); 2045 2021 mrb_define_method(mrb, _class_svctask, "timer", mrb_ecnl_svctask_get_timer, MRB_ARGS_NONE()); … … 2048 2024 mrb_define_method(mrb, _class_svctask, "call_timeout", mrb_ecnl_svctask_call_timeout, MRB_ARGS_NONE()); 2049 2025 2050 /* ãªã¢ã¼ãECHONETãã¼ãã®é©å確èª*/2026 /* リモートECHONETノードの適合確認 */ 2051 2027 mrb_define_method(mrb, _class_svctask, "is_match", mrb_ecnl_svctask_is_match, MRB_ARGS_REQ(3)); 2052 2028 }
Note:
See TracChangeset
for help on using the changeset viewer.