Changeset 364 for asp3_tinet_ecnl_rx/trunk/ntshell/echonet
- Timestamp:
- Feb 1, 2019, 9:57:09 PM (5 years ago)
- Location:
- asp3_tinet_ecnl_rx/trunk/ntshell/echonet
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.c
r337 r364 56 56 57 57 /* 58 * インスタンスリスト通知の送信 59 */ 60 ER ecn_ntf_inl() 61 { 62 return _ecn_tsk_ntf_inl(); 63 } 64 65 /* 58 66 * ECHONETオブジェクト参照 59 67 * 引数 … … 393 401 return E_PAR; 394 402 395 a_ret = trcv_dtq(ecn_api_ mailboxid, (intptr_t *)&p_msg, fa_tmout);403 a_ret = trcv_dtq(ecn_api_dataqueueid, (intptr_t *)&p_msg, fa_tmout); 396 404 if (a_ret != E_OK) { 397 405 *ppk_esv = NULL; … … 425 433 a_ret = _ecn_fbs_del(a_fbs); 426 434 return a_ret; 435 } 436 437 /* 438 * 応答電文の送信元ノードを取得する 439 */ 440 ID ecn_get_enod(T_EDATA *pk_esv) 441 { 442 const EOBJCB *p_snod; 443 const EOBJINIB *p_sobj = NULL; 444 445 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender.id); 446 if (p_snod != NULL) { 447 p_sobj = p_snod->profile; 448 } 449 450 if (p_sobj == NULL) 451 return EOBJ_NULL; 452 #ifdef ECHONET_CONTROLLER_EXTENTION 453 if (p_sobj->eprpcnt == 0) 454 return ecn_agent_get_eobj(p_sobj); 455 #endif 456 return 1 + (((intptr_t)p_sobj - (intptr_t)eobjinib_table) / sizeof(EOBJINIB)); 427 457 } 428 458 -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.h
r337 r364 67 67 typedef enum _echonet_enod_id 68 68 { 69 ENOD_NOT_MATCH_ID = -1, 69 ENOD_NOT_MATCH_ID = -1, /* アドレスID登録なし */ 70 70 ENOD_MULTICAST_ID = 0, /* マルチキャストアドレスID */ 71 71 ENOD_LOCAL_ID = 1, /* 自ノードアドレスID */ … … 279 279 extern const ID ecn_svc_taskid; 280 280 extern const ID ecn_udp_taskid; 281 extern const ID ecn_api_ mailboxid;282 extern const ID ecn_svc_ mailboxid;283 extern const ID ecn_udp_ mailboxid;281 extern const ID ecn_api_dataqueueid; 282 extern const ID ecn_svc_dataqueueid; 283 extern const ID ecn_udp_dataqueueid; 284 284 #ifndef ECHONET_USE_MALLOC 285 285 extern const ID ecn_mempoolid; … … 309 309 310 310 /* 311 * インスタンスリスト通知の送信 312 */ 313 ER ecn_ntf_inl(); 314 315 /* 311 316 * ECHONETオブジェクト参照 312 317 */ … … 392 397 */ 393 398 ER ecn_rel_esv(T_EDATA *pk_esv); 399 400 /* 401 * 応答電文の送信元ノードを取得する 402 */ 403 ID ecn_get_enod(T_EDATA *pk_esv); 394 404 395 405 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet.trb
r337 r364 634 634 const ID _echonet_ecn_svc_taskid = ECHONET_SVC_TASK; 635 635 const ID _echonet_ecn_udp_taskid = ECHONET_UDP_TASK; 636 const ID _echonet_ecn_api_ mailboxid = ECHONET_API_MAILBOX;637 const ID _echonet_ecn_svc_ mailboxid = ECHONET_SVC_MAILBOX;638 const ID _echonet_ecn_udp_ mailboxid = ECHONET_UDP_MAILBOX;636 const ID _echonet_ecn_api_dataqueueid = ECHONET_API_DATAQUEUE; 637 const ID _echonet_ecn_svc_dataqueueid = ECHONET_SVC_DATAQUEUE; 638 const ID _echonet_ecn_udp_dataqueueid = ECHONET_UDP_DATAQUEUE; 639 639 #ifndef ECHONET_USE_MALLOC 640 640 const ID _echonet_ecn_mempoolid = ECHONET_MEMPOOL; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_asp.cfg
r337 r364 51 51 52 52 /* 53 * ECHONET Lite API用 メールボックス53 * ECHONET Lite API用データキュー 54 54 */ 55 CRE_DTQ(ECHONET_API_ MAILBOX, { TA_TFIFO, 1, NULL });55 CRE_DTQ(ECHONET_API_DATAQUEUE, { TA_TFIFO, ECHONET_API_DATAQUEUE_COUNT, NULL }); 56 56 57 57 /* 58 * ECHONET Lite サービス処理タスク用 メールボックス58 * ECHONET Lite サービス処理タスク用データキュー 59 59 */ 60 CRE_DTQ(ECHONET_SVC_ MAILBOX, { TA_TFIFO, 1, NULL });60 CRE_DTQ(ECHONET_SVC_DATAQUEUE, { TA_TFIFO, ECHONET_SVC_DATAQUEUE_COUNT, NULL }); 61 61 62 62 /* … … 66 66 67 67 /* 68 * ECHONET Lite UDP通信処理用 メールボックス68 * ECHONET Lite UDP通信処理用データキュー 69 69 */ 70 CRE_DTQ(ECHONET_UDP_ MAILBOX, { TA_TFIFO, 1, NULL });70 CRE_DTQ(ECHONET_UDP_DATAQUEUE, { TA_TFIFO, ECHONET_UDP_DATAQUEUE_COUNT, NULL }); 71 71 72 72 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_rename.h
r337 r364 47 47 #define ecn_svc_taskid _echonet_ecn_svc_taskid 48 48 #define ecn_udp_taskid _echonet_ecn_udp_taskid 49 #define ecn_api_ mailboxid _echonet_ecn_api_mailboxid50 #define ecn_svc_ mailboxid _echonet_ecn_svc_mailboxid51 #define ecn_udp_ mailboxid _echonet_ecn_udp_mailboxid49 #define ecn_api_dataqueueid _echonet_ecn_api_dataqueueid 50 #define ecn_svc_dataqueueid _echonet_ecn_svc_dataqueueid 51 #define ecn_udp_dataqueueid _echonet_ecn_udp_dataqueueid 52 52 #define ecn_mempoolid _echonet_ecn_mempoolid 53 53 #define ecn_udp_cepid _echonet_ecn_udp_cepid -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_task.c
r337 r364 77 77 static bool_t g_release_esv; 78 78 79 ER _ecn_tsk_ntf_inl(intptr_t fa_exinf);80 81 79 ER _ecn_tsk_snd_dtq(ECN_FBS_ID fa_rsp_fbs, bool_t from_app) 82 80 { 83 81 ER a_ret; 84 82 T_MSG *msg = (T_MSG *)fa_rsp_fbs.ptr; 85 ID dtqid = ecn_udp_ mailboxid;83 ID dtqid = ecn_udp_dataqueueid; 86 84 int i; 87 85 #ifdef ECN_DBG_PUT_ENA … … 90 88 if (from_app && (((T_EDATA *)fa_rsp_fbs.ptr)->hdr.edata.esv == ESV_INFC)) { 91 89 g_api_tid = ((T_EDATA *)fa_rsp_fbs.ptr)->hdr.ecn_hdr.tid; 92 dtqid = ecn_svc_ mailboxid;90 dtqid = ecn_svc_dataqueueid; 93 91 } 94 92 else { … … 98 96 g_api_tid = ((T_EDATA *)fa_rsp_fbs.ptr)->hdr.ecn_hdr.tid; 99 97 100 dtqid = ecn_udp_ mailboxid;98 dtqid = ecn_udp_dataqueueid; 101 99 break; 102 100 case ENOD_LOCAL_ID: 103 101 if (from_app) 104 dtqid = ecn_svc_ mailboxid;102 dtqid = ecn_svc_dataqueueid; 105 103 else 106 dtqid = ecn_api_ mailboxid;104 dtqid = ecn_api_dataqueueid; 107 105 break; 108 106 case ENOD_API_ID: 109 dtqid = ecn_api_ mailboxid;107 dtqid = ecn_api_dataqueueid; 110 108 break; 111 109 default: … … 121 119 switch (eobjcb_table[i].profile->eobjatr) { 122 120 case EOBJ_SYNC_REMOTE_NODE: 123 dtqid = ecn_udp_ mailboxid;121 dtqid = ecn_udp_dataqueueid; 124 122 break; 125 123 case EOBJ_ASYNC_REMOTE_NODE: 126 dtqid = ecn_svc_ mailboxid;124 dtqid = ecn_svc_dataqueueid; 127 125 break; 128 126 default: … … 131 129 } 132 130 else { 133 dtqid = ecn_udp_ mailboxid;131 dtqid = ecn_udp_dataqueueid; 134 132 } 135 133 break; … … 242 240 #endif 243 241 244 a_ret = trcv_dtq(ecn_svc_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);242 a_ret = trcv_dtq(ecn_svc_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 245 243 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 246 244 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 867 865 g_release_esv = false; 868 866 869 ECN_CAP_PUT_1("redirect ecn_svc_ mailboxid → ecn_api_mailboxid (esv:0x%02X)",867 ECN_CAP_PUT_1("redirect ecn_svc_dataqueueid → ecn_api_dataqueueid (esv:0x%02X)", 870 868 p_esv->edata.esv); 871 869 fa_fbs_id.ptr->hdr.target.id = ENOD_API_ID; 872 a_ret = snd_dtq(ecn_api_ mailboxid, (intptr_t)fa_fbs_id.ptr);870 a_ret = snd_dtq(ecn_api_dataqueueid, (intptr_t)fa_fbs_id.ptr); 873 871 if (a_ret != E_OK) { 874 872 syslog(LOG_WARNING, "_ecn_tsk_ecn_msg() : snd_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 2024 2022 req.ptr->hdr.type = ECN_MSG_INTERNAL; 2025 2023 req.ptr->hdr.sender.dtqid = sender; 2026 req.ptr->hdr.target.dtqid = ecn_svc_ mailboxid;2024 req.ptr->hdr.target.dtqid = ecn_svc_dataqueueid; 2027 2025 req.ptr->hdr.reply.dtqid = sender; 2028 2026 … … 2052 2050 2053 2051 res.ptr->hdr.type = ECN_MSG_INTERNAL; 2054 res.ptr->hdr.sender.dtqid = ecn_svc_ mailboxid;2052 res.ptr->hdr.sender.dtqid = ecn_svc_dataqueueid; 2055 2053 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 2056 res.ptr->hdr.reply.dtqid = ecn_svc_ mailboxid;2054 res.ptr->hdr.reply.dtqid = ecn_svc_dataqueueid; 2057 2055 2058 2056 *pk_res = res; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_task.h
r337 r364 110 110 } T_ECN_INTERNAL_MSG; 111 111 112 /* 113 * インスタンスリスト通知の送信 114 */ 115 ER _ecn_tsk_ntf_inl(); 112 116 /* 113 117 * 要求電文作成 -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp6_task.c
r337 r364 151 151 152 152 /* echonet_taskに送る */ 153 a_ret = snd_dtq(ecn_svc_ mailboxid, (intptr_t)a_fbs_id.ptr);154 if (a_ret != E_OK) { 155 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_ mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret));153 a_ret = snd_dtq(ecn_svc_dataqueueid, (intptr_t)a_fbs_id.ptr); 154 if (a_ret != E_OK) { 155 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_dataqueueid) result = %d:%s", a_ret, itron_strerror(a_ret)); 156 156 goto lb_except; 157 157 } … … 201 201 a_timer = ECHONET_UDP_TASK_GET_TIMER; 202 202 203 a_ret = trcv_dtq(ecn_udp_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);203 a_ret = trcv_dtq(ecn_udp_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 204 204 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 205 205 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 261 261 req.ptr->hdr.type = ECN_MSG_INTERNAL; 262 262 req.ptr->hdr.sender.dtqid = sender; 263 req.ptr->hdr.target.dtqid = ecn_udp_ mailboxid;263 req.ptr->hdr.target.dtqid = ecn_udp_dataqueueid; 264 264 req.ptr->hdr.reply.dtqid = sender; 265 265 … … 289 289 290 290 res.ptr->hdr.type = ECN_MSG_INTERNAL; 291 res.ptr->hdr.sender.dtqid = ecn_udp_ mailboxid;291 res.ptr->hdr.sender.dtqid = ecn_udp_dataqueueid; 292 292 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 293 res.ptr->hdr.reply.dtqid = ecn_udp_ mailboxid;293 res.ptr->hdr.reply.dtqid = ecn_udp_dataqueueid; 294 294 295 295 *pk_res = res; … … 416 416 else if (memcmp(&a_dst.ipaddr, &locl, sizeof(a_dst.ipaddr)) == 0) { 417 417 /* 送信先が127.0.0.1 → dtqに転送 */ 418 ECN_DBG_PUT_1("redirect ecn_udp_ mailboxid → ecn_svc_mailboxid (esv:0x%02X)",418 ECN_DBG_PUT_1("redirect ecn_udp_dataqueueid → ecn_svc_dataqueueid (esv:0x%02X)", 419 419 ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv); 420 420 … … 462 462 463 463 switch (fncd) { 464 case T FN_UDP_CRE_CEP:464 case TEV_UDP_RCV_DAT: 465 465 case TFN_UDP_RCV_DAT: 466 466 /* ECN_CAP_PUT("[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk); */ … … 488 488 return E_OK; 489 489 490 case TFN_UDP_CRE_CEP: 490 491 case TFN_UDP_SND_DAT: 491 492 break; 492 493 default: 493 494 ECN_CAP_PUT_2("[UDP ECHO SRV] fncd:0x%04X(%s)", -fncd, 495 (fncd == TEV_UDP_RCV_DAT ? "TEV_UDP_RCV_DAT" : 494 496 (fncd == TFN_UDP_CRE_CEP ? "TFN_UDP_CRE_CEP" : 495 497 (fncd == TFN_UDP_RCV_DAT ? "TFN_UDP_RCV_DAT" : 496 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef")))) ;498 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef"))))); 497 499 498 500 error = E_PAR; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp6_task.h
r337 r364 71 71 #endif /* ECHONET_UDP_TASK_STACK_SIZE */ 72 72 73 #ifndef NUM_ECHONET_UDP_ MAILBOX74 #define NUM_ECHONET_UDP_ MAILBOX1075 #endif /* NUM_ECHONET_UDP_ MAILBOX*/73 #ifndef NUM_ECHONET_UDP_DATAQUEUE 74 #define NUM_ECHONET_UDP_DATAQUEUE 10 75 #endif /* NUM_ECHONET_UDP_DATAQUEUE */ 76 76 77 77 /* -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp_task.c
r337 r364 146 146 147 147 /* echonet_taskに送る */ 148 a_ret = snd_dtq(ecn_svc_ mailboxid, (intptr_t)a_fbs_id.ptr);149 if (a_ret != E_OK) { 150 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_ mailboxid) result = %d:%s", a_ret, itron_strerror(a_ret));148 a_ret = snd_dtq(ecn_svc_dataqueueid, (intptr_t)a_fbs_id.ptr); 149 if (a_ret != E_OK) { 150 ECN_DBG_PUT_2("[UDP ECHO SRV] snd_dtq(ecn_svc_dataqueueid) result = %d:%s", a_ret, itron_strerror(a_ret)); 151 151 goto lb_except; 152 152 } … … 206 206 a_timer = ECHONET_UDP_TASK_GET_TIMER; 207 207 208 a_ret = trcv_dtq(ecn_udp_ mailboxid, (intptr_t *)&a_mdt.p_msg, a_timer);208 a_ret = trcv_dtq(ecn_udp_dataqueueid, (intptr_t *)&a_mdt.p_msg, a_timer); 209 209 if ((a_ret != E_OK) && (a_ret != E_TMOUT)) { 210 210 ECN_DBG_PUT_2("trcv_dtq() result = %d:%s", a_ret, itron_strerror(a_ret)); … … 266 266 req.ptr->hdr.type = ECN_MSG_INTERNAL; 267 267 req.ptr->hdr.sender.dtqid = sender; 268 req.ptr->hdr.target.dtqid = ecn_udp_ mailboxid;268 req.ptr->hdr.target.dtqid = ecn_udp_dataqueueid; 269 269 req.ptr->hdr.reply.dtqid = sender; 270 270 … … 294 294 295 295 res.ptr->hdr.type = ECN_MSG_INTERNAL; 296 res.ptr->hdr.sender.dtqid = ecn_udp_ mailboxid;296 res.ptr->hdr.sender.dtqid = ecn_udp_dataqueueid; 297 297 res.ptr->hdr.target.dtqid = req.ptr->hdr.reply.dtqid; 298 res.ptr->hdr.reply.dtqid = ecn_udp_ mailboxid;298 res.ptr->hdr.reply.dtqid = ecn_udp_dataqueueid; 299 299 300 300 *pk_res = res; … … 420 420 else if (a_dst.ipaddr == MAKE_IPV4_ADDR(127,0,0,1)) { 421 421 /* 送信先が127.0.0.1 → dtqに転送 */ 422 ECN_DBG_PUT_1("redirect ecn_udp_ mailboxid → ecn_svc_mailboxid (esv:0x%02X)",422 ECN_DBG_PUT_1("redirect ecn_udp_dataqueueid → ecn_svc_dataqueueid (esv:0x%02X)", 423 423 ((T_EDATA *)fbs_id.ptr)->hdr.edata.esv); 424 424 … … 466 466 467 467 switch (fncd) { 468 case T FN_UDP_CRE_CEP:468 case TEV_UDP_RCV_DAT: 469 469 case TFN_UDP_RCV_DAT: 470 470 /* ECN_CAP_PUT("[UDP ECHO SRV] callback_nblk_udp() recv: %u", *(int *)p_parblk); */ … … 492 492 return E_OK; 493 493 494 case TFN_UDP_CRE_CEP: 494 495 case TFN_UDP_SND_DAT: 495 496 break; 496 497 default: 497 498 ECN_CAP_PUT_2("[UDP ECHO SRV] fncd:0x%04X(%s)", -fncd, 499 (fncd == TEV_UDP_RCV_DAT ? "TEV_UDP_RCV_DAT" : 498 500 (fncd == TFN_UDP_CRE_CEP ? "TFN_UDP_CRE_CEP" : 499 501 (fncd == TFN_UDP_RCV_DAT ? "TFN_UDP_RCV_DAT" : 500 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef")))) ;502 (fncd == TFN_UDP_SND_DAT ? "TFN_UDP_SND_DAT" : "undef"))))); 501 503 502 504 error = E_PAR; -
asp3_tinet_ecnl_rx/trunk/ntshell/echonet/echonet_udp_task.h
r337 r364 71 71 #endif /* ECHONET_UDP_TASK_STACK_SIZE */ 72 72 73 #ifndef NUM_ECHONET_UDP_ MAILBOX74 #define NUM_ECHONET_UDP_ MAILBOX1075 #endif /* NUM_ECHONET_UDP_ MAILBOX*/73 #ifndef NUM_ECHONET_UDP_DATAQUEUE 74 #define NUM_ECHONET_UDP_DATAQUEUE 10 75 #endif /* NUM_ECHONET_UDP_DATAQUEUE */ 76 76 77 77 /*
Note:
See TracChangeset
for help on using the changeset viewer.