Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mrbgems/mruby-ecnl/src/echonet_dbg.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    44 *  Copyright (C) 2014-2016 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 */
    5136
    5237/*
    53  *              ECHONET Lite タスク デバッグ出力
     38 *              ECHONET Lite タスク デバッグ出力
    5439 */
    5540
     
    7661static ER _ecn_dbg_wai_syslog(void);
    7762/*
    78  *  syslog()バッファに余裕ができるまでå¾
    79 ã¤
     63 *  syslog()バッファに余裕ができるまで待つ
    8064 */
    8165static ER _ecn_dbg_wai_syslog(void)
     
    118102
    119103/*
    120  * デバッグ出力
    121  * 例:               ECN_DBG_PUT_2("task start");
     104 * デバッグ出力
     105 * 例:           ECN_DBG_PUT_2("task start");
    122106 */
    123107int _ecn_dbg_dbgput(ecnl_svc_task_t *svc, const char *fp_srcloc, const char *fp_form, ...)
     
    127111#ifdef ECN_DBG_PUT_USE_STATIC
    128112 #ifndef SEM_ECN_DBG_PUT
    129         /* 256byteバッファ8本ローテーション */
     113        /* 256byteバッファ8本ローテーション */
    130114        static char                             a_buf[8][256];
    131115        static volatile uint_t  a_buf_idx = 0;
    132116        uint_t                                  a_buf_idx_a;
    133117 #else
    134         /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
     118        /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */
    135119        static char                             a_buf[1024];
    136120        static volatile uint_t  a_buf_pos = 0;
     
    155139        p_buf = a_buf[a_buf_idx_a & 0x07];
    156140 #else
    157         if (sizeof(a_buf) - a_buf_pos < 80)     /* 残りが80byte未満になったら、å
    158 ˆé ­ã«æˆ»ã‚‹ */
     141        if (sizeof(a_buf) - a_buf_pos < 80)     /* 残りが80byte未満になったら、先頭に戻る */
    159142                a_buf_pos = 0;
    160143        p_buf = a_buf + a_buf_pos;
    161144        a_buf_len = sizeof(a_buf) - a_buf_pos - 1;
    162         if (80 * 2 <= a_buf_len)        /* 80byte*2以上の余白があるうちは、末尾80byteを残す */
     145        if (80 * 2 <= a_buf_len)        /* 80byte*2以上の余白があるうちは、末尾80byteを残す */
    163146                a_buf_len -= 80;
    164147 #endif /* #ifdef SEM_ECN_DBG_PUT */
     
    184167 #ifdef SEM_ECN_DBG_PUT
    185168        a_buf_len = strlen(p_buf) + 1;
    186         /* 残りが80byte未満になったら */
     169        /* 残りが80byte未満になったら */
    187170        if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) {
    188                 /* å
    189 ˆé ­ã«æˆ»ã‚‹ */
     171                /* 先頭に戻る */
    190172                a_buf_pos = 0;
    191173        } else {
     
    195177#endif
    196178
    197         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    198 ã¤ */
     179        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    199180
    200181#ifdef SEM_ECN_DBG_PUT
     
    212193}
    213194
    214 /* ECN_ENOD_IDの文字列変換 */
     195/* ECN_ENOD_IDの文字列変換 */
    215196const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id)
    216197{
     
    260241
    261242/*
    262  * バイナリダンプ出力
     243 * バイナリダンプ出力
    263244 */
    264245void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len)
    265246{
    266         /* static領域のバッファを切り替える個数(2^n) */
     247        /* static領域のバッファを切り替える個数(2^n) */
    267248        #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4)
    268249/*      */
     
    270251 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    271252  #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    272   /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
     253  /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */
    273254 #endif
    274255#endif
    275256#ifndef _ECN_FBS_DBG_BINDMP_BUFLEN
    276  /* バッファサイズ(bindmp中の1行が収まるサイズ) */
     257 /* バッファサイズ(bindmp中の1行が収まるサイズ) */
    277258 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80)
    278259#endif
    279260#ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT
    280         /* static領域のバッファを切り替えるための管理用変数 */
     261        /* static領域のバッファを切り替えるための管理用変数 */
    281262        static volatile uint8_t a_idx_vol = 0;
    282         /* static領域のバッファ切り替え領域 */
     263        /* static領域のバッファ切り替え領域 */
    283264        static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN];
    284265        uint8_t a_idx;
    285266        char *a_buf;
    286267#else
    287         /* static領域のバッファ領域 */
     268        /* static領域のバッファ領域 */
    288269        static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN];
    289270#endif
    290         const uint8_t *p = buffer;                      /* 読み取りポインタ */
     271        const uint8_t *p = buffer;                      /* 読み取りポインタ */
    291272        int i, a_blk, a_blk_max, a_pos = 0;
    292273        const T_ECN_EDT_HDR *p_req_esv;
     
    305286        }
    306287        #ifndef ECN_DBG_BINDMP_MAXLEN
    307          /* bindmp出力の最大サイズ */
     288         /* bindmp出力の最大サイズ */
    308289         #define ECN_DBG_BINDMP_MAXLEN 1600
    309290        #endif
     
    320301        for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->payload) {
    321302                if (0 < a_blk) {
    322                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    323 ã¤ */
     303                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    324304                        printf("p_sub[%d] (0x%p)", a_blk - 1, p);
    325305                }
     
    328308                        if (i % 16 == 0) {
    329309                                if (a_buf[0]) {
    330                                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    331 ã¤ */
     310                                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    332311                                        printf("%s", a_buf);
    333312                                }
     
    349328                }
    350329                if (a_buf[0]) {
    351                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    352 ã¤ */
     330                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    353331                        printf("%s", a_buf);
    354332                }
     
    361339                case ECN_MSG_ECHONET:
    362340                        p_req_esv = (T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload;
    363                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    364 ã¤ */
     341                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    365342                        printf(" sender: %d %s, target: %d %s",
    366343                                ((T_ECN_FST_BLK *)buffer)->hdr.sender.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender.id),
    367344                                ((T_ECN_FST_BLK *)buffer)->hdr.target.id, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target.id));
    368                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    369 ã¤ */
     345                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    370346                        printf(" 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);
    371                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    372 ã¤ */
     347                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    373348                        printf(" edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    374349                                p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    375350                                p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    376351                                p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    377                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    378 ã¤ */
     352                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    379353                        printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    380                         _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    381 ã¤ */
     354                        _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    382355                        printf(" cur(blk/pos): wr %d, rd %d",
    383356                                (int)((T_ECN_FST_BLK *)buffer)->hdr.wr,
     
    419392        && ((const T_ECN_FST_BLK *)buffer)->payload[1] == 0x81) {
    420393                p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->payload[0];
    421                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    422 ã¤ */
     394                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    423395                printf(" 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);
    424                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    425 ã¤ */
     396                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    426397                printf(" edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)",
    427398                        p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3,
    428399                        p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3,
    429400                        p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv));
    430                 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまでå¾
    431 ã¤ */
     401                _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */
    432402                printf(" ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc);
    433403        }
     
    438408
    439409/*
    440  * ECHONET Liteサービスコード文字列変換
     410 * ECHONET Liteサービスコード文字列変換
    441411 */
    442412const char *_ecn_dbg_esv2str(uint8_t fa_esv)
    443413{
    444414        switch (fa_esv) {
    445         case ESV_SET_I_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x50 */
    446         case ESV_SET_C_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x51 */
    447         case ESV_GET_SNA:               return "プロパティ値読み出し不可応答";                            /* 0x52 */
    448         case ESV_INF_SNA:               return "プロパティ値通知不可応答";                                  /* 0x53 */
    449         case ESV_SET_GET_SNA:   return "プロパティ値書き込み・読み出し不可応答";     /* 0x5E */
    450         case ESV_SET_I:                 return "プロパティ値書き込み要求(応答不要)";                /* 0x60 */
    451         case ESV_SET_C:                 return "プロパティ値書き込み要求(応答要)";           /* 0x61 */
    452         case ESV_GET:                   return "プロパティ値読み出し要求";                                  /* 0x62 */
    453         case ESV_INF_REQ:               return "プロパティ値通知要求";                                                /* 0x63 */
    454         case ESV_SET_GET:               return "プロパティ値書き込み・読み出し要求";           /* 0x6E */
    455         case ESV_SET_RES:               return "プロパティ値書き込み応答";                                  /* 0x71 */
    456         case ESV_GET_RES:               return "プロパティ値読み出し応答";                                  /* 0x72 */
    457         case ESV_INF:                   return "プロパティ値通知";                                                      /* 0x73 */
    458         case ESV_INFC:                  return "プロパティ値通知(応答要)";                               /* 0x74 */
    459         case ESV_SET_GET_RES:   return "プロパティ値書き込み・読み出し応答";           /* 0x7E */
    460         case ESV_INFC_RES:              return "プロパティ値通知応答";                                                /* 0x7A */
     415        case ESV_SET_I_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x50 */
     416        case ESV_SET_C_SNA:             return "プロパティ値書き込み要求不可応答";                      /* 0x51 */
     417        case ESV_GET_SNA:               return "プロパティ値読み出し不可応答";                                /* 0x52 */
     418        case ESV_INF_SNA:               return "プロパティ値通知不可応答";                                  /* 0x53 */
     419        case ESV_SET_GET_SNA:   return "プロパティ値書き込み・読み出し不可応答";   /* 0x5E */
     420        case ESV_SET_I:                 return "プロパティ値書き込み要求(応答不要)";            /* 0x60 */
     421        case ESV_SET_C:                 return "プロパティ値書き込み要求(応答要)";             /* 0x61 */
     422        case ESV_GET:                   return "プロパティ値読み出し要求";                                  /* 0x62 */
     423        case ESV_INF_REQ:               return "プロパティ値通知要求";                                            /* 0x63 */
     424        case ESV_SET_GET:               return "プロパティ値書き込み・読み出し要求";             /* 0x6E */
     425        case ESV_SET_RES:               return "プロパティ値書き込み応答";                                  /* 0x71 */
     426        case ESV_GET_RES:               return "プロパティ値読み出し応答";                                  /* 0x72 */
     427        case ESV_INF:                   return "プロパティ値通知";                                                      /* 0x73 */
     428        case ESV_INFC:                  return "プロパティ値通知(応答要)";                         /* 0x74 */
     429        case ESV_SET_GET_RES:   return "プロパティ値書き込み・読み出し応答";             /* 0x7E */
     430        case ESV_INFC_RES:              return "プロパティ値通知応答";                                            /* 0x7A */
    461431        default:
    462432                return "(unknown)";
     
    467437{
    468438        switch (errorno) {
    469         case E_SYS:             return "システムエラー";
    470         case E_PAR:             return "パラメータエラー";
    471         case E_NOMEM:   return "メモリ不足";
    472         case E_OBJ:             return "オブジェクト状æ
    473 ‹ã‚¨ãƒ©ãƒ¼";
    474         case E_NOEXS:   return "オブジェクト未生成";
    475         case E_TMOUT:   return "ポーリング失敗またはタイムアウト";
    476         case E_BOVR:    return "バッファオーバーフロー";
    477         case E_BRK:             return "ユーザーによる中断";
     439        case E_SYS:             return "システムエラー";
     440        case E_PAR:             return "パラメータエラー";
     441        case E_NOMEM:   return "メモリ不足";
     442        case E_OBJ:             return "オブジェクト状態エラー";
     443        case E_NOEXS:   return "オブジェクト未生成";
     444        case E_TMOUT:   return "ポーリング失敗またはタイムアウト";
     445        case E_BOVR:    return "バッファオーバーフロー";
     446        case E_BRK:             return "ユーザーによる中断";
    478447        default:
    479448                return "(unknown)";
Note: See TracChangeset for help on using the changeset viewer.