Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/ntshell/echonet/echonet_dbg.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  上記著作権è€
    7 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    8  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    9  *  変・再é
    10 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    11  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    12  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    13  *      スコード中に含まれていること.
    14  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    15  *      用できる形で再é
    16 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    17 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    18  *      è€
    19 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    20  *      の無保証規定を掲載すること.
    21  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    22  *      用できない形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    24  *      と.
    25  *    (a) 再é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    28  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    29  *    (b) 再é
    30 å¸ƒã®å½¢æ
    31 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    32  *        報告すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
    37  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    38  *      由に基づく請求からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトを
    40  *      å
    41 è²¬ã™ã‚‹ã“と.
     6 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    4228 *
    43  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ãŠ
    45  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    46  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    47  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    48  *  の責任を負わない.
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    4934 *
    5035 *  @(#) $Id$
     
    5237
    5338/*
    54  *              ECHONET Lite タスク デバッグ出力
     39 *              ECHONET Lite タスク デバッグ出力
    5540 */
    5641
     
    8671static ER _ecn_dbg_wai_syslog(void);
    8772/*
    88  *  syslog()バッファに余裕ができるまでå¾
    89 ã¤
     73 *  syslog()バッファに余裕ができるまで待つ
    9074 */
    9175static ER _ecn_dbg_wai_syslog(void)
     
    128112
    129113/*
    130  * デバッグ出力
    131  * 例:               ECN_DBG_PUT("task start");
     114 * デバッグ出力
     115 * 例:           ECN_DBG_PUT("task start");
    132116 */
    133117int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...)
     
    138122#ifdef ECN_DBG_PUT_USE_STATIC
    139123 #ifndef SEM_ECN_DBG_PUT
    140         /* 256byteバッファ8本ローテーション */
     124        /* 256byteバッファ8本ローテーション */
    141125        static char                             a_buf[8][256];
    142126        static volatile uint_t  a_buf_idx = 0;
    143127        uint_t                                  a_buf_idx_a;
    144128 #else
    145         /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
     129        /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
    146130        static char                             a_buf[1024];
    147131        static volatile uint_t  a_buf_pos = 0;
     
    168152        p_buf = a_buf[a_buf_idx_a & 0x07];
    169153 #else
    170         if (sizeof(a_buf) - a_buf_pos < 80)     /* 残りが80byte未満になったら、å
    171 ˆé ­ã«æˆ»ã‚‹ */
     154        if (sizeof(a_buf) - a_buf_pos < 80)     /* 残りが80byte未満になったら、先頭に戻る */
    172155                a_buf_pos = 0;
    173156        p_buf = a_buf + a_buf_pos;
    174157        a_buf_len = sizeof(a_buf) - a_buf_pos - 1;
    175         if (80 * 2 <= a_buf_len)        /* 80byte*2以上の余白があるうちは、末尾80byteを残す */
     158        if (80 * 2 <= a_buf_len)        /* 80byte*2以上の余白があるうちは、末尾80byteを残す */
    176159                a_buf_len -= 80;
    177160 #endif /* #ifdef SEM_ECN_DBG_PUT */
     
    197180 #ifdef SEM_ECN_DBG_PUT
    198181        a_buf_len = strlen(p_buf) + 1;
    199         /* 残りが80byte未満になったら */
     182        /* 残りが80byte未満になったら */
    200183        if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
    201                 /* å
    202 ˆé ­ã«æˆ»ã‚‹ */
     184                /* 先頭に戻る */
    203185                a_buf_pos = 0;
    204186        } else {
     
    208190#endif
    209191
    210         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    211 ã¤ */
     192        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    212193
    213194#ifdef SEM_ECN_DBG_PUT
     
    225206}
    226207
    227 /* ECN_ENOD_IDの文字列変換 */
     208/* ECN_ENOD_IDの文字列変換 */
    228209const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
    229210{
     
    273254
    274255/*
    275  * バイナリダンプ出力
     256 * バイナリダンプ出力
    276257 */
    277258void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
    278259{
    279         /* static領域のバッファを切り替える個数(2^n) */
     260        /* static領域のバッファを切り替える個数(2^n) */
    280261        #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
    281262/*      */
     
    283264 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    284265  #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    285   /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
     266  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
    286267 #endif
    287268#endif
    288269#ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
    289  /* バッファサイズ(bindmp中の1行が収まるサイズ) */
     270 /* バッファサイズ(bindmp中の1行が収まるサイズ) */
    290271 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
    291272#endif
    292273#ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    293         /* static領域のバッファを切り替えるための管理用変数 */
     274        /* static領域のバッファを切り替えるための管理用変数 */
    294275        static volatile uint8_t a_idx_vol = 0;
    295         /* static領域のバッファ切り替え領域 */
     276        /* static領域のバッファ切り替え領域 */
    296277        static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN];
    297278        uint8_t a_idx;
    298279        char *a_buf;
    299280#else
    300         /* static領域のバッファ領域 */
     281        /* static領域のバッファ領域 */
    301282        static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
    302283#endif
    303         const uint8_t *p = buffer;                      /* 読み取りポインタ */
     284        const uint8_t *p = buffer;                      /* 読み取りポインタ */
    304285        int i, a_blk, a_blk_max, a_pos = 0;
    305286        const T_ECN_EDT_HDR *p_req_esv;
     
    319300        }
    320301        #ifndef ECN_DBG_BINDMP_MAXLEN
    321          /* bindmp出力の最大サイズ */
     302         /* bindmp出力の最大サイズ */
    322303         #define ECN_DBG_BINDMP_MAXLEN 1600
    323304        #endif
     
    334315        for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->dat) {
    335316                if (0 < a_blk) {
    336                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    337 ã¤ */
     317                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    338318                        syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p);
    339319                }
     
    342322                        if (i % 16 == 0) {
    343323                                if (a_buf[0]) {
    344                                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    345 ã¤ */
     324                                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    346325                                        syslog(LOG_NOTICE, "%s", a_buf);
    347326                                }
     
    363342                }
    364343                if (a_buf[0]) {
    365                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    366 ã¤ */
     344                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    367345                        syslog(LOG_NOTICE, "%s", a_buf);
    368346                }
     
    375353                case ECN_MSG_ECHONET:
    376354                        p_req_esv = &((const T_ECN_FST_BLK *)buffer)->d.t_esv;
    377                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    378 ã¤ */
     355                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    379356                        syslog(LOG_NOTICE, " sender: %d %s, target: %d %s",
    380357                                ((T_ECN_FST_BLK *)buffer)->hdr.sender, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender),
    381358                                ((T_ECN_FST_BLK *)buffer)->hdr.target, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target));
    382                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    383 ã¤ */
     359                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    384360                        syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
    385                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    386 ã¤ */
     361                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    387362                        syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    388363                                p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    389364                                p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    390365                                p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    391                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    392 ã¤ */
     366                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    393367                        syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    394                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    395 ã¤ */
     368                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    396369                        syslog(LOG_NOTICE, " cur(blk/pos): wr %d/%d, rd %d/%d",
    397370                                (int)((T_ECN_FST_BLK *)buffer)->hdr.wr.blk,
     
    430403        && ((const T_ECN_FST_BLK *)buffer)->bin[1] == 0x81) {
    431404                p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->bin[0];
    432                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    433 ã¤ */
     405                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    434406                syslog(LOG_NOTICE, " ecn_hdr: 0x%02X 0x%02X 0x%04X", p_req_esv->ecn_hdr.ehd1, p_req_esv->ecn_hdr.ehd2, p_req_esv->ecn_hdr.tid);
    435                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    436 ã¤ */
     407                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    437408                syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    438409                        p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    439410                        p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    440411                        p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    441                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    442 ã¤ */
     412                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    443413                syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    444414        }
     
    449419
    450420/*
    451  * ECHONET Liteサービスコード文字列変換
     421 * ECHONET Liteサービスコード文字列変換
    452422 */
    453423const char *_ecn_dbg_esv2str(uint8_t fa_esv)
    454424{
    455425        switch (fa_esv) {
    456         case ESV_SET_I_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x50 */
    457         case ESV_SET_C_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x51 */
    458         case ESV_GET_SNA:               return "プロパティ値読み出し不可応答";                            /* 0x52 */
    459         case ESV_INF_SNA:               return "プロパティ値通知不可応答";                                  /* 0x53 */
    460         case ESV_SET_GET_SNA:   return "プロパティ値書き込み・読み出し不可応答";     /* 0x5E */
    461         case ESV_SET_I:                 return "プロパティ値書き込み要求(応答不要)";                /* 0x60 */
    462         case ESV_SET_C:                 return "プロパティ値書き込み要求(応答要)";           /* 0x61 */
    463         case ESV_GET:                   return "プロパティ値読み出し要求";                                  /* 0x62 */
    464         case ESV_INF_REQ:               return "プロパティ値通知要求";                                                /* 0x63 */
    465         case ESV_SET_GET:               return "プロパティ値書き込み・読み出し要求";           /* 0x6E */
    466         case ESV_SET_RES:               return "プロパティ値書き込み応答";                                  /* 0x71 */
    467         case ESV_GET_RES:               return "プロパティ値読み出し応答";                                  /* 0x72 */
    468         case ESV_INF:                   return "プロパティ値通知";                                                      /* 0x73 */
    469         case ESV_INFC:                  return "プロパティ値通知(応答要)";                               /* 0x74 */
    470         case ESV_SET_GET_RES:   return "プロパティ値書き込み・読み出し応答";           /* 0x7E */
    471         case ESV_INFC_RES:              return "プロパティ値通知応答";                                                /* 0x7A */
     426        case ESV_SET_I_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x50 */
     427        case ESV_SET_C_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x51 */
     428        case ESV_GET_SNA:               return "プロパティ値読み出し不可応答";                                /* 0x52 */
     429        case ESV_INF_SNA:               return "プロパティ値通知不可応答";                                  /* 0x53 */
     430        case ESV_SET_GET_SNA:   return "プロパティ値書き込み・読み出し不可応答";   /* 0x5E */
     431        case ESV_SET_I:                 return "プロパティ値書き込み要求(応答不要)";            /* 0x60 */
     432        case ESV_SET_C:                 return "プロパティ値書き込み要求(応答要)";             /* 0x61 */
     433        case ESV_GET:                   return "プロパティ値読み出し要求";                                  /* 0x62 */
     434        case ESV_INF_REQ:               return "プロパティ値通知要求";                                            /* 0x63 */
     435        case ESV_SET_GET:               return "プロパティ値書き込み・読み出し要求";             /* 0x6E */
     436        case ESV_SET_RES:               return "プロパティ値書き込み応答";                                  /* 0x71 */
     437        case ESV_GET_RES:               return "プロパティ値読み出し応答";                                  /* 0x72 */
     438        case ESV_INF:                   return "プロパティ値通知";                                                      /* 0x73 */
     439        case ESV_INFC:                  return "プロパティ値通知(応答要)";                         /* 0x74 */
     440        case ESV_SET_GET_RES:   return "プロパティ値書き込み・読み出し応答";             /* 0x7E */
     441        case ESV_INFC_RES:              return "プロパティ値通知応答";                                            /* 0x7A */
    472442        default:
    473443                return "(unknown)";
Note: See TracChangeset for help on using the changeset viewer.