Ignore:
Timestamp:
Mar 8, 2016, 8:37:45 PM (8 years ago)
Author:
coas-nagasima
Message:

MIMEにSJISを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • UsbWattMeter/trunk/ecnl_lwip/echonet.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=SHIFT_JIS
    r164 r167  
    44 *  Copyright (C) 2014-2016 Cores Co., Ltd. Japan
    55 *
    6  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    7  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    8  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    9  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    10  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    11  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    12  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    13  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    14 ƒƒ“ƒgi—˜—p
    15  *      ŽÒƒ}ƒjƒ
    16 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    17  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    18  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    19  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    20  *      ‚ƁD
    21  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    24  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    26  *        •ñ‚·‚邱‚ƁD
    27  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    28  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    29  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    30  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    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 *      免責すること.
    3228 *
    33  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    34  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    35  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    36  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    37  *  ‚̐ӔC‚𕉂í‚È‚¢D
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    3834 *
    3935 *  @(#) $Id$
     
    5753
    5854#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[ƒhi”ñ“¯Šúj */
    62 #define EOBJ_DEVICE 0x08                                /* ‹@ŠíƒIƒuƒWƒFƒNƒg */
     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                                /* 機器オブジェクト */
    6359
    6460#define EPC_NONE 0x00
    65 #define EPC_RULE_SET 0x01                               /* ƒAƒNƒZƒXƒ‹[ƒ‹ Set */
    66 #define EPC_RULE_GET 0x02                               /* ƒAƒNƒZƒXƒ‹[ƒ‹ Get */
    67 #define EPC_RULE_ANNO 0x04                              /* ƒAƒNƒZƒXƒ‹[ƒ‹ 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                               /* 可変長データ */
    7066
    7167typedef enum _echonet_enod_id
    7268{
    7369        ENOD_NOT_MATCH_ID       = -1,
    74         ENOD_MULTICAST_ID       = 0,                    /* ƒ}ƒ‹ƒ`ƒLƒƒƒXƒgƒAƒhƒŒƒXID */
    75         ENOD_LOCAL_ID           = 1,                    /* Ž©ƒm[ƒhƒAƒhƒŒƒXID */
    76         ENOD_API_ID                     = 2,                    /* APIƒAƒhƒŒƒXID */
    77         ENOD_REMOTE_ID          = 3,                    /* ‘¼ƒm[ƒhƒAƒhƒŒƒXID */
     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 */
    7874} ECN_ENOD_ID;
    7975
    80 /* ECHONET Lite‹KŠi */
     76/* ECHONET Lite規格 */
    8177typedef enum
    8278{
     
    8480} ECN_EHD1_ECL_VERSION;
    8581
    86 /* “d•¶Œ`Ž®1/2 */
     82/* 電文形式1/2 */
    8783typedef enum
    8884{
    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 */
    9187} ECN_EHD2_FORMAT;
    9288
    93 /* ECHONET LiteƒT[ƒrƒXƒR[ƒh */
     89/* ECHONET Liteサービスコード */
    9490typedef enum _echonet_service_code
    9591{
    96         ESV_NOP                         =       0,              /* (‹@”\Žw’è‚È‚µ)                                                       */
    97         ESV_SET_I                       =       0x60,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj         */
    98         ESV_SET_C                       =       0x61,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj           */
    99         ESV_GET                         =       0x62,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹                                     */
    100         ESV_INF_REQ                     =       0x63,   /* ƒvƒƒpƒeƒB’l’Ê’m—v‹                                         */
    101         ESV_SET_GET                     =       0x6E,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹           */
    102         ESV_SET_RES                     =       0x71,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݉ž“š                                     */
    103         ESV_GET_RES                     =       0x72,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ‰ž“š                                     */
    104         ESV_INF                         =       0x73,   /* ƒvƒƒpƒeƒB’l’Ê’m                                                     */
    105         ESV_INFC                        =       0x74,   /* ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj                           */
    106         ESV_INFC_RES            =       0x7A,   /* ƒvƒƒpƒeƒB’l’Ê’m‰ž“š                                         */
    107         ESV_SET_GET_RES         =       0x7E,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ‰ž“š           */
    108         ESV_SET_I_SNA           =       0x50,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š                     */
    109         ESV_SET_C_SNA           =       0x51,   /* ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹•s‰Â‰ž“š                     */
    110         ESV_GET_SNA                     =       0x52,   /* ƒvƒƒpƒeƒB’l“ǂݏo‚µ•s‰Â‰ž“š                         */
    111         ESV_INF_SNA                     =       0x53,   /* ƒvƒƒpƒeƒB’l’Ê’m•s‰Â‰ž“š                                     */
    112         ESV_SET_GET_SNA         =       0x5E    /* ƒvƒƒpƒeƒB’l‘‚«ž‚݁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    /* プロパティ値書き込み・読み出し不可応答  */
    113109} ECN_SRV_CODE;
    114110
     
    122118
    123119/*
    124  *  ECHONET Lite“d•¶ƒwƒbƒ_[
     120 *  ECHONET Lite電文ヘッダー
    125121 */
    126122typedef struct
    127123{
    128         uint8_t ehd1;           /* ECHONET Lite“d•¶ƒwƒbƒ_[1 ECN_EHD1_ECL_VERSION */
    129         uint8_t ehd2;           /* ECHONET Lite“d•¶ƒwƒbƒ_[2 ECN_EHD2_FORMAT */
    130         uint16_t        tid;    /* ƒgƒ‰ƒ“ƒUƒNƒVƒ‡ƒ“ID */
     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 */
    131127} T_ECN_HDR;
    132128
    133129/*
    134  *  ECHONET LiteƒIƒuƒWƒFƒNƒgƒR[ƒh
     130 *  ECHONET Liteオブジェクトコード
    135131 */
    136132typedef struct
    137133{
    138         uint8_t eojx1;          /* ƒNƒ‰ƒXƒOƒ‹[ƒvƒR[ƒh */
    139         uint8_t eojx2;          /* ƒNƒ‰ƒXƒR[ƒh */
    140         uint8_t eojx3;          /* ƒCƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
     134        uint8_t eojx1;          /* クラスグループコード */
     135        uint8_t eojx2;          /* クラスコード */
     136        uint8_t eojx3;          /* インスタンスコード */
    141137} T_ECN_EOJ;
    142138
    143139/*
    144  *  ECHONET Liteƒf[ƒ^ƒwƒbƒ_[
     140 *  ECHONET Liteデータヘッダー
    145141 */
    146142typedef struct
    147143{
    148         T_ECN_EOJ       seoj;   /* ‘—MŒ³ECHONET LiteƒIƒuƒWƒFƒNƒgŽw’è */
    149         T_ECN_EOJ       deoj;   /* ‘ŠŽèæECHONET LiteƒIƒuƒWƒFƒNƒgŽw’è */
    150         uint8_t esv;            /* ECHONET LiteƒT[ƒrƒX (ECN_SRV_CODE) */
    151         uint8_t opc;            /* ˆ—ƒvƒƒpƒeƒB” */
     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;            /* 処理プロパティ数 */
    152148} T_ECN_EDATA_BODY;
    153149
    154150/*
    155  *  ECHONET LiteƒvƒƒpƒeƒB
     151 *  ECHONET Liteプロパティ
    156152 */
    157153typedef struct
    158154{
    159         uint8_t epc;            /* ECHONET LiteƒvƒƒpƒeƒBƒR[ƒh */
    160         uint8_t pdc;            /* EDT‚̃oƒCƒg” */
    161         /*void  *p_edt;*/       /* ƒvƒƒpƒeƒB’lƒf[ƒ^ */
     155        uint8_t epc;            /* ECHONET Liteプロパティコード */
     156        uint8_t pdc;            /* EDTのバイト数 */
     157        /*void  *p_edt;*/       /* プロパティ値データ */
    162158} T_ECN_PRP;
    163159
    164160/*
    165  *  ECHONET Liteƒf[ƒ^
     161 *  ECHONET Liteデータ
    166162 */
    167163typedef struct
     
    173169
    174170/*
    175  *  ECHONET Lite “d•¶
     171 *  ECHONET Lite 電文
    176172 */
    177173typedef struct echonet_object_data
     
    191187
    192188/*
    193  *  ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[
     189 *  応答電文解析イテレーター
    194190 */
    195191typedef struct echonet_epc_enumerator
    196192{
    197193        T_EDATA *pk_esv;
    198         uint8_t count;                  /* ¡“Ç‚ÝŽæ‚è’†‚̃uƒƒbƒN‚É‚ ‚éƒvƒƒpƒeƒB‘” */
    199         uint8_t got_ct;                 /* ¡“Ç‚ÝŽæ‚è’†‚̃uƒƒbƒN‚ŁA“Ç‚ÝŽæ‚Á‚½” */
    200         uint8_t next_blk_ct;    /* Œã‘±ƒuƒƒbƒN” */
    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 */
    202198        int cur;
    203199} T_ENUM_EPC;
     
    206202
    207203/*
    208  * ECHONET Lite ƒvƒƒpƒeƒB‚̐ݒèŠÖ”
     204 * ECHONET Lite プロパティの設定関数
    209205 */
    210206typedef int (EPRP_SETTER)(const EPRPINIB *item, const void *src, int size, bool_t *anno);
    211207
    212208/*
    213  * ECHONET Lite ƒvƒƒpƒeƒB‚̎擾ŠÖ”
     209 * ECHONET Lite プロパティの取得関数
    214210 */
    215211typedef int (EPRP_GETTER)(const EPRPINIB *item, void *dst, int size);
    216212
    217213/*
    218  *  ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN
     214 *  ECHONET Lite プロパティ初期化ブロック
    219215 */
    220216struct echonet_property_initialization_block
    221217{
    222         uint8_t         eprpcd;                 /* ECHONET Lite ƒvƒƒpƒeƒBƒR[ƒh */
    223         ATR                     eprpatr;                /* ECHONET Lite ƒvƒƒpƒeƒB‘®« */
    224         uint8_t         eprpsz;                 /* ECHONET Lite ƒvƒƒpƒeƒB‚̃TƒCƒY */
    225         intptr_t        exinf;                  /* ECHONET Lite ƒvƒƒpƒeƒB‚ÌŠg’£î•ñ */
    226         EPRP_SETTER     *eprpset;               /* ECHONET Lite ƒvƒƒpƒeƒB‚̐ݒèŠÖ” */
    227         EPRP_GETTER     *eprpget;               /* ECHONET Lite ƒvƒƒpƒeƒB‚̎擾ŠÖ” */
     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 プロパティの取得関数 */
    228224};
    229225
    230 #define TMIN_EOBJID             1               /* ECHONET Lite ƒIƒuƒWƒFƒNƒgID‚̍ŏ¬’l */
    231 
    232 /*
    233  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN
     226#define TMIN_EOBJID             1               /* ECHONET Lite オブジェクトIDの最小値 */
     227
     228/*
     229 *  ECHONET Lite オブジェクト初期化ブロック
    234230 */
    235231typedef struct echonet_object_initialization_block
    236232{
    237         ATR                     eobjatr;                /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‘®« */
    238         ID                      enodid;                 /* ECHONET Lite ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹ƒIƒuƒWƒFƒNƒgID */
    239         intptr_t        exinf;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚ÌŠg’£î•ñ */
    240         uint8_t         eojx1;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒOƒ‹[ƒvƒR[ƒh */
    241         uint8_t         eojx2;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒR[ƒh */
    242         uint8_t         eojx3;                  /* ECHONET Lite ƒIƒuƒWƒFƒNƒg‚̃Cƒ“ƒXƒ^ƒ“ƒXƒR[ƒh */
    243         const EPRPINIB *eprp;           /* ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN */
    244         uint_t          eprpcnt;                /* ECHONET Lite ƒvƒƒpƒeƒB‰Šú‰»ƒuƒƒbƒN” */
     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 プロパティ初期化ブロック数 */
    245241} EOBJINIB;
    246242
    247243/*
    248  *  ECHONET Lite ƒm[ƒhŠÇ—ƒuƒƒbƒN
     244 *  ECHONET Lite ノード管理ブロック
    249245 */
    250246typedef struct echonet_object_control_block
    251247{
    252         const EOBJINIB *profile;        /* ECHONET Lite ƒm[ƒhƒvƒƒtƒ@ƒCƒ‹‚ւ̃|ƒCƒ“ƒ^ */
    253         const EOBJINIB **eobjs;         /* ECHONET Lite ƒIƒuƒWƒFƒNƒgƒŠƒXƒg‚ւ̃|ƒCƒ“ƒ^ */
    254         uint_t          eobjcnt;                /* ECHONET Lite ƒIƒuƒWƒFƒNƒg” */
     248        const EOBJINIB *profile;        /* ECHONET Lite ノードプロファイルへのポインタ */
     249        const EOBJINIB **eobjs;         /* ECHONET Lite オブジェクトリストへのポインタ */
     250        uint_t          eobjcnt;                /* ECHONET Lite オブジェクト数 */
    255251} EOBJCB;
    256252
    257253/*
    258  *  ECHONET Lite ƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚Ì’è‹`
     254 *  ECHONET Lite ノードとIPアドレスの対応情報ブロックの定義
    259255 */
    260256typedef struct echonet_node_address_block
    261257{
    262         bool_t          inuse;                  /* Žg—pó‹µ */
    263         uint8_t         ipaddr[16];             /* IPƒAƒhƒŒƒX */
     258        bool_t          inuse;                  /* 使用状況 */
     259        uint8_t         ipaddr[16];             /* IPアドレス */
    264260} ENODADRB;
    265261
    266262/*
    267  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgID‚̍őå’liechonet_cfg.cj
     263 *  ECHONET Lite オブジェクトIDの最大値(echonet_cfg.c)
    268264 */
    269265extern const ID tmax_eobjid;
    270266
    271267/*
    272  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     268 *  ECHONET Lite オブジェクト初期化ブロックのエリア(echonet_cfg.c)
    273269 */
    274270extern const EOBJINIB   eobjinib_table[];
    275271
    276272/*
    277  *  ECHONET Liteƒm[ƒhŠÇ—ƒuƒƒbƒN‚̐”
     273 *  ECHONET Liteノード管理ブロックの数
    278274 */
    279275extern const int tnum_enodid;
    280276
    281277/*
    282  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgŠÇ—ƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     278 *  ECHONET Lite オブジェクト管理ブロックのエリア(echonet_cfg.c)
    283279 */
    284280extern EOBJCB   eobjcb_table[];
    285281
    286282/*
    287  * ECHONET Liteƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñ‚̐”
     283 * ECHONET LiteノードとIPアドレスの対応情報の数
    288284 */
    289285extern const int tnum_enodadr;
    290286
    291287/*
    292  *  ECHONET Lite ƒm[ƒh‚ÆIPƒAƒhƒŒƒX‚̑Ήžî•ñƒuƒƒbƒN‚̃GƒŠƒAiechonet_cfg.cj
     288 *  ECHONET Lite ノードとIPアドレスの対応情報ブロックのエリア(echonet_cfg.c)
    293289 */
    294290extern ENODADRB enodadrb_table[];
    295291
    296292/*
    297  * ECHONET Lite ƒJ[ƒlƒ‹ƒIƒuƒWƒFƒNƒgID
     293 * ECHONET Lite カーネルオブジェクトID
    298294 */
    299295extern const ID ecn_svc_taskid;
     
    306302
    307303/*
    308  *  ECHONET Lite ƒIƒuƒWƒFƒNƒgŠÇ—ƒuƒƒbƒN‚©‚çECHONET Lite ƒIƒuƒWƒFƒNƒgID‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
     304 *  ECHONET Lite オブジェクト管理ブロックからECHONET Lite オブジェクトIDを取り出すためのマクロ
    309305 */
    310306#define EOBJID(p_eobjcb)        ((ID)(((p_eobjcb) - eobjcb_table) + TMIN_EOBJID))
    311307
    312308/*
    313  *  ECHONET Lite ƒIƒuƒWƒFƒNƒg‹@”\‚̏‰Šú‰»
     309 *  ECHONET Lite オブジェクト機能の初期化
    314310 */
    315311extern void     initialize_echonet_object(void);
     
    322318
    323319/*
    324  * ECHONET LiteƒT[ƒrƒXˆ—ŠJŽn
     320 * ECHONET Liteサービス処理開始
    325321 */
    326322ER ecn_sta_svc();
    327323
    328324/*
    329  * ECHONETƒIƒuƒWƒFƒNƒgŽQÆ
     325 * ECHONETオブジェクト参照
    330326 */
    331327ER ecn_ref_eobj(ID eobjid, T_REOBJ *pk_eobj);
    332328
    333329/*
    334  * ECHONETƒvƒƒpƒeƒBŽQÆ
     330 * ECHONETプロパティ参照
    335331 */
    336332ER ecn_ref_eprp(ID eobjid, uint8_t epc, T_RPRP *pk_eprp);
    337333
    338334/*
    339  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š•s—vj“d•¶ì¬
     335 * プロパティ値書き込み要求(応答不要)電文作成
    340336 */
    341337ER ecn_esv_seti(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    342338
    343339/*
    344  * ƒvƒƒpƒeƒB’l‘‚«ž‚Ý—v‹i‰ž“š—vj“d•¶ì¬
     340 * プロパティ値書き込み要求(応答要)電文作成
    345341 */
    346342ER ecn_esv_setc(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    347343
    348344/*
    349  * ƒvƒƒpƒeƒB’l“ǂݏo‚µ—v‹“d•¶ì¬
     345 * プロパティ値読み出し要求電文作成
    350346 */
    351347ER ecn_esv_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
    352348
    353349/*
    354  * ƒvƒƒpƒeƒB’l’Ê’m—v‹“d•¶ì¬
     350 * プロパティ値通知要求電文作成
    355351 */
    356352ER ecn_esv_inf_req(T_EDATA **ppk_esv, ID eobjid, uint8_t epc);
    357353
    358354/*
    359  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶ì¬
     355 * プロパティ値書き込み・読み出し要求電文作成
    360356 */
    361357ER ecn_esv_set_get(T_EDATA **ppk_esv, ID eobjid, uint8_t epc, uint8_t pdc, const void *p_edt);
    362358
    363359/*
    364  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶Ü‚è•Ô‚µŽw’è
     360 * プロパティ値書き込み・読み出し要求電文折り返し指定
    365361 */
    366362ER ecn_trn_set_get(T_EDATA *pk_esv, int *p_trn_pos);
    367363
    368364/*
    369  * ƒvƒƒpƒeƒB’l‘‚«ž‚݁E“ǂݏo‚µ—v‹“d•¶I—¹Žw’è
     365 * プロパティ値書き込み・読み出し要求電文終了指定
    370366 */
    371367ER ecn_end_set_get(T_EDATA *pk_esv, int trn_pos);
    372368
    373369/*
    374  * ƒvƒƒpƒeƒB’l’Ê’mi‰ž“š—vj“d•¶ì¬
     370 * プロパティ値通知(応答要)電文作成
    375371 */
    376372ER ecn_esv_infc(T_EDATA **ppk_esv, ID eobjid, ID seobjid, uint8_t sepc);
    377373
    378374/*
    379  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBŽw’è’ljÁ
     375 * 要求電文へのプロパティ指定追加
    380376 */
    381377ER ecn_add_epc(T_EDATA *pk_esv, uint8_t epc);
    382378
    383379/*
    384  * —v‹“d•¶‚ւ̃vƒƒpƒeƒBƒf[ƒ^’ljÁ
     380 * 要求電文へのプロパティデータ追加
    385381 */
    386382ER ecn_add_edt(T_EDATA *pk_esv, uint8_t epc, uint8_t pdc, const void *p_edt);
    387383
    388384/*
    389  * —v‹“d•¶‚Ì‘—M
     385 * 要求電文の送信
    390386 */
    391387ER ecn_snd_esv(T_EDATA *pk_esv);
    392388
    393389/*
    394  * ‰ž“š“d•¶‚ÌŽóM‰i‰“‘Ò‚¿
     390 * 応答電文の受信永遠待ち
    395391 */
    396392ER ecn_rcv_esv(T_EDATA **ppk_esv);
    397393
    398394/*
    399  * ‰ž“š“d•¶‚ÌŽóM‘Ò‚¿ƒ^ƒCƒ€ƒAƒEƒg‚ ‚è
     395 * 応答電文の受信待ちタイムアウトあり
    400396 */
    401397ER ecn_trcv_esv(T_EDATA **ppk_esv, TMO tmout);
    402398
    403399/*
    404  * ‰ž“š“d•¶‚ÌŽóMƒ|[ƒŠƒ“ƒO
     400 * 応答電文の受信ポーリング
    405401 */
    406402ER ecn_prcv_esv(T_EDATA **ppk_esv);
    407403
    408404/*
    409  * ‰ž“š“d•¶‚Ì”jŠü
     405 * 応答電文の破棄
    410406 */
    411407ER ecn_rel_esv(T_EDATA *pk_esv);
    412408
    413409/*
    414  * ‰ž“š“d•¶‚Ì‘—MŒ³‹@ŠíƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é
     410 * 応答電文の送信元機器オブジェクトを取得する
    415411 */
    416412ID ecn_get_eobj(T_EDATA *pk_esv);
    417413
    418414/*
    419  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[‰Šú‰»
     415 * 応答電文解析イテレーター初期化
    420416 */
    421417ER ecn_itr_ini(T_ENUM_EPC *pk_itr, T_EDATA *pk_esv);
    422418
    423419/*
    424  * ‰ž“š“d•¶‰ðÍƒCƒeƒŒ[ƒ^[ƒCƒ“ƒNƒŠƒƒ“ƒg
     420 * 応答電文解析イテレーターインクリメント
    425421 */
    426422ER ecn_itr_nxt(T_ENUM_EPC *pk_itr, uint8_t *p_epc, uint8_t *p_pdc, void *p_edt);
    427423
    428424/*
    429  * ‰ž“š“d•¶‘Ò‚¿‚ÌŠ„‚荞‚Ý‘—M
     425 * 応答電文待ちの割り込み送信
    430426 */
    431427ER ecn_brk_wai(const void *p_dat, int datsz);
    432428
    433429/*
    434  * Š„‚荞‚݃f[ƒ^‚̎擾
     430 * 割り込みデータの取得
    435431 */
    436432ER ecn_get_brk_dat(T_EDATA *pk_esv, void *p_buf, int bufsz, int *p_datsz);
    437433
    438434/*
    439  * ƒf[ƒ^Ý’èŠÖ”
     435 * データ設定関数
    440436 */
    441437int ecn_data_prop_set(const EPRPINIB *item, const void *src, int size, bool_t *anno);
    442438
    443439/*
    444  * ƒf[ƒ^Žæ“¾ŠÖ”
     440 * データ取得関数
    445441 */
    446442int ecn_data_prop_get(const EPRPINIB *item, void *dst, int size);
Note: See TracChangeset for help on using the changeset viewer.