Changeset 152


Ignore:
Timestamp:
Jan 14, 2016, 1:17:21 PM (8 years ago)
Author:
coas-nagasima
Message:

・デジタルPinとアナログPinのWAMPトピックを追加し、PubSubできるように機能追加。

デジタルPINのトピックは、

「com.sonycsl.kadecot.arduino.topic.pinXX」(XXは0から13)

アナログPINのトピックは、

「com.sonycsl.kadecot.arduino.topic.pinXX.thrYYY」(XXは14から19、YYYは閾値十進)

・デバッグ用の使用していない文字列が、ROM領域に残ってしまうのを修正
・WebSocket接続時のHTTPヘッダーを1行ずつNAK応答を待って送信しているのを、一括で送るよう変更

Location:
uKadecot/trunk
Files:
1 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/csp/ukadecot/ukadecot.mtpj

    r101 r152  
    13551355</LinkOptionCommandLine-DefaultValue>
    13561356      <IsLockedByUser>False</IsLockedByUser>
    1357       <TimeTagModified--0>-8587688264305376439</TimeTagModified--0>
     1357      <TimeTagModified--0>-8587488782341293937</TimeTagModified--0>
    13581358      <LinkOptionCpu-0>False</LinkOptionCpu-0>
    13591359      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
     
    13631363      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
    13641364      <LinkOptionStack-0>False</LinkOptionStack-0>
    1365       <LinkOptionStart-0>SI,SU/00000000,R,R_2,R_1,B,B_2,B_1/00000800,BETH_MEMORY/00019F00,C$VECT,P,D,D_2,D_1,W,W_2,W_1,C,C_2,C_1,L/0FFFC0000,FVECT/0FFFFFF80</LinkOptionStart-0>
     1365      <LinkOptionStart-0>SI,SU/00000000,R,R_2,R_1,B,B_2,B_1/00000800,BETH_MEMORY/0001C000,C$VECT,P,D,D_2,D_1,W,W_2,W_1,C,C_2,C_1,L/0FFFC0000,FVECT/0FFFFFF80</LinkOptionStart-0>
    13661366      <LinkOptionCompress-0>False</LinkOptionCompress-0>
    13671367      <LinkOptionCpuInformation-0 />
  • uKadecot/trunk/ecnl_ssp/echonet.c

    r108 r152  
    235235        a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1);
    236236        if (a_ret) {
    237                 ECN_DBG_PUT "ecn_trn_set_get(): _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     237                ECN_DBG_PUT("ecn_trn_set_get(): _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    238238                return a_ret;
    239239        }
     
    264264        a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos);
    265265        if (a_wr_opc < 0) {
    266                 ECN_DBG_PUT "ecn_end_set_get(): _ecn_fbs_peek() result = %d:%s", a_wr_opc, itron_strerror(a_wr_opc) ECN_DBG_END;
     266                ECN_DBG_PUT("ecn_end_set_get(): _ecn_fbs_peek() result = %d:%s", a_wr_opc, itron_strerror(a_wr_opc));
    267267                return a_wr_opc;
    268268        }
     
    274274        a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc);
    275275        if (a_ret) {
    276                 ECN_DBG_PUT "ecn_end_set_get(): _ecn_fbs_poke() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     276                ECN_DBG_PUT("ecn_end_set_get(): _ecn_fbs_poke() result = %d:%s", a_ret, itron_strerror(a_ret));
    277277                return a_ret;
    278278        }
     
    328328        a_ret = _ecn_fbs_add_data_ex(a_fbs_id, &a_ecn_prp, sizeof(a_ecn_prp));
    329329        if (a_ret) {
    330                 ECN_DBG_PUT "ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X}, %u) result = %d:%s",
     330                ECN_DBG_PUT("ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X}, %u) result = %d:%s",
    331331                        a_ecn_prp.epc, sizeof(a_ecn_prp),
    332                         a_ret, itron_strerror(a_ret) ECN_DBG_END;
     332                        a_ret, itron_strerror(a_ret));
    333333                goto lb_except;
    334334        }
     
    337337                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    338338                if (a_ret) {
    339                         ECN_DBG_PUT "ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X} edt, %u) result = %d:%s",
     339                        ECN_DBG_PUT("ecn_add_edt(): _ecn_fbs_add_data_ex(*, ecn_prp{epc:0x%02X} edt, %u) result = %d:%s",
    340340                                a_ecn_prp.epc, fa_pdc,
    341                                 a_ret, itron_strerror(a_ret) ECN_DBG_END;
     341                                a_ret, itron_strerror(a_ret));
    342342                        goto lb_except;
    343343                }
     
    523523
    524524#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;
     525        ECN_CAP_PUT("ecn_itr_nxt() rd.cur=b%dp%d", pk_itr->cur.blk, pk_itr->cur.pos ECN_CAP_PUT(;
    526526#endif
    527527        if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) {
     
    550550                goto lb_except;
    551551        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 ECN_DBG_END;
     552                ECN_DBG_PUT("ecn_itr_nxt() ecn_prp read fault."
     553                        " rd.cur=%d", pk_itr->cur);
    554554                pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    555555                a_ret = E_BOVR; /* データ終了 */
     
    566566                        goto lb_except;
    567567                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 ECN_DBG_END;
     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);
    570570                        pk_itr->is_eof = 1;                     /* 終端に達した時、非0 */
    571571                        a_ret = E_BOVR; /* データ終了 */
     
    576576
    577577#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;
     578        ECN_CAP_PUT("ecn_itr_nxt() read: ct=%d/%d", pk_itr->got_ct, pk_itr->count ECN_CAP_PUT(;
    579579#endif
    580580
     
    605605        a_ret = _ecn_tsk_snd_mbx(a_fbs_id, true);
    606606        if (a_ret) {
    607                 ECN_DBG_PUT "_ecn_tsk_snd_mbx() result = %d:%s",
    608                         a_ret, itron_strerror(a_ret) ECN_DBG_END;
     607                ECN_DBG_PUT("_ecn_tsk_snd_mbx() result = %d:%s",
     608                        a_ret, itron_strerror(a_ret));
    609609                goto lb_except;
    610610        }
     
    637637        a_fbs.ptr = (T_ECN_FST_BLK *)pk_esv;
    638638        if (a_fbs.ptr->hdr.type != ECN_MSG_USER_BREAK) {
    639                 ECN_DBG_PUT "ecn_get_brk_dat: fbs-type:%d != ECN_MSG_USER_BREAK",
    640                         a_fbs.ptr->hdr.type ECN_DBG_END;
     639                ECN_DBG_PUT("ecn_get_brk_dat: fbs-type:%d != ECN_MSG_USER_BREAK",
     640                        a_fbs.ptr->hdr.type);
    641641                return E_PAR;
    642642        }
     
    645645        a_ret = _ecn_fbs_set_rpos(a_fbs, 0);
    646646        if (a_ret) {
    647                 ECN_DBG_PUT "_ecn_fbs_set_rpos(*, 0) result = %d:%s",
    648                         a_ret, itron_strerror(a_ret) ECN_DBG_END;
     647                ECN_DBG_PUT("_ecn_fbs_set_rpos(*, 0) result = %d:%s",
     648                        a_ret, itron_strerror(a_ret));
    649649                return a_ret;
    650650        }
     
    655655                a_ret = _ecn_fbs_get_data(a_fbs, p_buf, fa_bufsz, &a_len);
    656656                if (a_ret || !a_len) {
    657                         ECN_DBG_PUT "_ecn_fbs_get_data(*, p_buf, fa_bufsz) result = %d:%s",
    658                                 a_ret, itron_strerror(a_ret) ECN_DBG_END;
     657                        ECN_DBG_PUT("_ecn_fbs_get_data(*, p_buf, fa_bufsz) result = %d:%s",
     658                                a_ret, itron_strerror(a_ret));
    659659                        return E_PAR;
    660660                }
  • uKadecot/trunk/ecnl_ssp/echonet_dbg.c

    r108 r152  
    109109/*
    110110 * デバッグ出力
    111  * 例:           ECN_DBG_PUT "task start" ECN_DBG_END;
     111 * 例:           ECN_DBG_PUT("task start");
    112112 */
    113113int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...)
  • uKadecot/trunk/ecnl_ssp/echonet_dbg.h

    r108 r152  
    5050
    5151#ifdef ECN_DBG_PUT_ENA
    52 #define ECN_DBG_PUT syslog(LOG_WARNING,
    53 #define ECN_DBG_END )
    54 /* 例:           ECN_DBG_PUT "task start" ECN_DBG_END; */
     52#define ECN_DBG_PUT(...) syslog(LOG_WARNING, __VA_ARGS__)
    5553#else
    56 #define ECN_DBG_PUT for (;0;
    57 #define ECN_DBG_END )
     54#define ECN_DBG_PUT(...)
    5855#endif
    5956
    6057/* デバッグ出力(CARP) */
    6158#ifdef ECN_CAP_PUT_ENA
    62 #define ECN_CAP_PUT syslog(LOG_DEBUG,
    63 #define ECN_CAP_END )
    64 /* 例:           ECN_CAP_PUT "task start" ECN_CAP_END; */
     59#define ECN_CAP_PUT(syslog(LOG_DEBUG, __VA_ARGS__)
    6560#else
    66 #define ECN_CAP_PUT for (;0;
    67 #define ECN_CAP_END )
     61#define ECN_CAP_PUT(...)
    6862#endif
    6963
  • uKadecot/trunk/ecnl_ssp/echonet_task.c

    r125 r152  
    141141        }
    142142#ifdef ECN_DBG_PUT_ENA
    143         ECN_DBG_PUT "psnd_dtq(%d, 0x%08X-0x%08X)", mbxid, (intptr_t)msg, a_fbs_sub1 ECN_DBG_END;
     143        ECN_DBG_PUT("psnd_dtq(%d, 0x%08X-0x%08X)", mbxid, (intptr_t)msg, a_fbs_sub1);
    144144        _ecn_dbg_bindmp((const uint8_t *)msg, 256);
    145145#endif
    146146        a_ret = psnd_dtq(mbxid, msg);
    147147#ifdef ECN_DBG_PUT_ENA
    148         ECN_DBG_PUT "psnd_dtq(%d, 0x%08X-0x%08X) result = %d:%s", mbxid, (intptr_t)msg, a_fbs_sub1, a_ret, itron_strerror(a_ret) ECN_DBG_END;
     148        ECN_DBG_PUT("psnd_dtq(%d, 0x%08X-0x%08X) result = %d:%s", mbxid, (intptr_t)msg, a_fbs_sub1, a_ret, itron_strerror(a_ret));
    149149#endif
    150150        return a_ret;
     
    193193                return;
    194194
    195         /* ECN_DBG_PUT "[ECHONET MainTask:%d] started", tskid ECN_DBG_END; */
     195        /* ECN_DBG_PUT("[ECHONET MainTask:%d] started", tskid); */
    196196        syslog(LOG_NOTICE, "[ECHONET MainTask] started");
    197197
     
    225225        a_ret = sta_cyc(ecn_svc_cychdrid);
    226226        if (a_ret != E_OK) {
    227                 ECN_DBG_PUT "sta_cyc() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     227                ECN_DBG_PUT("sta_cyc() result = %d:%s", a_ret, itron_strerror(a_ret));
    228228                PT_EXIT(&s.pt);
    229229        }
     
    233233        a_ret2 = get_tim(&a_now);
    234234        if (a_ret2 != E_OK) {
    235                 ECN_DBG_PUT "get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2) ECN_DBG_END;
     235                ECN_DBG_PUT("get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2));
    236236                PT_EXIT(&s.pt);
    237237        }
     
    256256                        || ((a_ret = timer_expired(&s.timer) ? E_TMOUT : E_WBLK) == E_TMOUT)));
    257257                if ((a_ret != E_OK) && (a_ret != E_TMOUT)) {
    258                         ECN_DBG_PUT "trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     258                        ECN_DBG_PUT("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret));
    259259                        PT_EXIT(&s.pt);
    260260                }
     
    262262                a_ret2 = get_tim(&a_now);
    263263                if (a_ret2 != E_OK) {
    264                         ECN_DBG_PUT "get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2) ECN_DBG_END;
     264                        ECN_DBG_PUT("get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2));
    265265                        PT_EXIT(&s.pt);
    266266                }
     
    273273
    274274                if (a_ret == E_OK) {
    275                         ECN_DBG_PUT "trcv_dtq() mbx recv (%d byte)", _ecn_fbs_get_datalen(a_mdt.fbs_id) ECN_DBG_END;
     275                        ECN_DBG_PUT("trcv_dtq() mbx recv (%d byte)", _ecn_fbs_get_datalen(a_mdt.fbs_id));
    276276                        g_release_esv = true;
    277277
     
    376376        a_ret = _ecn_fbs_cre(a_size, &a_fbs_id);
    377377        if (a_ret != E_OK || !a_fbs_id.ptr) { /* 確保失敗 */
    378                 ECN_DBG_PUT "_ecn_fbs_cre(%d) result = %d:%s",
     378                ECN_DBG_PUT("_ecn_fbs_cre(%d) result = %d:%s",
    379379                        a_size,
    380                         a_ret, itron_strerror(a_ret) ECN_DBG_END;
     380                        a_ret, itron_strerror(a_ret));
    381381                return E_NOMEM;
    382382        }
     
    396396        a_ret = _ecn_fbs_add_data_ex(a_fbs_id, &a_ecn_hdp, a_size);
    397397        if (a_ret) {
    398                 ECN_DBG_PUT "_ecn_fbs_add_data_ex(*, ecn_hdp{esv:0x%02X,epc:0x%02X}, %d) result = %d:%s",
     398                ECN_DBG_PUT("_ecn_fbs_add_data_ex(*, ecn_hdp{esv:0x%02X,epc:0x%02X}, %d) result = %d:%s",
    399399                        a_ecn_hdp.edata.esv, a_ecn_hdp.ecn_prp.epc, a_size,
    400                         a_ret, itron_strerror(a_ret) ECN_DBG_END;
     400                        a_ret, itron_strerror(a_ret));
    401401                goto lb_except;
    402402        }
     
    405405                a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc);
    406406                if (a_ret) {
    407                         ECN_DBG_PUT "_ecn_fbs_add_data_ex(*, ecn_hdp{esv:0x%02X,epc:0x%02X} edt, %d) result = %d:%s",
     407                        ECN_DBG_PUT("_ecn_fbs_add_data_ex(*, ecn_hdp{esv:0x%02X,epc:0x%02X} edt, %d) result = %d:%s",
    408408                                a_ecn_hdp.edata.esv, a_ecn_hdp.ecn_prp.epc, fa_pdc,
    409                                 a_ret, itron_strerror(a_ret) ECN_DBG_END;
     409                                a_ret, itron_strerror(a_ret));
    410410                        goto lb_except;
    411411                }
    412412        }
    413413        if (fa_deoj == 0) {
    414                 ECN_DBG_PUT "%s", "マルチキャスト" ECN_DBG_END;
     414                ECN_DBG_PUT("%s", "マルチキャスト");
    415415                /* fa_deoj == 0 : マルチキャスト */
    416416                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1 = EOJ_X1_PROFILE;
     
    420420        }
    421421        else if (fa_deoj <= tmax_eobjid) {
    422                 ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
     422                ECN_DBG_PUT("fa_deoj = %d", fa_deoj);
    423423                /* if (fa_deoj < 1 || tmax_eobjid < fa_deoj) …の異常系は関数冒頭で除外済みとする */
    424424                a_eobj = &eobjinib_table[fa_deoj - 1];
     
    446446                if (a_fbs_id.ptr->hdr.target == ENOD_NOT_MATCH_ID) {
    447447                        goto lb_except;
    448                         ECN_DBG_PUT "deoj = %02X %02X %02x : enod not match",
     448                        ECN_DBG_PUT("deoj = %02X %02X %02x : enod not match",
    449449                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1,
    450450                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2,
    451                                 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3 ECN_DBG_END;
     451                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3);
    452452                }
    453453#ifdef ECN_DBG_PUT_ENA
    454454                else {
    455                         ECN_DBG_PUT "deoj = %02X %02X %02x : %s",
     455                        ECN_DBG_PUT("deoj = %02X %02X %02x : %s",
    456456                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1,
    457457                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2,
    458458                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3,
    459                                 _ecn_dbg_enod2str(a_fbs_id.ptr->hdr.target) ECN_DBG_END;
     459                                _ecn_dbg_enod2str(a_fbs_id.ptr->hdr.target));
    460460                }
    461461#endif
     
    465465                T_ECN_EOJ eoj;
    466466                ECN_ENOD_ID enodid;
    467                 ECN_DBG_PUT "fa_deoj = %d", fa_deoj ECN_DBG_END;
     467                ECN_DBG_PUT("fa_deoj = %d", fa_deoj);
    468468                /* オブジェクトIDからEOJとノードIDを取得 */
    469469                if(ecn_agent_get_eoj_enodid(fa_deoj, &eoj, &enodid)){
     
    474474                else {
    475475                        goto lb_except;
    476                         ECN_DBG_PUT "deoj = %02X %02X %02x : enod not match",
     476                        ECN_DBG_PUT("deoj = %02X %02X %02x : enod not match",
    477477                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1,
    478478                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2,
    479                                 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3 ECN_DBG_END;
     479                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3);
    480480                }
    481481#ifdef ECN_DBG_PUT_ENA
    482482                else {
    483                         ECN_DBG_PUT "deoj = %02X %02X %02x : %s",
     483                        ECN_DBG_PUT("deoj = %02X %02X %02x : %s",
    484484                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx1,
    485485                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx2,
    486486                                ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.deoj.eojx3,
    487                                 _ecn_dbg_enod2str(a_fbs_id.ptr->hdr.target) ECN_DBG_END;
     487                                _ecn_dbg_enod2str(a_fbs_id.ptr->hdr.target));
    488488                }
    489489#endif
     
    529529        switch (a_im.command) {
    530530        case ECN_INM_NOTIFY_INSTANCELIST:
    531                 ECN_DBG_PUT "do _ecn_tsk_int_startup()" ECN_DBG_END;
     531                ECN_DBG_PUT("do _ecn_tsk_int_startup()");
    532532                _ecn_tsk_int_startup(fa_exinf);
    533533                break;
     
    537537                        break;
    538538#endif
    539                 ECN_DBG_PUT "recv: unefined internal-msg: %d", a_im.command ECN_DBG_END;
     539                ECN_DBG_PUT("recv: unefined internal-msg: %d", a_im.command);
    540540                break;
    541541        }
     
    578578        const EOBJINIB *eobj;
    579579
    580         ECN_DBG_PUT "do _ecn_tsk_ntf_inl()" ECN_DBG_END;
     580        ECN_DBG_PUT("do _ecn_tsk_ntf_inl()");
    581581
    582582        memset(&a_hdr, 0, sizeof(a_hdr));
     
    830830                g_release_esv = false;
    831831
    832                 ECN_CAP_PUT "redirect ecn_svc_mailboxid → ecn_api_mailboxid (esv:0x%02X)",
    833                         p_esv->edata.esv ECN_CAP_END;
     832                ECN_CAP_PUT("redirect ecn_svc_mailboxid → ecn_api_mailboxid (esv:0x%02X)",
     833                        p_esv->edata.esv);
    834834                fa_fbs_id.ptr->hdr.target = ENOD_API_ID;
    835835                a_ret = psnd_dtq(ecn_api_mailboxid, (intptr_t)fa_fbs_id.ptr);
     
    858858        case ESV_SET_I:
    859859                if (!p_obj) {
    860                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    861                                 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3 ECN_DBG_END;
     860                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     861                                p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3);
    862862                        result = -1;
    863863                        break;
     
    870870        case ESV_SET_C:
    871871                if (!p_obj) {
    872                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    873                                 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3 ECN_DBG_END;
     872                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     873                                p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3);
    874874                        result = -1;
    875875                        break;
     
    882882        case ESV_GET:
    883883                if (!p_obj) {
    884                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    885                                 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3 ECN_DBG_END;
     884                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     885                                p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3);
    886886                        result = -1;
    887887                        break;
     
    894894        case ESV_INF_REQ:
    895895                if (!p_obj) {
    896                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    897                                 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3 ECN_DBG_END;
     896                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     897                                p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3);
    898898                        result = -1;
    899899                        break;
     
    907907        case ESV_SET_GET:
    908908                if (!p_obj) {
    909                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    910                                 p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3 ECN_DBG_END;
     909                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     910                                p_esv->edata.deoj.eojx1 << 16 | p_esv->edata.deoj.eojx2 << 8 | p_esv->edata.deoj.eojx3);
    911911                        result = -1;
    912912                        break;
     
    942942        case ESV_GET_SNA:               /* 0x52 プロパティ値読み出し不可応答 */
    943943                if (!p_sobj) {
    944                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    945                                 p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3 ECN_DBG_END;
     944                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     945                                p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3);
    946946                        result = -1;
    947947                        break;
     
    955955        case ESV_INF_SNA:               /* 0x53 プロパティ値通知不可応答 */
    956956                if (!p_sobj) {
    957                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    958                                 p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3 ECN_DBG_END;
     957                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     958                                p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3);
    959959                        result = -1;
    960960                        break;
     
    968968        case ESV_SET_GET_SNA:   /* 0x5E プロパティ値書き込み・読み出し不可応答 */
    969969                if (!p_sobj) {
    970                         ECN_DBG_PUT "_ecn_tsk_ecn_msg_main() eoj %06X not found.",
    971                                 p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3 ECN_DBG_END;
     970                        ECN_DBG_PUT("_ecn_tsk_ecn_msg_main() eoj %06X not found.",
     971                                p_esv->edata.seoj.eojx1 << 16 | p_esv->edata.seoj.eojx2 << 8 | p_esv->edata.seoj.eojx3);
    972972                        result = -1;
    973973                        break;
     
    10041004        ECN_FBS_ID fa_fbs_id)
    10051005{
    1006         ECN_DBG_PUT "%s() %s eoj src:%06X dest:%06X",
     1006        ECN_DBG_PUT("%s() %s eoj src:%06X dest:%06X",
    10071007                fp_fncnm, fp_varnm,
    10081008                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.seoj.eojx1 << 16 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.seoj.eojx2 << 8 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.seoj.eojx3,
    1009                 ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx1 << 16 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx2 << 8 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx3 ECN_DBG_END;
     1009                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx1 << 16 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx2 << 8 | ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.deoj.eojx3);
    10101010}
    10111011#else
     
    10291029                return p;
    10301030        }
    1031         ECN_DBG_PUT "_ecn_tsk_eoj_get_property(0x%02X-0x%02X-0x%02X, epc:0x%02X) not found.",
     1031        ECN_DBG_PUT("_ecn_tsk_eoj_get_property(0x%02X-0x%02X-0x%02X, epc:0x%02X) not found.",
    10321032                fp_obj->eojx1, fp_obj->eojx2, fp_obj->eojx3,
    1033                 fa_epc ECN_DBG_END;
     1033                fa_epc);
    10341034
    10351035        return NULL;
     
    10441044                return -1;
    10451045
    1046         ECN_DBG_PUT "_ecn_tsk_eoj_set_edt(epc:0x%02X) call eprpset()",
    1047                 fp_prp->eprpcd ECN_DBG_END;
     1046        ECN_DBG_PUT("_ecn_tsk_eoj_set_edt(epc:0x%02X) call eprpset()",
     1047                fp_prp->eprpcd);
    10481048
    10491049        return fp_prp->eprpset(fp_prp, fp_src, fa_srcsz, fa_anno);
     
    10581058                return -1;
    10591059
    1060         ECN_DBG_PUT "_ecn_tsk_eoj_get_edt(epc:0x%02X) call eprpget()",
    1061                 fp_prp->eprpcd ECN_DBG_END;
     1060        ECN_DBG_PUT("_ecn_tsk_eoj_get_edt(epc:0x%02X) call eprpget()",
     1061                fp_prp->eprpcd);
    10621062
    10631063        return fp_prp->eprpget(fp_prp, fp_dst, fp_prp->eprpsz);
     
    10901090                p_blk = (T_ECN_SUB_BLK *)_ecn_fbs_mbx_get(sizeof(*p_blk));
    10911091                if (!p_blk) {
    1092                         ECN_DBG_PUT "_ecn_fbs_mbx_get() fault." ECN_DBG_END;
     1092                        ECN_DBG_PUT("_ecn_fbs_mbx_get() fault.");
    10931093                        return 0;       /* メモリ不足 */
    10941094                }
     
    11001100        a_ret = _ecn_fbs_get_data(fa_fbs_id, fp_prp, sizeof(*fp_prp), &a_size);
    11011101        if (a_ret || a_size < (int)sizeof(*fp_prp)) {
    1102                 ECN_DBG_PUT "_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1102                ECN_DBG_PUT("_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    11031103                goto lb_except;
    11041104        }
     
    11091109                a_ret = _ecn_fbs_get_data(fa_fbs_id, p_blk, fp_prp->pdc, &a_size);
    11101110                if (a_ret || a_size < (int)fp_prp->pdc) {
    1111                         ECN_DBG_PUT "_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1111                        ECN_DBG_PUT("_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    11121112                        goto lb_except;
    11131113                }
     
    11461146                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    11471147                if (!p_edt) {
    1148                         ECN_DBG_PUT "_ecn_tsk_eoj_set_main(): _ecn_tsk_get_prp_pce() fault." ECN_DBG_END;
     1148                        ECN_DBG_PUT("_ecn_tsk_eoj_set_main(): _ecn_tsk_get_prp_pce() fault.");
    11491149                        goto lb_except;
    11501150                }
     
    11661166                }
    11671167                if (a_ans == a_size) {
    1168                         ECN_DBG_PUT "_ecn_tsk_eoj_set_edt(0x%06X, 0x%02x, 0x%02X..., %u) ok.",
     1168                        ECN_DBG_PUT("_ecn_tsk_eoj_set_edt(0x%06X, 0x%02x, 0x%02X..., %u) ok.",
    11691169                                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1170                                 a_prp.epc, p_edt->payload[0], a_size ECN_DBG_END;
     1170                                a_prp.epc, p_edt->payload[0], a_size);
    11711171                        a_prp.pdc = 0;
    11721172                } else {
    1173                         ECN_DBG_PUT "_ecn_tsk_eoj_set_edt(0x%06X, 0x%02x, 0x%02X..., %u) fault.",
     1173                        ECN_DBG_PUT("_ecn_tsk_eoj_set_edt(0x%06X, 0x%02x, 0x%02X..., %u) fault.",
    11741174                                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1175                                 a_prp.epc, p_edt->payload[0], a_size ECN_DBG_END;
     1175                                a_prp.epc, p_edt->payload[0], a_size);
    11761176                        *p_sw_ok = 0;   /* プロパティ設定失敗 */
    11771177                        /* 応答処理の場合EDTは設定しない */
     
    11831183                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    11841184                if (a_ret) {
    1185                         ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1185                        ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    11861186                        goto lb_except;
    11871187                }
     
    11911191                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_edt->payload, a_prp.pdc);
    11921192                        if (a_ret) {
    1193                                 ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1193                                ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    11941194                                goto lb_except;
    11951195                        }
     
    12401240        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    12411241        if (!p_prp_buf) {
    1242                 ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1242                ECN_DBG_PUT("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
    12431243                goto lb_except; /* メモリ不足 */
    12441244        }
     
    12481248                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    12491249                if (!p_edt) {
    1250                         ECN_DBG_PUT "_ecn_tsk_eoj_get_main(): _ecn_tsk_get_prp_pce() fault." ECN_DBG_END;
     1250                        ECN_DBG_PUT("_ecn_tsk_eoj_get_main(): _ecn_tsk_get_prp_pce() fault.");
    12511251                        goto lb_except;
    12521252                }
     
    12731273                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    12741274                if (a_ret) {
    1275                         ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1275                        ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    12761276                        goto lb_except;
    12771277                }
     
    12801280                        a_ret = _ecn_fbs_add_data_ex(a_fbs_res, p_prp_buf, a_ans);
    12811281                        if (a_ret) {
    1282                                 ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1282                                ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    12831283                                goto lb_except;
    12841284                        }
     
    13191319        p_prp_buf = _ecn_fbs_mbx_get(ECHONET_MEMPOOL_BLOCK_SIZE);
    13201320        if (!p_prp_buf) {
    1321                 ECN_DBG_PUT "_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1321                ECN_DBG_PUT("_ecn_fbs_mbx_get() result = %d:%s", a_ret, itron_strerror(a_ret));
    13221322                goto lb_except; /* メモリ不足 */
    13231323        }
     
    13271327                p_edt = _ecn_tsk_get_prp_pce(fa_fbs_id, &a_prp, p_edt);
    13281328                if (!p_edt) {
    1329                         ECN_DBG_PUT "_ecn_tsk_eoj_get_main(): _ecn_tsk_get_prp_pce() fault." ECN_DBG_END;
     1329                        ECN_DBG_PUT("_ecn_tsk_eoj_get_main(): _ecn_tsk_get_prp_pce() fault.");
    13301330                        goto lb_except;
    13311331                }
     
    13361336                a_ret = _ecn_fbs_add_data_ex(a_fbs_res, &a_prp, sizeof(a_prp));
    13371337                if (a_ret) {
    1338                         ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1338                        ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    13391339                        goto lb_except;
    13401340                }
     
    13741374                a_ret = _ecn_fbs_get_data(fa_fbs_id, &a_prp, sizeof(a_prp), &a_size);
    13751375                if (a_ret || a_size < (int)sizeof(a_prp)) {
    1376                         ECN_DBG_PUT "_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1376                        ECN_DBG_PUT("_ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    13771377                        goto lb_except;
    13781378                }
     
    13811381                a_ret = _ecn_fbs_seek_rpos(fa_fbs_id, a_prp.pdc);
    13821382                if (a_ret) {
    1383                         ECN_DBG_PUT "_ecn_fbs_seek_rpos() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1383                        ECN_DBG_PUT("_ecn_fbs_seek_rpos() result = %d:%s", a_ret, itron_strerror(a_ret));
    13841384                        goto lb_except;
    13851385                }
     
    15431543        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    15441544        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    1545                 ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1545                ECN_DBG_PUT("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
    15461546                goto lb_finally;
    15471547        }
     
    15591559                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
    15601560        if (a_ret) {
    1561                 ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1561                ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    15621562                goto lb_except;
    15631563        }
     
    15661566        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    15671567        if (a_ret) {
    1568                 ECN_DBG_PUT "_ecn_fbs_set_rpos() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1568                ECN_DBG_PUT("_ecn_fbs_set_rpos() result = %d:%s", a_ret, itron_strerror(a_ret));
    15691569                goto lb_except;
    15701570        }
     
    15771577                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
    15781578        if (a_ret) {
    1579                 ECN_DBG_PUT "_ecn_tsk_eoj_get_main() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1579                ECN_DBG_PUT("_ecn_tsk_eoj_get_main() result = %d:%s", a_ret, itron_strerror(a_ret));
    15801580                goto lb_except;
    15811581        }
     
    16011601        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16021602        if (a_ret != E_OK) {
    1603                 ECN_DBG_PUT "_ecn_tsk_snd_mbx() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1603                ECN_DBG_PUT("_ecn_tsk_snd_mbx() result = %d:%s", a_ret, itron_strerror(a_ret));
    16041604                goto lb_except;
    16051605        }
     
    16341634        a_ret = _ecn_fbs_cre(a_size, &a_fbs_res);
    16351635        if (a_ret != E_OK || !a_fbs_res.ptr) { /* 確保失敗 */
    1636                 ECN_DBG_PUT "_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1636                ECN_DBG_PUT("_ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
    16371637                goto lb_finally;
    16381638        }
     
    16471647                        sizeof(a_ecn_hdp.ecn_hdr) + sizeof(a_ecn_hdp.edata));
    16481648        if (a_ret) {
    1649                 ECN_DBG_PUT "_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1649                ECN_DBG_PUT("_ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    16501650                goto lb_except;
    16511651        }
     
    16541654        a_ret = _ecn_fbs_set_rpos(fa_fbs_id, offsetof(T_ECN_EDT_HDR, ecn_prp));
    16551655        if (a_ret) {
    1656                 ECN_DBG_PUT "_ecn_fbs_set_rpos() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1656                ECN_DBG_PUT("_ecn_fbs_set_rpos() result = %d:%s", a_ret, itron_strerror(a_ret));
    16571657                goto lb_except;
    16581658        }
     
    16651665                ((T_EDATA *)fa_fbs_id.ptr)->hdr.edata.opc, &a_sw_ok);
    16661666        if (a_ret) {
    1667                 ECN_DBG_PUT "_ecn_tsk_eoj_res_main() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1667                ECN_DBG_PUT("_ecn_tsk_eoj_res_main() result = %d:%s", a_ret, itron_strerror(a_ret));
    16681668                goto lb_except;
    16691669        }
     
    16891689        a_ret = _ecn_tsk_snd_mbx(a_fbs_res, false);
    16901690        if (a_ret != E_OK) {
    1691                 ECN_DBG_PUT "_ecn_tsk_snd_mbx() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     1691                ECN_DBG_PUT("_ecn_tsk_snd_mbx() result = %d:%s", a_ret, itron_strerror(a_ret));
    16921692                goto lb_except;
    16931693        }
     
    17181718        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    17191719
    1720         ECN_DBG_PUT "_ecn_tsk_eoj_set_get() eoj:%06X",
    1721                 fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
     1720        ECN_DBG_PUT("_ecn_tsk_eoj_set_get() eoj:%06X",
     1721                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
    17221722
    17231723        /* 初期取得サイズ */
     
    17611761                goto lb_except;
    17621762        }
    1763         ECN_DBG_PUT "_ecn_tsk_eoj_set_get() eoj:%06X _ecn_tsk_eoj_set_main() ok sw_ok:%s",
     1763        ECN_DBG_PUT("_ecn_tsk_eoj_set_get() eoj:%06X _ecn_tsk_eoj_set_main() ok sw_ok:%s",
    17641764                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1765                 (a_sw_ok ? "true" : "false") ECN_DBG_END;
     1765                (a_sw_ok ? "true" : "false"));
    17661766
    17671767        /* 次の件数を読み取る(1byte)                                             */
     
    17941794                goto lb_except;
    17951795        }
    1796         ECN_DBG_PUT "_ecn_tsk_eoj_set_get() eoj:%06X _ecn_tsk_eoj_get_main() ok sw_ok:%s",
     1796        ECN_DBG_PUT("_ecn_tsk_eoj_set_get() eoj:%06X _ecn_tsk_eoj_get_main() ok sw_ok:%s",
    17971797                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1798                 (a_sw_ok ? "true" : "false") ECN_DBG_END;
     1798                (a_sw_ok ? "true" : "false"));
    17991799
    18001800        /* プロパティ読み込み件数書き込み時のヘッド情報で、読み出し件数を記録 */
     
    18391839        memset(&a_ecn_hdp, 0, sizeof(a_ecn_hdp));
    18401840
    1841         ECN_DBG_PUT "_ecn_tsk_eoj_set_get_res() eoj:%06X",
    1842                 fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3 ECN_DBG_END;
     1841        ECN_DBG_PUT("_ecn_tsk_eoj_set_get_res() eoj:%06X",
     1842                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3);
    18431843
    18441844        /* 初期取得サイズ */
     
    18671867                goto lb_except;
    18681868        }
    1869         ECN_DBG_PUT "_ecn_tsk_eoj_set_get_res() eoj:%06X _ecn_tsk_eoj_set_main() ok sw_ok:%s",
     1869        ECN_DBG_PUT("_ecn_tsk_eoj_set_get_res() eoj:%06X _ecn_tsk_eoj_set_main() ok sw_ok:%s",
    18701870                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1871                 (a_sw_ok ? "true" : "false") ECN_DBG_END;
     1871                (a_sw_ok ? "true" : "false"));
    18721872
    18731873        /* 次の件数を読み取る(1byte)                                             */
     
    18881888                goto lb_except;
    18891889        }
    1890         ECN_DBG_PUT "_ecn_tsk_eoj_set_get_res() eoj:%06X _ecn_tsk_eoj_get_main() ok sw_ok:%s",
     1890        ECN_DBG_PUT("_ecn_tsk_eoj_set_get_res() eoj:%06X _ecn_tsk_eoj_get_main() ok sw_ok:%s",
    18911891                fp_obj->eojx1 << 16 | fp_obj->eojx2 << 8 | fp_obj->eojx3,
    1892                 (a_sw_ok ? "true" : "false") ECN_DBG_END;
     1892                (a_sw_ok ? "true" : "false"));
    18931893
    18941894        goto lb_finally;
     
    19641964        ret = _ecn_fbs_cre(1, &req);
    19651965        if (ret != E_OK) {
    1966                 ECN_DBG_PUT "_ecn_tsk_cre_req_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     1966                ECN_DBG_PUT("_ecn_tsk_cre_req_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret));
    19671967                return ret;
    19681968        }
     
    19711971        if (ret != E_OK) {
    19721972                _ecn_fbs_del(req);
    1973                 ECN_DBG_PUT "_ecn_tsk_cre_req_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     1973                ECN_DBG_PUT("_ecn_tsk_cre_req_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret));
    19741974                return ret;
    19751975        }
     
    19931993        ret = _ecn_fbs_cre(1, &res);
    19941994        if (ret != E_OK) {
    1995                 ECN_DBG_PUT "_ecn_tsk_cre_res_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     1995                ECN_DBG_PUT("_ecn_tsk_cre_res_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret));
    19961996                return ret;
    19971997        }
     
    20002000        if (ret != E_OK) {
    20012001                _ecn_fbs_del(res);
    2002                 ECN_DBG_PUT "_ecn_tsk_cre_res_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     2002                ECN_DBG_PUT("_ecn_tsk_cre_res_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret));
    20032003                return ret;
    20042004        }
  • uKadecot/trunk/ecnl_ssp/echonet_uip_task.c

    r108 r152  
    108108        if (    a_rcv_pkt.t_esv->ecn_hdr.ehd1 != ECN_EDH1_ECHONET_LITE  /* ECHONET Lite規格       */
    109109        ||      a_rcv_pkt.t_esv->ecn_hdr.ehd2 != ECN_EDH2_FORMAT_1                      /* 電文形式1                */) {
    110                 ECN_DBG_PUT "[UDP ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2 ECN_DBG_END;
     110                ECN_DBG_PUT("[UDP ECHO SRV] illegal type (0x%02X,0x%02X)", a_rcv_pkt.t_esv->ecn_hdr.ehd1, a_rcv_pkt.t_esv->ecn_hdr.ehd2);
    111111                return E_PAR;
    112112        }
     
    118118        a_ret = _ecn_fbs_cre(fa_len, &a_fbs_id);
    119119        if (a_ret != E_OK) {
    120                 ECN_DBG_PUT "[UDP ECHO SRV] _ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     120                ECN_DBG_PUT("[UDP ECHO SRV] _ecn_fbs_cre() result = %d:%s", a_ret, itron_strerror(a_ret));
    121121                return a_ret;
    122122        }
    123123        a_ret = _ecn_fbs_add_data_ex(a_fbs_id, buffer, fa_len);
    124124        if (a_ret) {
    125                 ECN_DBG_PUT "[UDP ECHO SRV] _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     125                ECN_DBG_PUT("[UDP ECHO SRV] _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    126126                goto lb_except;
    127127        }
     
    133133        a_enod_id = udp_get_id((T_EDATA *)a_fbs_id.ptr, dst->ipaddr, dst->portno);
    134134        if (a_enod_id < 0 || tnum_enodadr <= a_enod_id) {
    135                 ECN_DBG_PUT "[UDP ECHO SRV] udp src(%s) echonet-node not found.",
    136                         ip2str(NULL, dst->ipaddr) ECN_DBG_END;
     135                ECN_DBG_PUT("[UDP ECHO SRV] udp src(%s) echonet-node not found.",
     136                        ip2str(NULL, dst->ipaddr));
    137137        } else {
    138138                /* 送信元ECHONETノードを記録 */
     
    144144        a_ret = psnd_dtq(ecn_svc_mailboxid, (intptr_t)a_fbs_id.ptr);
    145145        if (a_ret != E_OK) {
    146                 ECN_DBG_PUT "[UDP ECHO SRV] psnd_dtq(ecn_svc_mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     146                ECN_DBG_PUT("[UDP ECHO SRV] psnd_dtq(ecn_svc_mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret));
    147147                goto lb_except;
    148148        }
     
    185185
    186186        uip_gethostaddr(a_src);
    187         ECN_DBG_PUT "[UDP TSK:%d] started, IP Address: %s ether_max_len: %u",
     187        ECN_DBG_PUT("[UDP TSK:%d] started, IP Address: %s ether_max_len: %u",
    188188                ecn_udp_taskid,
    189189                ip2str(NULL, a_src),
    190                 UIP_BUFSIZE ECN_DBG_END;
     190                UIP_BUFSIZE);
    191191        uip_ipaddr_copy(enodadrb_table[ENOD_LOCAL_ID].ipaddr, a_src);
    192192
    193193        UDP_CEPID = udp_acre_cep(&ccep);
    194194        if (UDP_CEPID == NULL) {
    195                 ECN_DBG_PUT "udp_acre_cep()" ECN_DBG_END;
     195                ECN_DBG_PUT("udp_acre_cep()");
    196196                PT_EXIT(&pt);
    197197        }
     
    200200        a_ret = sta_cyc(ecn_udp_cychdrid);
    201201        if (a_ret != E_OK) {
    202                 ECN_DBG_PUT "sta_cyc() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     202                ECN_DBG_PUT("sta_cyc() result = %d:%s", a_ret, itron_strerror(a_ret));
    203203                PT_EXIT(&pt);
    204204        }
     
    206206        a_ret = act_tsk(ecn_svc_taskid);
    207207        if (a_ret != E_OK) {
    208                 ECN_DBG_PUT "act_tsk() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     208                ECN_DBG_PUT("act_tsk() result = %d:%s", a_ret, itron_strerror(a_ret));
    209209                PT_EXIT(&pt);
    210210        }
     
    212212        a_ret = get_tim(&a_now);
    213213        if (a_ret != E_OK) {
    214                 ECN_DBG_PUT "get_tim() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     214                ECN_DBG_PUT("get_tim() result = %d:%s", a_ret, itron_strerror(a_ret));
    215215                PT_EXIT(&pt);
    216216        }
     
    226226                        || ((a_ret = timer_expired(&timer) ? E_TMOUT : E_WBLK) == E_TMOUT)));
    227227                if ((a_ret != E_OK) && (a_ret != E_TMOUT)) {
    228                         ECN_DBG_PUT "trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     228                        ECN_DBG_PUT("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret));
    229229                        PT_EXIT(&pt);
    230230                }
     
    232232                a_ret2 = get_tim(&a_now);
    233233                if (a_ret2 != E_OK) {
    234                         ECN_DBG_PUT "get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2) ECN_DBG_END;
     234                        ECN_DBG_PUT("get_tim() result = %d:%s", a_ret2, itron_strerror(a_ret2));
    235235                        PT_EXIT(&pt);
    236236                }
     
    243243                        a_snd_len = _ecn_fbs_get_datalen(a_mdt.fbs_id);
    244244
    245                         ECN_DBG_PUT "[UDP TSK] trcv_dtq() mbx recv (%d byte)", a_snd_len ECN_DBG_END;
     245                        ECN_DBG_PUT("[UDP TSK] trcv_dtq() mbx recv (%d byte)", a_snd_len);
    246246
    247247                        if (0 < a_snd_len) {
     
    289289        ret = _ecn_fbs_cre(1, &req);
    290290        if (ret != E_OK) {
    291                 ECN_DBG_PUT "_ecn_udp_cre_req_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     291                ECN_DBG_PUT("_ecn_udp_cre_req_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret));
    292292                return ret;
    293293        }
     
    296296        if (ret != E_OK) {
    297297                _ecn_fbs_del(req);
    298                 ECN_DBG_PUT "_ecn_udp_cre_req_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     298                ECN_DBG_PUT("_ecn_udp_cre_req_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret));
    299299                return ret;
    300300        }
     
    318318        ret = _ecn_fbs_cre(1, &res);
    319319        if (ret != E_OK) {
    320                 ECN_DBG_PUT "_ecn_udp_cre_res_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     320                ECN_DBG_PUT("_ecn_udp_cre_res_fbs() : _ecn_fbs_cre() result = %d:%s", ret, itron_strerror(ret));
    321321                return ret;
    322322        }
     
    325325        if (ret != E_OK) {
    326326                _ecn_fbs_del(res);
    327                 ECN_DBG_PUT "_ecn_udp_cre_res_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret) ECN_DBG_END;
     327                ECN_DBG_PUT("_ecn_udp_cre_res_fbs() : _ecn_fbs_add_data() result = %d:%s", ret, itron_strerror(ret));
    328328                return ret;
    329329        }
     
    353353        a_ret = _ecn_fbs_get_data(fbs_id, &cmd, 1, &len);
    354354        if (a_ret != E_OK) {
    355                 ECN_DBG_PUT "[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     355                ECN_DBG_PUT("[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    356356                return;
    357357        }
     
    368368                a_ret = _ecn_fbs_get_data(fbs_id, &msg, sizeof(msg), &a_snd_len);
    369369                if (a_ret != E_OK) {
    370                         ECN_DBG_PUT "[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     370                        ECN_DBG_PUT("[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    371371                }
    372372
     
    384384                if (a_ret != E_OK) {
    385385                        _ecn_fbs_del(buf);
    386                         ECN_DBG_PUT "_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     386                        ECN_DBG_PUT("_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    387387                        return;
    388388                }
     
    391391                if (a_ret != E_OK) {
    392392                        _ecn_fbs_del(buf);
    393                         ECN_DBG_PUT "_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     393                        ECN_DBG_PUT("_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    394394                        return;
    395395                }
     
    398398                if (a_ret != E_OK) {
    399399                        _ecn_fbs_del(buf);
    400                         ECN_DBG_PUT "_ecn_int_msg() : psnd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     400                        ECN_DBG_PUT("_ecn_int_msg() : psnd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret));
    401401                        return;
    402402                }
     
    414414        if (a_ret != E_OK) {
    415415                _ecn_fbs_del(buf);
    416                 ECN_DBG_PUT "_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     416                ECN_DBG_PUT("_ecn_int_msg() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    417417                return;
    418418        }
     
    421421        if (a_ret != E_OK) {
    422422                _ecn_fbs_del(buf);
    423                 ECN_DBG_PUT "_ecn_int_msg() : psnd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     423                ECN_DBG_PUT("_ecn_int_msg() : psnd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret));
    424424                return;
    425425        }
     
    443443        a_ret = udp_get_ip(&a_dst, fbs_id.ptr->hdr.target);
    444444        if (!a_ret) {
    445                 ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X → udp dest(%s)",
     445                ECN_DBG_PUT("[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X → udp dest(%s)",
    446446                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
    447447                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
    448448                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx3,
    449                         ip2str(NULL, a_dst.ipaddr) ECN_DBG_END;
     449                        ip2str(NULL, a_dst.ipaddr));
    450450
    451451                /* fbsから出力領域にデータを抽出 */
     
    453453                a_ret = _ecn_fbs_get_data(fbs_id, buffer, sizeof(buffer), &a_snd_len);
    454454                if (a_ret != E_OK) {
    455                         ECN_DBG_PUT "[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     455                        ECN_DBG_PUT("[UDP TSK] _ecn_fbs_get_data() result = %d:%s", a_ret, itron_strerror(a_ret));
    456456                }
    457457                else if(uip_ipaddr_cmp(a_dst.ipaddr, localhost)) {
    458458                        /* 送信先が127.0.0.1 → mbxに転送 */
    459                         ECN_DBG_PUT "redirect ecn_udp_mailboxid → ecn_svc_mailboxid (esv:0x%02X)",
    460                                 ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv ECN_DBG_END;
     459                        ECN_DBG_PUT("redirect ecn_udp_mailboxid → ecn_svc_mailboxid (esv:0x%02X)",
     460                                ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv);
    461461
    462462                        a_ret = _ecn_udp2mbx((const uint8_t *)buffer, a_snd_len, &a_dst);
     
    466466                }
    467467                else {
    468                         ECN_DBG_PUT "[UDP TSK] udp_snd_dat() to:%s %ubyte(s)",
    469                                 ip2str(NULL, a_dst.ipaddr), a_snd_len ECN_DBG_END;
     468                        ECN_DBG_PUT("[UDP TSK] udp_snd_dat() to:%s %ubyte(s)",
     469                                ip2str(NULL, a_dst.ipaddr), a_snd_len);
    470470#ifdef ECN_DBG_PUT_ENA
    471471                        _ecn_dbg_bindmp((const uint8_t *)buffer, a_snd_len);
     
    474474                        a_ret = udp_snd_dat(UDP_CEPID, &a_dst, buffer, a_snd_len);
    475475                        if (a_ret < 0) {
    476                                 ECN_DBG_PUT "[UDP TSK] send, error: %s", itron_strerror(a_ret) ECN_DBG_END;
     476                                ECN_DBG_PUT("[UDP TSK] send, error: %s", itron_strerror(a_ret));
    477477                        }
    478478                }
     
    480480                /* データが長すぎて1パケットに収まらなかった場合 */
    481481                if (_ecn_fbs_exist_data(fbs_id)) {
    482                         ECN_DBG_PUT "[UDP TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id) ECN_DBG_END;
     482                        ECN_DBG_PUT("[UDP TSK] send, data so long: %dbyte(s)", _ecn_fbs_get_datalen(fbs_id));
    483483                }
    484484        } else {
    485                 ECN_DBG_PUT "[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X not found.",
     485                ECN_DBG_PUT("[UDP TSK] echonet-node 0x%02X-0x%02X-0x%02X not found.",
    486486                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx1,
    487487                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx2,
    488                         ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx3 ECN_DBG_END;
     488                        ((T_EDATA *)fbs_id.ptr)->hdr.edata.deoj.eojx3);
    489489        }
    490490}
     
    505505        PT_BEGIN(&s.pt);
    506506
    507         /* ECN_CAP_PUT "[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk ECN_CAP_END; */
     507        /* ECN_CAP_PUT("[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk); */
    508508        memset(buffer, 0, sizeof(buffer));
    509509
     
    519519        }
    520520#endif
    521         ECN_CAP_PUT "[UDP ECHO SRV] recv, addr: %s:%d, len: %d, msg: '%s'",
    522                         ip2str(NULL, dst.ipaddr), dst.portno, a_len, buffer ECN_CAP_END;
     521        ECN_CAP_PUT("[UDP ECHO SRV] recv, addr: %s:%d, len: %d, msg: '%s'",
     522                        ip2str(NULL, dst.ipaddr), dst.portno, a_len, buffer);
    523523        if ((int)sizeof(buffer) <= a_len)
    524524                a_len = (int)sizeof(buffer) - 1;
     
    583583                        break;
    584584                }
    585                 ECN_DBG_PUT "is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc ECN_DBG_END;
     585                ECN_DBG_PUT("is_match(): ecn_itr_nxt() result: epc=0x%02X, pdc=%d", epc, pdc);
    586586                /* インスタンスリスト通知または自ノードインスタンスリストS以外は除外 */
    587587                if ((epc != 0xD5) && (epc != 0xD6)) {
     
    641641                        continue;
    642642
    643                 ECN_CAP_PUT "udp_get_id(): ip-found remote(%d) = %s",
    644                         i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr) ECN_CAP_END;
     643                ECN_CAP_PUT("udp_get_id(): ip-found remote(%d) = %s",
     644                        i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr));
    645645                return (ECN_ENOD_ID)i;
    646646        }
     
    660660                uip_ipaddr_copy(ea->ipaddr, ipaddr);
    661661
    662                 ECN_CAP_PUT "udp_get_id(): enod-found remote(%d) = %s",
    663                         i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr) ECN_CAP_END;
     662                ECN_CAP_PUT("udp_get_id(): enod-found remote(%d) = %s",
     663                        i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr));
    664664                return (ECN_ENOD_ID)i;
    665665        }
     
    673673                uip_ipaddr_copy(ea->ipaddr, ipaddr);
    674674
    675                 ECN_CAP_PUT "udp_get_id(): empty-found remote(%d) = %s",
    676                         i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr) ECN_CAP_END;
     675                ECN_CAP_PUT("udp_get_id(): empty-found remote(%d) = %s",
     676                        i - ENOD_REMOTE_ID, ip2str(NULL, ipaddr));
    677677                return (ECN_ENOD_ID)i;
    678678        }
     
    732732        if (a_ret != E_OK) {
    733733                _ecn_fbs_del(req);
    734                 ECN_DBG_PUT "ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     734                ECN_DBG_PUT("ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    735735                return a_ret;
    736736        }
     
    739739        if (a_ret != E_OK) {
    740740                _ecn_fbs_del(req);
    741                 ECN_DBG_PUT "ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     741                ECN_DBG_PUT("ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    742742                return a_ret;
    743743        }
     
    746746        if (a_ret != E_OK) {
    747747                _ecn_fbs_del(req);
    748                 ECN_DBG_PUT "ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret) ECN_DBG_END;
     748                ECN_DBG_PUT("ecn_udp_get_ipaddr() : _ecn_fbs_add_data_ex() result = %d:%s", a_ret, itron_strerror(a_ret));
    749749                return a_ret;
    750750        }
  • uKadecot/trunk/kadecot/wamp_broker.c

    r148 r152  
    8080void wamp_broker_subscribe_topic(wamp_broker_t *broker, const char *value)
    8181{
    82         static const char topic[] = "com.sonycsl.kadecot.echonetlite.topic.";
     82        static const char echonetlite_topic[] = "com.sonycsl.kadecot.echonetlite.topic.";
     83        static const char arduino_topic[] = "com.sonycsl.kadecot.arduino.topic.";
     84
     85        if (strncmp(echonetlite_topic, value, sizeof(echonetlite_topic) - 1) == 0)
     86                wamp_broker_subscribe_echonetlite_topic(broker, value, sizeof(echonetlite_topic) - 1);
     87        else if (strncmp(arduino_topic, value, sizeof(arduino_topic) - 1) == 0)
     88                wamp_broker_subscribe_arduino_topic(broker, value, sizeof(arduino_topic) - 1);
     89}
     90
     91void wamp_broker_subscribe_echonetlite_topic(wamp_broker_t *broker, const char *value, int val_pos)
     92{
    8393        char *pos, *end;
    8494        wamp_subscription_t *subscription;
     95        wamp_echonetlite_subscription_t *echonetlite;
    8596        uint16_t devType;
    8697        uint8_t epc;
    8798
    88         if(strncmp(topic, value, sizeof(topic) - 1) != 0)
    89                 return;
    90 
    9199        subscription = wamp_broker_new_subscription(broker);
    92100        if(subscription == NULL)
    93101                return;
    94 
    95         subscription->deviceName[0] = '\0';
    96         strcpy_s(subscription->deviceName, sizeof(subscription->deviceName), &value[sizeof(topic) - 1]);
    97         subscription->deviceName[sizeof(subscription->deviceName) - 1] = '\0';
    98 
    99         end = &subscription->deviceName[sizeof(subscription->deviceName)];
    100         for(pos = subscription->deviceName; pos < end; pos++){
     102        subscription->kind = WAMP_SUBSCRIPTION_KIND_ECHONETLITE;
     103        echonetlite = &subscription->echonetlite;
     104
     105        echonetlite->deviceName[0] = '\0';
     106        strcpy_s(echonetlite->deviceName, sizeof(echonetlite->deviceName), &value[val_pos]);
     107        echonetlite->deviceName[sizeof(echonetlite->deviceName) - 1] = '\0';
     108
     109        end = &echonetlite->deviceName[sizeof(echonetlite->deviceName)];
     110        for(pos = echonetlite->deviceName; pos < end; pos++){
    101111                if(*pos != '.')
    102112                        continue;
    103113
    104114                *pos = '\0';
    105                 subscription->proprtyName = pos + 1;
    106                 break;
    107         }
    108 
    109         devType = kadecot_names_get_device_type(subscription->deviceName,
    110                 strnlen(subscription->deviceName, sizeof(subscription->deviceName)));
     115                echonetlite->proprtyName = pos + 1;
     116                break;
     117        }
     118
     119        devType = kadecot_names_get_device_type(echonetlite->deviceName,
     120                strnlen(echonetlite->deviceName, sizeof(echonetlite->deviceName)));
    111121        if(devType == 0){
    112122                wamp_broker_delete_subscription(broker, subscription);
     
    114124        }
    115125
    116         epc = kadecot_names_get_property_code(subscription->proprtyName,
    117                 strnlen(subscription->proprtyName, subscription->proprtyName - subscription->deviceName), devType);
     126        epc = kadecot_names_get_property_code(echonetlite->proprtyName,
     127                strnlen(echonetlite->proprtyName, echonetlite->proprtyName - echonetlite->deviceName), devType);
    118128        if(epc == 0){
    119129                wamp_broker_delete_subscription(broker, subscription);
     
    121131        }
    122132
    123         subscription->devType = devType;
    124         subscription->epc = epc;
     133        echonetlite->devType = devType;
     134        echonetlite->epc = epc;
     135
     136        wamp_subscription_t *spos, *send = &broker->subscriptions[sizeof(broker->subscriptions) / sizeof(broker->subscriptions[0])];
     137
     138        for (spos = broker->subscriptions; spos < send; spos++) {
     139                if ((spos == subscription) || (spos->subscriptionId == 0) || (spos->kind != WAMP_SUBSCRIPTION_KIND_ECHONETLITE))
     140                        continue;
     141
     142                if ((spos->echonetlite.devType != devType) || (spos->echonetlite.epc != epc))
     143                        continue;
     144
     145                wamp_broker_delete_subscription(broker, subscription);
     146                subscription = spos;
     147                break;
     148        }
    125149
    126150        broker->current_subscription = subscription;
    127151}
    128152
    129 static void wamp_broker_subscribe_res(wamp_broker_t *broker);
     153void wamp_broker_subscribe_arduino_topic(wamp_broker_t *broker, const char *value, int val_pos)
     154{
     155        char *pos, *end;
     156        wamp_subscription_t *subscription;
     157        wamp_arduino_subscription_t *arduino;
     158        char pinno[40], *threshold = NULL;
     159
     160        subscription = wamp_broker_new_subscription(broker);
     161        if (subscription == NULL)
     162                return;
     163        subscription->kind = WAMP_SUBSCRIPTION_KIND_ARDUINO;
     164        arduino = &subscription->arduino;
     165
     166        pinno[0] = '\0';
     167        strcpy_s(pinno, sizeof(pinno), &value[val_pos]);
     168        pinno[sizeof(pinno) - 1] = '\0';
     169
     170        if (pinno[0] != 'p' || pinno[1] != 'i' || pinno[2] != 'n') {
     171                wamp_broker_delete_subscription(broker, subscription);
     172                return;
     173        }
     174
     175        end = &pinno[sizeof(pinno)];
     176        for (pos = pinno; pos < end; pos++) {
     177                if (*pos != '.')
     178                        continue;
     179
     180                *pos = '\0';
     181                threshold = pos + 1;
     182                if (threshold[0] != 't' || threshold[1] != 'h' || threshold[2] != 'r') {
     183                        threshold = NULL;
     184                }
     185                break;
     186        }
     187
     188        arduino->pinno = atoi(&pinno[3]);
     189        if (threshold != NULL) {
     190                arduino->threshold = atoi(&threshold[3]);
     191        }
     192        else {
     193                arduino->threshold = 0;
     194        }
     195
     196        wamp_subscription_t *spos, *send = &broker->subscriptions[sizeof(broker->subscriptions) / sizeof(broker->subscriptions[0])];
     197
     198        for (spos = broker->subscriptions; spos < send; spos++) {
     199                if ((spos == subscription) || (spos->subscriptionId == 0) || (spos->kind != WAMP_SUBSCRIPTION_KIND_ARDUINO))
     200                        continue;
     201
     202                if ((spos->arduino.pinno != arduino->pinno) || (spos->arduino.threshold != arduino->threshold))
     203                        continue;
     204
     205                wamp_broker_delete_subscription(broker, subscription);
     206                subscription = spos;
     207                break;
     208        }
     209
     210        broker->current_subscription = subscription;
     211}
     212
     213static void wamp_broker_subscribe_echonetlite_res(wamp_broker_t *broker);
     214static void wamp_broker_subscribe_arduino_res(wamp_broker_t *broker);
    130215
    131216void wamp_broker_subscribe_close(struct wamp_state *s)
     
    137222
    138223        // send RESULT
    139         wamp_broker_subscribe_res(broker);
     224        if (broker->current_subscription != NULL) {
     225                switch (broker->current_subscription->kind) {
     226                case WAMP_SUBSCRIPTION_KIND_ECHONETLITE:
     227                        wamp_broker_subscribe_echonetlite_res(broker);
     228                        break;
     229                case WAMP_SUBSCRIPTION_KIND_ARDUINO:
     230                        wamp_broker_subscribe_arduino_res(broker);
     231                        break;
     232                default:
     233                        break;
     234                }
     235        }
    140236
    141237        if (broker->error != NULL){
     
    148244}
    149245
    150 static void wamp_broker_subscribe_res(wamp_broker_t *broker)
     246static void wamp_broker_subscribe_echonetlite_res(wamp_broker_t *broker)
    151247{
    152248        struct wamp_state *s = broker->s;
     
    157253        ER ret;
    158254
    159         if ((subscription == NULL) || (subscription->devType == 0) || (subscription->epc == 0))
     255        if ((subscription == NULL) || (subscription->echonetlite.devType == 0) || (subscription->echonetlite.epc == 0))
    160256                return;
    161257
     
    175271        ret = main_send_message(buf, s->wbsid);
    176272        if (ret != E_OK) {
    177                 syslog(LOG_WARNING, "wamp_broker_subscribe_close() : main_send_message() result = %d", ret);
     273                syslog(LOG_WARNING, "wamp_broker_subscribe_echonetlite_res() : main_send_message() result = %d", ret);
     274                return;
     275        }
     276
     277        broker->error = NULL;
     278}
     279
     280static void wamp_broker_subscribe_arduino_res(wamp_broker_t *broker)
     281{
     282        struct wamp_state *s = broker->s;
     283        wamp_subscription_t *subscription = broker->current_subscription;
     284        // send SUBSCRIBED or ERROR
     285        ECN_FBS_ID buf;
     286        ECN_FBS_SSIZE_T pos = 0;
     287        ER ret;
     288
     289        if ((subscription == NULL)
     290                || ((subscription->arduino.pinno < 0) || (subscription->arduino.pinno > 19)))
     291                return;
     292
     293        if (subscription->arduino.pinno >= 14)
     294                main_add_threshold(subscription->subscriptionId, subscription->arduino.pinno, subscription->arduino.threshold);
     295
     296        ret = _ecn_fbs_cre(1, &buf);
     297        if (ret != E_OK) {
     298                syslog(LOG_WARNING, "_ecn_fbs_cre() result = %d", ret);
     299                return;
     300        }
     301
     302        ret = fbs_printf(buf, &pos, "[33,%d,%d]", broker->requestId, subscription->subscriptionId);
     303        if (ret != E_OK) {
     304                syslog(LOG_WARNING, "fbs_printf() result = %d", ret);
     305                _ecn_fbs_del(buf);
     306                return;
     307        }
     308
     309        ret = main_send_message(buf, s->wbsid);
     310        if (ret != E_OK) {
     311                syslog(LOG_WARNING, "wamp_broker_subscribe_arduino_res() : main_send_message() result = %d", ret);
    178312                return;
    179313        }
     
    218352                return;
    219353
     354        if (subscription->kind == WAMP_SUBSCRIPTION_KIND_ARDUINO)
     355                main_del_threshold(subscription->subscriptionId);
     356
    220357        wamp_broker_delete_subscription(broker, subscription);
    221358
     
    318455
    319456        for(subscription = broker->subscriptions; subscription < end; subscription++){
    320                 if (subscription->subscriptionId == 0)
    321                         continue;
    322 
    323                 if ((subscription->devType != devType) || (subscription->epc != epc))
     457                if ((subscription->subscriptionId == 0) || (subscription->kind != WAMP_SUBSCRIPTION_KIND_ECHONETLITE))
     458                        continue;
     459
     460                if ((subscription->echonetlite.devType != devType) || (subscription->echonetlite.epc != epc))
    324461                        continue;
    325462
     
    339476
    340477                ret = fbs_printf(buf, &pos, "{\"propertyName\":\"%s\",\"propertyValue\":[",
    341                         subscription->proprtyName);
     478                        subscription->echonetlite.proprtyName);
    342479                if (ret != E_OK) {
    343480                        syslog(LOG_WARNING, "fbs_printf() result = %d", ret);
     
    374511        }
    375512}
     513
     514void wamp_broker_publish_pin(wamp_broker_t *broker, uint16_t pubId, int deviceId, int pinno, uint16_t value)
     515{
     516        struct wamp_state *s = broker->s;
     517        wamp_subscription_t *subscription, *end = &broker->subscriptions[sizeof(broker->subscriptions) / sizeof(broker->subscriptions[0])];
     518        ECN_FBS_ID buf;
     519        ECN_FBS_SSIZE_T pos = 0;
     520        ER ret;
     521
     522        for (subscription = broker->subscriptions; subscription < end; subscription++) {
     523                if ((subscription->subscriptionId == 0) || (subscription->kind != WAMP_SUBSCRIPTION_KIND_ARDUINO))
     524                        continue;
     525
     526                if (subscription->arduino.pinno != pinno)
     527                        continue;
     528
     529                ret = _ecn_fbs_cre(1, &buf);
     530                if (ret != E_OK) {
     531                        syslog(LOG_WARNING, "_ecn_fbs_cre() result = %d", ret);
     532                        break;
     533                }
     534
     535                ret = fbs_printf(buf, &pos, "[36,%d,%d,{\"deviceId\":%d},[],",
     536                        subscription->subscriptionId, pubId, deviceId);
     537                if (ret != E_OK) {
     538                        syslog(LOG_WARNING, "fbs_printf() result = %d", ret);
     539                        _ecn_fbs_del(buf);
     540                        break;
     541                }
     542
     543                if ((pinno >= 0) && (pinno <= 13)) {
     544                        ret = fbs_printf(buf, &pos, "{\"pin\":%d,\"value\":\"%s\"}]",
     545                                subscription->arduino.pinno, (value == 0) ? "LOW" : "HIGH");
     546                        if (ret != E_OK) {
     547                                syslog(LOG_WARNING, "fbs_printf() result = %d", ret);
     548                                _ecn_fbs_del(buf);
     549                                break;
     550                        }
     551                }
     552                else {
     553                        ret = fbs_printf(buf, &pos, "{\"pin\":%d,\"value\":%d}]",
     554                                subscription->arduino.pinno, value);
     555                        if (ret != E_OK) {
     556                                syslog(LOG_WARNING, "fbs_printf() result = %d", ret);
     557                                _ecn_fbs_del(buf);
     558                                break;
     559                        }
     560                }
     561
     562                ret = main_send_message(buf, s->wbsid);
     563                if (ret != E_OK) {
     564                        syslog(LOG_WARNING, "wamp_broker_publish_inf() : main_send_message() result = %d", ret);
     565                }
     566                break;
     567        }
     568}
  • uKadecot/trunk/kadecot/wamp_broker.h

    r108 r152  
    3939#define WAMP_BROKER_H
    4040
     41typedef enum wamp_subscription_kind
     42{
     43        WAMP_SUBSCRIPTION_KIND_NONE,
     44        WAMP_SUBSCRIPTION_KIND_ECHONETLITE,
     45        WAMP_SUBSCRIPTION_KIND_ARDUINO,
     46} wamp_subscription_kind_t;
     47
     48typedef struct wamp_echonetlite_subscription
     49{
     50        char deviceName[40];
     51        char *proprtyName;
     52        uint16_t devType;
     53        uint8_t epc;
     54} wamp_echonetlite_subscription_t;
     55
     56typedef struct wamp_arduino_subscription
     57{
     58        uint8_t pinno;
     59        uint16_t threshold;
     60} wamp_arduino_subscription_t;
     61
    4162typedef struct wamp_subscription
    4263{
     
    4465        unsigned int requestId;
    4566        int subscriptionId;
    46         char deviceName[40];
    47         char *proprtyName;
    48         uint16_t devType;
    49         uint8_t epc;
     67        wamp_subscription_kind_t kind;
     68        union{
     69                wamp_echonetlite_subscription_t echonetlite;
     70                wamp_arduino_subscription_t arduino;
     71        };
    5072} wamp_subscription_t;
    5173
     
    5577        unsigned int requestId;
    5678        int subscriptionId;
    57         wamp_subscription_t subscriptions[10];
     79        wamp_subscription_t subscriptions[30];
    5880        wamp_subscription_t *current_subscription;
    5981        const char *error;
     
    6688void wamp_broker_subscribe_options(wamp_broker_t *broker);
    6789void wamp_broker_subscribe_topic(wamp_broker_t *broker, const char *value);
     90void wamp_broker_subscribe_echonetlite_topic(wamp_broker_t *broker, const char *value, int pos);
     91void wamp_broker_subscribe_arduino_topic(wamp_broker_t *broker, const char *value, int pos);
    6892void wamp_broker_subscribe_close(struct wamp_state *s);
    6993
     
    89113void wamp_broker_publish_inf(wamp_broker_t *broker, uint16_t pubId, int deviceId,
    90114        uint16_t devType, uint8_t epc, uint8_t pdc, uint8_t *p_edt);
     115void wamp_broker_publish_pin(wamp_broker_t *broker, uint16_t pubId, int deviceId,
     116        int pinno, uint16_t value);
    91117
    92118#endif // WAMP_BROKER_H
  • uKadecot/trunk/src/ukadecot/main.c

    r148 r152  
    11/*
    22 *  TOPPERS ECHONET Lite Communication Middleware
    3  * 
     3 *
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    5  * 
     5 *
    66 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    77 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2626 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    2727 *      免責すること.
    28  * 
     28 *
    2929 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3030 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3232 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3333 *  の責任を負わない.
    34  * 
     34 *
    3535 *  @(#) $Id$
    3636 */
    3737
    38 /* 
     38/*
    3939 *  サンプルプログラム(1)の本体
    4040 */
     
    6464#include "data_flash.h"
    6565
    66 uint8_t mac_addr[6] = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xB8 };
     66uint8_t mac_addr[6] = {0x12, 0x34, 0x56, 0x78, 0x9A, 0xB8};
    6767bool_t dhcp_enable = true;
    6868
     
    9797{
    9898        /* サイズが1以外は受け付けない */
    99         if(size != 1)
     99        if (size != 1)
    100100                return 0;
    101101
    102102        *anno = *((uint8_t*)item->exinf) != *((uint8_t*)src);
    103103
    104         switch(*(uint8_t *)src){
     104        switch (*(uint8_t *)src) {
    105105        /* ONの場合 */
    106106        case 0x30:
     
    129129{
    130130        /* サイズが2以外は受け付けない */
    131         if(size != 2)
     131        if (size != 2)
    132132                return 0;
    133133
    134         if((*(uint16_t *)src >= 0x0) && (*(uint16_t *)src <= 0x3ec)){
     134        if ((*(uint16_t *)src >= 0x0) && (*(uint16_t *)src <= 0x3ec)) {
    135135                *((uint16_t *)item->exinf) = *((uint16_t *)src);
    136136                /* TODO: このの場合の処理*/
    137137        }
    138138        /* 上記以外は受け付けない */
    139         else{
     139        else {
    140140                return 0;
    141141        }
     
    150150{
    151151        /* サイズが1以外は受け付けない */
    152         if(size != 1)
     152        if (size != 1)
    153153                return 0;
    154154
    155155        *anno = *((uint8_t *)item->exinf) != *((uint8_t *)src);
    156156
    157         switch(*(uint8_t *)src){
     157        switch (*(uint8_t *)src) {
    158158        /* 異常発生ありの場合 */
    159159        case 0x41:
     
    177177        uint8_t *p_src;
    178178
    179         if(size != 2)
     179        if (size != 2)
    180180                return 0;
    181181
     
    196196        uint8_t *p_dst;
    197197
    198         if(size != 2)
     198        if (size != 2)
    199199                return 0;
    200200
     
    214214        uint8_t *p_src;
    215215
    216         if(size != 4)
     216        if (size != 4)
    217217                return 0;
    218218
     
    234234        uint8_t *p_dst;
    235235
    236         if(size != 4)
     236        if (size != 4)
    237237                return 0;
    238238
     
    305305
    306306        ret2 = get_tim(&now);
    307         if (ret2 != E_OK){
     307        if (ret2 != E_OK) {
    308308                syslog(LOG_ERROR, "get_tim");
    309309                PT_EXIT(&main_pt);
    310310        }
    311311
    312         for(;;){
     312        for (;;) {
    313313                prev = now;
    314314
     
    320320                PT_WAIT_UNTIL(&main_pt, (((ret = ecn_prcv_esv(&esv)) == E_OK) || (ret == E_BRK)
    321321                        || ((ret = timer_expired(&main_pt_timer) ? E_TMOUT : E_WBLK) == E_TMOUT)));
    322                 if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)){
     322                if ((ret != E_OK) && (ret != E_BRK) && (ret != E_TMOUT)) {
    323323                        syslog(LOG_ERROR, "ecn_trcv_esv");
    324324                        PT_EXIT(&main_pt);
     
    326326
    327327                ret2 = get_tim(&now);
    328                 if (ret2 != E_OK){
     328                if (ret2 != E_OK) {
    329329                        syslog(LOG_ERROR, "get_tim");
    330330                        PT_EXIT(&main_pt);
     
    341341                        /* 領域解放 */
    342342                        ret = ecn_rel_esv(esv);
    343                         if (ret != E_OK){
     343                        if (ret != E_OK) {
    344344                                syslog(LOG_ERROR, "ECNL ecn_rel_esv result = %d", ret);
    345345                                PT_EXIT(&main_pt);
     
    348348                /* 応答電文待ちの割り込みの場合 */
    349349                else if (ret == E_BRK) {
    350                         ECN_FBS_ID msg = { (T_ECN_FST_BLK *)esv };
     350                        ECN_FBS_ID msg = {(T_ECN_FST_BLK *)esv};
    351351                        bool_t rel_msg = true;
    352352                        switch (msg.ptr->hdr.type) {
    353                         case 0: 
     353                        case 0:
    354354                                rel_msg = main_wbs_msg(msg);
    355355                                break;
     
    360360                                /* 応答電文待ちの割り込みデータ取得 */
    361361                                ret = ecn_get_brk_dat(esv, brkdat, sizeof(brkdat), &len);
    362                                 if (ret != E_OK){
     362                                if (ret != E_OK) {
    363363                                        syslog(LOG_ERROR, "ecn_get_brk_dat");
    364364                                        PT_EXIT(&main_pt);
     
    373373                        if (rel_msg) {
    374374                                ret = ecn_rel_esv(esv);
    375                                 if (ret != E_OK){
     375                                if (ret != E_OK) {
    376376                                        syslog(LOG_ERROR, "BRK ecn_rel_esv msg = %p, type = %d, result = %d", esv, msg.ptr->hdr.type, ret);
    377377                                        PT_EXIT(&main_pt);
     
    384384
    385385                /* キューに溜まったメッセージを処理 */
    386                 while(main_wbs_que_msg());
     386                while (main_wbs_que_msg());
    387387        }
    388388
     
    400400}
    401401
    402 bool_t main_btn1_state;
    403 int main_btn1_count = 0;
    404 bool_t main_btn2_state;
    405 int main_btn2_count = 0;
     402typedef struct gpio_state {
     403        bool_t state;
     404        int count;
     405} gpio_state_t;
     406
     407gpio_state_t main_gpio[2/*btn1, btn2*/ + 14/*arduino pin*/];
     408
     409#define MAIN_GPIO_BTN1 0
     410#define MAIN_GPIO_BTN2 1
     411#define MAIN_GPIO_ARDUINO_PIN0 2
     412#define MAIN_GPIO_COUNT (sizeof(main_gpio) / sizeof(main_gpio[0]))
     413
     414typedef struct analog_state {
     415        int subscriptionId;
     416        int pinno;
     417        bool_t state;
     418        int count;
     419        uint16_t threshold;
     420} analog_state_t;
     421
     422analog_state_t main_analog[16];
     423
     424#define MAIN_ANALOG_COUNT (sizeof(main_analog) / sizeof(main_analog[0]))
     425
     426int main_gpio_pubid;
    406427
    407428enum request_info_state_t {
     
    430451wamp_state_t wamp;
    431452
     453#define MAIN_REQUEST_INFOS_COUNT (sizeof(request_infos) / sizeof(request_infos[0]))
     454
    432455/*
    433456 * 初期化
     
    448471
    449472        ret = data_flash_init();
    450         while(ret == E_OK){
     473        while (ret == E_OK) {
    451474                ret = data_flash_read(0, data);
    452                 if(ret != E_OK){
     475                if (ret != E_OK) {
    453476                        break;
    454477                }
     
    463486        }
    464487
    465         for(i = 0, j = 0; i < sizeof(mac_addr); i++){
     488        for (i = 0, j = 0; i < sizeof(mac_addr); i++) {
    466489                c = mac_addr[i] >> 4;
    467490                data[j++] = (c < 10) ? ('0' + c) : ('A' - 10 + c);
     
    489512        btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    490513        /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
    491         btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
    492         main_btn1_state = (btn1 & 0x80/*0x0x20*/) != 0;
    493         main_btn2_state = (btn2 & 0x80) != 0;
    494 
    495         for (i = 0; i< sizeof(request_infos) / sizeof(request_infos[0]); i++) {
     514        btn2 = sil_reb_mem((uint8_t *)0x0008C040);
     515        main_gpio[MAIN_GPIO_BTN1].state = (btn1 & 0x80/*0x0x20*/) != 0;
     516        main_gpio[MAIN_GPIO_BTN2].state = (btn2 & 0x80) != 0;
     517        for (i = MAIN_GPIO_ARDUINO_PIN0; i < MAIN_GPIO_COUNT; i++) {
     518                arduino_digital_value_t dval;
     519                arduino_digitalRead(i - MAIN_GPIO_ARDUINO_PIN0, &dval);
     520                main_gpio[i].state = dval == ARDUINO_DIGITAL_VALUE_HIGH;
     521        }
     522
     523        for (i = 0; i < MAIN_ANALOG_COUNT; i++) {
     524                main_analog[i].state = true; /* たぶんプルアップされている */
     525        }
     526
     527        for (i = 0; i < MAIN_REQUEST_INFOS_COUNT; i++) {
    496528                request_infos[i].timer = TMO_FEVR;
    497529        }
     
    506538        TMO timer = main_timer, temp;
    507539
    508         for (i = 0; i< sizeof(request_infos) / sizeof(request_infos[0]); i++) {
     540        for (i = 0; i < sizeof(request_infos) / sizeof(request_infos[0]); i++) {
    509541                temp = request_infos[i].timer;
    510542                if (temp != TMO_FEVR) {
     
    528560        if (main_timer != TMO_FEVR) {
    529561                main_timer -= interval;
    530                 if(main_timer < 0){
     562                if (main_timer < 0) {
    531563                        main_timer = 0;
    532564                }
    533565        }
    534566
    535         for (i = 0; i< sizeof(request_infos) / sizeof(request_infos[0]); i++) {
     567        for (i = 0; i < sizeof(request_infos) / sizeof(request_infos[0]); i++) {
    536568                temp = request_infos[i].timer;
    537569                if (temp != TMO_FEVR) {
    538570                        temp -= interval;
    539                         if(temp < 0){
     571                        if (temp < 0) {
    540572                                temp = 0;
    541573                        }
     
    554586        request_info_t *request_info = &request_infos[0];
    555587
    556         switch(esv->hdr.edata.esv){
     588        switch (esv->hdr.edata.esv) {
    557589        case ESV_SET_RES:
    558590        case ESV_SET_C_SNA:
     
    562594                }
    563595
    564                 switch(request_info->state){
     596                switch (request_info->state) {
    565597                case request_info_state_kadecot_set:
    566598                        main_kadecot_set_res(esv);
     
    578610                }
    579611
    580                 switch(request_info->state){
     612                switch (request_info->state) {
    581613                case request_info_state_kadecot_get:
    582614                        main_kadecot_get_res(esv);
     
    594626                }
    595627
    596                 switch(request_info->state){
     628                switch (request_info->state) {
    597629                case request_info_state_ecnl_setget:
    598630                        main_ecnl_setget_res(esv);
     
    621653                return false;
    622654        }
    623        
     655
    624656        wamp_put_msg(&wamp, msg, ((ID *)msg.ptr->_gap)[0]);
    625657        return true;
     
    660692        }
    661693
    662         switch(cmd){
     694        switch (cmd) {
    663695        case ECN_INM_GET_DEVICE_LIST_RES:
    664696                main_get_device_list_res(msg);
     
    678710static void main_break_wait(uint8_t *brkdat, int32_t len)
    679711{
    680         switch(main_state){
     712        switch (main_state) {
    681713        case main_state_start:
    682714                main_start_service();
     
    700732        data[0] = 0x01;
    701733        ret = ecn_brk_wai(data, sizeof(data));
    702         if(ret != E_OK){
     734        if (ret != E_OK) {
    703735                syslog(LOG_ERROR, "ecn_brk_wai");
    704736        }
     
    720752        /* ECHONETミドルウェアを起動 */
    721753        ret = ecn_sta_svc();
    722         if(ret != E_OK)
     754        if (ret != E_OK)
    723755                return;
    724756}
     
    739771        }
    740772
    741         for (i = 0; i< sizeof(request_infos) / sizeof(request_infos[0]); i++) {
     773        for (i = 0; i < sizeof(request_infos) / sizeof(request_infos[0]); i++) {
    742774                temp = request_infos[i].timer;
    743775                if (temp != 0)
     
    750782static void main_btn1_change(bool_t push);
    751783static void main_btn2_change(bool_t push);
     784static void main_gpio_change(int pinno, uint16_t high);
    752785static ER main_search_device();
    753786
    754787static void main_btn_timeout()
    755788{
    756         uint8_t btn1, btn2;
    757 
    758         if(main_timer != 0)
    759                 return;
    760 
    761         switch(main_state){
     789        gpio_state_t *gpio;
     790        analog_state_t *analog;
     791        arduino_digital_value_t dval;
     792        int aval;
     793        bool_t val;
     794        int i;
     795
     796        if (main_timer != 0)
     797                return;
     798
     799        switch (main_state) {
    762800        case main_state_idle:
    763801                /* 10ms後にボタン状態を確認 */
     
    766804                arduino_tick();
    767805
    768                 /* ボタン状態読み込み */
    769                 btn1 = sil_reb_mem((uint8_t *)0x0008C04A);
    770                 /*btn1 = sil_reb_mem((uint8_t *)0x0008C040);*/
    771                 btn2 = sil_reb_mem((uint8_t *) 0x0008C040);
    772 
    773                 /* ボタン1の処理 */
    774                 if(((btn1 & 0x80/*0x20*/) != 0) && !main_btn1_state){
    775                         main_btn1_count++;
    776                         if(main_btn1_count > 10){
    777                                 main_btn1_count = 0;
    778                                 main_btn1_state = true;
    779 
    780                                 main_btn1_change(true);
     806                for (i = 0; i < MAIN_GPIO_COUNT; i++) {
     807                        gpio = &main_gpio[i];
     808
     809                        /* GPIO状態読み込み */
     810                        switch (i) {
     811                        case MAIN_GPIO_BTN1:
     812                                val = (sil_reb_mem((uint8_t *)0x0008C04A) & 0x80) != 0;
     813                                /*val = (sil_reb_mem((uint8_t *)0x0008C040) & 0x20) != 0;*/
     814                                break;
     815                        case MAIN_GPIO_BTN2:
     816                                val = (sil_reb_mem((uint8_t *)0x0008C040) & 0x80) != 0;
     817                                break;
     818                        default:
     819                                arduino_digitalRead(i - MAIN_GPIO_ARDUINO_PIN0, &dval);
     820                                val = dval == ARDUINO_DIGITAL_VALUE_HIGH;
     821                                break;
    781822                        }
    782                 }
    783                 else if(((btn1 & 0x80/*0x20*/) == 0) && main_btn1_state){
    784                         main_btn1_count++;
    785                         if(main_btn1_count > 10){
    786                                 main_btn1_count = 0;
    787                                 main_btn1_state = false;
    788 
    789                                 main_btn1_change(false);
     823
     824                        if (val && !gpio->state) {
     825                                gpio->count++;
     826                                if (gpio->count > 10) {
     827                                        gpio->count = 0;
     828                                        gpio->state = true;
     829
     830                                        switch (i) {
     831                                        case MAIN_GPIO_BTN1:
     832                                                main_btn1_change(true);
     833                                                break;
     834                                        case MAIN_GPIO_BTN2:
     835                                                main_btn2_change(true);
     836                                                break;
     837                                        default:
     838                                                main_gpio_change(i - MAIN_GPIO_ARDUINO_PIN0, 1);
     839                                                break;
     840                                        }
     841                                }
    790842                        }
    791                 }
    792                 else{
    793                         main_btn1_count = 0;
    794                 }
    795 
    796                 /* ボタン2の処理 */
    797                 if(((btn2 & 0x80) != 0) && !main_btn2_state){
    798                         main_btn2_count++;
    799                         if(main_btn2_count > 10){
    800                                 main_btn2_count = 0;
    801                                 main_btn2_state = true;
    802 
    803                                 main_btn2_change(true);
     843                        else if (!val && gpio->state) {
     844                                gpio->count++;
     845                                if (gpio->count > 10) {
     846                                        gpio->count = 0;
     847                                        gpio->state = false;
     848
     849                                        switch (i) {
     850                                        case MAIN_GPIO_BTN1:
     851                                                main_btn1_change(false);
     852                                                break;
     853                                        case MAIN_GPIO_BTN2:
     854                                                main_btn2_change(false);
     855                                                break;
     856                                        default:
     857                                                main_gpio_change(i - MAIN_GPIO_ARDUINO_PIN0, 0);
     858                                                break;
     859                                        }
     860                                }
    804861                        }
    805                 }
    806                 else if(((btn2 & 0x80) == 0) && main_btn2_state){
    807                         main_btn2_count++;
    808                         if(main_btn2_count > 10){
    809                                 main_btn2_count = 0;
    810                                 main_btn2_state = false;
    811 
    812                                 main_btn2_change(false);
     862                        else {
     863                                gpio->count = 0;
    813864                        }
    814865                }
    815                 else{
    816                         main_btn2_count = 0;
    817                 }
    818                 break;
    819         }
     866
     867                for (i = 0; i < MAIN_ANALOG_COUNT; i++) {
     868                        analog = &main_analog[i];
     869
     870                        if (analog->subscriptionId == 0)
     871                                continue;
     872
     873                        /* GPIO状態読み込み */
     874                        arduino_analogRead(analog->pinno, &aval);
     875
     876                        if (analog->state)
     877                                val = aval < analog->threshold;
     878                        else
     879                                val = aval > analog->threshold;
     880
     881                        if (val && !analog->state) {
     882                                analog->count++;
     883                                if (analog->count > 10) {
     884                                        analog->count = 0;
     885                                        analog->state = true;
     886
     887                                        main_gpio_change(analog->pinno, aval);
     888                                }
     889                        }
     890                        else if (val && analog->state) {
     891                                analog->count++;
     892                                if (analog->count > 10) {
     893                                        analog->count = 0;
     894                                        analog->state = false;
     895
     896                                        main_gpio_change(analog->pinno, aval);
     897                                }
     898                        }
     899                        else {
     900                                analog->count = 0;
     901                        }
     902                }
     903                break;
     904        }
     905}
     906
     907ER main_add_threshold(int subscriptionId, int pinno, uint16_t threshold)
     908{
     909        int i, aval;
     910        analog_state_t *analog;
     911
     912        if ((pinno < 14) || (pinno > 19))
     913                return E_PAR;
     914
     915        for (i = 0; i < MAIN_ANALOG_COUNT; i++) {
     916                analog = &main_analog[i];
     917                if (analog->subscriptionId != 0)
     918                        continue;
     919
     920                analog->subscriptionId = subscriptionId;
     921                analog->pinno = pinno;
     922                analog->threshold = threshold;
     923
     924                arduino_analogRead(analog->pinno, &aval);
     925
     926                analog->state = (aval < analog->threshold);
     927                analog->count = 0;
     928
     929                return E_OK;
     930        }
     931
     932        return E_NOMEM;
     933}
     934
     935ER main_del_threshold(int subscriptionId)
     936{
     937        int i;
     938        analog_state_t *analog;
     939
     940        for (i = 0; i < MAIN_ANALOG_COUNT; i++) {
     941                analog = &main_analog[i];
     942                if (analog->subscriptionId != subscriptionId)
     943                        continue;
     944
     945                analog->subscriptionId = 0;
     946
     947                return E_OK;
     948        }
     949
     950        return E_OBJ;
    820951}
    821952
     
    829960
    830961        ret = ecn_itr_ini(&enm, esv);
    831         if(ret != E_OK){
     962        if (ret != E_OK) {
    832963                syslog(LOG_ERROR, "ecn_itr_ini");
    833964                return;
    834965        }
    835966
    836         for(;;) {
    837                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     967        for (;;) {
     968                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    838969                        switch (epc) {
    839970                        case 0x80:
     
    843974                        }
    844975                }
    845                 if(ret != E_BOVR){
     976                if (ret != E_BOVR) {
    846977                        syslog(LOG_ERROR, "ecn_itr_nxt");
    847978                        break;
    848979                }
    849                 if(enm.is_eof)
     980                if (enm.is_eof)
    850981                        break;
    851982        }
     
    858989{
    859990        /* 押されて戻った時に処理する */
    860         if(push)
     991        if (push)
    861992                return;
    862993
     
    8731004
    8741005/*
     1006 * GPIO状態変化処理
     1007 */
     1008static void main_gpio_change(int pinno, uint16_t value)
     1009{
     1010        main_gpio_pubid++;
     1011
     1012        wamp_broker_publish_pin(&wamp.broker, main_gpio_pubid, 1, pinno, value);
     1013}
     1014
     1015/*
    8751016 * 機器の検索
    8761017 */
     
    8821023        /* 機器の検索 */
    8831024        ret = ecn_esv_inf_req(&esv, EOBJ_NULL, 0xD6);
    884         if(ret != E_OK){
     1025        if (ret != E_OK) {
    8851026                syslog(LOG_ERROR, "ecn_esv_inf_req");
    8861027                return ret;
     
    8891030        /* 電文送信 */
    8901031        ret = ecn_snd_esv(esv);
    891         if(ret != E_OK){
     1032        if (ret != E_OK) {
    8921033                syslog(LOG_ERROR, "ecn_snd_esv");
    8931034                return ret;
     
    9061047
    9071048        ret = psnd_dtq(WEBSOCKET_MBXID, (intptr_t)msg.ptr);
    908         if(ret != E_OK){
     1049        if (ret != E_OK) {
    9091050                syslog(LOG_ERROR, "psnd_dtq(WEBSOCKET_MBXID) : result=%d", ret);
    9101051                _ecn_fbs_del(msg);
     
    9231064        ER ret;
    9241065
    925         if(request_info->requestId != 0)
     1066        if (request_info->requestId != 0)
    9261067                return E_QOVR;
    9271068
    9281069        /* 機器の検索 */
    9291070        ret = main_search_device();
    930         if(ret != E_OK){
     1071        if (ret != E_OK) {
    9311072                return ret;
    9321073        }
     
    9481089        for (;;) {
    9491090                ret = ecn_agent_get_device_list(ECHONET_API_MAILBOX, request_info->requestId, &req);
    950                 if(ret != E_OK){
     1091                if (ret != E_OK) {
    9511092                        syslog(LOG_ERROR, "ecn_agent_get_device_list");
    9521093                        break;
     
    10051146        ECN_FBS_ID req;
    10061147
    1007         if(request_info->requestId != 0)
     1148        if (request_info->requestId != 0)
    10081149                return E_QOVR;
    10091150
    10101151        ret = ecn_udp_get_ipaddr(ECHONET_API_MAILBOX, requestId, addrid, &req);
    1011         if(ret != E_OK){
     1152        if (ret != E_OK) {
    10121153                return ret;
    10131154        }
     
    10631204        ECN_FBS_ID req;
    10641205
    1065         if(request_info->requestId != 0)
     1206        if (request_info->requestId != 0)
    10661207                return E_QOVR;
    10671208
    10681209        ret = ecn_agent_get_device_info(ECHONET_API_MAILBOX, requestId, eobjid, &req);
    1069         if(ret != E_OK){
     1210        if (ret != E_OK) {
    10701211                return ret;
    10711212        }
     
    11181259        T_EDATA *esv;
    11191260
    1120         if(request_info->requestId != 0)
     1261        if (request_info->requestId != 0)
    11211262                return E_QOVR;
    11221263
    11231264        /* プロパティ取得電文作成 */
    11241265        ret = ecn_esv_get(&esv, eobjid, epc);
    1125         if(ret != E_OK){
     1266        if (ret != E_OK) {
    11261267                syslog(LOG_ERROR, "ecn_esv_get");
    11271268                return ret;
     
    11301271        /* 電文送信 */
    11311272        ret = ecn_snd_esv(esv);
    1132         if(ret != E_OK){
     1273        if (ret != E_OK) {
    11331274                syslog(LOG_ERROR, "ecn_snd_esv");
    11341275                return ret;
     
    11561297        T_ENUM_EPC enm;
    11571298
    1158         if(request_info->eobjid != eobjid)
     1299        if (request_info->eobjid != eobjid)
    11591300                return;
    11601301
     
    11661307
    11671308        ret = ecn_itr_ini(&enm, esv);
    1168         if(ret != E_OK){
     1309        if (ret != E_OK) {
    11691310                syslog(LOG_ERROR, "ecn_itr_ini");
    11701311                return;
    11711312        }
    11721313
    1173         for(;;) {
    1174                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     1314        for (;;) {
     1315                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    11751316                        if (request_info->epc == epc) {
    11761317                                wamp_dealer_kadecot_get(dealer, eobjid, epc, pdc, p_edt);
    11771318                        }
    11781319                }
    1179                 if(ret != E_BOVR){
     1320                if (ret != E_BOVR) {
    11801321                        syslog(LOG_ERROR, "ecn_itr_nxt");
    11811322                        break;
    11821323                }
    1183                 if(enm.is_eof)
     1324                if (enm.is_eof)
    11841325                        break;
    11851326        }
     
    11931334        T_EDATA *esv;
    11941335
    1195         if(request_info->requestId != 0)
     1336        if (request_info->requestId != 0)
    11961337                return E_QOVR;
    11971338
    11981339        /* プロパティ取得電文作成 */
    11991340        ret = ecn_esv_setc(&esv, eobjid, epc, pdc, edt);
    1200         if(ret != E_OK){
     1341        if (ret != E_OK) {
    12011342                syslog(LOG_ERROR, "ecn_esv_setc");
    12021343                return ret;
     
    12051346        /* 電文送信 */
    12061347        ret = ecn_snd_esv(esv);
    1207         if(ret != E_OK){
     1348        if (ret != E_OK) {
    12081349                syslog(LOG_ERROR, "ecn_snd_esv");
    12091350                return ret;
     
    12341375                return;
    12351376
    1236         if(request_info->eobjid != eobjid)
     1377        if (request_info->eobjid != eobjid)
    12371378                return;
    12381379
     
    12431384
    12441385        ret = ecn_itr_ini(&enm, esv);
    1245         if(ret != E_OK){
     1386        if (ret != E_OK) {
    12461387                syslog(LOG_ERROR, "ecn_itr_ini");
    12471388                return;
    12481389        }
    12491390
    1250         for(;;) {
    1251                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     1391        for (;;) {
     1392                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    12521393                        if (request_info->epc == epc) {
    12531394                                wamp_dealer_kadecot_set(dealer, eobjid, epc);
    12541395                        }
    12551396                }
    1256                 if(ret != E_BOVR){
     1397                if (ret != E_BOVR) {
    12571398                        syslog(LOG_ERROR, "ecn_itr_nxt");
    12581399                        break;
    12591400                }
    1260                 if(enm.is_eof)
     1401                if (enm.is_eof)
    12611402                        break;
    12621403        }
     
    12681409        ER ret;
    12691410
    1270         if(request_info->requestId != 0)
     1411        if (request_info->requestId != 0)
    12711412                return E_QOVR;
    12721413
    12731414        /* 電文送信 */
    12741415        ret = ecn_snd_esv(esv);
    1275         if(ret != E_OK){
     1416        if (ret != E_OK) {
    12761417                syslog(LOG_ERROR, "ecn_snd_esv");
    12771418                return ret;
     
    13041445        ER ret;
    13051446
    1306         if(request_info->requestId != 0)
     1447        if (request_info->requestId != 0)
    13071448                return E_QOVR;
    13081449
    13091450        /* 電文送信 */
    13101451        ret = ecn_snd_esv(esv);
    1311         if(ret != E_OK){
     1452        if (ret != E_OK) {
    13121453                syslog(LOG_ERROR, "ecn_snd_esv");
    13131454                return ret;
     
    13401481        ER ret;
    13411482
    1342         if(request_info->requestId != 0)
     1483        if (request_info->requestId != 0)
    13431484                return E_QOVR;
    13441485
    13451486        /* 電文送信 */
    13461487        ret = ecn_snd_esv(esv);
    1347         if(ret != E_OK){
     1488        if (ret != E_OK) {
    13481489                syslog(LOG_ERROR, "ecn_snd_esv");
    13491490                return ret;
     
    13751516        struct wamp_dealer *dealer = request_info->dealer;
    13761517
    1377         switch(request_info->state) {
     1518        switch (request_info->state) {
    13781519        case request_info_state_search_device:
    13791520                main_search_device_timeout();
     
    14221563
    14231564        ret = ecn_itr_ini(&enm, esv);
    1424         if(ret != E_OK){
     1565        if (ret != E_OK) {
    14251566                syslog(LOG_ERROR, "ecn_itr_ini");
    14261567                return;
    14271568        }
    14281569
    1429         for(;;) {
    1430                 while((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
     1570        for (;;) {
     1571                while ((ret = ecn_itr_nxt(&enm, &epc, &pdc, p_edt)) == E_OK) {
    14311572                        wamp_broker_publish_inf(&wamp.broker, esv->hdr.ecn_hdr.tid, eobjid,
    14321573                                devType, epc, pdc, p_edt);
    14331574                }
    1434                 if(ret != E_BOVR){
     1575                if (ret != E_BOVR) {
    14351576                        syslog(LOG_ERROR, "ecn_itr_nxt");
    14361577                        break;
    14371578                }
    1438                 if(enm.is_eof)
    1439                         break;
    1440         }
    1441 }
     1579                if (enm.is_eof)
     1580                        break;
     1581        }
     1582}
  • uKadecot/trunk/src/ukadecot/main.h

    r148 r152  
    191191ER main_ecnl_set(unsigned int requestId, struct wamp_dealer *dealer, ID eobjid, T_EDATA *esv);
    192192ER main_ecnl_setget(unsigned int requestId, struct wamp_dealer *dealer, ID eobjid, T_EDATA *esv);
     193ER main_add_threshold(int subscriptionId, int pinno, uint16_t threshold);
     194ER main_del_threshold(int subscriptionId);
    193195
    194196#endif /* TOPPERS_MACRO_ONLY */
  • uKadecot/trunk/uip/apps/webserver/httpd.c

    r108 r152  
    8989#endif
    9090
     91#define MAX(a, b) ((a > b) ? a : b)
     92
     93union temp_type_t {
     94        char binary[sizeof(http_content_type_binary)];
     95        char html[sizeof(http_content_type_html)];
     96        char css[sizeof(http_content_type_css)];
     97        char js[sizeof(http_content_type_js)];
     98        char json[sizeof(http_content_type_json)];
     99        char png[sizeof(http_content_type_png)];
     100        char gif[sizeof(http_content_type_gif)];
     101        char jpg[sizeof(http_content_type_jpg)];
     102        char svg[sizeof(http_content_type_svg)];
     103        char plain[sizeof(http_content_type_plain)];
     104};
     105
     106struct temp_buf_t{
     107        char headers[MAX(sizeof(http_header_404), sizeof(http_header_200))
     108                + sizeof(http_content_encoding_gzip)
     109                + sizeof(union temp_type_t)
     110        ];
     111        char ws_headers[sizeof(http_header_101)
     112                + sizeof(http_upgrade) + sizeof(((struct httpd_state *)0)->message.upgrade) + sizeof(http_crnl)
     113                + sizeof(http_connection) + sizeof(((struct httpd_state *)0)->message.connection) + sizeof(http_crnl)
     114                + sizeof(http_sec_websocket_accept) + sizeof(((struct httpd_state *)0)->message.response_key) + sizeof(http_crnl)
     115                + sizeof(http_sec_websocket_protocol) + sizeof(((struct httpd_state *)0)->message.sec_websocket_protocol) + sizeof(http_crnl)
     116                + sizeof(http_crnl)
     117        ];
     118};
     119static char temp_buf[sizeof(struct temp_buf_t)];
     120
    91121int httpd_strnicmp(const char *s1, const char *s2, size_t n)
    92122{
     
    159189PT_THREAD(send_headers(struct httpd_state *s, const char *statushdr))
    160190{
     191  char *pos = temp_buf;
     192  int len;
    161193  char *ptr;
    162194
    163195  PSOCK_BEGIN(&s->sout);
    164196
    165   PSOCK_SEND_STR(&s->sout, statushdr);
    166 
    167   PSOCK_SEND_STR(&s->sout, http_content_encoding_gzip);
     197  len = strlen(statushdr);
     198  memcpy(pos, statushdr, len); pos += len;
     199
     200  len = strlen(http_content_encoding_gzip);
     201  memcpy(pos, http_content_encoding_gzip, len); pos += len;
    168202
    169203  ptr = strrchr(s->message.request_url, ISO_period);
    170204  if (ptr == NULL) {
    171     PSOCK_SEND_STR(&s->sout, http_content_type_binary);
     205    len = strlen(http_content_type_binary);
     206    memcpy(pos, http_content_type_binary, len); pos += len;
    172207  } else if (strncmp(http_html, ptr, 5) == 0 ||
    173208    strncmp(http_shtml, ptr, 6) == 0) {
    174     PSOCK_SEND_STR(&s->sout, http_content_type_html);
     209    len = strlen(http_content_type_html);
     210    memcpy(pos, http_content_type_html, len); pos += len;
    175211  } else if (strncmp(http_css, ptr, 4) == 0) {
    176     PSOCK_SEND_STR(&s->sout, http_content_type_css);
     212    len = strlen(http_content_type_css);
     213    memcpy(pos, http_content_type_css, len); pos += len;
    177214  } else if (strncmp(http_js, ptr, 3) == 0) {
    178     PSOCK_SEND_STR(&s->sout, http_content_type_js);
     215    len = strlen(http_content_type_js);
     216    memcpy(pos, http_content_type_js, len); pos += len;
    179217  } else if (strncmp(http_json, ptr, 5) == 0) {
    180     PSOCK_SEND_STR(&s->sout, http_content_type_json);
     218    len = strlen(http_content_type_json);
     219    memcpy(pos, http_content_type_json, len); pos += len;
    181220  } else if (strncmp(http_png, ptr, 4) == 0) {
    182     PSOCK_SEND_STR(&s->sout, http_content_type_png);
     221    len = strlen(http_content_type_png);
     222    memcpy(pos, http_content_type_png, len); pos += len;
    183223  } else if (strncmp(http_gif, ptr, 4) == 0) {
    184     PSOCK_SEND_STR(&s->sout, http_content_type_gif);
     224    len = strlen(http_content_type_gif);
     225    memcpy(pos, http_content_type_gif, len); pos += len;
    185226  } else if (strncmp(http_jpg, ptr, 4) == 0) {
    186     PSOCK_SEND_STR(&s->sout, http_content_type_jpg);
     227    len = strlen(http_content_type_jpg);
     228    memcpy(pos, http_content_type_jpg, len); pos += len;
    187229  } else if (strncmp(http_svg, ptr, 4) == 0) {
    188     PSOCK_SEND_STR(&s->sout, http_content_type_svg);
     230    len = strlen(http_content_type_svg);
     231    memcpy(pos, http_content_type_svg, len); pos += len;
    189232  } else {
    190     PSOCK_SEND_STR(&s->sout, http_content_type_plain);
    191   }
     233    len = strlen(http_content_type_plain);
     234    memcpy(pos, http_content_type_plain, len); pos += len;
     235  }
     236  *pos = '\0';
     237
     238  PSOCK_SEND(&s->sout, temp_buf, pos - temp_buf);
     239
    192240  PSOCK_END(&s->sout);
    193241}
     
    222270PT_THREAD(send_ws_headers(struct httpd_state *s, const char *statushdr))
    223271{
     272  char *pos = temp_buf;
     273  int len;
     274
    224275  PSOCK_BEGIN(&s->sout);
    225276
    226   PSOCK_SEND_STR(&s->sout, statushdr);
    227 
    228   PSOCK_SEND_STR(&s->sout, http_upgrade);
    229   PSOCK_SEND_STR(&s->sout, s->message.upgrade);
    230   PSOCK_SEND_STR(&s->sout, http_crnl);
    231 
    232   PSOCK_SEND_STR(&s->sout, http_connection);
    233   PSOCK_SEND_STR(&s->sout, s->message.connection);
    234   PSOCK_SEND_STR(&s->sout, http_crnl);
    235 
    236   PSOCK_SEND_STR(&s->sout, http_sec_websocket_accept);
    237   PSOCK_SEND_STR(&s->sout, s->message.response_key);
    238   PSOCK_SEND_STR(&s->sout, http_crnl);
    239 
    240   PSOCK_SEND_STR(&s->sout, http_sec_websocket_protocol);
    241   PSOCK_SEND_STR(&s->sout, s->message.sec_websocket_protocol);
    242   PSOCK_SEND_STR(&s->sout, http_crnl);
    243 
    244   PSOCK_SEND_STR(&s->sout, http_crnl);
     277  len = strlen(statushdr);
     278  memcpy(pos, statushdr, len); pos += len;
     279
     280  len = strlen(http_upgrade);
     281  memcpy(pos, http_upgrade, len); pos += len;
     282  len = strlen(s->message.upgrade);
     283  memcpy(pos, s->message.upgrade, len); pos += len;
     284  len = strlen(http_crnl);
     285  memcpy(pos, http_crnl, len); pos += len;
     286
     287  len = strlen(http_connection);
     288  memcpy(pos, http_connection, len); pos += len;
     289  len = strlen(s->message.connection);
     290  memcpy(pos, s->message.connection, len); pos += len;
     291  len = strlen(http_crnl);
     292  memcpy(pos, http_crnl, len); pos += len;
     293
     294  len = strlen(http_sec_websocket_accept);
     295  memcpy(pos, http_sec_websocket_accept, len); pos += len;
     296  len = strlen(s->message.response_key);
     297  memcpy(pos, s->message.response_key, len); pos += len;
     298  len = strlen(http_crnl);
     299  memcpy(pos, http_crnl, len); pos += len;
     300
     301  len = strlen(http_sec_websocket_protocol);
     302  memcpy(pos, http_sec_websocket_protocol, len); pos += len;
     303  len = strlen(s->message.sec_websocket_protocol);
     304  memcpy(pos, s->message.sec_websocket_protocol, len); pos += len;
     305  len = strlen(http_crnl);
     306  memcpy(pos, http_crnl, len); pos += len;
     307
     308  len = strlen(http_crnl);
     309  memcpy(pos, http_crnl, len); pos += len;
     310  *pos = '\0';
     311
     312  PSOCK_SEND(&s->sout, temp_buf, pos - temp_buf);
    245313
    246314  PSOCK_END(&s->sout);
Note: See TracChangeset for help on using the changeset viewer.