- Timestamp:
- Jun 10, 2015, 8:40:31 PM (8 years ago)
- Location:
- uKadecot/trunk
- Files:
-
- 255 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/csp/libssp/dummy.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêĢ鱯D 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 22 * Ì³ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * J[lì¬p_~[^XN44 * カーネル作成用ダミータスク 49 45 */ 50 46 … … 54 50 55 51 /* 56 * C^XN52 * メインタスク 57 53 */ 58 54 void dummy_task(intptr_t exinf) -
Property svn:mime-type
changed from
-
uKadecot/trunk/csp/libssp/dummy.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 5 5 /* 6 * TvvO(1)ÌVXeRtBM 7 [Vt@C 6 * サンプルプログラム(1)のシステムコンフィギュレーションファイル 8 7 */ 9 8 #include "dummy.h" -
Property svn:mime-type
changed from
-
uKadecot/trunk/csp/libssp/dummy.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêĢ鱯D 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 22 * Ì³ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * J[lì¬p_~[^XNÌwb_t@C44 * カーネル作成用ダミータスクのヘッダファイル 49 45 */ 50 46 51 47 /* 52 * ^[Qbg˶Ìè`48 * ターゲット依存の定義 53 49 */ 54 50 #include "target_test.h" 55 51 56 52 /* 57 * e^XNÌDæxÌè`53 * 各タスクの優先度の定義 58 54 */ 59 55 60 #define MAIN_PRIORITY 5 /* C^XNÌDæx*/56 #define MAIN_PRIORITY 5 /* メインタスクの優先度 */ 61 57 62 58 /* 63 * ^[QbgÉ˶·éÂ\«Ì éèÌè`59 * ターゲットに依存する可能性のある定数の定義 64 60 */ 65 61 66 62 #ifndef TASK_PORTID 67 #define TASK_PORTID 1 /* ¶üÍ·éVA|[gID */63 #define TASK_PORTID 1 /* 文字入力するシリアルポートID */ 68 64 #endif /* TASK_PORTID */ 69 65 70 66 #ifndef STACK_SIZE 71 #define STACK_SIZE 4096 /* ^XNÌX^bNTCY*/67 #define STACK_SIZE 4096 /* タスクのスタックサイズ */ 72 68 #endif /* STACK_SIZE */ 73 69 74 70 /* 75 * ÖÌvg^Cvé¾71 * 関数のプロトタイプ宣言 76 72 */ 77 73 #ifndef TOPPERS_MACRO_ONLY -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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$ … … 51 47 52 48 /* 53 * ECHONET Lite T[rXJn49 * ECHONET Liteサービス処理開始 54 50 */ 55 51 ER ecn_sta_svc() … … 59 55 60 56 /* 61 * ECHONET IuWFNgQÆ62 * ø63 * ID fa_eobjid ECHONET IuWFNgID64 * T_REOBJ *fp_eobj ECHONET IuWFNgÌÝèàeRs[æ57 * ECHONETオブジェクト参照 58 * 引数 59 * ID fa_eobjid ECHONETオブジェクトID 60 * T_REOBJ *fp_eobj ECHONETオブジェクトの設定内容コピー先 65 61 * 66 * eobjid Åwèµ½ECHONETIuWFNgÌÝèàeðQÆ·éB67 * QƵ½ÝèàeÍpk_eobjÉwèµ½ÉÔ³êéB62 * eobjidで指定したECHONETオブジェクトの設定内容を参照する。 63 * 参照した設定内容はpk_eobjに指定したメモリに返される。 68 64 */ 69 65 ER ecn_ref_eobj(ID fa_eobjid, T_REOBJ *fp_eobj) … … 72 68 73 69 if (!fp_eobj) 74 return E_PAR; /* p[^G[*/70 return E_PAR; /* パラメータエラー */ 75 71 76 72 if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid)) 77 return E_OBJ; /* IuWFNg¢o^*/73 return E_OBJ; /* オブジェクト未登録 */ 78 74 79 75 p_obj = &eobjinib_table[fa_eobjid - 1]; … … 85 81 86 82 /* 87 * ECHONET vpeBQÆ88 * ø89 * ID fa_eobjid ECHONET IuWFNgID90 * uint8_t fa_epc vpeBR[h91 * T_RPRP *fp_eprp ECHONET IuWFNgÌvpeBÝèàeRs[æ83 * ECHONETプロパティ参照 84 * 引数 85 * ID fa_eobjid ECHONETオブジェクトID 86 * uint8_t fa_epc プロパティコード 87 * T_RPRP *fp_eprp ECHONETオブジェクトのプロパティ設定内容コピー先 92 88 * 93 * eobjid Åwèµ½ECHONETIuWFNgÌAepcÅwèµ½vpeBÌÝèàeðQÆ·éB94 * QƵ½ÝèàeÍpk_eprpÉwèµ½ÉÔ³êéB89 * eobjidで指定したECHONETオブジェクトの、epcで指定したプロパティの設定内容を参照する。 90 * 参照した設定内容はpk_eprpに指定したメモリに返される。 95 91 */ 96 92 ER ecn_ref_eprp(ID fa_eobjid, uint8_t fa_epc, T_RPRP *fp_eprp) … … 101 97 102 98 if (!fp_eprp) 103 return E_PAR; /* p[^G[*/99 return E_PAR; /* パラメータエラー */ 104 100 105 101 if ((fa_eobjid <= 0) || (fa_eobjid > tmax_eobjid)) 106 return E_OBJ; /* IuWFNg¢o^*/102 return E_OBJ; /* オブジェクト未登録 */ 107 103 108 104 p_obj = &eobjinib_table[fa_eobjid - 1]; 109 105 110 /* eoj ÌÂvpeBú»è`zñ©çõ*/106 /* eojの持つプロパティ初期化定義配列から検索 */ 111 107 p = p_obj->eprp; 112 108 for (i = 0; i < p_obj->eprpcnt; i++, p++) { … … 117 113 } 118 114 119 return E_PAR; /* p[^G[*/120 } 121 122 /* 123 * vpeBl«Ývisvjd¶ì¬124 * ø125 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ126 * ID fa_deoj ¶æÌECHONETIuWFNgID127 * uint8_t fa_epc vpeBR[h128 * uint8_t fa_pdc vpeBlf[^TCY129 * const void *p_edt vpeBlf[^115 return E_PAR; /* パラメータエラー */ 116 } 117 118 /* 119 * プロパティ値書き込み要求(応答不要)電文作成 120 * 引数 121 * T_EDATA **ppk_esv 取得した電文の格納先 122 * ID fa_deoj 宛先のECHONETオブジェクトID 123 * uint8_t fa_epc プロパティコード 124 * uint8_t fa_pdc プロパティ値データサイズ 125 * const void *p_edt プロパティ値データ 130 126 * 131 * vpeBl«Ývisvjd¶ð쬷éB132 * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA133 * d¶ÌßÌvpeBlƵÄAepcÆpdcAp_edtÅwè³ê½134 * vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB135 * 쬵½d¶ÌæªAhXÍ|C^oRÅÔ³êéB127 * プロパティ値書き込み要求(応答不要)電文を作成する。 128 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、 129 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された 130 * プロパティコード、データサイズ、データを電文に設定する。 131 * 作成した電文の先頭アドレスはポインタ経由で返される。 136 132 */ 137 133 ER ecn_esv_seti(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc, … … 142 138 143 139 /* 144 * vpeBl«Ývivjd¶ì¬145 * ø146 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ147 * ID fa_deoj ¶æÌECHONETIuWFNgID148 * uint8_t fa_epc vpeBR[h149 * uint8_t fa_pdc vpeBlf[^TCY150 * const void *p_edt vpeBlf[^140 * プロパティ値書き込み要求(応答要)電文作成 141 * 引数 142 * T_EDATA **ppk_esv 取得した電文の格納先 143 * ID fa_deoj 宛先のECHONETオブジェクトID 144 * uint8_t fa_epc プロパティコード 145 * uint8_t fa_pdc プロパティ値データサイズ 146 * const void *p_edt プロパティ値データ 151 147 * 152 * vpeBl«Ývivjd¶ð쬷éB153 * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA154 * d¶ÌßÌvpeBlƵÄAepcÆpdcAp_edtÅwè³ê½155 * vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB156 * 쬵½d¶ÌæªAhXÍ|C^oRÅÔ³êéB148 * プロパティ値書き込み要求(応答要)電文を作成する。 149 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、 150 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された 151 * プロパティコード、データサイズ、データを電文に設定する。 152 * 作成した電文の先頭アドレスはポインタ経由で返される。 157 153 */ 158 154 ER ecn_esv_setc(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc, … … 163 159 164 160 /* 165 * vpeBlÇÝoµvd¶ì¬166 * ø167 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ168 * ID fa_deoj ¶æÌECHONETIuWFNgID169 * uint8_t fa_epc vpeBR[h161 * プロパティ値読み出し要求電文作成 162 * 引数 163 * T_EDATA **ppk_esv 取得した電文の格納先 164 * ID fa_deoj 宛先のECHONETオブジェクトID 165 * uint8_t fa_epc プロパティコード 170 166 * 171 * vpeBlÇÝoµvd¶ð쬷éB172 * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA173 * d¶ÌßÌvpeBlƵÄAepcÅwè³ê½174 * vpeBR[hðd¶ÉÝè·éB175 * 쬵½d¶ÌæªAhXÍ|C^oRÅÔ³êéB167 * プロパティ値読み出し要求電文を作成する。 168 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、 169 * 電文の初めのプロパティ値として、epcで指定された 170 * プロパティコードを電文に設定する。 171 * 作成した電文の先頭アドレスはポインタ経由で返される。 176 172 */ 177 173 ER ecn_esv_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc) … … 181 177 182 178 /* 183 * vpeBlÊmvd¶ì¬184 * ø185 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ186 * ID fa_deoj ¶æÌECHONETIuWFNgID187 * uint8_t fa_epc vpeBR[h179 * プロパティ値通知要求電文作成 180 * 引数 181 * T_EDATA **ppk_esv 取得した電文の格納先 182 * ID fa_deoj 宛先のECHONETオブジェクトID 183 * uint8_t fa_epc プロパティコード 188 184 * 189 * vpeBlÊmvd¶ð쬷éB190 * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA191 * d¶ÌßÌvpeBlƵÄAepcÅwè³ê½192 * vpeBR[hðd¶ÉÝè·éB193 * 쬵½d¶ÌæªAhXÍ|C^oRÅÔ³êéB185 * プロパティ値通知要求電文を作成する。 186 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、 187 * 電文の初めのプロパティ値として、epcで指定された 188 * プロパティコードを電文に設定する。 189 * 作成した電文の先頭アドレスはポインタ経由で返される。 194 190 */ 195 191 ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc) … … 199 195 200 196 /* 201 * vpeBl«ÝEÇÝoµvd¶ì¬202 * ø203 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ204 * ID fa_deoj ¶æÌECHONETIuWFNgID205 * uint8_t fa_epc vpeBR[h206 * uint8_t fa_pdc vpeBlf[^TCY207 * const void *p_edt vpeBlf[^197 * プロパティ値書き込み・読み出し要求電文作成 198 * 引数 199 * T_EDATA **ppk_esv 取得した電文の格納先 200 * ID fa_deoj 宛先のECHONETオブジェクトID 201 * uint8_t fa_epc プロパティコード 202 * uint8_t fa_pdc プロパティ値データサイズ 203 * const void *p_edt プロパティ値データ 208 204 * 209 * vpeBl«ÝEÇÝoµvd¶ð쬷éB210 * d¶ÍdeojÅwèµ½ECHONETIuWFNgð¶æÆµA211 * d¶ÌßÌvpeBlƵÄAepcÆpdcAp_edtÅwè³ê½212 * vpeBR[hAf[^TCYAf[^ðd¶ÉÝè·éB213 * 쬵½d¶ÌæªAhXÍ|C^oRÅÔ³êéB205 * プロパティ値書き込み・読み出し要求電文を作成する。 206 * 電文はdeojで指定したECHONETオブジェクトを宛先とし、 207 * 電文の初めのプロパティ値として、epcとpdc、p_edtで指定された 208 * プロパティコード、データサイズ、データを電文に設定する。 209 * 作成した電文の先頭アドレスはポインタ経由で返される。 214 210 */ 215 211 ER ecn_esv_set_get(T_EDATA **ppk_esv, ID fa_deoj, uint8_t fa_epc, uint8_t fa_pdc, … … 220 216 221 217 /* 222 * vpeBl«ÝEÇÝoµvd¶ì¬FÜèÔµwè223 * vpeBl«ÝEÇÝoµvd¶ì¬ÌA«ÝvpeBzñðI¦Ä224 * ÇÝoµvpeBzñÉÚéÉp¢éB218 * プロパティ値書き込み・読み出し要求電文作成:折り返し指定 219 * プロパティ値書き込み・読み出し要求電文作成中の、書き込みプロパティ配列を終えて 220 * 読み出しプロパティ配列に移る時に用いる。 225 221 */ 226 222 ER ecn_trn_set_get(T_EDATA *ppk_esv, int *p_trn_pos) … … 233 229 return E_PAR; 234 230 235 /* vpeBÇÝÝ«ÝÌwbhîñðL^*/231 /* プロパティ読み込み件数書き込み時のヘッド情報を記録 */ 236 232 *p_trn_pos = _ecn_fbs_get_datalen(*(ECN_FBS_ID *)&ppk_esv); 237 233 238 /* d¶pÉf[^ÇÁE±Ì_ÅÌd¶vpeBðL^*/234 /* 応答電文用メモリにデータ追加・この時点での応答電文中プロパティ件数を記録 */ 239 235 a_ret = _ecn_fbs_add_data_ex(*(ECN_FBS_ID *)&ppk_esv, &ppk_esv->hdr.edata.opc, 1); 240 236 if (a_ret) { … … 243 239 } 244 240 245 /* d¶vpeBð 0 Éß·i¡ãAI¹wè·éÜÅÍÇÝoµvpeBÉÈéj*/241 /* 応答電文中プロパティ件数を 0 に戻す(今後、終了指定するまでは読み出しプロパティ件数になる) */ 246 242 ppk_esv->hdr.edata.opc = 0; 247 243 … … 250 246 251 247 /* 252 * vpeBl«ÝEÇÝoµvd¶ì¬FI¹wè253 * vpeBl«ÝEÇÝoµvd¶ì¬ÌAÇÝoµvpeBzñðI¦éÉp¢éB248 * プロパティ値書き込み・読み出し要求電文作成:終了指定 249 * プロパティ値書き込み・読み出し要求電文作成中の、読み出しプロパティ配列を終える時に用いる。 254 250 */ 255 251 ER ecn_end_set_get(T_EDATA *ppk_esv, int fa_trn_pos) … … 262 258 return E_PAR; 263 259 264 /* ±Ì_ÅÌd¶vpeB(ÇÝoµvpeB)ðÛ*/260 /* この時点での応答電文中プロパティ件数(読み出しプロパティ件数)を保持 */ 265 261 a_rd_opc = ppk_esv->hdr.edata.opc; 266 262 267 /* d¶vpeB(«ÝvpeB)ðÛ¶Êu©çÇÝæè*/263 /* 応答電文中プロパティ件数(書き込みプロパティ件数)を保存位置から読み取り */ 268 264 a_wr_opc = _ecn_fbs_peek(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos); 269 265 if (a_wr_opc < 0) { … … 272 268 } 273 269 274 /* d¶vpeB(«ÝvpeB)ð³*/270 /* 応答電文中プロパティ件数(書き込みプロパティ件数)を復元 */ 275 271 ppk_esv->hdr.edata.opc = (uint8_t)a_wr_opc; 276 272 277 /* d¶vpeB(ÇÝoµvpeB)ðÛ¶ÊuÉ«Ý*/273 /* 応答電文中プロパティ件数(読み出しプロパティ件数)を保存位置に書き込み */ 278 274 a_ret = _ecn_fbs_poke(*(ECN_FBS_ID *)&ppk_esv, fa_trn_pos, a_rd_opc); 279 275 if (a_ret) { … … 286 282 287 283 /* 288 * vpeBlÊmivjd¶ì¬289 * ø290 * T_EDATA **ppk_esv æ¾µ½d¶Ìi[æ291 * ID fa_deoj ¶æÌECHONETIuWFNgID292 * ID fa_seoj M³ÌECHONETIuWFNgID293 * uint8_t fa_sepc M³ÌvpeBR[h284 * プロパティ値通知(応答要)電文作成 285 * 引数 286 * T_EDATA **ppk_esv 取得した電文の格納先 287 * ID fa_deoj 宛先のECHONETオブジェクトID 288 * ID fa_seoj 送信元のECHONETオブジェクトID 289 * uint8_t fa_sepc 送信元のプロパティコード 294 290 */ 295 291 ER ecn_esv_infc(T_EDATA **ppk_esv, ID fa_deoj, ID fa_seoj, uint8_t fa_sepc) … … 299 295 300 296 /* 301 * vd¶ÖÌvpeBwèÇÁ (vpeBf[^ªtµÈ¢êÉp¢é)297 * 要求電文へのプロパティ指定追加 (プロパティデータが付随しない場合に用いる) 302 298 */ 303 299 ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc) … … 307 303 308 304 /* 309 * vd¶ÖÌvpeBf[^ÇÁ (vpeB¨æÑtf[^ðÇÁ·é)305 * 要求電文へのプロパティデータ追加 (プロパティおよび付随データを追加する) 310 306 */ 311 307 ER ecn_add_edt(T_EDATA *pk_esv, uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt) … … 316 312 317 313 if (!pk_esv) 318 return E_PAR; /* æ¾µ½FBS_IDÌi[æªNULL */314 return E_PAR; /* 取得したFBS_IDの格納先がNULL */ 319 315 if (ECHONET_MEMPOOL_BLOCK_SIZE <= fa_pdc) 320 return E_PAR; /* vpeBlTCYªå«·¬é*/316 return E_PAR; /* プロパティ値サイズが大きすぎる */ 321 317 if (!p_edt && 0 < fa_pdc) 322 return E_PAR; /* vpeBlTCYª1ÈãÈÌÉf[^|C^ªNULL */318 return E_PAR; /* プロパティ値サイズが1以上なのにデータポインタがNULL */ 323 319 324 320 a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_esv; 325 321 if (((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc == 0xFF) 326 return E_PAR; /* vpeBª½·¬é*/327 328 /* vd¶pÉf[^ÇÁ*/322 return E_PAR; /* プロパティが多すぎる */ 323 324 /* 要求電文用メモリにデータ追加 */ 329 325 memset(&a_ecn_prp, 0, sizeof(a_ecn_prp)); 330 326 a_ecn_prp.epc = fa_epc; … … 338 334 } 339 335 if (0 < fa_pdc) { 340 /* tf[^ÇÁ*/336 /* 付随データ追加 */ 341 337 a_ret = _ecn_fbs_add_data_ex(a_fbs_id, p_edt, fa_pdc); 342 338 if (a_ret) { … … 347 343 } 348 344 } 349 /* vpeBCNg*/345 /* プロパティ数インクリメント */ 350 346 ((T_EDATA *)a_fbs_id.ptr)->hdr.edata.opc++; 351 347 … … 355 351 356 352 /* 357 * vd¶ÌM358 * esv Åwè³ê½vd¶ðM·éB359 * d¶Éwè³ê½¶æ©çIPAhXðÁèµAUDPpPbgƵÄM·éB353 * 要求電文の送信 354 * esvで指定された要求電文を送信する。 355 * 電文に指定された宛先からIPアドレスを特定し、UDPパケットとして送信する。 360 356 */ 361 357 ER ecn_snd_esv(T_EDATA *pk_esv) … … 367 363 368 364 /* 369 * d¶ÌóM|[O370 * d¶ðóM·éÌðÒÂB371 * óMµ½d¶Íppk_esvÅwèµ½|C^[ÉæªAhXªÔ³êéB372 * d¶ÌóMÌL³É©©íç¸AÒ½¸ÉÖð²¯éB365 * 応答電文の受信ポーリング 366 * 応答電文を受信するのを待つ。 367 * 受信した応答電文はppk_esvで指定したポインターに先頭アドレスが返される。 368 * 応答電文の受信の有無にかかわらず、待たずに関数を抜ける。 373 369 */ 374 370 ER ecn_prcv_esv(T_EDATA **ppk_esv) … … 391 387 392 388 /* 393 * d¶Ìjü389 * 応答電文の破棄 394 390 */ 395 391 ER ecn_rel_esv(T_EDATA *pk_esv) … … 404 400 405 401 /* 406 * d¶ÌM³m[hðæ¾·é402 * 応答電文の送信元ノードを取得する 407 403 */ 408 404 ID ecn_get_enod(T_EDATA *pk_esv) … … 428 424 429 425 /* 430 * d¶ÌM³@íIuWFNgðæ¾·é426 * 応答電文の送信元機器オブジェクトを取得する 431 427 */ 432 428 ID ecn_get_eobj(T_EDATA *pk_esv) … … 439 435 p_snod = _ecn_eno_fnd(((T_ECN_FST_BLK *)pk_esv)->hdr.sender); 440 436 if (p_snod != NULL) { 441 /* m[hvt@CÌê*/437 /* ノードプロファイルの場合 */ 442 438 if ((p_esv->edata.seoj.eojx1 == EOJ_X1_PROFILE) 443 439 && (p_esv->edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) { 444 440 p_sobj = p_snod->profile; 445 441 } 446 /* @íIuWFNgÌê*/442 /* 機器オブジェクトの場合 */ 447 443 else { 448 444 p_sobj = _ecn_eoj_fnd(p_snod, &p_esv->edata.seoj); … … 460 456 461 457 /* 462 * d¶ðÍCe[^[ú»458 * 応答電文解析イテレーター初期化 463 459 */ 464 460 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv) … … 472 468 pk_itr->pk_esv = pk_esv; 473 469 pk_itr->count = pk_esv->hdr.edata.opc; 474 /* ¡ÌubNÅÌvpeB*/475 pk_itr->got_ct = 0; /* ¡ÌubNÅAÇÝæÁ½*/476 pk_itr->next_blk_ct = 0; /* ã±ubN*/477 pk_itr->is_eof = 0; /* I[ÉBµ½Añ0 */470 /* 今のブロックでのプロパティ総数 */ 471 pk_itr->got_ct = 0; /* 今のブロックで、読み取った数 */ 472 pk_itr->next_blk_ct = 0; /* 後続ブロック数 */ 473 pk_itr->is_eof = 0; /* 終端に達した時、非0 */ 478 474 pk_itr->cur = offsetof(T_ECN_EDT_HDR, ecn_prp); 479 475 480 476 switch (pk_esv->hdr.edata.esv) { 481 case ESV_SET_GET: /* 0x6E vpeBl«ÝEÇÝoµv*/482 case ESV_SET_GET_RES: /* 0x7E vpeBl«ÝEÇÝoµ*/483 case ESV_SET_GET_SNA: /* 0x5E vpeBl«ÝEÇÝoµsÂ*/477 case ESV_SET_GET: /* 0x6E プロパティ値書き込み・読み出し要求 */ 478 case ESV_SET_GET_RES: /* 0x7E プロパティ値書き込み・読み出し応答 */ 479 case ESV_SET_GET_SNA: /* 0x5E プロパティ値書き込み・読み出し不可応答 */ 484 480 pk_itr->next_blk_ct ++; 485 481 default: … … 491 487 492 488 /* 493 * d¶ðÍCe[^[CNg489 * 応答電文解析イテレーターインクリメント 494 490 */ 495 491 ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt) … … 513 509 514 510 if (pk_itr->is_eof) 515 return E_BOVR; /* f[^I¹*/511 return E_BOVR; /* データ終了 */ 516 512 if ( pk_itr->count <= pk_itr->got_ct 517 513 && pk_itr->next_blk_ct < 1) { 518 pk_itr->is_eof = 1; /* I[ÉBµ½Añ0 */519 return E_BOVR; /* f[^I¹*/514 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 515 return E_BOVR; /* データ終了 */ 520 516 } 521 517 522 518 a_fbs_id.ptr = (T_ECN_FST_BLK *)pk_itr->pk_esv; 523 519 524 /* ³ÌJ[\ÊuðÛ¶µACe[^ÌJ[\ÊuÉ·é*/520 /* 元のカーソル位置を保存し、イテレータのカーソル位置にする */ 525 521 a_rd_bak = a_fbs_id.ptr->hdr.rd; 526 522 a_fbs_id.ptr->hdr.rd = pk_itr->cur; … … 530 526 #endif 531 527 if (pk_itr->count <= pk_itr->got_ct && 0 < pk_itr->next_blk_ct) { 532 /* ubNÉÚ®*/528 /* 次ブロックに移動 */ 533 529 pk_itr->next_blk_ct --; 534 pk_itr->count = 0; /* ¡ÌubNÅÌvpeB*/535 pk_itr->got_ct = 0; /* ¡ÌubNÅAÇÝæÁ½*/536 537 /* ubNÌvpeBðÇÝæé*/530 pk_itr->count = 0; /* 今のブロックでのプロパティ総数 */ 531 pk_itr->got_ct = 0; /* 今のブロックで、読み取った数 */ 532 533 /* 次ブロックのプロパティ数を読み取る */ 538 534 a_rd_len = 0; 539 535 a_ret = _ecn_fbs_get_data(a_fbs_id, &a_ecn_prp.pdc, 1, &a_rd_len); … … 541 537 goto lb_except; 542 538 if (0 < a_rd_len) { 543 pk_itr->count = a_ecn_prp.pdc; /* ¡ÌubNÅÌvpeB*/539 pk_itr->count = a_ecn_prp.pdc; /* 今のブロックでのプロパティ総数 */ 544 540 } 545 a_ret = E_BOVR; /* f[^I¹*/541 a_ret = E_BOVR; /* データ終了 */ 546 542 goto lb_finally; 547 543 } 548 544 549 /* vpeBR[hÆf[^TCYðÇÝæé*/545 /* プロパティコードとデータサイズを読み取る */ 550 546 memset(&a_ecn_prp, 0, sizeof(a_ecn_prp)); 551 547 a_rd_len = 0; … … 556 552 ECN_DBG_PUT "ecn_itr_nxt() ecn_prp read fault." 557 553 " rd.cur=%d", pk_itr->cur ECN_DBG_END; 558 pk_itr->is_eof = 1; /* I[ÉBµ½Añ0 */559 a_ret = E_BOVR; /* f[^I¹*/554 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 555 a_ret = E_BOVR; /* データ終了 */ 560 556 goto lb_finally; 561 557 } … … 564 560 565 561 if (0 < a_ecn_prp.pdc) { 566 /* tf[^ðÇÝæé*/562 /* 付随データを読み取る */ 567 563 a_rd_len = 0; 568 564 a_ret = _ecn_fbs_get_data(a_fbs_id, p_edt, a_ecn_prp.pdc, &a_rd_len); … … 572 568 ECN_DBG_PUT "ecn_itr_nxt() edt read fault." 573 569 " rd.cur=%d,epc=0x%02X,pdc=%u", pk_itr->cur, a_ecn_prp.epc , a_ecn_prp.pdc ECN_DBG_END; 574 pk_itr->is_eof = 1; /* I[ÉBµ½Añ0 */575 a_ret = E_BOVR; /* f[^I¹*/570 pk_itr->is_eof = 1; /* 終端に達した時、非0 */ 571 a_ret = E_BOVR; /* データ終了 */ 576 572 goto lb_finally; 577 573 } … … 584 580 585 581 lb_finally: 586 /* Ce[^ÌJ[\ÊuðXV*/582 /* イテレータのカーソル位置を更新 */ 587 583 pk_itr->cur = a_fbs_id.ptr->hdr.rd; 588 584 589 585 lb_except: 590 /* ³ÌJ[\ÊuÉß·*/586 /* 元のカーソル位置に戻す */ 591 587 a_fbs_id.ptr->hdr.rd = a_rd_bak; 592 588 return a_ret; … … 594 590 595 591 /* 596 * d¶Ò¿ÌèÝM592 * 応答電文待ちの割り込み送信 597 593 */ 598 594 ER ecn_brk_wai(const void *p_dat, int fa_datsz) 599 595 { 600 596 ER a_ret; 601 ECN_FBS_ID a_fbs_id = { 0 }; /* vd¶p*/602 603 /* d¶Ò¿ÌèÝd¶ì¬*/597 ECN_FBS_ID a_fbs_id = { 0 }; /* 要求電文用メモリ */ 598 599 /* 応答電文待ちの割り込み電文作成 */ 604 600 a_ret = _ecn_mk_brk_wai(&a_fbs_id, p_dat, fa_datsz); 605 601 if (a_ret) 606 602 return a_ret; 607 603 608 /* èÝM*/604 /* 割り込み送信 */ 609 605 a_ret = _ecn_tsk_snd_mbx(a_fbs_id, true); 610 606 if (a_ret) { … … 614 610 } 615 611 616 /* ³íI¹*/612 /* 正常終了 */ 617 613 return a_ret; 618 614 619 615 lb_except: 620 /* f[^쬸sµ½çÌæðú*/616 /* データ作成失敗したら領域解放 */ 621 617 if (a_fbs_id.ptr) 622 618 _ecn_fbs_del(a_fbs_id); … … 626 622 627 623 /* 628 * èÝf[^Ìæ¾624 * 割り込みデータの取得 629 625 */ 630 626 ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int fa_bufsz, int *p_datsz) … … 646 642 } 647 643 648 /* ÇÝæèÊuðæªÉß·*/644 /* 読み取り位置を先頭に戻す */ 649 645 a_ret = _ecn_fbs_set_rpos(a_fbs, 0); 650 646 if (a_ret) { … … 654 650 } 655 651 656 /* tf[^ðÇÝÞ*/652 /* 付随データを読み込む */ 657 653 if (p_buf && 0 < fa_bufsz) { 658 654 a_len = 0; … … 671 667 #ifndef ECN_USER_DATA_PROP_SET 672 668 /* 673 * f[^ÝèÖ669 * データ設定関数 674 670 */ 675 671 int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno) … … 689 685 #ifndef ECN_USER_DATA_PROP_GET 690 686 /* 691 * f[^æ¾Ö687 * データ取得関数 692 688 */ 693 689 int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size) -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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$ … … 57 53 58 54 #define EOBJ_NULL 0x00 59 #define EOBJ_LOCAL_NODE 0x01 /* ©m[h*/60 #define EOBJ_SYNC_REMOTE_NODE 0x02 /* ¼m[h*/61 #define EOBJ_ASYNC_REMOTE_NODE 0x04 /* ¼m[hiñ¯új*/62 #define EOBJ_DEVICE 0x08 /* @íIuWFNg*/55 #define EOBJ_LOCAL_NODE 0x01 /* 自ノード */ 56 #define EOBJ_SYNC_REMOTE_NODE 0x02 /* 他ノード */ 57 #define EOBJ_ASYNC_REMOTE_NODE 0x04 /* 他ノード(非同期) */ 58 #define EOBJ_DEVICE 0x08 /* 機器オブジェクト */ 63 59 64 60 #define EPC_NONE 0x00 65 #define EPC_RULE_SET 0x01 /* ANZX[Set */66 #define EPC_RULE_GET 0x02 /* ANZX[Get */67 #define EPC_RULE_ANNO 0x04 /* ANZX[Anno */68 #define EPC_ANNOUNCE 0x40 /* óÔÏ»Êm*/69 #define EPC_VARIABLE 0x80 /* ÂÏ·f[^*/61 #define EPC_RULE_SET 0x01 /* アクセスルール Set */ 62 #define EPC_RULE_GET 0x02 /* アクセスルール Get */ 63 #define EPC_RULE_ANNO 0x04 /* アクセスルール Anno */ 64 #define EPC_ANNOUNCE 0x40 /* 状態変化時通知 */ 65 #define EPC_VARIABLE 0x80 /* 可変長データ */ 70 66 71 67 typedef enum _echonet_enod_id 72 68 { 73 69 ENOD_NOT_MATCH_ID = -1, 74 ENOD_MULTICAST_ID = 0, /* }`LXgAhXID */75 ENOD_LOCAL_ID = 1, /* ©m[hAhXID */76 ENOD_API_ID = 2, /* API AhXID */77 ENOD_REMOTE_ID = 3, /* ¼m[hAhXID */70 ENOD_MULTICAST_ID = 0, /* マルチキャストアドレスID */ 71 ENOD_LOCAL_ID = 1, /* 自ノードアドレスID */ 72 ENOD_API_ID = 2, /* APIアドレスID */ 73 ENOD_REMOTE_ID = 3, /* 他ノードアドレスID */ 78 74 } ECN_ENOD_ID; 79 75 80 /* ECHONET Lite Ki*/76 /* ECHONET Lite規格 */ 81 77 typedef enum 82 78 { … … 84 80 } ECN_EHD1_ECL_VERSION; 85 81 86 /* d¶`®1/2 */82 /* 電文形式1/2 */ 87 83 typedef enum 88 84 { 89 ECN_EDH2_FORMAT_1 = 0x81, /* d¶`®1 */90 ECN_EDH2_FORMAT_2 = 0x82 /* d¶`®2 */85 ECN_EDH2_FORMAT_1 = 0x81, /* 電文形式1 */ 86 ECN_EDH2_FORMAT_2 = 0x82 /* 電文形式2 */ 91 87 } ECN_EHD2_FORMAT; 92 88 93 /* ECHONET Lite T[rXR[h*/89 /* ECHONET Liteサービスコード */ 94 90 typedef enum _echonet_service_code 95 91 { 96 ESV_NOP = 0, /* ( @\wèȵ) */97 ESV_SET_I = 0x60, /* vpeBl«Ývisvj*/98 ESV_SET_C = 0x61, /* vpeBl«Ývivj*/99 ESV_GET = 0x62, /* vpeBlÇÝoµv*/100 ESV_INF_REQ = 0x63, /* vpeBlÊmv*/101 ESV_SET_GET = 0x6E, /* vpeBl«ÝEÇÝoµv*/102 ESV_SET_RES = 0x71, /* vpeBl«Ý*/103 ESV_GET_RES = 0x72, /* vpeBlÇÝoµ*/104 ESV_INF = 0x73, /* vpeBlÊm*/105 ESV_INFC = 0x74, /* vpeBlÊmivj*/106 ESV_INFC_RES = 0x7A, /* vpeBlÊm*/107 ESV_SET_GET_RES = 0x7E, /* vpeBl«ÝEÇÝoµ*/108 ESV_SET_I_SNA = 0x50, /* vpeBl«ÝvsÂ*/109 ESV_SET_C_SNA = 0x51, /* vpeBl«ÝvsÂ*/110 ESV_GET_SNA = 0x52, /* vpeBlÇÝoµsÂ*/111 ESV_INF_SNA = 0x53, /* vpeBlÊmsÂ*/112 ESV_SET_GET_SNA = 0x5E /* vpeBl«ÝEÇÝoµsÂ*/92 ESV_NOP = 0, /* (機能指定なし) */ 93 ESV_SET_I = 0x60, /* プロパティ値書き込み要求(応答不要) */ 94 ESV_SET_C = 0x61, /* プロパティ値書き込み要求(応答要) */ 95 ESV_GET = 0x62, /* プロパティ値読み出し要求 */ 96 ESV_INF_REQ = 0x63, /* プロパティ値通知要求 */ 97 ESV_SET_GET = 0x6E, /* プロパティ値書き込み・読み出し要求 */ 98 ESV_SET_RES = 0x71, /* プロパティ値書き込み応答 */ 99 ESV_GET_RES = 0x72, /* プロパティ値読み出し応答 */ 100 ESV_INF = 0x73, /* プロパティ値通知 */ 101 ESV_INFC = 0x74, /* プロパティ値通知(応答要) */ 102 ESV_INFC_RES = 0x7A, /* プロパティ値通知応答 */ 103 ESV_SET_GET_RES = 0x7E, /* プロパティ値書き込み・読み出し応答 */ 104 ESV_SET_I_SNA = 0x50, /* プロパティ値書き込み要求不可応答 */ 105 ESV_SET_C_SNA = 0x51, /* プロパティ値書き込み要求不可応答 */ 106 ESV_GET_SNA = 0x52, /* プロパティ値読み出し不可応答 */ 107 ESV_INF_SNA = 0x53, /* プロパティ値通知不可応答 */ 108 ESV_SET_GET_SNA = 0x5E /* プロパティ値書き込み・読み出し不可応答 */ 113 109 } ECN_SRV_CODE; 114 110 … … 122 118 123 119 /* 124 * ECHONET Lite d¶wb_[120 * ECHONET Lite電文ヘッダー 125 121 */ 126 122 typedef struct 127 123 { 128 uint8_t ehd1; /* ECHONET Lite d¶wb_[1 ECN_EHD1_ECL_VERSION */129 uint8_t ehd2; /* ECHONET Lite d¶wb_[2 ECN_EHD2_FORMAT */130 uint16_t tid; /* gUNVID */124 uint8_t ehd1; /* ECHONET Lite電文ヘッダー1 ECN_EHD1_ECL_VERSION */ 125 uint8_t ehd2; /* ECHONET Lite電文ヘッダー2 ECN_EHD2_FORMAT */ 126 uint16_t tid; /* トランザクションID */ 131 127 } T_ECN_HDR; 132 128 133 129 /* 134 * ECHONET Lite IuWFNgR[h130 * ECHONET Liteオブジェクトコード 135 131 */ 136 132 typedef struct 137 133 { 138 uint8_t eojx1; /* NXO[vR[h*/139 uint8_t eojx2; /* NXR[h*/140 uint8_t eojx3; /* CX^XR[h*/134 uint8_t eojx1; /* クラスグループコード */ 135 uint8_t eojx2; /* クラスコード */ 136 uint8_t eojx3; /* インスタンスコード */ 141 137 } T_ECN_EOJ; 142 138 143 139 /* 144 * ECHONET Lite f[^wb_[140 * ECHONET Liteデータヘッダー 145 141 */ 146 142 typedef struct 147 143 { 148 T_ECN_EOJ seoj; /* M³ECHONET LiteIuWFNgwè*/149 T_ECN_EOJ deoj; /* èæECHONET LiteIuWFNgwè*/150 uint8_t esv; /* ECHONET Lite T[rX(ECN_SRV_CODE) */151 uint8_t opc; /* vpeB*/144 T_ECN_EOJ seoj; /* 送信元ECHONET Liteオブジェクト指定 */ 145 T_ECN_EOJ deoj; /* 相手先ECHONET Liteオブジェクト指定 */ 146 uint8_t esv; /* ECHONET Liteサービス (ECN_SRV_CODE) */ 147 uint8_t opc; /* 処理プロパティ数 */ 152 148 } T_ECN_EDATA_BODY; 153 149 154 150 /* 155 * ECHONET Lite vpeB151 * ECHONET Liteプロパティ 156 152 */ 157 153 typedef struct 158 154 { 159 uint8_t epc; /* ECHONET Lite vpeBR[h*/160 uint8_t pdc; /* EDT ÌoCg*/161 /*void *p_edt;*/ /* vpeBlf[^*/155 uint8_t epc; /* ECHONET Liteプロパティコード */ 156 uint8_t pdc; /* EDTのバイト数 */ 157 /*void *p_edt;*/ /* プロパティ値データ */ 162 158 } T_ECN_PRP; 163 159 164 160 /* 165 * ECHONET Lite f[^161 * ECHONET Liteデータ 166 162 */ 167 163 typedef struct … … 173 169 174 170 /* 175 * ECHONET Lite d¶171 * ECHONET Lite 電文 176 172 */ 177 173 typedef struct echonet_object_data … … 191 187 192 188 /* 193 * d¶ðÍCe[^[189 * 応答電文解析イテレーター 194 190 */ 195 191 typedef struct echonet_epc_enumerator 196 192 { 197 193 T_EDATA *pk_esv; 198 uint8_t count; /* ¡ÇÝæèÌubNÉ évpeB*/199 uint8_t got_ct; /* ¡ÇÝæèÌubNÅAÇÝæÁ½*/200 uint8_t next_blk_ct; /* ã±ubN*/201 uint8_t is_eof; /* I[ÉBµ½Añ0 */194 uint8_t count; /* 今読み取り中のブロックにあるプロパティ総数 */ 195 uint8_t got_ct; /* 今読み取り中のブロックで、読み取った数 */ 196 uint8_t next_blk_ct; /* 後続ブロック数 */ 197 uint8_t is_eof; /* 終端に達した時、非0 */ 202 198 int cur; 203 199 } T_ENUM_EPC; … … 206 202 207 203 /* 208 * ECHONET Lite vpeBÌÝèÖ204 * ECHONET Lite プロパティの設定関数 209 205 */ 210 206 typedef int (EPRP_SETTER)(const EPRPINIB *item, const void *src, int size, bool_t *anno); 211 207 212 208 /* 213 * ECHONET Lite vpeBÌæ¾Ö209 * ECHONET Lite プロパティの取得関数 214 210 */ 215 211 typedef int (EPRP_GETTER)(const EPRPINIB *item, void *dst, int size); 216 212 217 213 /* 218 * ECHONET Lite vpeBú»ubN214 * ECHONET Lite プロパティ初期化ブロック 219 215 */ 220 216 struct echonet_property_initialization_block 221 217 { 222 uint8_t eprpcd; /* ECHONET Lite vpeBR[h*/223 ATR eprpatr; /* ECHONET Lite vpeB®«*/224 uint8_t eprpsz; /* ECHONET Lite vpeBÌTCY*/225 intptr_t exinf; /* ECHONET Lite vpeBÌg£îñ*/226 EPRP_SETTER *eprpset; /* ECHONET Lite vpeBÌÝèÖ*/227 EPRP_GETTER *eprpget; /* ECHONET Lite vpeBÌæ¾Ö*/218 uint8_t eprpcd; /* ECHONET Lite プロパティコード */ 219 ATR eprpatr; /* ECHONET Lite プロパティ属性 */ 220 uint8_t eprpsz; /* ECHONET Lite プロパティのサイズ */ 221 intptr_t exinf; /* ECHONET Lite プロパティの拡張情報 */ 222 EPRP_SETTER *eprpset; /* ECHONET Lite プロパティの設定関数 */ 223 EPRP_GETTER *eprpget; /* ECHONET Lite プロパティの取得関数 */ 228 224 }; 229 225 230 #define TMIN_EOBJID 1 /* ECHONET Lite IuWFNgIDÌŬl*/231 232 /* 233 * ECHONET Lite IuWFNgú»ubN226 #define TMIN_EOBJID 1 /* ECHONET Lite オブジェクトIDの最小値 */ 227 228 /* 229 * ECHONET Lite オブジェクト初期化ブロック 234 230 */ 235 231 typedef struct echonet_object_initialization_block 236 232 { 237 ATR eobjatr; /* ECHONET Lite IuWFNg®«*/238 ID enodid; /* ECHONET Lite m[hvt@CIuWFNgID */239 intptr_t exinf; /* ECHONET Lite IuWFNgÌg£îñ*/240 uint8_t eojx1; /* ECHONET Lite IuWFNgÌNXO[vR[h*/241 uint8_t eojx2; /* ECHONET Lite IuWFNgÌNXR[h*/242 uint8_t eojx3; /* ECHONET Lite IuWFNgÌCX^XR[h*/243 const EPRPINIB *eprp; /* ECHONET Lite vpeBú»ubN*/244 uint_t eprpcnt; /* ECHONET Lite vpeBú»ubN*/233 ATR eobjatr; /* ECHONET Lite オブジェクト属性 */ 234 ID enodid; /* ECHONET Lite ノードプロファイルオブジェクトID */ 235 intptr_t exinf; /* ECHONET Lite オブジェクトの拡張情報 */ 236 uint8_t eojx1; /* ECHONET Lite オブジェクトのクラスグループコード */ 237 uint8_t eojx2; /* ECHONET Lite オブジェクトのクラスコード */ 238 uint8_t eojx3; /* ECHONET Lite オブジェクトのインスタンスコード */ 239 const EPRPINIB *eprp; /* ECHONET Lite プロパティ初期化ブロック */ 240 uint_t eprpcnt; /* ECHONET Lite プロパティ初期化ブロック数 */ 245 241 } EOBJINIB; 246 242 247 243 /* 248 * ECHONET Lite m[hÇubN244 * ECHONET Lite ノード管理ブロック 249 245 */ 250 246 typedef struct echonet_object_control_block 251 247 { 252 const EOBJINIB *profile; /* ECHONET Lite m[hvt@CÖÌ|C^*/253 const EOBJINIB **eobjs; /* ECHONET Lite IuWFNgXgÖÌ|C^*/254 uint_t eobjcnt; /* ECHONET Lite IuWFNg*/248 const EOBJINIB *profile; /* ECHONET Lite ノードプロファイルへのポインタ */ 249 const EOBJINIB **eobjs; /* ECHONET Lite オブジェクトリストへのポインタ */ 250 uint_t eobjcnt; /* ECHONET Lite オブジェクト数 */ 255 251 } EOBJCB; 256 252 257 253 /* 258 * ECHONET Lite m[hÆIPAhXÌÎîñubNÌè`254 * ECHONET Lite ノードとIPアドレスの対応情報ブロックの定義 259 255 */ 260 256 typedef struct echonet_node_address_block 261 257 { 262 bool_t inuse; /* gpóµ*/263 uint8_t ipaddr[16]; /* IP AhX*/258 bool_t inuse; /* 使用状況 */ 259 uint8_t ipaddr[16]; /* IPアドレス */ 264 260 } ENODADRB; 265 261 266 262 /* 267 * ECHONET Lite IuWFNgIDÌÅåliechonet_cfg.cj263 * ECHONET Lite オブジェクトIDの最大値(echonet_cfg.c) 268 264 */ 269 265 extern const ID tmax_eobjid; 270 266 271 267 /* 272 * ECHONET Lite IuWFNgú»ubNÌGAiechonet_cfg.cj268 * ECHONET Lite オブジェクト初期化ブロックのエリア(echonet_cfg.c) 273 269 */ 274 270 extern const EOBJINIB eobjinib_table[]; 275 271 276 272 /* 277 * ECHONET Lite m[hÇubNÌ273 * ECHONET Liteノード管理ブロックの数 278 274 */ 279 275 extern const int tnum_enodid; 280 276 281 277 /* 282 * ECHONET Lite IuWFNgÇubNÌGAiechonet_cfg.cj278 * ECHONET Lite オブジェクト管理ブロックのエリア(echonet_cfg.c) 283 279 */ 284 280 extern EOBJCB eobjcb_table[]; 285 281 286 282 /* 287 * ECHONET Lite m[hÆIPAhXÌÎîñÌ283 * ECHONET LiteノードとIPアドレスの対応情報の数 288 284 */ 289 285 extern const int tnum_enodadr; 290 286 291 287 /* 292 * ECHONET Lite m[hÆIPAhXÌÎîñubNÌGAiechonet_cfg.cj288 * ECHONET Lite ノードとIPアドレスの対応情報ブロックのエリア(echonet_cfg.c) 293 289 */ 294 290 extern ENODADRB enodadrb_table[]; 295 291 296 292 /* 297 * ECHONET Lite J[lIuWFNgID293 * ECHONET Lite カーネルオブジェクトID 298 294 */ 299 295 extern const ID ecn_svc_taskid; … … 306 302 307 303 /* 308 * ECHONET Lite IuWFNgÇubN©çECHONET Lite IuWFNgIDðæèo·½ßÌ}N304 * ECHONET Lite オブジェクト管理ブロックからECHONET Lite オブジェクトIDを取り出すためのマクロ 309 305 */ 310 306 #define EOBJID(p_eobjcb) ((ID)(((p_eobjcb) - eobjcb_table) + TMIN_EOBJID)) 311 307 312 308 /* 313 * ECHONET Lite IuWFNg@\Ìú»309 * ECHONET Lite オブジェクト機能の初期化 314 310 */ 315 311 extern void initialize_echonet_object(void); … … 322 318 323 319 /* 324 * ECHONET Lite T[rXJn320 * ECHONET Liteサービス処理開始 325 321 */ 326 322 ER ecn_sta_svc(); 327 323 328 324 /* 329 * ECHONET IuWFNgQÆ325 * ECHONETオブジェクト参照 330 326 */ 331 327 ER ecn_ref_eobj(ID eobjid, T_REOBJ *pk_eobj); 332 328 333 329 /* 334 * ECHONET vpeBQÆ330 * ECHONETプロパティ参照 335 331 */ 336 332 ER ecn_ref_eprp(ID eobjid, uint8_t epc, T_RPRP *pk_eprp); 337 333 338 334 /* 339 * vpeBl«Ývisvjd¶ì¬335 * プロパティ値書き込み要求(応答不要)電文作成 340 336 */ 341 337 ER ecn_esv_seti(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 342 338 343 339 /* 344 * vpeBl«Ývivjd¶ì¬340 * プロパティ値書き込み要求(応答要)電文作成 345 341 */ 346 342 ER ecn_esv_setc(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 347 343 348 344 /* 349 * vpeBlÇÝoµvd¶ì¬345 * プロパティ値読み出し要求電文作成 350 346 */ 351 347 ER ecn_esv_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc); 352 348 353 349 /* 354 * vpeBlÊmvd¶ì¬350 * プロパティ値通知要求電文作成 355 351 */ 356 352 ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID eobjid, uint8_t epc); 357 353 358 354 /* 359 * vpeBl«ÝEÇÝoµvd¶ì¬355 * プロパティ値書き込み・読み出し要求電文作成 360 356 */ 361 357 ER ecn_esv_set_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt); 362 358 363 359 /* 364 * vpeBl«ÝEÇÝoµvd¶ÜèÔµwè360 * プロパティ値書き込み・読み出し要求電文折り返し指定 365 361 */ 366 362 ER ecn_trn_set_get(T_EDATA *pk_esv, int *p_trn_pos); 367 363 368 364 /* 369 * vpeBl«ÝEÇÝoµvd¶I¹wè365 * プロパティ値書き込み・読み出し要求電文終了指定 370 366 */ 371 367 ER ecn_end_set_get(T_EDATA *pk_esv, int trn_pos); 372 368 373 369 /* 374 * vpeBlÊmivjd¶ì¬370 * プロパティ値通知(応答要)電文作成 375 371 */ 376 372 ER ecn_esv_infc(T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc); 377 373 378 374 /* 379 * vd¶ÖÌvpeBwèÇÁ375 * 要求電文へのプロパティ指定追加 380 376 */ 381 377 ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc); 382 378 383 379 /* 384 * vd¶ÖÌvpeBf[^ÇÁ380 * 要求電文へのプロパティデータ追加 385 381 */ 386 382 ER ecn_add_edt(T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt); 387 383 388 384 /* 389 * vd¶ÌM385 * 要求電文の送信 390 386 */ 391 387 ER ecn_snd_esv(T_EDATA *pk_esv); 392 388 393 389 /* 394 * d¶ÌóM|[O390 * 応答電文の受信ポーリング 395 391 */ 396 392 ER ecn_prcv_esv(T_EDATA **ppk_esv); 397 393 398 394 /* 399 * d¶Ìjü395 * 応答電文の破棄 400 396 */ 401 397 ER ecn_rel_esv(T_EDATA *pk_esv); 402 398 403 399 /* 404 * d¶ÌM³m[hðæ¾·é400 * 応答電文の送信元ノードを取得する 405 401 */ 406 402 ID ecn_get_enod(T_EDATA *pk_esv); 407 403 408 404 /* 409 * d¶ÌM³@íIuWFNgðæ¾·é405 * 応答電文の送信元機器オブジェクトを取得する 410 406 */ 411 407 ID ecn_get_eobj(T_EDATA *pk_esv); 412 408 413 409 /* 414 * d¶ðÍCe[^[ú»410 * 応答電文解析イテレーター初期化 415 411 */ 416 412 ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv); 417 413 418 414 /* 419 * d¶ðÍCe[^[CNg415 * 応答電文解析イテレーターインクリメント 420 416 */ 421 417 ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt); 422 418 423 419 /* 424 * d¶Ò¿ÌèÝM420 * 応答電文待ちの割り込み送信 425 421 */ 426 422 ER ecn_brk_wai(const void *p_dat, int datsz); 427 423 428 424 /* 429 * èÝf[^Ìæ¾425 * 割り込みデータの取得 430 426 */ 431 427 ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz); 432 428 433 429 /* 434 * f[^ÝèÖ430 * データ設定関数 435 431 */ 436 432 int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno); 437 433 438 434 /* 439 * f[^æ¾Ö435 * データ取得関数 440 436 */ 441 437 int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size); -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 5 5 $ Copyright (C) 2014 Cores Co., Ltd. Japan 6 6 $ 7 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 8 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 9 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 10 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 11 $ \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 12 $ XR[hÉÜÜêĢ鱯D 13 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 14 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 15 gip 16 $ Ò}j 17 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 18 $ Ì³ÛØKèðfÚ·é±ÆD 19 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 20 $ pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 21 $ ÆD 22 $ (a) Äzzɺ¤hL 23 gipÒ}j 24 AÈÇjÉCãLÌ 25 $ ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 26 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 27 $ ñ·é±ÆD 28 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 29 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 30 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 31 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 32 $ ÆÓ·é±ÆD 33 $ 34 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 35 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 36 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 37 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 38 $ ÌÓCðíÈ¢D 7 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 8 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 $ スコード中に含まれていること. 13 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 $ の無保証規定を掲載すること. 17 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 $ と. 20 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 $ 報告すること. 24 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 $ 免責すること. 29 $ 30 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 $ の責任を負わない. 39 35 $ 40 36 $ @(#) $Id$ … … 43 39 44 40 $ ===================================================================== 45 $ echonet_cfg.h ̶¬41 $ echonet_cfg.hの生成 46 42 $ ===================================================================== 47 43 … … 55 51 $NL$ 56 52 57 $ m[hXgÌì¬53 $ ノードリストの作成 58 54 $ENOD.LIST = {}$ 59 55 $LOCAL_NODE = {}$ … … 61 57 62 58 $FOREACH eobjid EOBJ.ORDER_LIST$ 63 $ // m[hvt@CIuWFNgÌê59 $ // ノードプロファイルオブジェクトの場合 64 60 $IF (EOBJ.EOBJATR[eobjid] & EOBJ_LOCAL_NODE) != 0$ 65 61 $LOCAL_NODE = APPEND(LOCAL_NODE, eobjid)$ 66 $ // @íIuWFNgÌê62 $ // 機器オブジェクトの場合 67 63 $ELIF (EOBJ.EOBJATR[eobjid] & (EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 68 64 $REMOTE_NODE = APPEND(REMOTE_NODE, eobjid)$ … … 70 66 $END$ 71 67 72 $ // [JÌm[hvt@CÍP¾¯68 $ // ローカルのノードプロファイルは1つだけ 73 69 $IF LENGTH(LOCAL_NODE) != 1$ 74 70 $ERROR$Local node must be only one.$END$ … … 90 86 $eprp_list = {}$ 91 87 $prp_map_cnt = 3$ 92 $ // m[hvt@CÌê88 $ // ノードプロファイルの場合 93 89 $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 94 90 $prp_map_cnt = prp_map_cnt + 5$ … … 104 100 $END$ 105 101 106 $ // m[hvt@CÌê102 $ // ノードプロファイルの場合 107 103 $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 108 104 $IF (EPRP.EPRPCD[eprpno] >= 0xD3) && (EPRP.EPRPCD[eprpno] <= 0xD7)$ … … 135 131 136 132 $ ===================================================================== 137 $ echonet_cfg.c ̶¬133 $ echonet_cfg.cの生成 138 134 $ ===================================================================== 139 135 … … 145 141 146 142 $ 147 $ CN[hfBNeBui#includej143 $ インクルードディレクティブ(#include) 148 144 $ 149 145 /*$NL$ … … 155 151 156 152 $ 157 $ IuWFNgÌIDÔðÛ·éÏ153 $ オブジェクトのID番号を保持する変数 158 154 $ 159 155 $IF USE_EXTERNAL_ID$ … … 168 164 169 165 $ 170 $ ECHONET Lite vpeB166 $ ECHONET Liteプロパティ 171 167 $ 172 168 /*$NL$ … … 177 173 $INCLUDE "echonet_chk.tf"$ 178 174 179 $ ECHONET Lite vpeBú»ubN̶¬175 $ ECHONET Liteプロパティ初期化ブロックの生成 180 176 $IF LENGTH(EOBJ.ID_LIST) && LENGTH(EPRP.ID_LIST)$ 181 177 $FOREACH enodid ENOD.LIST$ … … 200 196 201 197 /*$NL$ 202 $SPC$* CX^X$NL$198 $SPC$* インスタンス数$NL$ 203 199 $SPC$*/$NL$ 204 200 $inst_list_len = LENGTH(INST_LIST)$ … … 209 205 210 206 /*$NL$ 211 $SPC$* NX$NL$212 $SPC$*/$NL$ 213 $ // m[hvt@CàÜßéi + 1j207 $SPC$* クラス数$NL$ 208 $SPC$*/$NL$ 209 $ // ノードプロファイルも含める( + 1) 214 210 $class_list_len = LENGTH(CLASS_LIST) + 1$ 215 211 const uint8_t _echonet_$EOBJ.EOBJID[enodid]$_class_count[] = {$NL$ … … 219 215 220 216 /*$NL$ 221 $SPC$* CX^XXg$NL$217 $SPC$* インスタンスリスト$NL$ 222 218 $SPC$*/$NL$ 223 219 $pos = 0$ … … 238 234 239 235 /*$NL$ 240 $SPC$* NXXg$NL$236 $SPC$* クラスリスト$NL$ 241 237 $SPC$*/$NL$ 242 238 $pos = 0$ … … 268 264 $get_map[i] = 0x00$ 269 265 $END$ 270 $ // 0x9D A0x9EA0x9FÍONɵĨ266 $ // 0x9D、0x9E、0x9FはONにしておく 271 267 $FOREACH i { 13 , 14 , 15 }$ 272 268 $anno_map[i] = anno_map[i] | 0x02$ 273 269 $get_map[i] = get_map[i] | 0x02$ 274 270 $END$ 275 $ // m[hvt@CÌê271 $ // ノードプロファイルの場合 276 272 $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 277 273 $anno_map[5] = anno_map[5] | 0x20$ … … 285 281 $FOREACH eprpno EPRP.ID_LIST$ 286 282 $IF EQ(EPRP.EOBJID[eprpno], eobjid)$ 287 $ // (0x80 <= eprpcd && eprpcd <= 0xFF) ÅÈ¢êiE_PARj283 $ // (0x80 <= eprpcd && eprpcd <= 0xFF)でない場合(E_PAR) 288 284 $IF !(0x80 <= EPRP.EPRPCD[eprpno] && EPRP.EPRPCD[eprpno] <= 0xFF)$ 289 285 $ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpcd", EPRP.EPRPCD[eprpno], eprpno, "ECN_DEF_EPRP")$$END$ 290 286 $END$ 291 287 292 $ // eprpatr ªimEPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCEn| [EPC_VARIABLE]jÅÈ¢êiE_RSATRj288 $ // eprpatrが([EPC_RULE_SET] | [EPC_RULE_GET] | [EPC_RULE_ANNO] | [EPC_ANNOUNCE]| [EPC_VARIABLE])でない場合(E_RSATR) 293 289 $IF (EPRP.EPRPATR[eprpno] & ~(EPC_RULE_SET|EPC_RULE_GET|EPC_RULE_ANNO|EPC_ANNOUNCE|EPC_VARIABLE)) != 0$ 294 290 $ERROR EPRP.TEXT_LINE[eprpno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpatr", EPRP.EPRPATR[eprpno], eprpno, "ECN_DEF_EPRP")$$END$ 295 291 $END$ 296 292 297 $ // (0 <= eprpsz && eprpsz <= 255) ÅÈ¢êiE_PARj293 $ // (0 <= eprpsz && eprpsz <= 255)でない場合(E_PAR) 298 294 $IF !(0 <= EPRP.EPRPSZ[eprpno] && EPRP.EPRPSZ[eprpno] <= 255)$ 299 295 $ERROR EPRP.TEXT_LINE[eprpno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eprpsz", EPRP.EPRPSZ[eprpno], eprpno, "ECN_DEF_EPRP")$$END$ 300 296 $END$ 301 297 302 $ // vpeB}bvÉÝè298 $ // プロパティマップに設定 303 299 $pos = EPRP.EPRPCD[eprpno] & 0xF$ 304 300 $bit = (EPRP.EPRPCD[eprpno] >> 4) - 8$ … … 320 316 $END$ 321 317 322 $ // K{AiEXvpeBª é©`FbN318 $ // 必須アナウンスプロパティがあるかチェック 323 319 $must_anno_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_ANNOUNCE)$ 324 320 $i = 0$ … … 331 327 $END$ 332 328 333 $ // K{SETvpeBª é©`FbN329 $ // 必須SETプロパティがあるかチェック 334 330 $must_set_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_SET)$ 335 331 $i = 0$ … … 342 338 $END$ 343 339 344 $ // K{GETvpeBª é©`FbN340 $ // 必須GETプロパティがあるかチェック 345 341 $must_get_map = GetPropertyInfo(EOBJ.EOJX1[eobjid], EOBJ.EOJX2[eobjid], EPC_RULE_GET)$ 346 342 $i = 0$ … … 354 350 355 351 /*$NL$ 356 $SPC$* AiEXvpeB}bv$NL$352 $SPC$* アナウンスプロパティマップ$NL$ 357 353 $SPC$*/$NL$ 358 354 $anno_list = LSORT(anno_list, "compare")$ … … 375 371 376 372 /*$NL$ 377 $SPC$* SET vpeB}bv$NL$373 $SPC$* SETプロパティマップ$NL$ 378 374 $SPC$*/$NL$ 379 375 $set_list = LSORT(set_list, "compare")$ … … 396 392 397 393 /*$NL$ 398 $SPC$* GET vpeB}bv$NL$394 $SPC$* GETプロパティマップ$NL$ 399 395 $SPC$*/$NL$ 400 396 $get_list = LSORT(get_list, "compare")$ … … 417 413 418 414 /*$NL$ 419 $SPC$* vpeBè`$NL$415 $SPC$* プロパティ定義$NL$ 420 416 $SPC$*/$NL$ 421 417 const EPRPINIB _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table[TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO] = {$NL$ 422 418 $FOREACH eprpno eprp_list$ 423 $ // ECHONET Lite vpeBú»ubN419 $ // ECHONET Liteプロパティ初期化ブロック 424 420 $TAB${ ($EPRP.EPRPCD[eprpno]$), ($EPRP.EPRPATR[eprpno]$), ($EPRP.EPRPSZ[eprpno]$), ($EPRP.EXINF[eprpno]$), ($EPRP.EPRPSET[eprpno]$), ($EPRP.EPRPGET[eprpno]$) },$NL$ 425 421 $END$ 426 $ // óÔAiEXvpeB}bv422 $ // 状態アナウンスプロパティマップ 427 423 $TAB${ (0x9D), (EPC_RULE_GET), $FORMAT("0x%1$x" , +anno_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_anno_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 428 $ // Set vpeB}bv424 $ // Setプロパティマップ 429 425 $TAB${ (0x9E), (EPC_RULE_GET), $FORMAT("0x%1$x" , +set_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_set_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 430 $ // Get vpeB}bv426 $ // Getプロパティマップ 431 427 $TAB${ (0x9F), (EPC_RULE_GET), $FORMAT("0x%1$x" , +get_len)$, (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_get_prpmap, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) } 432 $ // m[hvt@CÌê428 $ // ノードプロファイルの場合 433 429 $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 434 430 ,$NL$ 435 $ // CX^X431 $ // インスタンス数 436 432 $TAB${ (0xD3), (EPC_RULE_GET), (3), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 437 $ // NX433 $ // クラス数 438 434 $TAB${ (0xD4), (EPC_RULE_GET), (2), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_count, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 439 $ // CX^XXgÊm435 $ // インスタンスリスト通知 440 436 $TAB${ (0xD5), (EPC_RULE_ANNO), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 441 $ // CX^XXgS437 $ // インスタンスリストS 442 438 $TAB${ (0xD6), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_inst_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_inst_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) },$NL$ 443 $ // NXXgS439 $ // クラスリストS 444 440 $TAB${ (0xD7), (EPC_RULE_GET), sizeof(_echonet_$EOBJ.EOBJID[eobjid]$_class_list), (intptr_t)_echonet_$EOBJ.EOBJID[eobjid]$_class_list, ((EPRP_SETTER *)NULL), ((EPRP_GETTER *)ecn_data_prop_get) }$NL$ 445 441 $ELSE$ … … 455 451 456 452 $ 457 $ ECHONET Lite IuWFNg453 $ ECHONET Liteオブジェクト 458 454 $ 459 455 /*$NL$ … … 462 458 $NL$ 463 459 464 $ ECHONET Lite IuWFNgIDÔÌÅål460 $ ECHONET LiteオブジェクトID番号の最大値 465 461 const ID _echonet_tmax_eobjid = (TMIN_EOBJID + TNUM_EOBJID - 1);$NL$ 466 462 $NL$ 467 463 468 $ ECHONET Lite IuWFNgú»ubN̶¬464 $ ECHONET Liteオブジェクト初期化ブロックの生成 469 465 $IF LENGTH(EOBJ.ID_LIST)$ 470 466 const EOBJINIB _echonet_eobjinib_table[TNUM_EOBJID] = {$NL$ 471 467 $JOINEACH eobjid EOBJ.ID_LIST ",\n"$ 472 $ // eobjatr ªimEOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICEnjÅÈ¢êiE_RSATRj468 $ // eobjatrが([EOBJ_LOCAL_NODE] | [EOBJ_SYNC_REMOTE_NODE] | [EOBJ_ASYNC_REMOTE_NODE] | [EOBJ_DEVICE])でない場合(E_RSATR) 473 469 $IF (EOBJ.EOBJATR[eobjid] & ~(EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE|EOBJ_DEVICE)) != 0$ 474 470 $ERROR EOBJ.TEXT_LINE[eobjid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eobjatr", EOBJ.EOBJATR[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 475 471 $END$ 476 472 477 $ // m[hvt@CIuWFNgÌê473 $ // ノードプロファイルオブジェクトの場合 478 474 $IF (EOBJ.EOBJATR[eobjid] & (EOBJ_LOCAL_NODE|EOBJ_SYNC_REMOTE_NODE|EOBJ_ASYNC_REMOTE_NODE)) != 0$ 479 $ // (enodid == EOBJ_NULL) ÅÈ¢êiE_PARj475 $ // (enodid == EOBJ_NULL)でない場合(E_PAR) 480 476 $IF !EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$ 481 477 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 482 478 $END$ 483 479 484 $ // (eojx1 == EOJ_X1_PROFILE) ÅÈ¢êiE_PARj480 $ // (eojx1 == EOJ_X1_PROFILE)でない場合(E_PAR) 485 481 $IF EOBJ.EOJX1[eobjid] != EOJ_X1_PROFILE$ 486 482 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 487 483 $END$ 488 484 489 $ // (eojx2 == EOJ_X2_NODE_PROFILE) ÅÈ¢êiE_PARj485 $ // (eojx2 == EOJ_X2_NODE_PROFILE)でない場合(E_PAR) 490 486 $IF EOBJ.EOJX2[eobjid] != EOJ_X2_NODE_PROFILE$ 491 487 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 492 488 $END$ 493 489 494 $ // (1 <= eojx3 && eojx3 <= 2) ÅÈ¢êiE_PARj490 $ // (1 <= eojx3 && eojx3 <= 2)でない場合(E_PAR) 495 491 $IF !(1 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 2)$ 496 492 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 497 493 $END$ 498 $ // @íIuWFNgÌê499 $ELSE$ 500 $ // (enodid != EOBJ_NULL) ÅÈ¢êiE_PARj494 $ // 機器オブジェクトの場合 495 $ELSE$ 496 $ // (enodid != EOBJ_NULL)でない場合(E_PAR) 501 497 $IF EQ(EOBJ.ENODID[eobjid], EOBJ_NULL)$ 502 498 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "enodid", EOBJ.ENODID[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 503 499 $END$ 504 500 505 $ // (0 <= eojx1 && eojx1 <= 255) ÅÈ¢êiE_PARj501 $ // (0 <= eojx1 && eojx1 <= 255)でない場合(E_PAR) 506 502 $IF !(0 <= EOBJ.EOJX1[eobjid] && EOBJ.EOJX1[eobjid] <= 255)$ 507 503 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx1", EOBJ.EOJX1[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 508 504 $END$ 509 505 510 $ // (0 <= eojx2 && eojx2 <= 255) ÅÈ¢êiE_PARj506 $ // (0 <= eojx2 && eojx2 <= 255)でない場合(E_PAR) 511 507 $IF !(0 <= EOBJ.EOJX2[eobjid] && EOBJ.EOJX2[eobjid] <= 255)$ 512 508 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx2", EOBJ.EOJX2[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ 513 509 $END$ 514 510 515 $ // (0 <= eojx3 && eojx3 <= 255) ÅÈ¢êiE_PARj511 $ // (0 <= eojx3 && eojx3 <= 255)でない場合(E_PAR) 516 512 $IF !(0 <= EOBJ.EOJX3[eobjid] && EOBJ.EOJX3[eobjid] <= 255)$ 517 513 $ERROR EOBJ.TEXT_LINE[eobjid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "eojx3", EOBJ.EOJX3[eobjid], eobjid, "ECN_CRE_EOBJ")$$END$ … … 519 515 $END$ 520 516 521 $ // ECHONET Lite IuWFNgú»ubN517 $ // ECHONET Liteオブジェクト初期化ブロック 522 518 $TAB${ ($EOBJ.EOBJATR[eobjid]$), ($EOBJ.ENODID[eobjid]$), ($EOBJ.EXINF[eobjid]$), ($EOBJ.EOJX1[eobjid]$), ($EOBJ.EOJX2[eobjid]$), ($EOBJ.EOJX3[eobjid]$), _echonet_$EOBJ.EOBJID[eobjid]$_eprpinib_table, TNUM_$EOBJ.EOBJID[eobjid]$_EPRPNO } 523 519 $END$$NL$ … … 529 525 $NL$ 530 526 531 $ ECHONET Lite m[hÇubNÌ527 $ ECHONET Liteノード管理ブロックの数 532 528 const int _echonet_tnum_enodid = TNUM_ENODID;$NL$ 533 529 $NL$ 534 530 535 531 $ 536 $ ECHONET Lite m[hÇubN532 $ ECHONET Liteノード管理ブロック 537 533 $ 538 534 /*$NL$ … … 540 536 $SPC$*/$NL$ 541 537 $NL$ 542 $ ECHONET Lite m[hÆIPAhXÌÎîñubN̶¬538 $ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成 543 539 $FOREACH enodid ENOD.LIST$ 544 540 $eobj_list = {}$ … … 549 545 $END$ 550 546 /*$NL$ 551 $SPC$* m[hÉ®·é@íIuWFNgÌê$NL$547 $SPC$* ノードに所属する機器オブジェクトの一覧$NL$ 552 548 $SPC$*/$NL$ 553 549 const EOBJINIB *_echonet_$EOBJ.EOBJID[enodid]$_eobjinib_table[TNUM_$EOBJ.EOBJID[enodid]$_EOBJNO] = {$NL$ … … 560 556 $IF LENGTH(ENOD.LIST)$ 561 557 /*$NL$ 562 $SPC$* ECHONET Lite m[hÇubN$NL$558 $SPC$* ECHONET Liteノード管理ブロック$NL$ 563 559 $SPC$*/$NL$ 564 560 EOBJCB _echonet_eobjcb_table[TNUM_ENODID] = {$NL$ … … 572 568 $NL$ 573 569 574 $ ECHONET Lite m[hÆIPAhXÌÎîñÌ570 $ ECHONET LiteノードとIPアドレスの対応情報の数 575 571 const int _echonet_tnum_enodadr = TNUM_ENODADR;$NL$ 576 572 $NL$ 577 573 578 574 $ 579 $ ECHONET Lite m[hÆIPAhXÌÎîñ575 $ ECHONET LiteノードとIPアドレスの対応情報 580 576 $ 581 577 /*$NL$ … … 583 579 $SPC$*/$NL$ 584 580 $NL$ 585 $ ECHONET Lite m[hÆIPAhXÌÎîñubN̶¬581 $ ECHONET LiteノードとIPアドレスの対応情報ブロックの生成 586 582 $IF LENGTH(EOBJ.ID_LIST)$ 587 583 ENODADRB _echonet_enodadrb_table[TNUM_ENODADR] = {$NL$ … … 601 597 $NL$ 602 598 603 $ ECHONET Lite m[h²ÆÌAvP[Vªvµ½d¶ÌV[PXÔ599 $ ECHONET Liteノードごとのアプリケーションが要求した電文のシーケンス番号 604 600 uint16_t _echonet_apitid_table[TNUM_ENODADR];$NL$ 605 601 $NL$ … … 610 606 611 607 $ 612 $ ECHONET Lite J[lIuWFNgID608 $ ECHONET Lite カーネルオブジェクトID 613 609 $ 614 610 const ID _echonet_ecn_svc_taskid = ECHONET_SVC_TASK;$NL$ -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_agent.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2015 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 ®I¶¬m[h39 * ECHONET Lite 動的生成ノード 44 40 */ 45 41 … … 183 179 184 180 /* 185 * L 186 [Ìú» 181 * キューの初期化 187 182 * 188 * p_queueÉÍL 189 [wb_ðwè·éD 183 * p_queueにはキューヘッダを指定する. 190 184 */ 191 185 Inline void … … 200 194 201 195 /* 202 * L 203 [ÌOGgÖÌ}ü 196 * キューの前エントリへの挿入 204 197 * 205 * p_queueÌOÉp_entryð}ü·éDp_queueÉL 206 [wb_ðwèµ½ê 207 * ÉÍCL 208 [ÌöÉp_entryð}ü·é±ÆÉÈéD 198 * p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場 199 * 合には,キューの末尾にp_entryを挿入することになる. 209 200 */ 210 201 Inline void … … 222 213 223 214 /* 224 * GgÌí215 * エントリの削除 225 216 * 226 * p_entryðL 227 [©çí·éD 217 * p_entryをキューから削除する. 228 218 */ 229 219 Inline void … … 338 328 int i = eobjid; 339 329 340 /* IuWFNgID©çÀÌðæ¾*/330 /* オブジェクトIDから実体を取得 */ 341 331 i -= (tmax_eobjid + 1); 342 332 if ((i < 0) … … 349 339 return false; 350 340 351 /* IuWFNgÌEOJðRs[*/341 /* オブジェクトのEOJをコピー */ 352 342 memcpy(eoj, &buf->obj.inib.eojx1, sizeof(*eoj)); 353 343 354 /* ®·ém[hÌIuWFNgIDðæ¾*/344 /* 所属するノードのオブジェクトIDを取得 */ 355 345 if(buf->obj.inib.enodid == 0) 356 346 i = buf->obj.eobjId; … … 364 354 } 365 355 366 /* m[hIDðæ¾*/356 /* ノードIDを取得 */ 367 357 buf = &agent->blockes[i]; 368 358 *enodid = buf->node.enodId; … … 405 395 T_ECN_EOJ *eoj, *end; 406 396 407 // vpeBÊm©æ¾ÅA397 // プロパティ通知か取得応答で、 408 398 switch (esv->hdr.edata.esv) { 409 399 case ESV_GET_RES: … … 415 405 } 416 406 417 // m[hvt@C¶Ìê407 // ノードプロファイル宛の場合 418 408 eoj = &esv->hdr.edata.seoj; 419 409 if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE) … … 428 418 while (ecn_itr_nxt(&enm, &epc, &pdc, &edt) == E_OK) { 429 419 switch (epc) { 430 // CX^XXgÊmÌê420 // インスタンスリスト通知の場合 431 421 case 0xD5: 432 // ©m[hCX^XXgrÊmÌê422 // 自ノードインスタンスリストS通知の場合 433 423 case 0xD6: 434 // TCYªíÈ¢ê424 // サイズが合わない場合 435 425 if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ))) 436 426 return NULL; … … 773 763 ecn_obj_t *sobj; 774 764 775 /* ÃIÉè`³ê½M³Ìê*/765 /* 静的に定義された送信元の場合 */ 776 766 if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) { 777 /* µÈ¢*/767 /* 処理しない */ 778 768 return; 779 769 } … … 781 771 snod = ecn_agent_find_node2(*ppk_snod); 782 772 783 /* M³ðmçÈ©Á½ç*/773 /* 送信元を知らなかったら */ 784 774 if (snod == NULL) { 785 /* M³Ìm[hîñðVKÉì¬*/775 /* 送信元のノード情報を新規に作成 */ 786 776 snod = ecn_agent_create_node(agent, esv); 787 777 if (snod == NULL) … … 791 781 sobj = ecn_agent_find_obj2(snod, *ppk_sobj); 792 782 793 /* m[hvt@CÌê*/783 /* ノードプロファイルの場合 */ 794 784 if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE) 795 785 && (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) { 796 786 sobj = &snod->base; 797 787 } 798 /* @íIuWFNgÌê*/788 /* 機器オブジェクトの場合 */ 799 789 else { 800 790 sobj = ecn_agent_find_eobj(&snod->eobj, esv->hdr.edata.seoj); … … 841 831 ecn_obj_t *obj = node->current; 842 832 843 // vpeBlÇÝoµv833 // プロパティ値読み出し要求 844 834 ecn_esv_get(&esv, obj->eobjId, 0x9E); 845 835 ecn_snd_esv(esv); … … 854 844 ecn_obj_t *obj = node->current; 855 845 856 // vpeBlÇÝoµv846 // プロパティ値読み出し要求 857 847 ecn_esv_get(&esv, obj->eobjId, 0x9F); 858 848 ecn_snd_esv(esv); … … 867 857 ecn_obj_t *obj = node->current; 868 858 869 // vpeBlÇÝoµv859 // プロパティ値読み出し要求 870 860 ecn_esv_get(&esv, obj->eobjId, 0x9D); 871 861 ecn_snd_esv(esv); … … 881 871 ecn_device_t *device; 882 872 883 /* obj ªwè³êĢȢê*/873 /* objが指定されていない場合 */ 884 874 if(obj == NULL){ 885 /* ±Ìm[hðÔ·*/875 /* このノードを返す */ 886 876 node->current = &node->base; 887 877 return; 888 878 } 889 /* m[hÌê*/879 /* ノードの場合 */ 890 880 else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){ 891 881 node = (ecn_node_t *)obj; 892 882 893 /* zºÌ@íðÔ·*/883 /* 配下の機器を返す */ 894 884 queue = node->devices.p_next; 895 885 device = (ecn_device_t *)cast_obj(queue); 896 886 } 897 /* @íÌê*/887 /* 機器の場合 */ 898 888 else{ 899 /* Ì@íðÔ·*/889 /* 次の機器を返す */ 900 890 node = ((ecn_device_t *)obj)->node; 901 891 queue = cast_queue(obj)->p_next; … … 903 893 } 904 894 905 /* »Ì@íªö¾Á½ê*/895 /* その機器が末尾だった場合 */ 906 896 if(&node->devices == queue){ 907 897 node->current = NULL; … … 1040 1030 bool_t has = false; 1041 1031 1042 /* m[hÌêÍCX^XXgÊmÆ©m[hCX^XXgrÊmðK{Åó¯æé*/1032 /* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストS通知を必須で受け取る */ 1043 1033 if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6))) 1044 1034 has = true; … … 1074 1064 1075 1065 switch (item->eprpcd) { 1076 /* CX^XXgÊmÌê*/1066 /* インスタンスリスト通知の場合 */ 1077 1067 case 0xD5: 1078 /* ©m[hCX^XXgrÊmÌê*/1068 /* 自ノードインスタンスリストS通知の場合 */ 1079 1069 case 0xD6: 1080 1070 if ((node != NULL) && (node->state == ecn_node_state_idle)) { … … 1094 1084 } 1095 1085 break; 1096 /* ÊmvpeB}bvÌê*/1086 /* 通知プロパティマップの場合 */ 1097 1087 case 0x9D: 1098 1088 eprpcnt = edt[0]; 1099 1089 1100 1090 if (eprpcnt < 16) { 1101 /* TCY`FbN*/1091 /* サイズチェック */ 1102 1092 if (eprpcnt + 1 != size) 1103 1093 return 0; … … 1107 1097 } 1108 1098 else { 1109 /* TCY`FbN*/1099 /* サイズチェック */ 1110 1100 if (size != 17) 1111 1101 return 0; … … 1116 1106 sobj->pmapFlag |= PMAP_FLAG_ANNO; 1117 1107 break; 1118 /* SET vpeB}bvÌê*/1108 /* SETプロパティマップの場合 */ 1119 1109 case 0x9E: 1120 1110 eprpcnt = edt[0]; 1121 1111 1122 1112 if (eprpcnt < 16) { 1123 /* TCY`FbN*/1113 /* サイズチェック */ 1124 1114 if (eprpcnt + 1 != size) 1125 1115 return 0; … … 1129 1119 } 1130 1120 else { 1131 /* TCY`FbN*/1121 /* サイズチェック */ 1132 1122 if (size != 17) 1133 1123 return 0; … … 1138 1128 sobj->pmapFlag |= PMAP_FLAG_SET; 1139 1129 break; 1140 /* GET vpeB}bvÌê*/1130 /* GETプロパティマップの場合 */ 1141 1131 case 0x9F: 1142 1132 eprpcnt = edt[0]; 1143 1133 1144 1134 if (eprpcnt < 16) { 1145 /* TCY`FbN*/1135 /* サイズチェック */ 1146 1136 if (eprpcnt + 1 != size) 1147 1137 return 0; … … 1151 1141 } 1152 1142 else { 1153 /* TCY`FbN*/1143 /* サイズチェック */ 1154 1144 if (size != 17) 1155 1145 return 0; -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_agent.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2015 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 ®I¶¬m[h39 * ECHONET Lite 動的生成ノード 44 40 */ 45 41 … … 56 52 57 53 /* 58 * L 59 [Ìf[^\¢Ìè` 54 * キューのデータ構造の定義 60 55 */ 61 56 typedef struct ecn_agent_queue { 62 57 #ifdef _DEBUG 63 struct ecn_agent_queue *p_parent; /* eL 64 [ÖÌ|C^ */ 58 struct ecn_agent_queue *p_parent; /* 親キューへのポインタ */ 65 59 #endif 66 struct ecn_agent_queue *p_next; /* GgÖÌ|C^*/67 struct ecn_agent_queue *p_prev; /* OGgÖÌ|C^*/60 struct ecn_agent_queue *p_next; /* 次エントリへのポインタ */ 61 struct ecn_agent_queue *p_prev; /* 前エントリへのポインタ */ 68 62 } ecn_agent_queue_t; 69 63 … … 77 71 EOBJINIB inib; 78 72 uint8_t pmapFlag; 79 uint8_t pmapSet[16]; /* SET vpeB}bv*/80 uint8_t pmapGet[16]; /* GET vpeB}bv*/81 uint8_t pmapAnno[16]; /* óÔÏ»ÊmvpeB}bv*/82 uint_t eprpcnt; /* ECHONET Lite vpeB*/73 uint8_t pmapSet[16]; /* SETプロパティマップ */ 74 uint8_t pmapGet[16]; /* GETプロパティマップ */ 75 uint8_t pmapAnno[16]; /* 状態変化時通知プロパティマップ */ 76 uint_t eprpcnt; /* ECHONET Lite プロパティ数 */ 83 77 } ecn_obj_t; 84 78 … … 118 112 typedef struct ecn_inm_get_device_item 119 113 { 120 ID eobjid; /* ECHONET Lite IuWFNgID */121 ID enodid; /* ECHONET Lite m[hvt@CIuWFNgID */122 uint8_t state; /* îñûWóÔ*/123 uint8_t eojx1; /* ECHONET Lite IuWFNgÌNXO[vR[h*/124 uint8_t eojx2; /* ECHONET Lite IuWFNgÌNXR[h*/125 uint8_t eojx3; /* ECHONET Lite IuWFNgÌCX^XR[h*/126 ECN_ENOD_ID addrid; /* IP AhXæ¾pID */114 ID eobjid; /* ECHONET Lite オブジェクトID */ 115 ID enodid; /* ECHONET Lite ノードプロファイルオブジェクトID */ 116 uint8_t state; /* 情報収集状態 */ 117 uint8_t eojx1; /* ECHONET Lite オブジェクトのクラスグループコード */ 118 uint8_t eojx2; /* ECHONET Lite オブジェクトのクラスコード */ 119 uint8_t eojx3; /* ECHONET Lite オブジェクトのインスタンスコード */ 120 ECN_ENOD_ID addrid; /* IPアドレス取得用ID */ 127 121 } ecn_inm_get_device_item_t; 128 122 … … 149 143 } ecn_inm_get_device_info_res_t; 150 144 151 /* ú»*/145 /* 初期化 */ 152 146 void ecn_agent_init(void); 153 /* m[hðõ*/147 /* ノードを検索 */ 154 148 ecn_node_t *ecn_agent_find_node(ECN_ENOD_ID enodid); 155 /* @íðõ*/149 /* 機器を検索 */ 156 150 ecn_obj_t *ecn_agent_find_eobj(const EOBJCB *pk_nod, T_ECN_EOJ eoj); 157 /* IuWFNgIDðæ¾*/151 /* オブジェクトIDを取得 */ 158 152 ID ecn_agent_get_eobj(const EOBJINIB *pk_obj); 159 /* Ì@íðæ¾*/153 /* 次の機器を取得 */ 160 154 const EOBJINIB *ecn_agent_next_eobj(const EOBJCB *pk_nod, const EOBJINIB *pk_obj); 161 /* IuWFNgID©çEOJÆm[hIDðæ¾*/155 /* オブジェクトIDからEOJとノードIDを取得 */ 162 156 bool_t ecn_agent_get_eoj_enodid(ID eobjid, T_ECN_EOJ *eoj, ECN_ENOD_ID *enodid); 163 /* ^CAEglðÔ·*/157 /* タイムアウト値を返す */ 164 158 TMO ecn_agent_get_timer(); 165 /* ^C}[ÌÔðißé*/159 /* タイマーの時間を進める */ 166 160 void ecn_agent_progress(TMO interval); 167 /* ^CAEgi̽ßÌÄÑoµj*/161 /* タイムアウト処理(のための呼び出し) */ 168 162 void ecn_agent_timeout(); 169 /* àbZ[W*/163 /* 内部メッセージ処理 */ 170 164 bool_t ecn_agent_proc_int_msg(ECN_FBS_ID fbs, uint8_t cmd); 171 /* ECHONET d¶óM*/165 /* ECHONET電文受信処理 */ 172 166 void ecn_agent_proc_ecn_msg(const EOBJCB **snod, const EOBJINIB **sobj, T_EDATA *esv); 173 /* ECHONET d¶óMI¹*/167 /* ECHONET電文受信処理終了 */ 174 168 void ecn_agent_proc_ecn_msg_end(); 175 /* vpeBðæ¾*/169 /* プロパティを取得 */ 176 170 const EPRPINIB *ecn_agent_get_property(const EOBJINIB *fp_obj, uint8_t fa_epc, const EPRPINIB *item); 177 171 -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_chk.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 5 5 $ Copyright (C) 2014 Cores Co., Ltd. Japan 6 6 $ 7 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 8 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 9 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 10 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 11 $ \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 12 $ XR[hÉÜÜêĢ鱯D 13 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 14 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 15 gip 16 $ Ò}j 17 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 18 $ Ì³ÛØKèðfÚ·é±ÆD 19 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 20 $ pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 21 $ ÆD 22 $ (a) Äzzɺ¤hL 23 gipÒ}j 24 AÈÇjÉCãLÌ 25 $ ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 26 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 27 $ ñ·é±ÆD 28 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 29 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 30 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 31 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 32 $ ÆÓ·é±ÆD 7 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 8 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 $ スコード中に含まれていること. 13 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 $ の無保証規定を掲載すること. 17 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 $ と. 20 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 $ 報告すること. 24 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 $ 免責すること. 33 29 $ 34 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨35 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI36 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF37 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»38 $ ÌÓCðíÈ¢D30 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 $ の責任を負わない. 39 35 $ 40 36 $ @(#) $Id$ … … 43 39 44 40 $ ===================================================================== 45 $ K{vpeBÌ`FbN41 $ 必須プロパティのチェック 46 42 $ ===================================================================== 47 43 … … 50 46 $END$ 51 47 52 $ vt@CIuWFNgX[p[NX48 $ プロファイルオブジェクトスーパークラス 53 49 $ProfileObjectSuperClass.EPC = { 0x88, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x9D, 0x9E, 0x9F }$ 54 50 $ProfileObjectSuperClass.MUST = { EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$ 55 51 56 $ m[hvt@CNX52 $ ノードプロファイルクラス 57 53 $NodeProfileClass.EPC = { 0x80, 0x82, 0x83, 0x89, 0xBF, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7 }$ 58 54 $NodeProfileClass.MUST = { EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_ANNO, EPC_RULE_GET, EPC_RULE_GET }$ 59 55 60 $ @íIuWFNgX[p[NX56 $ 機器オブジェクトスーパークラス 61 57 $DeviceSuperClass.EPC = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x93, 0x97, 0x98, 0x99, 0x9A, 0x9D, 0x9E, 0x9F }$ 62 58 $DeviceSuperClass.MUST = { EPC_RULE_GET, EPC_RULE_SET|EPC_RULE_GET, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_RULE_GET, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_NONE, EPC_RULE_GET, EPC_RULE_GET, EPC_RULE_GET }$ -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_class.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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$ … … 43 39 #define ECHONET_CLASS_H 44 40 45 /* ZT[ÖA@í*/41 /* センサー関連機器 */ 46 42 #define EOJ_X1_SENSOR 0x00 47 43 48 /* ó²ÖA@í*/44 /* 空調関連機器 */ 49 45 #define EOJ_X1_AIR_CONDITIONER 0x01 50 46 51 /* ZîEÝõÖA@í*/47 /* 住宅・設備関連機器 */ 52 48 #define EOJ_X1_AMENITY 0x02 53 49 54 /* ²EÆÖA@í*/50 /* 調理・家事関連機器 */ 55 51 #define EOJ_X1_HOUSEWORK 0x03 56 52 57 /* NÖA@í*/53 /* 健康関連機器 */ 58 54 #define EOJ_X1_WELLNESS 0x04 59 55 60 /* ÇEìÖA@í*/56 /* 管理・操作関連機器 */ 61 57 #define EOJ_X1_CONTROLLER 0x05 62 58 63 /* AV ÖA@í*/59 /* AV関連機器 */ 64 60 #define EOJ_X1_AUDIO_VISUAL 0x06 65 61 66 /* vt@C*/62 /* プロファイル */ 67 63 #define EOJ_X1_PROFILE 0x0E 68 64 69 /* [U[è`*/65 /* ユーザー定義 */ 70 66 #define EOJ_X1_USER_DEFINED 0x0F 71 67 72 68 /* 73 * ZTÖA@íNXO[v*74 */ 75 /* KXRêZT*/69 * センサ関連機器クラスグループ * 70 */ 71 /* ガス漏れセンサ */ 76 72 #define EOJ_X2_GAS_LEAK_SENSOR 0x01 77 73 78 /* hÆZT*/74 /* 防犯センサ */ 79 75 #define EOJ_X2_CRIME_PREVENTION_SENSOR 0x02 80 76 81 /* ñí{^*/77 /* 非常ボタン */ 82 78 #define EOJ_X2_EMERGENCY_BUTTON 0x03 83 79 84 /* ~}pZT*/80 /* 救急用センサ */ 85 81 #define EOJ_X2_FIRST_AID_SENSOR 0x04 86 82 87 /* nkZT*/83 /* 地震センサ */ 88 84 #define EOJ_X2_EARTHQUAKE_SENSOR 0x05 89 85 90 /* RdZT*/86 /* 漏電センサ */ 91 87 #define EOJ_X2_ELECTRIC_LEAK_SENSOR 0x06 92 88 93 /* lÌmZT*/89 /* 人体検知センサ */ 94 90 #define EOJ_X2_HUMAN_DETECTION_SENSOR 0x07 95 91 96 /* qZT*/92 /* 来客センサ */ 97 93 #define EOJ_X2_VISITOR_SENSOR 0x08 98 94 99 /* ÄÑoµZT*/95 /* 呼び出しセンサ */ 100 96 #define EOJ_X2_CALL_SENSOR 0x09 101 97 102 /* IZT*/98 /* 結露センサ */ 103 99 #define EOJ_X2_CONDENSATION_SENSOR 0x0A 104 100 105 /* óCõZT*/101 /* 空気汚染センサ */ 106 102 #define EOJ_X2_AIR_POLLUTION_SENSOR 0x0B 107 103 108 /* _fZT*/104 /* 酸素センサ */ 109 105 #define EOJ_X2_OXYGEN_SENSOR 0x0C 110 106 111 /* ÆxZT*/107 /* 照度センサ */ 112 108 #define EOJ_X2_ILLUMINANCE_SENSOR 0x0D 113 109 114 /* ¹ZT*/110 /* 音センサ */ 115 111 #define EOJ_X2_SOUND_SENSOR 0x0E 116 112 117 /* ZT*/113 /* 投函センサ */ 118 114 #define EOJ_X2_MAILING_SENSOR 0x0F 119 115 120 /* d×ZT*/116 /* 重荷センサ */ 121 117 #define EOJ_X2_WEIGHT_SENSOR 0x10 122 118 123 /* ·xZT*/119 /* 温度センサ */ 124 120 #define EOJ_X2_TEMPERATURE_SENSOR 0x11 125 121 126 /* ¼xZT*/122 /* 湿度センサ */ 127 123 #define EOJ_X2_HUMIDITY_SENSOR 0x12 128 124 129 /* JZT*/125 /* 雨センサ */ 130 126 #define EOJ_X2_RAIN_SENSOR 0x13 131 127 132 /* 133 ÊZT */ 128 /* 水位センサ */ 134 129 #define EOJ_X2_WATER_LEVEL_SENSOR 0x14 135 130 136 /* C 137 ÊZT */ 131 /* 風呂水位センサ */ 138 132 #define EOJ_X2_BATH_WATER_LEVEL_SENSOR 0x15 139 133 140 /* C¦«ãªèZT*/134 /* 風呂沸き上がりセンサ */ 141 135 #define EOJ_X2_BATH_HEATING_STATUS_SENSOR 0x16 142 136 143 /* 144 RêZT */ 137 /* 水漏れセンサ */ 145 138 #define EOJ_X2_WATER_LEAK_SENSOR 0x17 146 139 147 /* 148 ÓêZT */ 140 /* 水あふれセンサ */ 149 141 #define EOJ_X2_WATER_OVERFLOW_SENSOR 0x18 150 142 151 /* ÎÐZT*/143 /* 火災センサ */ 152 144 #define EOJ_X2_FIRE_SENSOR 0x19 153 145 154 /* ^oRZT*/146 /* タバコ煙センサ */ 155 147 #define EOJ_X2_CIGARETTE_SMOKE_SENSOR 0x1A 156 148 157 /* bnQZT*/149 /* CO2センサ */ 158 150 #define EOJ_X2_CO2_SENSOR 0x1B 159 151 160 /* KXZT*/152 /* ガスセンサ */ 161 153 #define EOJ_X2_GAS_SENSOR 0x1C 162 154 163 /* unbZT*/155 /* VOCセンサ */ 164 156 #define EOJ_X2_VOC_SENSOR 0x1D 165 157 166 /* ·³ZT*/158 /* 差圧センサ */ 167 159 #define EOJ_X2_DIFFERENTIAL_PRESSURE_SENSOR 0x1E 168 160 169 /* ¬ZT*/161 /* 風速センサ */ 170 162 #define EOJ_X2_AIR_SPEED_SENSOR 0x1F 171 163 172 /* L¢ZT*/164 /* 臭いセンサ */ 173 165 #define EOJ_X2_ODOR_SENSOR 0x20 174 166 175 /* ZT*/167 /* 炎センサ */ 176 168 #define EOJ_X2_FLAME_SENSOR 0x21 177 169 178 /* dÍÊZT*/170 /* 電力量センサ */ 179 171 #define EOJ_X2_ELECTRIC_ENERGY_SENSOR 0x22 180 172 181 /* d¬ÊZT*/173 /* 電流量センサ */ 182 174 #define EOJ_X2_CURRENT_VALUE_SENSOR 0x23 183 175 184 /* õZT*/176 /* 昼光センサ */ 185 177 #define EOJ_X2_DAYLIGHT_SENSOR 0x24 186 178 187 /* 188 ¬ÊZT */ 179 /* 水流量センサ */ 189 180 #define EOJ_X2_WATER_FLOW_RATE_SENSOR 0x25 190 181 191 /* ÷®ZT*/182 /* 微動センサ */ 192 183 #define EOJ_X2_MICROMOTION_SENSOR 0x26 193 184 194 /* ÊßZT*/185 /* 通過センサ */ 195 186 #define EOJ_X2_PASSAGE_SENSOR 0x27 196 187 197 /* ݰZT*/188 /* 在床センサ */ 198 189 #define EOJ_X2_BED_PRESENCE_SENSOR 0x28 199 190 200 /* JÂZT*/191 /* 開閉センサ */ 201 192 #define EOJ_X2_OPEN_CLOSE_SENSOR 0x29 202 193 203 /* ®ÊZT*/194 /* 活動量センサ */ 204 195 #define EOJ_X2_ACTIVITY_AMOUNT_SENSOR 0x2A 205 196 206 /* lÌÊuZT*/197 /* 人体位置センサ */ 207 198 #define EOJ_X2_HUMAN_BODY_LOCATION_SENSOR 0x2B 208 199 209 /* áZT*/200 /* 雪センサ */ 210 201 #define EOJ_X2_SNOW_SENSOR 0x2C 211 202 212 203 /* 213 * ó²ÖA@íNXO[v*214 */ 215 /* ÆëpGAR*/204 * 空調関連機器クラスグループ * 205 */ 206 /* 家庭用エアコン */ 216 207 #define EOJ_X2_HOME_AIR_CONDITIONER 0x30 217 208 218 /* â@*/209 /* 冷風機 */ 219 210 #define EOJ_X2_COLD_BLASTER 0x31 220 211 221 /* î@*/212 /* 扇風機 */ 222 213 #define EOJ_X2_ELECTRIC_FAN 0x32 223 214 224 /* ·Cî*/215 /* 換気扇 */ 225 216 #define EOJ_X2_VENTILATION_FAN 0x33 226 217 227 /* ó²·Cî*/218 /* 空調換気扇 */ 228 219 #define EOJ_X2_AIR_CONDITIONING_VENTILATION_FAN 0x34 229 220 230 /* óC´òí*/221 /* 空気清浄器 */ 231 222 #define EOJ_X2_AIR_CLEANER 0x35 232 223 233 /* âî*/224 /* 冷風扇 */ 234 225 #define EOJ_X2_COLD_BLAST_FAN 0x36 235 226 236 /* T[L 237 [^ */ 227 /* サーキュレータ */ 238 228 #define EOJ_X2_CIRCULATOR 0x37 239 229 240 /* ¼@*/230 /* 除湿機 */ 241 231 #define EOJ_X2_DEHUMIDIFIER 0x38 242 232 243 /* Á¼í*/233 /* 加湿器 */ 244 234 #define EOJ_X2_HUMIDIFIER 0x39 245 235 246 /* Väî*/236 /* 天井扇 */ 247 237 #define EOJ_X2_CEILING_FAN 0x3A 248 238 249 /* dC±½Â*/239 /* 電気こたつ */ 250 240 #define EOJ_X2_ELECTRIC_KOTATSU 0x3B 251 241 252 /* dC ñ©*/242 /* 電気あんか */ 253 243 #define EOJ_X2_ELECTRIC_HEATING_PAD 0x3C 254 244 255 /* dCÑz*/245 /* 電気毛布 */ 256 246 #define EOJ_X2_ELECTRIC_BLANKET 0x3D 257 247 258 /* Xg[u*/248 /* ストーブ */ 259 249 #define EOJ_X2_SPACE_HEATER 0x3E 260 250 261 /* plq[^*/251 /* パネルヒータ */ 262 252 #define EOJ_X2_PANEL_HEATER 0x3F 263 253 264 /* dCJ[ybg*/254 /* 電気カーペット */ 265 255 #define EOJ_X2_ELECTRIC_CARPET 0x40 266 256 267 /* tAq[^*/257 /* フロアヒータ */ 268 258 #define EOJ_X2_FLOOR_HEATER 0x41 269 259 270 /* dCg[í*/260 /* 電気暖房器 */ 271 261 #define EOJ_X2_ELECTRIC_HEATER 0x42 272 262 273 /* t@q[^*/263 /* ファンヒータ */ 274 264 #define EOJ_X2_FAN_HEATER 0x43 275 265 276 /* [dí*/266 /* 充電器 */ 277 267 #define EOJ_X2_BATTERY_CHARGER 0x44 278 268 279 /* ƱppbP[WGARºà@*/269 /* 業務用パッケージエアコン室内機 */ 280 270 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_INDOOR_UNIT 0x45 281 271 282 /* ƱppbP[WGARºO@*/272 /* 業務用パッケージエアコン室外機 */ 283 273 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_OUTDOOR_UNIT 0x46 284 274 285 /* ƱppbP[WGAR~Mjbg*/275 /* 業務用パッケージエアコン蓄熱ユニット */ 286 276 #define EOJ_X2_PACKAGE_TYPE_COMMERCIAL_AIR_CONDITIONER_THERMAL_STORAGE_UNIT 0x47 287 277 288 /* Ʊpt@RCjbg*/278 /* 業務用ファンコイルユニット */ 289 279 #define EOJ_X2_COMMERCIAL_FAN_COIL_UNIT 0x48 290 280 291 /* Ʊpó²âM¹(`[) */281 /* 業務用空調冷熱源(チラー) */ 292 282 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_COLD_SOURCE_CHILLER 0x49 293 283 294 /* Ʊpó²·M¹({C[) */284 /* 業務用空調温熱源(ボイラー) */ 295 285 #define EOJ_X2_COMMERCIAL_AIR_CONDITIONING_HEAT_SOURCE_BOILER 0x50 296 286 297 /* Ʊpó²VAV */287 /* 業務用空調VAV */ 298 288 #define EOJ_X2_AIR_CONDITIONING_VAV_FOR_COMMERCIAL_APPLICATION 0x51 299 289 300 /* Ʊpó²GAnhOjbg*/290 /* 業務用空調エアハンドリングユニット */ 301 291 #define EOJ_X2_AIR_HANDLING_UNIT_AIR_CONDITIONING_FOR_COMMERCIAL_APPLICATION 0x52 302 292 303 /* jbgN[[*/293 /* ユニットクーラー */ 304 294 #define EOJ_X2_UNIT_COOLER 0x53 305 295 306 /* ƱpRfVOjbg*/296 /* 業務用コンデンシングユニット */ 307 297 #define EOJ_X2_CONDENSING_UNIT_FOR_COMMERCIAL_APPLICATION 0x54 308 298 309 299 /* 310 * ZîEÝõÖA@íNXO[v*311 */ 312 /* d®uCh*/300 * 住宅・設備関連機器クラスグループ * 301 */ 302 /* 電動ブラインド */ 313 303 #define EOJ_X2_ELECTRICALLY_OPERATED_SHADE 0x60 314 304 315 /* d®Vb^[*/305 /* 電動シャッター */ 316 306 #define EOJ_X2_ELECTRICALLY_OPERATED_SHUTTER 0x61 317 307 318 /* d®J[e*/308 /* 電動カーテン */ 319 309 #define EOJ_X2_ELECTRICALLY_OPERATED_CURTAIN 0x62 320 310 321 /* d®JË*/311 /* 電動雨戸 */ 322 312 #define EOJ_X2_ELECTRICALLY_OPERATED_STORM_WINDOW 0x63 323 313 324 /* d®K[W*/314 /* 電動ガレージ */ 325 315 #define EOJ_X2_ELECTRICALLY_OPERATED_DOOR 0x64 326 316 327 /* d®V*/317 /* 電動天窓 */ 328 318 #define EOJ_X2_ELECTRICALLY_OPERATED_SKYLIGHT 0x65 329 319 330 /* I[jOiúæ¯j*/320 /* オーニング(日よけ) */ 331 321 #define EOJ_X2_AWNING 0x66 332 322 333 /* U 334 íiëpj */ 323 /* 散水器(庭用) */ 335 324 #define EOJ_X2_GARDEN_SPRINKLER 0x67 336 325 337 /* U 338 íiÎÐpj */ 326 /* 散水器(火災用) */ 339 327 #define EOJ_X2_FIRE_SPRINKLER 0x68 340 328 341 /* ¬ 342 */ 329 /* 噴水 */ 343 330 #define EOJ_X2_FOUNTAIN 0x69 344 331 345 /* uÔ¦í*/332 /* 瞬間湯沸器 */ 346 333 #define EOJ_X2_INSTANTANEOUS_WATER_HEATERS 0x6A 347 334 348 /* dC· 349 í */ 335 /* 電気温水器 */ 350 336 #define EOJ_X2_ELECTRIC_WATER_HEATER 0x6B 351 337 352 /* ¾zM· 353 í */ 338 /* 太陽熱温水器 */ 354 339 #define EOJ_X2_SOLAR_WATER_HEATER 0x6C 355 340 356 /* zÂ|v*/341 /* 循環ポンプ */ 357 342 #define EOJ_X2_CIRCULATION_PUMP 0x6D 358 343 359 /* dCÖÀi· 360 ôòÖÀAg[ÖÀÈÇj */ 344 /* 電気便座(温水洗浄便座、暖房便座など) */ 361 345 #define EOJ_X2_BIDET_EQUIPPED_TOILET 0x6E 362 346 363 /* dCù*/347 /* 電気錠 */ 364 348 #define EOJ_X2_ELECTRIC_KEY 0x6F 365 349 366 /* KX³Ù*/350 /* ガス元弁 */ 367 351 #define EOJ_X2_GAS_LINE_VALVE 0x70 368 352 369 /* z[TEi*/353 /* ホームサウナ */ 370 354 #define EOJ_X2_HOME_SAUNA 0x71 371 355 372 /* uÔ®í*/356 /* 瞬間式給湯器 */ 373 357 #define EOJ_X2_HOT_WATER_GENERATOR 0x72 374 358 375 /* ºg[£@*/359 /* 浴室暖房乾燥機 */ 376 360 #define EOJ_X2_BATHROOM_DRYER 0x73 377 361 378 /* z[Gx[^*/362 /* ホームエレベータ */ 379 363 #define EOJ_X2_HOME_ELEVATOR 0x74 380 364 381 /* d®ÔdØè*/365 /* 電動間仕切り */ 382 366 #define EOJ_X2_ELECTRICALLY_OPERATED_ROOM_DIVIDER 0x75 383 367 384 /* 385 ½gXt@ */ 368 /* 水平トランスファ */ 386 369 #define EOJ_X2_HORIZONTAL_TRANSFER 0x76 387 370 388 /* d®¨±µ*/371 /* 電動物干し */ 389 372 #define EOJ_X2_ELECTRICALLY_OPERATED_CLOTHES_DRYING_POLE 0x77 390 373 391 /* ò» 392 */ 374 /* 浄化槽 */ 393 375 #define EOJ_X2_SEPTIC_TANK 0x78 394 376 395 /* Zîp¾zõd*/377 /* 住宅用太陽光発電 */ 396 378 #define EOJ_X2_HOME_SOLAR_POWER_GENERATION 0x79 397 379 398 /* â· 399 M¹@ */ 380 /* 冷温水熱源機 */ 400 381 #define EOJ_X2_COLD_AND_HOT_WATER_HEAT_SOURCE_EQUIPMENT 0x7A 401 382 402 /* °g[*/383 /* 床暖房 */ 403 384 #define EOJ_X2_FLOOR_HEATING 0x7B 404 385 405 /* R¿dr*/386 /* 燃料電池 */ 406 387 #define EOJ_X2_FUEL_CELL 0x7C 407 388 408 /* ~dr*/389 /* 蓄電池 */ 409 390 #define EOJ_X2_STORAGE_BATTERY 0x7D 410 391 411 /* dC©®Ô[údVXe*/392 /* 電気自動車充放電システム */ 412 393 #define EOJ_X2_ELECTRIC_VEHICLE 0x7E 413 394 414 /* dÍÊ[^*/395 /* 電力量メータ */ 415 396 #define EOJ_X2_ELECTRIC_ENERGY_METER 0x80 416 397 417 /* 418 ¬Ê[^ */ 398 /* 水流量メータ */ 419 399 #define EOJ_X2_WATER_FLOW_METER 0x81 420 400 421 /* KX[^*/401 /* ガスメータ */ 422 402 #define EOJ_X2_GAS_METER 0x82 423 403 424 /* LP KX[^*/404 /* LPガスメータ */ 425 405 #define EOJ_X2_LP_GAS_METERS 0x83 426 406 427 /* v*/407 /* 時計 */ 428 408 #define EOJ_X2_CLOCK 0x84 429 409 430 /* ©®hA*/410 /* 自動ドア */ 431 411 #define EOJ_X2_AUTOMATIC_DOOR 0x85 432 412 433 /* ƱpGx[^*/413 /* 業務用エレベータ */ 434 414 #define EOJ_X2_COMMERCIAL_ELEVATOR 0x86 435 415 436 /* ªdÕ[^O*/416 /* 分電盤メータリング */ 437 417 #define EOJ_X2_DISTRIBUTION_PANEL_METERING 0x87 438 418 439 /* X}[gdÍÊ[^*/419 /* スマート電力量メータ */ 440 420 #define EOJ_X2_SMART_ELECTRIC_ENERGY_METER 0x88 441 421 442 /* X}[gKX[^*/422 /* スマートガスメータ */ 443 423 #define EOJ_X2_SMART_GAS_METER 0x89 444 424 445 /* êÊÆ¾*/425 /* 一般照明 */ 446 426 #define EOJ_X2_GENERAL_LIGHTING_CLASS 0x90 447 427 448 /* ñíÆ¾*/428 /* 非常照明 */ 449 429 #define EOJ_X2_EMERGENCY_LIGHTING 0x99 450 430 451 /* Ýõƾ*/431 /* 設備照明 */ 452 432 #define EOJ_X2_EQUIPMENT_LIGHT 0x9D 453 433 454 /* uU[*/434 /* ブザー */ 455 435 #define EOJ_X2_BUZZER 0xA0 456 436 457 437 /* 458 * ²EÆÖA@íNXO[v*459 */ 460 /* R[q[[J*/438 * 調理・家事関連機器クラスグループ * 439 */ 440 /* コーヒーメーカ */ 461 441 #define EOJ_X2_COFFEE_MACHINE 0xB0 462 442 463 /* R[q[~*/443 /* コーヒーミル */ 464 444 #define EOJ_X2_COFFEE_MILL 0xB1 465 445 466 /* dC|bg*/446 /* 電気ポット */ 467 447 #define EOJ_X2_ELECTRIC_HOT_WATER_POT 0xB2 468 448 469 /* dC±ñë*/449 /* 電気こんろ */ 470 450 #define EOJ_X2_ELECTRIC_STOVE 0xB3 471 451 472 /* g[X^*/452 /* トースタ */ 473 453 #define EOJ_X2_TOASTER 0xB4 474 454 475 /* W 476 [TE~LT */ 455 /* ジューサ・ミキサ */ 477 456 #define EOJ_X2_JUICER_FOOD_MIXER 0xB5 478 457 479 /* t[hvZbT*/458 /* フードプロセッサ */ 480 459 #define EOJ_X2_FOOD_PROCESSOR 0xB6 481 460 482 /* ââ É*/461 /* 冷凍冷蔵庫 */ 483 462 #define EOJ_X2_REFRIGERATOR_FREEZER 0xB7 484 463 485 /* I[uW*/464 /* オーブンレンジ */ 486 465 #define EOJ_X2_COMBINATION_MICROWAVE_OVEN 0xB8 487 466 488 /* NbLOq[^*/467 /* クッキングヒータ */ 489 468 #define EOJ_X2_COOKING_HEATER 0xB9 490 469 491 /* I[u*/470 /* オーブン */ 492 471 #define EOJ_X2_OVEN 0xBA 493 472 494 /* Ñí*/473 /* 炊飯器 */ 495 474 #define EOJ_X2_RICE_COOKER 0xBB 496 475 497 /* dqW[*/476 /* 電子ジャー */ 498 477 #define EOJ_X2_ELECTRONIC_JAR 0xBC 499 478 500 /* Híô¢@*/479 /* 食器洗い機 */ 501 480 #define EOJ_X2_DISH_WASHER 0xBD 502 481 503 /* Hí£@*/482 /* 食器乾燥機 */ 504 483 #define EOJ_X2_DISH_DRYER 0xBE 505 484 506 /* dCà¿Â«@*/485 /* 電気もちつき機 */ 507 486 #define EOJ_X2_ELECTRIC_RICE_CAKE_COOKER 0xBF 508 487 509 /* Û·@*/488 /* 保温機 */ 510 489 #define EOJ_X2_KEEP_WARM_MACHINE 0xC0 511 490 512 /* ¸Ä@*/491 /* 精米機 */ 513 492 #define EOJ_X2_RICE_MILL 0xC1 514 493 515 /* ©®»p@*/494 /* 自動製パン機 */ 516 495 #define EOJ_X2_AUTOMATIC_BREAD_COOKER 0xC2 517 496 518 /* X[NbJ[*/497 /* スロークッカー */ 519 498 #define EOJ_X2_SLOW_COOKER 0xC3 520 499 521 /* dCШ@*/500 /* 電気漬物機 */ 522 501 #define EOJ_X2_ELECTRIC_PICKLES_COOKER 0xC4 523 502 524 /* ôó@*/503 /* 洗濯機 */ 525 504 #define EOJ_X2_WASHING_MACHINE 0xC5 526 505 527 /* ßÞ£@*/506 /* 衣類乾燥機 */ 528 507 #define EOJ_X2_CLOTH_DRYER 0xC6 529 508 530 /* dCAC*/509 /* 電気アイロン */ 531 510 #define EOJ_X2_ELECTRIC_IRON 0xC7 532 511 533 /* Y{vbT*/512 /* ズボンプレッサ */ 534 513 #define EOJ_X2_TROUSER_PRESS 0xC8 535 514 536 /* ÓÆñ£@*/515 /* ふとん乾燥機 */ 537 516 #define EOJ_X2_FUTON_DRYER 0xC9 538 517 539 /* ¬¨E£@*/518 /* 小物・くつ乾燥機 */ 540 519 #define EOJ_X2_SMALL_ARTICLE_SHOES_DRYER 0xCA 541 520 542 /* dC|@iZgN[iÜÞj*/521 /* 電気掃除機(セントラルクリーナ含む) */ 543 522 #define EOJ_X2_ELECTRIC_VACUUM_CLEANER 0xCB 544 523 545 /* fBX|[U*/524 /* ディスポーザ */ 546 525 #define EOJ_X2_DISPOSER 0xCC 547 526 548 /* dCáæè@*/527 /* 電気蚊取り機 */ 549 528 #define EOJ_X2_ELECTRIC_MOSQUITO_CATCHER 0xCD 550 529 551 /* ƱpV[P[X*/530 /* 業務用ショーケース */ 552 531 #define EOJ_X2_COMMERCIAL_SHOW_CASE 0xCE 553 532 554 /* Ʊpâ É*/533 /* 業務用冷蔵庫 */ 555 534 #define EOJ_X2_COMMERCIAL_REFRIGERATOR 0xCF 556 535 557 /* ƱpzbgP[X*/536 /* 業務用ホットケース */ 558 537 #define EOJ_X2_COMMERCIAL_HOT_CASE 0xD0 559 538 560 /* ƱptC[*/539 /* 業務用フライヤー */ 561 540 #define EOJ_X2_COMMERCIAL_FRYER 0xD1 562 541 563 /* ƱpdqW*/542 /* 業務用電子レンジ */ 564 543 #define EOJ_X2_COMMERCIAL_MICROWAVE_OVEN 0xD2 565 544 566 /* ôó£@*/545 /* 洗濯乾燥機 */ 567 546 #define EOJ_X2_WASHER_AND_DRYER 0xD3 568 547 569 548 /* 570 * NÖA@íNXO[v*571 */ 572 /* Ìdv*/549 * 健康関連機器クラスグループ * 550 */ 551 /* 体重計 */ 573 552 #define EOJ_X2_WEIGHING_MACHINE 0x01 574 553 575 /* Ì·v*/554 /* 体温計 */ 576 555 #define EOJ_X2_CLINICAL_THERMOMETER 0x02 577 556 578 /* ³v*/557 /* 血圧計 */ 579 558 #define EOJ_X2_BLOOD_PRESSURE_METER 0x03 580 559 581 /* lv*/560 /* 血糖値計 */ 582 561 #define EOJ_X2_BLOOD_SUGAR_METER 0x04 583 562 584 /* Ìbv*/563 /* 体脂肪計 */ 585 564 #define EOJ_X2_BODY_FAT_METER 0x05 586 565 587 566 /* 588 * ÇEìÖA@íNXO[v * 589 */ 590 /* ZL 591 AÊMp¤L®Ýèm[h */ 567 * 管理・操作関連機器クラスグループ * 568 */ 569 /* セキュア通信用共有鍵設定ノード */ 592 570 #define EOJ_X2_SECURE_COMMUNICATION_SHARED_KEY_SETUP_NODE 0xFC 593 571 594 /* XCb`iJEMA/HA[qÎj*/572 /* スイッチ(JEMA/HA端子対応) */ 595 573 #define EOJ_X2_SWITCH 0xFD 596 574 597 /* gÑ[*/575 /* 携帯端末 */ 598 576 #define EOJ_X2_PORTABLE_TERMINAL 0xFE 599 577 600 /* Rg[*/578 /* コントローラ */ 601 579 #define EOJ_X2_CONTROLLER 0xFF 602 580 603 581 /* 604 * `uÖA@íNXO[v*605 */ 606 /* fBXv[*/582 * AV関連機器クラスグループ * 583 */ 584 /* ディスプレー */ 607 585 #define EOJ_X2_DISPLAY 0x01 608 586 609 /* er*/587 /* テレビ */ 610 588 #define EOJ_X2_TELEVISION 0x02 611 589 612 590 /* 613 * vt@CNXO[v*614 */ 615 /* m[hvt@C*/591 * プロファイルクラスグループ * 592 */ 593 /* ノードプロファイル */ 616 594 #define EOJ_X2_NODE_PROFILE 0xF0 617 595 -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_dbg.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 … … 71 67 static ER _ecn_dbg_wai_syslog(void); 72 68 /* 73 * syslog() obt@É]TªÅ«éÜÅÒÂ69 * syslog()バッファに余裕ができるまで待つ 74 70 */ 75 71 static ER _ecn_dbg_wai_syslog(void) … … 112 108 113 109 /* 114 * fobOoÍ115 * áFECN_DBG_PUT "task start" ECN_DBG_END;110 * デバッグ出力 111 * 例: ECN_DBG_PUT "task start" ECN_DBG_END; 116 112 */ 117 113 int _ecn_dbg_dbgput(const char *fp_srcloc, const char *fp_form, ...) … … 122 118 #ifdef ECN_DBG_PUT_USE_STATIC 123 119 #ifndef SEM_ECN_DBG_PUT 124 /* 256byte obt@8{[e[V*/120 /* 256byteバッファ8本ローテーション */ 125 121 static char a_buf[8][256]; 126 122 static volatile uint_t a_buf_idx = 0; 127 123 uint_t a_buf_idx_a; 128 124 #else 129 /* Z}tHðp¢ÄA1{Ìobt@ãɶñðÀ×Äg¤*/125 /* セマフォを用いて、1本のバッファ上に文字列を並べて使う */ 130 126 static char a_buf[1024]; 131 127 static volatile uint_t a_buf_pos = 0; … … 152 148 p_buf = a_buf[a_buf_idx_a & 0x07]; 153 149 #else 154 if (sizeof(a_buf) - a_buf_pos < 80) /* cèª80byte¢ÉÈÁ½çAæªÉßé*/150 if (sizeof(a_buf) - a_buf_pos < 80) /* 残りが80byte未満になったら、先頭に戻る */ 155 151 a_buf_pos = 0; 156 152 p_buf = a_buf + a_buf_pos; 157 153 a_buf_len = sizeof(a_buf) - a_buf_pos - 1; 158 if (80 * 2 <= a_buf_len) /* 80byte*2 ÈãÌ]ª 餿ÍAö80byteðc·*/154 if (80 * 2 <= a_buf_len) /* 80byte*2以上の余白があるうちは、末尾80byteを残す */ 159 155 a_buf_len -= 80; 160 156 #endif /* #ifdef SEM_ECN_DBG_PUT */ … … 180 176 #ifdef SEM_ECN_DBG_PUT 181 177 a_buf_len = strlen(p_buf) + 1; 182 /* cèª80byte¢ÉÈÁ½ç*/178 /* 残りが80byte未満になったら */ 183 179 if (sizeof(a_buf) - a_buf_pos - a_buf_len < 80) { 184 /* æªÉßé*/180 /* 先頭に戻る */ 185 181 a_buf_pos = 0; 186 182 } else { … … 190 186 #endif 191 187 192 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/188 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 193 189 194 190 #ifdef SEM_ECN_DBG_PUT … … 206 202 } 207 203 208 /* ECN_ENOD_ID ̶ñÏ·*/204 /* ECN_ENOD_IDの文字列変換 */ 209 205 const char *_ecn_dbg_enod2str(ECN_ENOD_ID fa_enod_id) 210 206 { … … 254 250 255 251 /* 256 * oCi_voÍ252 * バイナリダンプ出力 257 253 */ 258 254 void _ecn_dbg_bindmp(const uint8_t *buffer, size_t len) 259 255 { 260 /* static ÌæÌobt@ðØèÖ¦éÂ(2^n) */256 /* static領域のバッファを切り替える個数(2^n) */ 261 257 #define _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT (4) 262 258 /* */ … … 264 260 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 265 261 #undef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 266 /* Z}tH(SEM_ECN_DBG_BINDMP)ªè`³êÄ¢éêAobt@ØèÖ¦ÍsvÈÌÅundef */262 /* セマフォ(SEM_ECN_DBG_BINDMP)が定義されている場合、バッファ切り替えは不要なのでundef */ 267 263 #endif 268 264 #endif 269 265 #ifndef _ECN_FBS_DBG_BINDMP_BUFLEN 270 /* obt@TCY(bindmpÌ1sªûÜéTCY) */266 /* バッファサイズ(bindmp中の1行が収まるサイズ) */ 271 267 #define _ECN_FBS_DBG_BINDMP_BUFLEN (80) 272 268 #endif 273 269 #ifdef _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT 274 /* static ÌæÌobt@ðØèÖ¦é½ßÌÇpÏ*/270 /* static領域のバッファを切り替えるための管理用変数 */ 275 271 static volatile uint8_t a_idx_vol = 0; 276 /* static ÌæÌobt@ØèÖ¦Ìæ*/272 /* static領域のバッファ切り替え領域 */ 277 273 static char a_buf_area[1 << _ECN_FBS_DBG_BINDMP_BUF_MAX_BIT][_ECN_FBS_DBG_BINDMP_BUFLEN]; 278 274 uint8_t a_idx; 279 275 char *a_buf; 280 276 #else 281 /* static ÌæÌobt@Ìæ*/277 /* static領域のバッファ領域 */ 282 278 static char a_buf[_ECN_FBS_DBG_BINDMP_BUFLEN]; 283 279 #endif 284 const uint8_t *p = buffer; /* ÇÝæè|C^*/280 const uint8_t *p = buffer; /* 読み取りポインタ */ 285 281 int i, a_blk, a_blk_max, a_pos = 0; 286 282 const T_ECN_EDT_HDR *p_req_esv; … … 300 296 } 301 297 #ifndef ECN_DBG_BINDMP_MAXLEN 302 /* bindmp oÍÌÅåTCY*/298 /* bindmp出力の最大サイズ */ 303 299 #define ECN_DBG_BINDMP_MAXLEN 1600 304 300 #endif … … 315 311 for (a_blk = 0; p && a_blk < a_blk_max; p = ((T_ECN_FST_BLK *)buffer)->lnk.p_sub[a_blk++]->dat) { 316 312 if (0 < a_blk) { 317 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/313 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 318 314 syslog(LOG_NOTICE, "p_sub[%d] (0x%08X)", a_blk - 1, p); 319 315 } … … 322 318 if (i % 16 == 0) { 323 319 if (a_buf[0]) { 324 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/320 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 325 321 syslog(LOG_NOTICE, "%s", a_buf); 326 322 } … … 342 338 } 343 339 if (a_buf[0]) { 344 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/340 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 345 341 syslog(LOG_NOTICE, "%s", a_buf); 346 342 } … … 353 349 case ECN_MSG_ECHONET: 354 350 p_req_esv = &((const T_ECN_FST_BLK *)buffer)->d.t_esv; 355 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/351 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 356 352 syslog(LOG_NOTICE, " sender: %d %s, target: %d %s", 357 353 ((T_ECN_FST_BLK *)buffer)->hdr.sender, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.sender), 358 354 ((T_ECN_FST_BLK *)buffer)->hdr.target, _ecn_dbg_enod2str(((T_ECN_FST_BLK *)buffer)->hdr.target)); 359 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/355 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 360 356 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); 361 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/357 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 362 358 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 363 359 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 364 360 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 365 361 p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv)); 366 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/362 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 367 363 syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc); 368 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/364 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 369 365 syslog(LOG_NOTICE, " cur(blk/pos): wr %d/%d, rd %d/%d", 370 366 (int)((T_ECN_FST_BLK *)buffer)->hdr.wr.blk, … … 403 399 && ((const T_ECN_FST_BLK *)buffer)->bin[1] == 0x81) { 404 400 p_req_esv = (const T_ECN_EDT_HDR *)&((const T_ECN_FST_BLK *)buffer)->bin[0]; 405 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/401 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 406 402 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); 407 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/403 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 408 404 syslog(LOG_NOTICE, " edata: 0x%06X 0x%06X 0x%02X 0x%02X (%s)", 409 405 p_req_esv->edata.seoj.eojx1 << 16 | p_req_esv->edata.seoj.eojx2 << 8 | p_req_esv->edata.seoj.eojx3, 410 406 p_req_esv->edata.deoj.eojx1 << 16 | p_req_esv->edata.deoj.eojx2 << 8 | p_req_esv->edata.deoj.eojx3, 411 407 p_req_esv->edata.esv, p_req_esv->edata.opc, _ecn_dbg_esv2str(p_req_esv->edata.esv)); 412 _ECN_DBG_WAI_SYSLOG; /* syslog() obt@É]TªÅ«éÜÅÒÂ*/408 _ECN_DBG_WAI_SYSLOG; /* syslog()バッファに余裕ができるまで待つ */ 413 409 syslog(LOG_NOTICE, " ecn_prp: 0x%02X 0x%02X", p_req_esv->ecn_prp.epc, p_req_esv->ecn_prp.pdc); 414 410 } … … 419 415 420 416 /* 421 * ECHONET Lite T[rXR[h¶ñÏ·417 * ECHONET Liteサービスコード文字列変換 422 418 */ 423 419 const char *_ecn_dbg_esv2str(uint8_t fa_esv) 424 420 { 425 421 switch (fa_esv) { 426 case ESV_SET_I_SNA: return " vpeBl«ÝvsÂ"; /* 0x50 */427 case ESV_SET_C_SNA: return " vpeBl«ÝvsÂ"; /* 0x51 */428 case ESV_GET_SNA: return " vpeBlÇÝoµsÂ"; /* 0x52 */429 case ESV_INF_SNA: return " vpeBlÊmsÂ"; /* 0x53 */430 case ESV_SET_GET_SNA: return " vpeBl«ÝEÇÝoµsÂ"; /* 0x5E */431 case ESV_SET_I: return " vpeBl«Ývisvj"; /* 0x60 */432 case ESV_SET_C: return " vpeBl«Ývivj"; /* 0x61 */433 case ESV_GET: return " vpeBlÇÝoµv"; /* 0x62 */434 case ESV_INF_REQ: return " vpeBlÊmv"; /* 0x63 */435 case ESV_SET_GET: return " vpeBl«ÝEÇÝoµv"; /* 0x6E */436 case ESV_SET_RES: return " vpeBl«Ý"; /* 0x71 */437 case ESV_GET_RES: return " vpeBlÇÝoµ"; /* 0x72 */438 case ESV_INF: return " vpeBlÊm"; /* 0x73 */439 case ESV_INFC: return " vpeBlÊmivj"; /* 0x74 */440 case ESV_SET_GET_RES: return " vpeBl«ÝEÇÝoµ"; /* 0x7E */441 case ESV_INFC_RES: return " vpeBlÊm"; /* 0x7A */422 case ESV_SET_I_SNA: return "プロパティ値書き込み要求不可応答"; /* 0x50 */ 423 case ESV_SET_C_SNA: return "プロパティ値書き込み要求不可応答"; /* 0x51 */ 424 case ESV_GET_SNA: return "プロパティ値読み出し不可応答"; /* 0x52 */ 425 case ESV_INF_SNA: return "プロパティ値通知不可応答"; /* 0x53 */ 426 case ESV_SET_GET_SNA: return "プロパティ値書き込み・読み出し不可応答"; /* 0x5E */ 427 case ESV_SET_I: return "プロパティ値書き込み要求(応答不要)"; /* 0x60 */ 428 case ESV_SET_C: return "プロパティ値書き込み要求(応答要)"; /* 0x61 */ 429 case ESV_GET: return "プロパティ値読み出し要求"; /* 0x62 */ 430 case ESV_INF_REQ: return "プロパティ値通知要求"; /* 0x63 */ 431 case ESV_SET_GET: return "プロパティ値書き込み・読み出し要求"; /* 0x6E */ 432 case ESV_SET_RES: return "プロパティ値書き込み応答"; /* 0x71 */ 433 case ESV_GET_RES: return "プロパティ値読み出し応答"; /* 0x72 */ 434 case ESV_INF: return "プロパティ値通知"; /* 0x73 */ 435 case ESV_INFC: return "プロパティ値通知(応答要)"; /* 0x74 */ 436 case ESV_SET_GET_RES: return "プロパティ値書き込み・読み出し応答"; /* 0x7E */ 437 case ESV_INFC_RES: return "プロパティ値通知応答"; /* 0x7A */ 442 438 default: 443 439 return "(unknown)"; -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_dbg.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 * lbg[NÎTvvO(1)Ì 44 * VXeRtBM 45 [Vt@C 39 * ネットワーク対応サンプルプログラム(1)の 40 * システムコンフィギュレーションファイル 46 41 */ 47 42 … … 55 50 /* INCLUDE("tinet/tinet_asp.cfg"); // */ 56 51 57 /* Z}tH*/52 /* セマフォ */ 58 53 59 54 CRE_SEM(SEM_ECN_DBG_PUT, { TA_TPRI, 1, 1 }); -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_dbg.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 … … 56 52 #define ECN_DBG_PUT syslog(LOG_WARNING, 57 53 #define ECN_DBG_END ) 58 /* áFECN_DBG_PUT "task start" ECN_DBG_END; */54 /* 例: ECN_DBG_PUT "task start" ECN_DBG_END; */ 59 55 #else 60 56 #define ECN_DBG_PUT for (;0; … … 62 58 #endif 63 59 64 /* fobOoÍ(CARP) */60 /* デバッグ出力(CARP) */ 65 61 #ifdef ECN_CAP_PUT_ENA 66 62 #define ECN_CAP_PUT syslog(LOG_DEBUG, 67 63 #define ECN_CAP_END ) 68 /* áFECN_CAP_PUT "task start" ECN_CAP_END; */64 /* 例: ECN_CAP_PUT "task start" ECN_CAP_END; */ 69 65 #else 70 66 #define ECN_CAP_PUT for (;0; -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_fbs.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 * Åè·obt@ÂÏ·Xg[39 * 固定長バッファ可変長ストリーム 44 40 */ 45 41 … … 353 349 } 354 350 355 /* ubNæ¾ ok:|C^NG:NULL */351 /* メモリブロック取得 ok:ポインタ NG:NULL */ 356 352 void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size) 357 353 { … … 363 359 } 364 360 365 /* ubNðú*/361 /* メモリブロック解放 */ 366 362 ER _ecn_fbs_mbx_rel(void *p) 367 363 { … … 369 365 } 370 366 371 /* ÌæmÛ*/367 /* 領域確保 */ 372 368 ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id) 373 369 { … … 375 371 } 376 372 377 /* Ìæðú*/373 /* 領域解放 */ 378 374 ER _ecn_fbs_del(ECN_FBS_ID fa_id) 379 375 { … … 381 377 } 382 378 383 /* Ûf[^ÌL³*/379 /* 保持データの有無 */ 384 380 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id) 385 381 { … … 387 383 } 388 384 389 /* Ûf[^·Ìæ¾*/385 /* 保持データ長の取得 */ 390 386 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id) 391 387 { … … 393 389 } 394 390 395 /* ÇÝæèJ[\ÌÊuæ¾*/391 /* 読み取りカーソルの位置取得 */ 396 392 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id) 397 393 { … … 399 395 } 400 396 401 /* ÇÝæèJ[\ÌÊuÝè*/397 /* 読み取りカーソルの位置設定 */ 402 398 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos) 403 399 { 404 if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos) /* Êuwèªå«·¬é*/400 if (fa_id.ptr->hdr.length <= (unsigned int)fa_pos) /* 位置指定が大きすぎる */ 405 401 return E_PAR; 406 402 … … 410 406 } 411 407 412 /* ÇÝæèJ[\ÌÊuÚ®*/408 /* 読み取りカーソルの位置移動 */ 413 409 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek) 414 410 { … … 420 416 } 421 417 422 /* CÓwèÊuÌ1byteÇÝæè*/418 /* 任意指定位置の1byte読み取り */ 423 419 int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek) 424 420 { … … 431 427 } 432 428 433 /* CÓwèÊuÌ1byte«Ý*/429 /* 任意指定位置の1byte書き込み */ 434 430 ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val) 435 431 { … … 442 438 } 443 439 444 /* f[^ÇÁ*/440 /* データ追加 */ 445 441 ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len) 446 442 { … … 452 448 } 453 449 454 /* f[^ÇÁ(Ìæð©®IÉg£·é) */450 /* データ追加(領域を自動的に拡張する) */ 455 451 ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len) 456 452 { … … 459 455 } 460 456 461 /* f[^æ¾*/457 /* データ取得 */ 462 458 ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, ECN_FBS_SSIZE_T *p_len) 463 459 { -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_fbs.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 32 * 33 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 34 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 35 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 36 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 37 * ÌÓCðíÈ¢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 * 免責すること. 28 * 29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 33 * の責任を負わない. 38 34 * 39 35 * @(#) $Id$ … … 41 37 42 38 /* 43 * Åè·obt@ÂÏ·Xg[39 * 固定長バッファ可変長ストリーム 44 40 */ 45 41 … … 55 51 56 52 #ifndef NUM_ECHONET_MEMPOOL_BLOCK 57 #define NUM_ECHONET_MEMPOOL_BLOCK (60) /* d¶pubNÌ*/53 #define NUM_ECHONET_MEMPOOL_BLOCK (60) /* 電文用メモリブロックの数 */ 58 54 #endif /* NUM_ECHONET_MEMPOOL_BLOCK */ 59 55 60 56 #ifndef ECHONET_MEMPOOL_BLOCK_SIZE 61 #define ECHONET_MEMPOOL_BLOCK_SIZE (256) /* d¶pubNÌTCY*/57 #define ECHONET_MEMPOOL_BLOCK_SIZE (256) /* 電文用メモリブロックのサイズ */ 62 58 #endif /* ECHONET_MEMPOOL_BLOCK_SIZE */ 63 59 64 typedef unsigned int ECN_FBS_SIZE_T; /* size_t */65 typedef int ECN_FBS_SSIZE_T; /* ssize_t */66 67 /* T_EDATA ÇÌæTCY*/60 typedef unsigned int ECN_FBS_SIZE_T; /* size_t相当 */ 61 typedef int ECN_FBS_SSIZE_T; /* ssize_t相当 */ 62 63 /* T_EDATA管理領域サイズ */ 68 64 #ifdef TARGET_KERNEL_ASP 69 65 #define DEF_ECN_EDT_HDR_LEN (sizeof(T_MSG)) … … 72 68 #endif 73 69 74 /* ÇÌæTCY(64byte - sizeof(T_MSG)) */70 /* 管理領域サイズ(64byte - sizeof(T_MSG)) */ 75 71 /* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */ 76 72 #define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN) 77 73 78 /* ÇÌæðÜÞubNÉÛ·éf[^TCY*/74 /* 管理領域を含むブロックに保持するデータサイズ */ 79 75 #define DEF_ECN_FBS_FST_DAT_LEN (64) 80 76 81 /* N|C^zñÌTCY(byte) */77 /* リンクポインタ配列のサイズ(byte) */ 82 78 #define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN) 83 79 84 /* Åè·obt@ÅåTCY*/80 /* 固定長バッファ最大サイズ */ 85 81 #define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN) 86 82 87 /* qvfobt@ÌTCY*/83 /* 子要素バッファのサイズ */ 88 84 #define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE 89 85 90 /* d¶ÌíÊ(àeͼ) */86 /* 電文の種別(内容は仮) */ 91 87 typedef enum 92 88 { 93 ECN_FBS_TYPE_BLANK = 0, /* ¢gpXg[*/94 ECN_FBS_TYPE_INTERNAL = 1, /* àbZ[W*/95 ECN_FBS_TYPE_ECHONET = 2 /* ECHONET d¶*/89 ECN_FBS_TYPE_BLANK = 0, /* 未使用ストリーム */ 90 ECN_FBS_TYPE_INTERNAL = 1, /* 内部メッセージ */ 91 ECN_FBS_TYPE_ECHONET = 2 /* ECHONET電文 */ 96 92 } TA_ECN_MSG_TYPE; 97 93 98 /* N|C^zñÉñ³êéAqvfobt@*/94 /* リンクポインタ配列に列挙される、子要素バッファ */ 99 95 typedef struct 100 96 { … … 102 98 } T_ECN_SUB_BLK; 103 99 104 /* N|C^zñ*/100 /* リンクポインタ配列 */ 105 101 typedef union 106 102 { … … 109 105 } T_ECN_FBS_LNK; 110 106 111 /* ÇÌæ(64byte - sizeof(T_MSG)) */107 /* 管理領域(64byte - sizeof(T_MSG)) */ 112 108 typedef struct 113 109 { 114 uint16_t length; /* bZ[W·*/115 uint16_t type; /* bZ[W^Cv*/110 uint16_t length; /* メッセージ長 */ 111 uint16_t type; /* メッセージタイプ */ 116 112 union{ 117 ECN_ENOD_ID sender; /* M³m[hIDiECHONETd¶j*/118 ID sender_mbxid; /* M³[{bNXIDiàbZ[Wj*/113 ECN_ENOD_ID sender; /* 送信元ノードID(ECHONET電文) */ 114 ID sender_mbxid; /* 送信元メールボックスID(内部メッセージ) */ 119 115 }; 120 116 union{ 121 ECN_ENOD_ID target; /* Mæm[hIDiECHONETd¶j*/122 ID target_mbxid; /* Mæ[{bNXIDiàbZ[Wj*/117 ECN_ENOD_ID target; /* 送信先ノードID(ECHONET電文) */ 118 ID target_mbxid; /* 送信先メールボックスID(内部メッセージ) */ 123 119 }; 124 120 union{ 125 ECN_ENOD_ID reply; /* ÔMæm[hIDiECHONETd¶j*/126 ID reply_mbxid; /* ÔMæ[{bNXIDiàbZ[Wj*/121 ECN_ENOD_ID reply; /* 返信先ノードID(ECHONET電文) */ 122 ID reply_mbxid; /* 返信先メールボックスID(内部メッセージ) */ 127 123 }; 128 124 129 int rd; /* ÇÝæèwbhîñ*/130 int wr; /* «Ýwbhîñ*/125 int rd; /* 読み取りヘッド情報 */ 126 int wr; /* 書き込みヘッド情報 */ 131 127 } T_ECN_FBS_HDR; 132 128 133 /* ÇÌæðÜÞubNÌ\¢*/129 /* 管理領域を含むブロックの構造 */ 134 130 typedef struct 135 131 { 136 132 uint8_t _msg[DEF_ECN_EDT_HDR_LEN]; /* T_MSG */ 137 T_ECN_FBS_HDR hdr; /* ÇÌæ64byte - sizeof(T_MSG) */133 T_ECN_FBS_HDR hdr; /* 管理領域 64byte - sizeof(T_MSG) */ 138 134 uint8_t _gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)]; 139 T_ECN_FBS_LNK lnk; /* N|C^zñ128byte */135 T_ECN_FBS_LNK lnk; /* リンクポインタ配列 128byte */ 140 136 uint8_t payload[DEF_ECN_FBS_FST_DAT_LEN]; 141 137 } T_ECN_FST_BLK; … … 147 143 } ECN_FBS_ID; 148 144 149 /* bZ[WL 150 [ */ 145 /* メッセージキュー */ 151 146 typedef struct ecn_fbs_queue 152 147 { 153 T_ECN_FST_BLK *pk_head; /* æªÌbZ[W*/154 T_ECN_FST_BLK *pk_last; /* öÌbZ[W*/148 T_ECN_FST_BLK *pk_head; /* 先頭のメッセージ */ 149 T_ECN_FST_BLK *pk_last; /* 末尾のメッセージ */ 155 150 } T_ECN_FBS_QUEUE; 156 151 157 /* ubNæ¾ ok:|C^NG:NULL */152 /* メモリブロック取得 ok:ポインタ NG:NULL */ 158 153 void *_ecn_fbs_mbx_get(ECN_FBS_SIZE_T fa_req_size); 159 154 160 /* ubNðú ok:0 NG:ñ0 */155 /* メモリブロック解放 ok:0 NG:非0 */ 161 156 ER _ecn_fbs_mbx_rel(void *p); 162 157 163 158 /* 164 * ÌæmÛ165 * ø166 * ECN_FBS_SIZE_T fa_req_size vobt@TCY(byte)159 * 領域確保 160 * 引数 161 * ECN_FBS_SIZE_T fa_req_size 要求バッファサイズ(byte) 167 162 * max: DEF_ECN_FBS_BUF_MAXLEN 168 * ECN_FBS_ID *fp_id mÛµ½FBS-IDÌi[æ169 * ßèl170 * ER 0:ok ñ0:NG163 * ECN_FBS_ID *fp_id 確保したFBS-IDの格納先 164 * 戻り値 165 * ER 0:ok 非0:NG 171 166 */ 172 167 ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id); 173 168 174 169 /* 175 * Ìæðú176 * ø177 * ecn_fbs_id ^ mÛµ½FBS-ID178 * ßèl179 * ER 0:ok, ñ0:NG170 * 領域解放 171 * 引数 172 * ecn_fbs_id型 確保したFBS-ID 173 * 戻り値 174 * ER 0:ok, 非0:NG 180 175 */ 181 176 ER _ecn_fbs_del(ECN_FBS_ID fa_id); 182 177 183 178 /* 184 * Ûf[^ÌL³185 * ø186 * ecn_fbs_id ^ mÛµ½FBS-ID187 * ßèl188 * bool_t 0: ³µ, 1: è179 * 保持データの有無 180 * 引数 181 * ecn_fbs_id型 確保したFBS-ID 182 * 戻り値 183 * bool_t 0:無し, 1:あり 189 184 */ 190 185 bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id); 191 186 192 187 /* 193 * Ûf[^·Ìæ¾194 * ø195 * ecn_fbs_id ^ mÛµ½FBS-ID196 * ßèl197 * ECN_FBS_SSIZE_T ۵Ģéf[^Ì·³(byte) -1:NG188 * 保持データ長の取得 189 * 引数 190 * ecn_fbs_id型 確保したFBS-ID 191 * 戻り値 192 * ECN_FBS_SSIZE_T 保持しているデータの長さ(byte) -1:NG 198 193 */ 199 194 ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id); 200 195 201 196 /* 202 * ÇÝæèJ[\ÌÊuæ¾203 * ø204 * ecn_fbs_id ^ mÛµ½FBS-ID205 * ßèl206 * ECN_FBS_SIZE_T 檩çÌâÎÊu-1:NG197 * 読み取りカーソルの位置取得 198 * 引数 199 * ecn_fbs_id型 確保したFBS-ID 200 * 戻り値 201 * ECN_FBS_SIZE_T 先頭からの絶対位置 -1:NG 207 202 */ 208 203 ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id); 209 204 210 205 /* 211 * ÇÝæèJ[\ÌÊuÝè212 * ø213 * ecn_fbs_id ^ mÛµ½FBS-ID214 * ECN_FBS_SIZE_T fa_pos Ýè·éÊu(檩çÌâÎÊu)215 * ßèl216 * ER 0:ok, ñ0:NG206 * 読み取りカーソルの位置設定 207 * 引数 208 * ecn_fbs_id型 確保したFBS-ID 209 * ECN_FBS_SIZE_T fa_pos 設定する位置(先頭からの絶対位置) 210 * 戻り値 211 * ER 0:ok, 非0:NG 217 212 */ 218 213 ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos); 219 214 220 215 /* 221 * ÇÝæèJ[\ÌÊuÚ®222 * ø223 * ecn_fbs_id ^ mÛµ½FBS-ID224 * ECN_FBS_SIZE_T fa_seek Ú®Ê(»óAOiÌÝ)225 * ßèl226 * ER 0:ok, ñ0:NG216 * 読み取りカーソルの位置移動 217 * 引数 218 * ecn_fbs_id型 確保したFBS-ID 219 * ECN_FBS_SIZE_T fa_seek 移動量(現状、前進のみ) 220 * 戻り値 221 * ER 0:ok, 非0:NG 227 222 */ 228 223 ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek); 229 224 230 225 /* 231 * CÓwèÊuÌ1byteÇÝæè226 * 任意指定位置の1byte読み取り 232 227 */ 233 228 int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek); 234 229 235 230 /* 236 * CÓwèÊuÌ1byte«Ý231 * 任意指定位置の1byte書き込み 237 232 */ 238 233 ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val); 239 234 240 235 /* 241 * f[^ÇÁ242 * ø243 * ecn_fbs_id ^ mÛµ½FBS-ID244 * const void * fa_dat ÇÁ·éf[^245 * ECN_FBS_SSIZE_T fa_len ÇÁ·é·³(byte)246 * ßèl247 * ER 0:ok, ñ0:NG236 * データ追加 237 * 引数 238 * ecn_fbs_id型 確保したFBS-ID 239 * const void * fa_dat 追加するデータ 240 * ECN_FBS_SSIZE_T fa_len 追加する長さ(byte) 241 * 戻り値 242 * ER 0:ok, 非0:NG 248 243 */ 249 244 ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len); 250 245 251 246 /* 252 * f[^ÇÁ(Ìæð©®IÉg£·é)253 * ø254 * ecn_fbs_id ^ mÛµ½FBS-ID255 * const void * fa_dat ÇÁ·éf[^256 * ECN_FBS_SSIZE_T fa_len ÇÁ·é·³(byte)257 * ßèl258 * ER 0:ok, ñ0:NG247 * データ追加(領域を自動的に拡張する) 248 * 引数 249 * ecn_fbs_id型 確保したFBS-ID 250 * const void * fa_dat 追加するデータ 251 * ECN_FBS_SSIZE_T fa_len 追加する長さ(byte) 252 * 戻り値 253 * ER 0:ok, 非0:NG 259 254 */ 260 255 ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len); 261 256 262 257 /* 263 * f[^æ¾264 * ø265 * ecn_fbs_id ^ mÛµ½FBS-ID266 * void * fa_buf æ¾·éobt@267 * ECN_FBS_SSIZE_T fa_maxlen æ¾·é·³(byte)268 * ECN_FBS_SSIZE_T *p_len æ¾µ½·³(byte)269 * ßèl270 * ER 0:ok, ñ0:NG258 * データ取得 259 * 引数 260 * ecn_fbs_id型 確保したFBS-ID 261 * void * fa_buf 取得するバッファ 262 * ECN_FBS_SSIZE_T fa_maxlen 取得する長さ(byte) 263 * ECN_FBS_SSIZE_T *p_len 取得した長さ(byte) 264 * 戻り値 265 * ER 0:ok, 非0:NG 271 266 */ 272 267 ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen, -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_lcl_task.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 ºÊÊMC[^XN39 * ECHONET Lite 下位通信レイヤー処理タスク 44 40 */ 45 41 -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_rename.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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$ -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_ssp.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 RtBM 44 [Vt@C 39 * ECHONET Lite コンフィギュレーションファイル 45 40 */ 46 41 … … 50 45 51 46 /* 52 * ECHONET Lite d¶p47 * ECHONET Lite 電文用メモリ 53 48 */ 54 49 /*CRE_MPF(ECHONET_MEMPOOL, { TA_TFIFO, 60, 256, NULL, NULL });*/ 55 50 56 51 /* 57 * ECHONET Lite API p[{bNX52 * ECHONET Lite API用メールボックス 58 53 */ 59 54 CRE_DTQ(ECHONET_API_MAILBOX, { TA_TFIFO, NUM_ECHONET_API_MAILBOX, NULL }); 60 55 61 56 /* 62 * ECHONET Lite T[rX^XNp[{bNX57 * ECHONET Lite サービス処理タスク用メールボックス 63 58 */ 64 59 CRE_DTQ(ECHONET_SVC_MAILBOX, { TA_TFIFO, NUM_ECHONET_MAILBOX, NULL }); 65 60 66 61 /* 67 * ECHONET Lite T[rX^XN62 * ECHONET Lite サービス処理タスク 68 63 */ 69 64 CRE_TSK(ECHONET_SVC_TASK, { TA_HLNG, 0, echonet_task, ECHONET_TASK_PRIORITY, ECHONET_TASK_STACK_SIZE, NULL }); 70 65 71 66 /* 72 * ECHONET Lite ^XNN®püúnh[67 * ECHONET Lite タスク起動用周期ハンドラー 73 68 */ 74 69 CRE_CYC(ECHONET_SVC_CYCHDR, { TA_NULL, ECHONET_SVC_TASK, echonet_cychdr, 1, 0 }); 75 70 76 71 /* 77 * ECHONET Lite UDP ÊMp[{bNX72 * ECHONET Lite UDP通信処理用メールボックス 78 73 */ 79 74 CRE_DTQ(ECHONET_UDP_MAILBOX, { TA_TFIFO, NUM_ECHONET_UDP_MAILBOX, NULL }); 80 75 81 76 /* 82 * ECHONET Lite UDP ÊM^XN77 * ECHONET Lite UDP通信処理タスク 83 78 */ 84 79 CRE_TSK(ECHONET_UDP_TASK, { TA_HLNG, 0, echonet_udp_task, ECHONET_UDP_TASK_PRIORITY, ECHONET_UDP_TASK_STACK_SIZE, NULL }); 85 80 86 81 /* 87 * ECHONET Lite ^XNN®püúnh[82 * ECHONET Lite タスク起動用周期ハンドラー 88 83 */ 89 84 CRE_CYC(ECHONET_UDP_CYCHDR, { TA_NULL, ECHONET_UDP_TASK, echonet_udp_cychdr, 1, 0 }); -
Property svn:mime-type
changed from
-
uKadecot/trunk/ecnl_ssp/echonet_task.c
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 4 4 * Copyright (C) 2014 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 ^XN39 * ECHONET Lite タスク 44 40 */ 45 41 … … 78 74 static struct ecnl_state s; 79 75 80 /* óMbZ[WðJú·é©Û©*/76 /* 受信メッセージを開放するか否か */ 81 77 static bool_t g_release_esv; 82 78 83 /* óMbZ[Wð]·é©Û©*/79 /* 受信メッセージを転送するか否か */ 84 80 bool_t g_forward_esv; 85 81 … … 126 122 target += - ENOD_REMOTE_ID + 1; 127 123 if (from_app && (target < tnum_enodid)) { 128 /* ñ¯úÌ[gm[hÍT[rX^XNÅ·é*/124 /* 非同期のリモートノードはサービス処理タスクで処理する */ 129 125 switch (eobjcb_table[target].profile->eobjatr) { 130 126 case EOBJ_SYNC_REMOTE_NODE: … … 174 170 ECN_FBS_ID fa_fbs_id, ECN_FBS_ID *fa_fbs_anno); 175 171 176 /* W 177 [ú»tO */ 172 /* モジュール初期化フラグ */ 178 173 static uint8_t m_eobjlist_need_init = 1; 179 174 180 /* V[PXÔ*/175 /* シーケンス番号 */ 181 176 static uint16_t g_current_tid = 1; 182 177 183 178 /* 184 * ECHONET Lite ^XNÌú»iRXgN^j179 * ECHONET Lite タスクの初期化(コンストラクタ相当) 185 180 */ 186 181 void echonet_task_init(intptr_t exinf) … … 191 186 192 187 /* 193 * W 194 [ú» 188 * モジュール初期化 195 189 */ 196 190 static void _ecn_tsk_int_module_init(intptr_t exinf) … -
Property svn:mime-type
changed from