Changeset 389 for azure_iot_hub/trunk/ntshell/echonet/echonet_dbg.c
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- 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
totext/x-csrc;charset=UTF-8
r388 r389 4 4 * Copyright (C) 2014 Cores Co., Ltd. Japan 5 5 * 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 * 免責すること. 42 28 * 43 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 44 ã 45 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 46 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 47 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 48 * ã®è²¬ä»»ãè² ããªãï¼ 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 49 34 * 50 35 * @(#) $Id$ … … 52 37 53 38 /* 54 * ECHONET Lite ã¿ã¹ã¯ ãããã°åºå39 * ECHONET Lite タスク デバッグ出力 55 40 */ 56 41 … … 86 71 static ER _ecn_dbg_wai_syslog(void); 87 72 /* 88 * syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾ 89 㤠73 * syslog()バッファに余裕ができるまで待つ 90 74 */ 91 75 static ER _ecn_dbg_wai_syslog(void) … … 128 112 129 113 /* 130 * ãããã°åºå131 * ä¾ï¼ECN_DBG_PUT("task start");114 * デバッグ出力 115 * 例: ECN_DBG_PUT("task start"); 132 116 */ 133 117 int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...) … … 138 122 #ifdef ECN_DBG_PUT_USE_STATIC 139 123 #ifndef SEM_ECN_DBG_PUT 140 /* 256byte ãããã¡8æ¬ãã¼ãã¼ã·ã§ã³*/124 /* 256byteバッファ8本ローテーション */ 141 125 static char a_buf[8][256]; 142 126 static volatile uint_t a_buf_idx = 0; 143 127 uint_t a_buf_idx_a; 144 128 #else 145 /* ã»ããã©ãç¨ãã¦ã1æ¬ã®ãããã¡ä¸ã«æååã並ã¹ã¦ä½¿ã*/129 /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */ 146 130 static char a_buf[1024]; 147 131 static volatile uint_t a_buf_pos = 0; … … 168 152 p_buf = a_buf[a_buf_idx_a & 0x07]; 169 153 #else 170 if (sizeof(a_buf) - a_buf_pos < 80) /* æ®ãã80byteæªæºã«ãªã£ãããå 171 é ã«æ»ã */ 154 if (sizeof(a_buf) - a_buf_pos < 80) /* 残りが80byte未満になったら、先頭に戻る */ 172 155 a_buf_pos = 0; 173 156 p_buf = a_buf + a_buf_pos; 174 157 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を残す */ 176 159 a_buf_len -= 80; 177 160 #endif /* #ifdef SEM_ECN_DBG_PUT */ … … 197 180 #ifdef SEM_ECN_DBG_PUT 198 181 a_buf_len = strlen(p_buf) + 1; 199 /* æ®ãã80byteæªæºã«ãªã£ãã*/182 /* 残りが80byte未満になったら */ 200 183 if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) { 201 /* å 202 é ã«æ»ã */ 184 /* 先頭に戻る */ 203 185 a_buf_pos = 0; 204 186 } else { … … 208 190 #endif 209 191 210 _ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾ 211 㤠*/ 192 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 212 193 213 194 #ifdef SEM_ECN_DBG_PUT … … 225 206 } 226 207 227 /* ECN_ENOD_ID ã®æååå¤æ*/208 /* ECN_ENOD_IDの文字列変換 */ 228 209 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id) 229 210 { … … 273 254 274 255 /* 275 * ãã¤ããªãã³ãåºå256 * バイナリダンプ出力 276 257 */ 277 258 void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len) 278 259 { 279 /* static é åã®ãããã¡ãåãæ¿ããåæ°(2^n) */260 /* static領域のバッファを切り替える個数(2^n) */ 280 261 #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4) 281 262 /* */ … … 283 264 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 284 265 #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 285 /* ã»ããã©(SEM_ECN_DBG_BINDMP)ãå®ç¾©ããã¦ããå ´åããããã¡åãæ¿ãã¯ä¸è¦ãªã®ã§undef */266 /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */ 286 267 #endif 287 268 #endif 288 269 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN 289 /* ãããã¡ãµã¤ãº(bindmpä¸ã®1è¡ãåã¾ããµã¤ãº) */270 /* バッファサイズ(bindmp中の1行が収まるサイズ) */ 290 271 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80) 291 272 #endif 292 273 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 293 /* static é åã®ãããã¡ãåãæ¿ããããã®ç®¡çç¨å¤æ°*/274 /* static領域のバッファを切り替えるための管理用変数 */ 294 275 static volatile uint8_t a_idx_vol = 0; 295 /* static é åã®ãããã¡åãæ¿ãé å*/276 /* static領域のバッファ切り替え領域 */ 296 277 static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN]; 297 278 uint8_t a_idx; 298 279 char *a_buf; 299 280 #else 300 /* static é åã®ãããã¡é å*/281 /* static領域のバッファ領域 */ 301 282 static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN]; 302 283 #endif 303 const uint8_t *p = buffer; /* èªã¿åããã¤ã³ã¿*/284 const uint8_t *p = buffer; /* 読み取りポインタ */ 304 285 int i, a_blk, a_blk_max, a_pos = 0; 305 286 const T_ECN_EDT_HDR *p_req_esv; … … 319 300 } 320 301 #ifndef ECN_DBG_BINDMP_MAXLEN 321 /* bindmp åºåã®æ大ãµã¤ãº*/302 /* bindmp出力の最大サイズ */ 322 303 #define ECN_DBG_BINDMP_MAXLEN 1600 323 304 #endif … … 334 315 for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->dat) { 335 316 if (0 < a_blk) { 336 _ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾ 337 㤠*/ 317 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 338 318 syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p); 339 319 } … … 342 322 if (i % 16 == 0) { 343 323 if (a_buf[0]) { 344 _ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾ 345 㤠*/ 324 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 346 325 syslog(LOG_NOTICE, "%s", a_buf); 347 326 } … … 363 342 } 364 343 if (a_buf[0]) { 365 _ECN_DBG_WAI_SYSLOG; /* syslog()ãããã¡ã«ä½è£ãã§ããã¾ã§å¾ 366 㤠*/ 344 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 367 345 syslog(LOG_NOTICE, "%s", a_buf); 368 346 } … … 375 353 case ECN_MSG_ECHONET: 376 354 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()バッファに余裕ができるまで待つ */ 379 356 syslog(LOG_NOTICE, " sender: %d %s, target: %d %s", 380 357 ((T_ECN_FST_BLK *)buffer)->hdr.sender, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender), 381 358 ((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()バッファに余裕ができるまで待つ */ 384 360 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()バッファに余裕ができるまで待つ */ 387 362 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 388 363 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 389 364 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 390 365 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()バッファに余裕ができるまで待つ */ 393 367 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()バッファに余裕ができるまで待つ */ 396 369 syslog(LOG_NOTICE, " cur(blk/pos): wr %d/%d, rd %d/%d", 397 370 (int)((T_ECN_FST_BLK *)buffer)->hdr.wr.blk, … … 430 403 && ((const T_ECN_FST_BLK *)buffer)->bin[1] == 0x81) { 431 404 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()バッファに余裕ができるまで待つ */ 434 406 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()バッファに余裕ができるまで待つ */ 437 408 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 438 409 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 439 410 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 440 411 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()バッファに余裕ができるまで待つ */ 443 413 syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc); 444 414 } … … 449 419 450 420 /* 451 * ECHONET Lite ãµã¼ãã¹ã³ã¼ãæååå¤æ421 * ECHONET Liteサービスコード文字列変換 452 422 */ 453 423 const char *_ecn_dbg_esv2str(uint8_t fa_esv) 454 424 { 455 425 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 */ 472 442 default: 473 443 return "(unknown)";
Note:
See TracChangeset
for help on using the changeset viewer.