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応答を待って送信しているのを、一括で送るよう変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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        }
Note: See TracChangeset for help on using the changeset viewer.