Changeset 167 for UsbWattMeter/trunk/ecnl_lwip/echonet_dbg.c
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/ecnl_lwip/echonet_dbg.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 4 4 * Copyright (C) 2014-2016 Cores Co., Ltd. Japan 5 5 * 6 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 7 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 8 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 9 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 10 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 11 * XR[hÉÜÜêĢ鱯D 12 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 13 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 14 gip 15 * Ò}j 16 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 17 * Ì³ÛØKèðfÚ·é±ÆD 18 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 19 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 20 * ÆD 21 * (a) Äzzɺ¤hL 22 gipÒ}j 23 AÈÇjÉCãLÌ 24 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 25 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 26 * ñ·é±ÆD 27 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 28 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 29 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 30 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 31 * ÆÓ·é±ÆD 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 * 免責すること. 32 28 * 33 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨34 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI35 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF36 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»37 * ÌÓCðíÈ¢D29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 38 34 * 39 35 * @(#) $Id$ … … 41 37 42 38 /* 43 * ECHONET Lite ^XN fobOoÍ39 * ECHONET Lite タスク デバッグ出力 44 40 */ 45 41 … … 72 68 static ER _ecn_dbg_wai_syslog(void); 73 69 /* 74 * syslog() obt@É]TªÅ«éÜÅÒÂ70 * syslog()バッファに余裕ができるまで待つ 75 71 */ 76 72 static ER _ecn_dbg_wai_syslog(void) … … 113 109 114 110 /* 115 * fobOoÍ116 * áFECN_DBG_PUT( "task start" );111 * デバッグ出力 112 * 例: ECN_DBG_PUT( "task start" ); 117 113 */ 118 114 int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...) … … 142 138 #endif 143 139 144 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/140 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 145 141 146 142 #ifdef SEM_ECN_DBG_PUT … … 155 151 } 156 152 157 /* ECN_ENOD_ID ̶ñÏ·*/153 /* ECN_ENOD_IDの文字列変換 */ 158 154 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id) 159 155 { … … 203 199 204 200 /* 205 * oCi_voÍ201 * バイナリダンプ出力 206 202 */ 207 203 void _ecn_dbg_bindmp(const T_ECN_FST_BLK *buffer, size_t len) 208 204 { 209 /* static ÌæÌobt@ðØèÖ¦éÂ(2^n) */205 /* static領域のバッファを切り替える個数(2^n) */ 210 206 #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4) 211 207 /* */ … … 213 209 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 214 210 #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 215 /* Z}tH(SEM_ECN_DBG_BINDMP)ªè`³êÄ¢éêAobt@ØèÖ¦ÍsvÈÌÅundef */211 /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */ 216 212 #endif 217 213 #endif 218 214 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN 219 /* obt@TCY(bindmpÌ1sªûÜéTCY) */215 /* バッファサイズ(bindmp中の1行が収まるサイズ) */ 220 216 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80) 221 217 #endif 222 218 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 223 /* static ÌæÌobt@ðØèÖ¦é½ßÌÇpÏ*/219 /* static領域のバッファを切り替えるための管理用変数 */ 224 220 static volatile uint8_t a_idx_vol = 0; 225 /* static ÌæÌobt@ØèÖ¦Ìæ*/221 /* static領域のバッファ切り替え領域 */ 226 222 static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN]; 227 223 uint8_t a_idx; 228 224 char *a_buf; 229 225 #else 230 /* static ÌæÌobt@Ìæ*/226 /* static領域のバッファ領域 */ 231 227 static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN]; 232 228 #endif 233 const uint8_t *p = buffer; /* ÇÝæè|C^*/229 const uint8_t *p = buffer; /* 読み取りポインタ */ 234 230 int i, a_blk, a_blk_max, a_pos = 0; 235 231 const T_ECN_EDT_HDR *p_req_esv; … … 248 244 } 249 245 #ifndef ECN_DBG_BINDMP_MAXLEN 250 /* bindmp oÍÌÅåTCY*/246 /* bindmp出力の最大サイズ */ 251 247 #define ECN_DBG_BINDMP_MAXLEN 1600 252 248 #endif … … 263 259 for (a_blk = 0; p && a_blk < a_blk_max; p = buffer->lnk.p_sub[a_blk++]->payload) { 264 260 if (0 < a_blk) { 265 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/261 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 266 262 syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p); 267 263 } … … 270 266 if (i % 16 == 0) { 271 267 if (a_buf[0]) { 272 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/268 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 273 269 syslog(LOG_NOTICE, "%s", a_buf); 274 270 } … … 290 286 } 291 287 if (a_buf[0]) { 292 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/288 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 293 289 syslog(LOG_NOTICE, "%s", a_buf); 294 290 } … … 301 297 case ECN_MSG_ECHONET: 302 298 p_req_esv = &((T_EDATA *)buffer)->hdr; 303 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/299 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 304 300 syslog(LOG_NOTICE, " sender: %d %s, target: %d %s", 305 301 buffer->hdr.sender.id, _ecn_dbg_enod2str(buffer->hdr.sender.id), 306 302 buffer->hdr.target.id, _ecn_dbg_enod2str(buffer->hdr.target.id)); 307 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/303 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 308 304 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); 309 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/305 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 310 306 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 311 307 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 312 308 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 313 309 p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv)); 314 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/310 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 315 311 syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc); 316 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/312 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 317 313 syslog(LOG_NOTICE, " cur(blk/pos): wr %d, rd %d", 318 314 (int)buffer->hdr.wr, … … 354 350 && buffer->payload[1] == 0x81) { 355 351 p_req_esv = (const T_ECN_EDT_HDR *)&buffer->payload[0]; 356 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/352 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 357 353 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); 358 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/354 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 359 355 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 360 356 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 361 357 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 362 358 p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv)); 363 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/359 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 364 360 syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc); 365 361 } … … 370 366 371 367 /* 372 * ECHONET Lite T[rXR[h¶ñÏ·368 * ECHONET Liteサービスコード文字列変換 373 369 */ 374 370 const char *_ecn_dbg_esv2str(uint8_t fa_esv) 375 371 { 376 372 switch (fa_esv) { 377 case ESV_SET_I_SNA: return " vpeBl«ÝvsÂ"; /* 0x50 */378 case ESV_SET_C_SNA: return " vpeBl«ÝvsÂ"; /* 0x51 */379 case ESV_GET_SNA: return " vpeBlÇÝoµsÂ"; /* 0x52 */380 case ESV_INF_SNA: return " vpeBlÊmsÂ"; /* 0x53 */381 case ESV_SET_GET_SNA: return " vpeBl«ÝEÇÝoµsÂ"; /* 0x5E */382 case ESV_SET_I: return " vpeBl«Ývisvj"; /* 0x60 */383 case ESV_SET_C: return " vpeBl«Ývivj"; /* 0x61 */384 case ESV_GET: return " vpeBlÇÝoµv"; /* 0x62 */385 case ESV_INF_REQ: return " vpeBlÊmv"; /* 0x63 */386 case ESV_SET_GET: return " vpeBl«ÝEÇÝoµv"; /* 0x6E */387 case ESV_SET_RES: return " vpeBl«Ý"; /* 0x71 */388 case ESV_GET_RES: return " vpeBlÇÝoµ"; /* 0x72 */389 case ESV_INF: return " vpeBlÊm"; /* 0x73 */390 case ESV_INFC: return " vpeBlÊmivj"; /* 0x74 */391 case ESV_SET_GET_RES: return " vpeBl«ÝEÇÝoµ"; /* 0x7E */392 case ESV_INFC_RES: return " vpeBlÊm"; /* 0x7A */373 case ESV_SET_I_SNA: return "プロパティ値書き込み要求不可応答"; /* 0x50 */ 374 case ESV_SET_C_SNA: return "プロパティ値書き込み要求不可応答"; /* 0x51 */ 375 case ESV_GET_SNA: return "プロパティ値読み出し不可応答"; /* 0x52 */ 376 case ESV_INF_SNA: return "プロパティ値通知不可応答"; /* 0x53 */ 377 case ESV_SET_GET_SNA: return "プロパティ値書き込み・読み出し不可応答"; /* 0x5E */ 378 case ESV_SET_I: return "プロパティ値書き込み要求(応答不要)"; /* 0x60 */ 379 case ESV_SET_C: return "プロパティ値書き込み要求(応答要)"; /* 0x61 */ 380 case ESV_GET: return "プロパティ値読み出し要求"; /* 0x62 */ 381 case ESV_INF_REQ: return "プロパティ値通知要求"; /* 0x63 */ 382 case ESV_SET_GET: return "プロパティ値書き込み・読み出し要求"; /* 0x6E */ 383 case ESV_SET_RES: return "プロパティ値書き込み応答"; /* 0x71 */ 384 case ESV_GET_RES: return "プロパティ値読み出し応答"; /* 0x72 */ 385 case ESV_INF: return "プロパティ値通知"; /* 0x73 */ 386 case ESV_INFC: return "プロパティ値通知(応答要)"; /* 0x74 */ 387 case ESV_SET_GET_RES: return "プロパティ値書き込み・読み出し応答"; /* 0x7E */ 388 case ESV_INFC_RES: return "プロパティ値通知応答"; /* 0x7A */ 393 389 default: 394 390 return "(unknown)"; -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.