Ignore:
Timestamp:
Nov 18, 2016, 5:30:16 PM (8 years ago)
Author:
coas-nagasima
Message:

ECNL 1.0.3の修正内容を盛り込み
内蔵Webアプリで機器が取得できないのを修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ecnl_ssp/echonet.c

    r152 r265  
    329329        if (a_ret) {
    330330                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));
    333332                goto lb_except;
    334333        }
     
    338337                if (a_ret) {
    339338                        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));
    342340                        goto lb_except;
    343341                }
     
    409407
    410408        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);
    412410        if (p_snod != NULL) {
    413411                p_sobj = p_snod->profile;
     
    433431
    434432        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);
    436434        if (p_snod != NULL) {
    437435                /* ノードプロファイルの場合 */
     
    503501        if (!p_pdc)
    504502                return E_PAR;
    505         if (!p_edt)
    506                 return E_PAR;
    507503        if (!pk_itr->pk_esv)
    508504                return E_PAR;
     
    510506        if (pk_itr->is_eof)
    511507                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) {
    514509                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    515510                return E_BOVR; /* データ終了 */
     
    523518
    524519#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);
    526521#endif
    527522        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
     
    550545                goto lb_except;
    551546        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);
    554548                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    555549                a_ret = E_BOVR; /* データ終了 */
     
    560554
    561555        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;
    573560                }
     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                }
    574575        }
    575576        pk_itr->got_ct++;
    576577
    577578#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);
    579580#endif
    580581
Note: See TracChangeset for help on using the changeset viewer.