Changeset 265 for uKadecot/trunk
- Timestamp:
- Nov 18, 2016, 5:30:16 PM (8 years ago)
- Location:
- uKadecot/trunk
- Files:
-
- 1 added
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/ecnl_ssp/echonet.c
r152 r265 329 329 if (a_ret) { 330 330 ECN_DBG_PUT("ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X}, %u) result = %d:%s", 331 a_ecn_prp.epc, sizeof(a_ecn_prp), 332 a_ret, itron_strerror(a_ret)); 331 a_ecn_prp.epc, sizeof(a_ecn_prp), a_ret, itron_strerror(a_ret)); 333 332 goto lb_except; 334 333 } … … 338 337 if (a_ret) { 339 338 ECN_DBG_PUT("ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X} edt, %u) result = %d:%s", 340 a_ecn_prp.epc, fa_pdc, 341 a_ret, itron_strerror(a_ret)); 339 a_ecn_prp.epc, fa_pdc, a_ret, itron_strerror(a_ret)); 342 340 goto lb_except; 343 341 } … … 409 407 410 408 p_esv = &pk_esv->hdr; 411 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender );409 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id); 412 410 if (p_snod != NULL) { 413 411 p_sobj = p_snod->profile; … … 433 431 434 432 p_esv = &pk_esv->hdr; 435 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender );433 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id); 436 434 if (p_snod != NULL) { 437 435 /* ノードプロファイルの場合 */ … … 503 501 if (!p_pdc) 504 502 return E_PAR; 505 if (!p_edt)506 return E_PAR;507 503 if (!pk_itr->pk_esv) 508 504 return E_PAR; … … 510 506 if (pk_itr->is_eof) 511 507 return E_BOVR; /* データ終了 */ 512 if ( pk_itr->count <= pk_itr->got_ct 513 && pk_itr->next_blk_ct < 1) { 508 if (pk_itr->count <= pk_itr->got_ct && pk_itr->next_blk_ct < 1) { 514 509 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 515 510 return E_BOVR; /* データ終了 */ … … 523 518 524 519 #ifdef ECN_ENA_ITR_NXT_CARP 525 ECN_CAP_PUT("ecn_itr_nxt() rd.cur=b%dp%d", pk_itr->cur.blk, pk_itr->cur.pos ECN_CAP_PUT(;520 ECN_CAP_PUT("ecn_itr_nxt() rd.cur=b%dp%d", pk_itr->cur.blk, pk_itr->cur.pos); 526 521 #endif 527 522 if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) { … … 550 545 goto lb_except; 551 546 if (a_rd_len < sizeof(a_ecn_prp)) { 552 ECN_DBG_PUT("ecn_itr_nxt() ecn_prp read fault." 553 " rd.cur=%d", pk_itr->cur); 547 ECN_DBG_PUT("ecn_itr_nxt() ecn_prp read fault. rd.cur=%d", pk_itr->cur); 554 548 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 555 549 a_ret = E_BOVR; /* データ終了 */ … … 560 554 561 555 if (0 < a_ecn_prp.pdc) { 562 /* 付随データを読み取る */ 563 a_rd_len = 0; 564 a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len); 565 if (a_ret != E_OK) 566 goto lb_except; 567 if (a_rd_len < (ECN_FBS_SSIZE_T)a_ecn_prp.pdc) { 568 ECN_DBG_PUT("ecn_itr_nxt() edt read fault." 569 " rd.cur=%d,epc=0x%02X,pdc=%u", pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc); 570 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 571 a_ret = E_BOVR; /* データ終了 */ 572 goto lb_finally; 556 if (p_edt == NULL) { 557 a_ret = _ecn_fbs_seek_rpos(a_fbs_id, a_ecn_prp.pdc); 558 if (a_ret != E_OK) 559 goto lb_except; 573 560 } 561 else { 562 /* 付随データを読み取る */ 563 a_rd_len = 0; 564 a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len); 565 if (a_ret != E_OK) 566 goto lb_except; 567 if (a_rd_len < (ECN_FBS_SSIZE_T)a_ecn_prp.pdc) { 568 ECN_DBG_PUT("ecn_itr_nxt() edt read fault. rd.cur=%d,epc=0x%02X,pdc=%u", 569 pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc); 570 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 571 a_ret = E_BOVR; /* データ終了 */ 572 goto lb_finally; 573 } 574 } 574 575 } 575 576 pk_itr->got_ct++; 576 577 577 578 #ifdef ECN_ENA_ITR_NXT_CARP 578 ECN_CAP_PUT("ecn_itr_nxt() read: ct=%d/%d", pk_itr->got_ct, pk_itr->count ECN_CAP_PUT(;579 ECN_CAP_PUT("ecn_itr_nxt() read: ct=%d/%d", pk_itr->got_ct, pk_itr->count); 579 580 #endif 580 581 -
uKadecot/trunk/ecnl_ssp/echonet_agent.c
r263 r265 434 434 memset(result, 0, sizeof(*result)); 435 435 node = &result->node; 436 node->enodId = ((T_ECN_FST_BLK *)esv)->hdr.sender ;436 node->enodId = ((T_ECN_FST_BLK *)esv)->hdr.sender.id; 437 437 node->base.eobjId = tmax_eobjid + 1 + (((intptr_t)result - (intptr_t)agent->blockes) / sizeof(agent->blockes[0])); 438 438 node->base.inib.enodid = 0; … … 570 570 } 571 571 572 ret = psnd_dtq(res.ptr->hdr.target _mbxid, (intptr_t)res.ptr);572 ret = psnd_dtq(res.ptr->hdr.target.mbxid, (intptr_t)res.ptr); 573 573 if (ret != E_OK) { 574 574 _ecn_fbs_del(res); … … 634 634 } 635 635 636 ret = psnd_dtq(res.ptr->hdr.target _mbxid, (intptr_t)res.ptr);636 ret = psnd_dtq(res.ptr->hdr.target.mbxid, (intptr_t)res.ptr); 637 637 if (ret != E_OK) { 638 638 _ecn_fbs_del(res); -
uKadecot/trunk/ecnl_ssp/echonet_fbs.h
r108 r265 111 111 uint16_t type; /* メッセージタイプ */ 112 112 union{ 113 ECN_ENOD_ID sender;/* 送信元ノードID(ECHONET電文) */114 ID sender_mbxid;/* 送信元メールボックスID(内部メッセージ) */115 } ;113 ECN_ENOD_ID id; /* 送信元ノードID(ECHONET電文) */ 114 ID mbxid; /* 送信元メールボックスID(内部メッセージ) */ 115 }sender; 116 116 union{ 117 ECN_ENOD_ID target;/* 送信先ノードID(ECHONET電文) */118 ID target_mbxid;/* 送信先メールボックスID(内部メッセージ) */119 } ;117 ECN_ENOD_ID id; /* 送信先ノードID(ECHONET電文) */ 118 ID mbxid; /* 送信先メールボックスID(内部メッセージ) */ 119 }target; 120 120 union{ 121 ECN_ENOD_ID reply;/* 返信先ノードID(ECHONET電文) */122 ID reply_mbxid;/* 返信先メールボックスID(内部メッセージ) */123 } ;121 ECN_ENOD_ID id; /* 返信先ノードID(ECHONET電文) */ 122 ID mbxid; /* 返信先メールボックスID(内部メッセージ) */ 123 }reply; 124 124 125 125 int rd; /* 読み取りヘッド情報 */ -
uKadecot/trunk/ecnl_ssp/echonet_task.c
r158 r265 87 87 intptr_t msg = (intptr_t)fa_rsp_fbs.ptr; 88 88 ID mbxid = ecn_udp_mailboxid; 89 ECN_ENOD_ID target = fa_rsp_fbs.ptr->hdr.target ;89 ECN_ENOD_ID target = fa_rsp_fbs.ptr->hdr.target.id; 90 90 #ifdef ECN_DBG_PUT_ENA 91 91 intptr_t a_fbs_sub1 = (intptr_t)fa_rsp_fbs.ptr->lnk.p_sub[0]; … … 412 412 } 413 413 if (fa_deoj == 0) { 414 ECN_DBG_PUT(" %s", "マルチキャスト");414 ECN_DBG_PUT("マルチキャスト"); 415 415 /* fa_deoj == 0 : マルチキャスト */ 416 416 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE; 417 417 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2 = EOJ_X2_NODE_PROFILE; 418 418 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3 = 0x01; 419 a_fbs_id.ptr->hdr.target = ENOD_MULTICAST_ID;419 a_fbs_id.ptr->hdr.target.id = ENOD_MULTICAST_ID; 420 420 } 421 421 else if (fa_deoj <= tmax_eobjid) { … … 427 427 428 428 /* テーブルから検索 */ 429 a_fbs_id.ptr->hdr.target = ENOD_NOT_MATCH_ID;429 a_fbs_id.ptr->hdr.target.id = ENOD_NOT_MATCH_ID; 430 430 a_enodid = (a_eobj->enodid == 0) ? fa_deoj : a_eobj->enodid; 431 431 a_enod = &eobjinib_table[a_enodid - 1]; 432 432 if ((a_enod->eobjatr == EOBJ_LOCAL_NODE) 433 433 || ((a_enod->eobjatr == EOBJ_ASYNC_REMOTE_NODE) && (fa_esv == ESV_GET))) { 434 a_fbs_id.ptr->hdr.target = ENOD_LOCAL_ID;434 a_fbs_id.ptr->hdr.target.id = ENOD_LOCAL_ID; 435 435 } 436 436 else{ … … 440 440 continue; 441 441 442 a_fbs_id.ptr->hdr.target = (ECN_ENOD_ID)(i + ENOD_REMOTE_ID - 1);442 a_fbs_id.ptr->hdr.target.id = (ECN_ENOD_ID)(i + ENOD_REMOTE_ID - 1); 443 443 break; 444 444 } 445 445 } 446 if (a_fbs_id.ptr->hdr.target == ENOD_NOT_MATCH_ID) {446 if (a_fbs_id.ptr->hdr.target.id == ENOD_NOT_MATCH_ID) { 447 447 goto lb_except; 448 448 ECN_DBG_PUT("deoj = %02X %02X %02x : enod not match", … … 470 470 memcpy(&((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj, &eoj, 471 471 sizeof(((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj)); 472 a_fbs_id.ptr->hdr.target = enodid;472 a_fbs_id.ptr->hdr.target.id = enodid; 473 473 } 474 474 else { … … 491 491 #endif 492 492 a_fbs_id.ptr->hdr.type = ECN_MSG_ECHONET; 493 a_fbs_id.ptr->hdr.sender = ENOD_API_ID;493 a_fbs_id.ptr->hdr.sender.id = ENOD_API_ID; 494 494 if (fa_esv == ESV_INFC) 495 a_fbs_id.ptr->hdr.reply = a_fbs_id.ptr->hdr.target;495 a_fbs_id.ptr->hdr.reply.id = a_fbs_id.ptr->hdr.target.id; 496 496 else if (fa_esv == ESV_INF_REQ) 497 a_fbs_id.ptr->hdr.reply = ENOD_MULTICAST_ID;497 a_fbs_id.ptr->hdr.reply.id = ENOD_MULTICAST_ID; 498 498 else 499 a_fbs_id.ptr->hdr.reply = ENOD_API_ID;499 a_fbs_id.ptr->hdr.reply.id = ENOD_API_ID; 500 500 501 501 /* 正常終了 */ … … 603 603 604 604 a_fbs.ptr->hdr.type = ECN_MSG_ECHONET; 605 a_fbs.ptr->hdr.sender = ENOD_LOCAL_ID;606 a_fbs.ptr->hdr.target = ENOD_MULTICAST_ID;607 a_fbs.ptr->hdr.reply = ENOD_LOCAL_ID;605 a_fbs.ptr->hdr.sender.id = ENOD_LOCAL_ID; 606 a_fbs.ptr->hdr.target.id = ENOD_MULTICAST_ID; 607 a_fbs.ptr->hdr.reply.id = ENOD_LOCAL_ID; 608 608 ((T_EDATA *)a_fbs.ptr)->hdr.ecn_prp.pdc = 1; /* 件数 */ 609 609 /* 件数を格納 */ … … 711 711 } 712 712 713 /* 714 * 電文の構成要素数とサイズのチェックを行う 715 */ 716 static bool_t _ecn_tsk_check_format(T_EDATA *edata, int len) 717 { 718 ER ret; 719 T_ENUM_EPC enm; 720 int opc; 721 uint8_t epc; 722 uint8_t pdc; 723 724 len -= sizeof(T_ECN_HDR) + sizeof(T_ECN_EDATA_BODY); 725 726 ret = ecn_itr_ini(&enm, edata); 727 if (ret != E_OK) { 728 return false; 729 } 730 opc = enm.count; 731 for (;;) { 732 ret = ecn_itr_nxt(&enm, &epc, &pdc, NULL); 733 if (enm.is_eof) 734 break; 735 if (ret == E_BOVR){ 736 if (opc != 0) 737 return false; 738 opc = enm.count; 739 len -= 1; 740 continue; 741 } 742 if (ret != E_OK) 743 break; 744 745 opc--; 746 len -= sizeof(T_ECN_PRP) + pdc; 747 } 748 749 return (opc == 0) && (len == 0); 750 } 751 713 752 static int _ecn_tsk_ecn_msg_main(ECN_FBS_ID fa_fbs_id, const EOBJINIB *p_obj, ATR eobjatr, 714 753 const EOBJINIB *p_sobj, ATR sobjatr); … … 739 778 if (p_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE 740 779 || p_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1) { 741 syslog(LOG_WARNING,"_ecn_tsk_ecn_msg() format fault: 0x%02X,0x%02X", p_esv->ecn_hdr.ehd1, p_esv->ecn_hdr.ehd2);780 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault: 0x%02X,0x%02X", p_esv->ecn_hdr.ehd1, p_esv->ecn_hdr.ehd2); 742 781 return; 743 782 } 744 783 784 if (p_esv->edata.deoj.eojx3 > 0x7F) { 785 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault: deoj %06X", 786 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3); 787 return; 788 } 789 790 if ((p_esv->edata.seoj.eojx3 > 0x7F) || (p_esv->edata.seoj.eojx3 == 0x00)) { 791 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault: seoj %06X", 792 p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3); 793 return; 794 } 795 796 if ((p_esv->edata.esv & 0xC0) != 0x40) { 797 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault: esv 0x%02X", p_esv->edata.esv); 798 return; 799 } 800 801 if (p_esv->edata.opc == 0x00) { 802 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault: opc 0x%02X", p_esv->edata.opc); 803 return; 804 } 805 806 /* 電文の構成要素数とサイズのチェックを行う */ 807 if (!_ecn_tsk_check_format((T_EDATA *)fa_fbs_id.ptr, fa_fbs_id.ptr->hdr.length)) { 808 ECN_DBG_PUT("_ecn_tsk_ecn_msg() format fault"); 809 return; 810 } 811 745 812 /* 送信宛からノードを検索 */ 746 p_nod = _ecn_eno_fnd(fa_fbs_id.ptr->hdr.target );813 p_nod = _ecn_eno_fnd(fa_fbs_id.ptr->hdr.target.id); 747 814 /* 送信元からノードを検索 */ 748 sender = fa_fbs_id.ptr->hdr.sender ;815 sender = fa_fbs_id.ptr->hdr.sender.id; 749 816 p_snod = _ecn_eno_fnd(sender); 750 817 if (p_snod != NULL) { … … 782 849 a_prc = true; 783 850 } 784 /* 0x74 プロパティ値通知(応答要)の場合 処理したことにする*/851 /* 0x74 プロパティ値通知(応答要)の場合の場合は電文破棄 */ 785 852 else if (p_esv->edata.esv == ESV_INFC) { 786 853 a_prc = true; … … 815 882 a_prc = true; 816 883 } 884 885 /* 機器オブジェクトが見つからず、0x74 プロパティ値通知(応答要)の場合は電文破棄 */ 886 if (!a_prc && (p_esv->edata.esv == ESV_INFC)) { 887 a_prc = true; 888 } 817 889 } 818 890 } … … 832 904 ECN_CAP_PUT("redirect ecn_svc_mailboxid → ecn_api_mailboxid (esv:0x%02X)", 833 905 p_esv->edata.esv); 834 fa_fbs_id.ptr->hdr.target = ENOD_API_ID;906 fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID; 835 907 a_ret = psnd_dtq(ecn_api_mailboxid, (intptr_t)fa_fbs_id.ptr); 836 908 if (a_ret != E_OK) { … … 899 971 break; 900 972 } 901 fa_fbs_id.ptr->hdr.reply = ENOD_MULTICAST_ID;973 fa_fbs_id.ptr->hdr.reply.id = ENOD_MULTICAST_ID; 902 974 _ecn_tsk_eoj_get(p_obj, eobjatr, false, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INF, ESV_INF_SNA); /* 0x73; 0x53 */ 903 975 result = 0; … … 919 991 case ESV_INFC: 920 992 if (!p_sobj) 921 _ecn_tsk_eoj_res(fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x74; 0 */ 993 /* 送信元が未知の他ノードであった場合、応答を返す */ 994 _ecn_tsk_eoj_res(fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES); /* 0x7A; 0x7A */ 922 995 else if (fromapp) 996 /* アプリケーションからの要求の場合、プロパティ値通知(応答要)を送信する */ 923 997 _ecn_tsk_eoj_get(p_sobj, sobjatr, true, (EPC_RULE_GET|EPC_RULE_ANNO), fa_fbs_id, ESV_INFC, ESV_NOP); /* 0x74; 0 */ 924 998 else 925 _ecn_tsk_eoj_set(p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0 */ 999 /* 送信元が既知の他ノードであった場合、プロパティ値を更新し応答を返す */ 1000 _ecn_tsk_eoj_set(p_sobj, sobjatr, fromapp, true, fa_fbs_id, ESV_INFC_RES, ESV_INFC_RES, &a_fbs_anno); /* 0x7A; 0x7A */ 926 1001 result = 0; 927 1002 break; … … 1030 1105 } 1031 1106 ECN_DBG_PUT("_ecn_tsk_eoj_get_property(0x%02X-0x%02X-0x%02X, epc:0x%02X) not found.", 1032 fp_obj->eojx1, fp_obj->eojx2, fp_obj->eojx3, 1033 fa_epc); 1107 fp_obj->eojx1, fp_obj->eojx2, fp_obj->eojx3, fa_epc); 1034 1108 1035 1109 return NULL; … … 1044 1118 return -1; 1045 1119 1046 ECN_DBG_PUT("_ecn_tsk_eoj_set_edt(epc:0x%02X) call eprpset()", 1047 fp_prp->eprpcd); 1120 ECN_DBG_PUT("_ecn_tsk_eoj_set_edt(epc:0x%02X) call eprpset()", fp_prp->eprpcd); 1048 1121 1049 1122 return fp_prp->eprpset(fp_prp, fp_src, fa_srcsz, fa_anno); … … 1058 1131 return -1; 1059 1132 1060 ECN_DBG_PUT("_ecn_tsk_eoj_get_edt(epc:0x%02X) call eprpget()", 1061 fp_prp->eprpcd); 1133 ECN_DBG_PUT("_ecn_tsk_eoj_get_edt(epc:0x%02X) call eprpget()", fp_prp->eprpcd); 1062 1134 1063 1135 return fp_prp->eprpget(fp_prp, fp_dst, fp_prp->eprpsz); … … 1428 1500 { 1429 1501 fa_rsp_fbs.ptr->hdr.type = ECN_MSG_ECHONET; 1430 fa_rsp_fbs.ptr->hdr.sender = ENOD_LOCAL_ID;1431 fa_rsp_fbs.ptr->hdr.target = fp_req_ptr->hdr.reply;1432 fa_rsp_fbs.ptr->hdr.reply = ENOD_LOCAL_ID;1502 fa_rsp_fbs.ptr->hdr.sender.id = ENOD_LOCAL_ID; 1503 fa_rsp_fbs.ptr->hdr.target.id = fp_req_ptr->hdr.reply.id; 1504 fa_rsp_fbs.ptr->hdr.reply.id = ENOD_LOCAL_ID; 1433 1505 } 1434 1506 … … 1597 1669 /* 設定処理失敗 */ 1598 1670 ((T_EDATA *)a_fbs_res.ptr)->hdr.edata.esv = fa_sna_esv; 1671 1672 /* 不可応答の場合は個別送信する */ 1673 if (a_fbs_res.ptr->hdr.target.id == ENOD_MULTICAST_ID) { 1674 a_fbs_res.ptr->hdr.target.id = fa_fbs_id.ptr->hdr.sender.id; 1675 } 1599 1676 } 1600 1677 /* 応答送信 */ … … 1928 2005 /* 要求電文設定 */ 1929 2006 a_fbs_id.ptr->hdr.type = ECN_MSG_USER_BREAK; 1930 a_fbs_id.ptr->hdr.sender = ENOD_API_ID;1931 a_fbs_id.ptr->hdr.target = ENOD_API_ID;1932 a_fbs_id.ptr->hdr.reply = ENOD_API_ID;2007 a_fbs_id.ptr->hdr.sender.id = ENOD_API_ID; 2008 a_fbs_id.ptr->hdr.target.id = ENOD_API_ID; 2009 a_fbs_id.ptr->hdr.reply.id = ENOD_API_ID; 1933 2010 1934 2011 if (0 < fa_size && p_dat) { … … 1976 2053 1977 2054 req.ptr->hdr.type = ECN_MSG_INTERNAL; 1978 req.ptr->hdr.sender _mbxid = sender;1979 req.ptr->hdr.target _mbxid = ecn_svc_mailboxid;1980 req.ptr->hdr.reply _mbxid = sender;2055 req.ptr->hdr.sender.mbxid = sender; 2056 req.ptr->hdr.target.mbxid = ecn_svc_mailboxid; 2057 req.ptr->hdr.reply.mbxid = sender; 1981 2058 1982 2059 *pk_req = req; … … 2005 2082 2006 2083 res.ptr->hdr.type = ECN_MSG_INTERNAL; 2007 res.ptr->hdr.sender _mbxid = ecn_svc_mailboxid;2008 res.ptr->hdr.target _mbxid = req.ptr->hdr.reply_mbxid;2009 res.ptr->hdr.reply _mbxid = ecn_svc_mailboxid;2084 res.ptr->hdr.sender.mbxid = ecn_svc_mailboxid; 2085 res.ptr->hdr.target.mbxid = req.ptr->hdr.reply.mbxid; 2086 res.ptr->hdr.reply.mbxid = ecn_svc_mailboxid; 2010 2087 2011 2088 *pk_res = res; -
uKadecot/trunk/ecnl_ssp/echonet_uip_task.c
r262 r265 127 127 } 128 128 a_fbs_id.ptr->hdr.type = ECN_MSG_ECHONET; 129 a_fbs_id.ptr->hdr.target = ENOD_LOCAL_ID;130 a_fbs_id.ptr->hdr.sender = ENOD_NOT_MATCH_ID;129 a_fbs_id.ptr->hdr.target.id = ENOD_LOCAL_ID; 130 a_fbs_id.ptr->hdr.sender.id = ENOD_NOT_MATCH_ID; 131 131 132 132 /* IPアドレスからリモートECHONETノードへ変換 */ … … 137 137 } else { 138 138 /* 送信元ECHONETノードを記録 */ 139 a_fbs_id.ptr->hdr.sender = a_enod_id;140 } 141 a_fbs_id.ptr->hdr.reply = a_fbs_id.ptr->hdr.sender;139 a_fbs_id.ptr->hdr.sender.id = a_enod_id; 140 } 141 a_fbs_id.ptr->hdr.reply.id = a_fbs_id.ptr->hdr.sender.id; 142 142 143 143 /* echonet_taskに送る */ … … 301 301 302 302 req.ptr->hdr.type = ECN_MSG_INTERNAL; 303 req.ptr->hdr.sender _mbxid = sender;304 req.ptr->hdr.target _mbxid = ecn_udp_mailboxid;305 req.ptr->hdr.reply _mbxid = sender;303 req.ptr->hdr.sender.mbxid = sender; 304 req.ptr->hdr.target.mbxid = ecn_udp_mailboxid; 305 req.ptr->hdr.reply.mbxid = sender; 306 306 307 307 *pk_req = req; … … 330 330 331 331 res.ptr->hdr.type = ECN_MSG_INTERNAL; 332 res.ptr->hdr.sender _mbxid = ecn_udp_mailboxid;333 res.ptr->hdr.target _mbxid = req.ptr->hdr.reply_mbxid;334 res.ptr->hdr.reply _mbxid = ecn_udp_mailboxid;332 res.ptr->hdr.sender.mbxid = ecn_udp_mailboxid; 333 res.ptr->hdr.target.mbxid = req.ptr->hdr.reply.mbxid; 334 res.ptr->hdr.reply.mbxid = ecn_udp_mailboxid; 335 335 336 336 *pk_res = res; … … 395 395 } 396 396 397 a_ret = psnd_dtq(buf.ptr->hdr.target _mbxid, (intptr_t)buf.ptr);397 a_ret = psnd_dtq(buf.ptr->hdr.target.mbxid, (intptr_t)buf.ptr); 398 398 if (a_ret != E_OK) { 399 399 _ecn_fbs_del(buf); … … 418 418 } 419 419 420 a_ret = psnd_dtq(buf.ptr->hdr.target _mbxid, (intptr_t)buf.ptr);420 a_ret = psnd_dtq(buf.ptr->hdr.target.mbxid, (intptr_t)buf.ptr); 421 421 if (a_ret != E_OK) { 422 422 _ecn_fbs_del(buf); … … 441 441 a_dst.portno = 0; 442 442 /* 送信先IPアドレス */ 443 a_ret = udp_get_ip(&a_dst, fbs_id.ptr->hdr.target );443 a_ret = udp_get_ip(&a_dst, fbs_id.ptr->hdr.target.id); 444 444 if (!a_ret) { 445 445 ECN_DBG_PUT("[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X → udp dest(%s)", -
uKadecot/trunk/kadecot/wamp_dealer.c
r264 r265 291 291 static const char setInitParams[] = "procedure.setInitParams"; 292 292 static const char getInitParams[] = "procedure.getInitParams"; 293 value = &value[sizeof(jpToppersEcnl) - 1]; 293 294 294 295 if (strncmp(getDeviceInfo, value, sizeof(getDeviceInfo) - 1) == 0) { -
uKadecot/trunk/src/ukadecot/main.c
r158 r265 1094 1094 } 1095 1095 1096 ret = psnd_dtq(req.ptr->hdr.target _mbxid, (intptr_t)req.ptr);1096 ret = psnd_dtq(req.ptr->hdr.target.mbxid, (intptr_t)req.ptr); 1097 1097 if (ret != E_OK) { 1098 1098 syslog(LOG_ERROR, "psnd_dtq"); … … 1154 1154 } 1155 1155 1156 ret = psnd_dtq(req.ptr->hdr.target _mbxid, (intptr_t)req.ptr);1156 ret = psnd_dtq(req.ptr->hdr.target.mbxid, (intptr_t)req.ptr); 1157 1157 if (ret != E_OK) { 1158 1158 syslog(LOG_ERROR, "psnd_dtq"); … … 1212 1212 } 1213 1213 1214 ret = psnd_dtq(req.ptr->hdr.target _mbxid, (intptr_t)req.ptr);1214 ret = psnd_dtq(req.ptr->hdr.target.mbxid, (intptr_t)req.ptr); 1215 1215 if (ret != E_OK) { 1216 1216 syslog(LOG_ERROR, "psnd_dtq");
Note:
See TracChangeset
for help on using the changeset viewer.