Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/ntshell/echonet/echonet_agent.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r388 r389  
    44 *  Copyright (C) 2015 Cores Co., Ltd. Japan
    55 *
    6  *  上記著作権è€
    7 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    8  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    9  *  変・再é
    10 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    11  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    12  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    13  *      スコード中に含まれていること.
    14  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    15  *      用できる形で再é
    16 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    17 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    18  *      è€
    19 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    20  *      の無保証規定を掲載すること.
    21  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    22  *      用できない形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    24  *      と.
    25  *    (a) 再é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    28  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    29  *    (b) 再é
    30 å¸ƒã®å½¢æ
    31 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    32  *        報告すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
    37  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    38  *      由に基づく請求からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトを
    40  *      å
    41 è²¬ã™ã‚‹ã“と.
     6 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
    4228 *
    43  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ãŠ
    45  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    46  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    47  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    48  *  の責任を負わない.
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    4934 *
    5035 *  @(#) $Id$
     
    5237
    5338/*
    54  *              ECHONET Lite 動的生成ノード
     39 *              ECHONET Lite 動的生成ノード
    5540 */
    5641
     
    194179
    195180/*
    196  *  キューの初期化
     181 *  キューの初期化
    197182 *
    198  *  p_queueにはキューヘッダを指定する.
     183 *  p_queueにはキューヘッダを指定する.
    199184 */
    200185Inline void
     
    209194
    210195/*
    211  *  キューの前エントリへの挿å
    212 ¥
     196 *  キューの前エントリへの挿入
    213197 *
    214  *  p_queueの前にp_entryを挿å
    215 ¥ã™ã‚‹ï¼Žp_queueにキューヘッダを指定した場
    216  *  合には,キューの末尾にp_entryを挿å
    217 ¥ã™ã‚‹ã“とになる.
     198 *  p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場
     199 *  合には,キューの末尾にp_entryを挿入することになる.
    218200 */
    219201Inline void
     
    231213
    232214/*
    233  *  エントリの削除
     215 *  エントリの削除
    234216 *
    235  *  p_entryをキューから削除する.
     217 *  p_entryをキューから削除する.
    236218 */
    237219Inline void
     
    346328        int i = eobjid;
    347329
    348         /* オブジェクトIDから実体を取得 */
     330        /* オブジェクトIDから実体を取得 */
    349331        i -= (tmax_eobjid + 1);
    350332        if ((i < 0)
     
    357339                return false;
    358340
    359         /* オブジェクトのEOJをコピー */
     341        /* オブジェクトのEOJをコピー */
    360342        memcpy(eoj, &buf->obj.inib.eojx1, sizeof(*eoj));
    361343
    362         /* 所属するノードのオブジェクトIDを取得 */
     344        /* 所属するノードのオブジェクトIDを取得 */
    363345        if(buf->obj.inib.enodid == 0)
    364346                i = buf->obj.eobjId;
     
    372354        }
    373355
    374         /* ノードIDを取得 */
     356        /* ノードIDを取得 */
    375357        buf = &agent->blockes[i];
    376358        *enodid = buf->node.enodId;
     
    413395        T_ECN_EOJ *eoj, *end;
    414396
    415         // プロパティ通知か取得応答で、
     397        // プロパティ通知か取得応答で、
    416398        switch (esv->hdr.edata.esv) {
    417399        case ESV_GET_RES:
     
    423405        }
    424406
    425         // ノードプロファイル宛の場合
     407        // ノードプロファイル宛の場合
    426408        eoj = &esv->hdr.edata.seoj;
    427409        if ((eoj->eojx1 != EOJ_X1_PROFILE) || (eoj->eojx2 != EOJ_X2_NODE_PROFILE)
     
    436418        while (ecn_itr_nxt(&enm, &epc, &pdc, &edt) == E_OK) {
    437419                switch (epc) {
    438                 // インスタンスリスト通知の場合
     420                // インスタンスリスト通知の場合
    439421                case 0xD5:
    440                 // 自ノードインスタンスリストS通知の場合
     422                // 自ノードインスタンスリストS通知の場合
    441423                case 0xD6:
    442                         // サイズが合わない場合
     424                        // サイズが合わない場合
    443425                        if (pdc != (1 + edt[0] * sizeof(T_ECN_EOJ)))
    444426                                return NULL;
     
    736718        ecn_obj_t *sobj;
    737719
    738         /* 静的に定義された送信å
    739 ƒã®å ´åˆ */
     720        /* 静的に定義された送信元の場合 */
    740721        if ((*ppk_snod != NULL) && (*ppk_snod)->eobjs != NULL) {
    741                 /* 処理しない */
     722                /* 処理しない */
    742723                return;
    743724        }
     
    745726        snod = ecn_agent_find_node2(*ppk_snod);
    746727
    747         /* 送信å
    748 ƒã‚’知らなかったら */
     728        /* 送信元を知らなかったら */
    749729        if (snod == NULL) {
    750                 /* 送信å
    751 ƒã®ãƒŽãƒ¼ãƒ‰æƒ
    752 å ±ã‚’新規に作成 */
     730                /* 送信元のノード情報を新規に作成 */
    753731                snod = ecn_agent_create_node(agent, esv);
    754732                if (snod == NULL)
     
    758736        sobj = ecn_agent_find_obj2(snod, *ppk_sobj);
    759737
    760         /* ノードプロファイルの場合 */
     738        /* ノードプロファイルの場合 */
    761739        if ((esv->hdr.edata.seoj.eojx1 == EOJ_X1_PROFILE)
    762740                && (esv->hdr.edata.seoj.eojx2 == EOJ_X2_NODE_PROFILE)) {
    763741                sobj = &snod->base;
    764742        }
    765         /* 機器オブジェクトの場合 */
     743        /* 機器オブジェクトの場合 */
    766744        else {
    767745                sobj = ecn_agent_find_eobj(&snod->eobj, esv->hdr.edata.seoj);
     
    808786        ecn_obj_t *obj = node->current;
    809787
    810         // プロパティ値読み出し要求
     788        // プロパティ値読み出し要求
    811789        ecn_esv_get(&esv, obj->eobjId, 0x9E);
    812790        ecn_snd_esv(esv);
     
    821799        ecn_obj_t *obj = node->current;
    822800
    823         // プロパティ値読み出し要求
     801        // プロパティ値読み出し要求
    824802        ecn_esv_get(&esv, obj->eobjId, 0x9F);
    825803        ecn_snd_esv(esv);
     
    834812        ecn_obj_t *obj = node->current;
    835813
    836         // プロパティ値読み出し要求
     814        // プロパティ値読み出し要求
    837815        ecn_esv_get(&esv, obj->eobjId, 0x9D);
    838816        ecn_snd_esv(esv);
     
    848826        ecn_device_t *device;
    849827
    850         /* objが指定されていない場合 */
     828        /* objが指定されていない場合 */
    851829        if(obj == NULL){
    852                 /* このノードを返す */
     830                /* このノードを返す */
    853831                node->current = &node->base;
    854832                return;
    855833        }
    856         /* ノードの場合 */
     834        /* ノードの場合 */
    857835        else if((obj->inib.eojx1 == EOJ_X1_PROFILE) && (obj->inib.eojx2 == EOJ_X2_NODE_PROFILE)){
    858836                node = (ecn_node_t *)obj;
    859837
    860                 /* é
    861 ä¸‹ã®æ©Ÿå™¨ã‚’返す */
     838                /* 配下の機器を返す */
    862839                queue = node->devices.p_next;
    863840                device = (ecn_device_t *)cast_obj(queue);
    864841        }
    865         /* 機器の場合 */
     842        /* 機器の場合 */
    866843        else{
    867                 /* 次の機器を返す */
     844                /* 次の機器を返す */
    868845                node = ((ecn_device_t *)obj)->node;
    869846                queue = cast_queue(obj)->p_next;
     
    871848        }
    872849
    873         /* その機器が末尾だった場合 */
     850        /* その機器が末尾だった場合 */
    874851        if(&node->devices == queue){
    875852                node->current = NULL;
     
    1000977        bool_t has = false;
    1001978
    1002         /* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストS通知をå¿
    1003 é ˆã§å—け取る */
     979        /* ノードの場合はインスタンスリスト通知と自ノードインスタンスリストS通知を必須で受け取る */
    1004980        if ((fp_obj->enodid == 0) && ((fa_epc == 0xD5) || (fa_epc == 0xD6)))
    1005981                has = true;
     
    10351011
    10361012        switch (item->eprpcd) {
    1037         /* インスタンスリスト通知の場合 */
     1013        /* インスタンスリスト通知の場合 */
    10381014        case 0xD5:
    1039         /* 自ノードインスタンスリストS通知の場合 */
     1015        /* 自ノードインスタンスリストS通知の場合 */
    10401016        case 0xD6:
    10411017                if ((node != NULL) && (node->state == ecn_node_state_idle)) {
     
    10551031                }
    10561032                break;
    1057         /* 通知プロパティマップの場合 */
     1033        /* 通知プロパティマップの場合 */
    10581034        case 0x9D:
    10591035                eprpcnt = edt[0];
    10601036
    10611037                if (eprpcnt < 16) {
    1062                         /* サイズチェック */
     1038                        /* サイズチェック */
    10631039                        if (eprpcnt + 1 != size)
    10641040                                return 0;
     
    10681044                }
    10691045                else {
    1070                         /* サイズチェック */
     1046                        /* サイズチェック */
    10711047                        if (size != 17)
    10721048                                return 0;
     
    10771053                sobj->pmapFlag |= PMAP_FLAG_ANNO;
    10781054                break;
    1079         /* SETプロパティマップの場合 */
     1055        /* SETプロパティマップの場合 */
    10801056        case 0x9E:
    10811057                eprpcnt = edt[0];
    10821058
    10831059                if (eprpcnt < 16) {
    1084                         /* サイズチェック */
     1060                        /* サイズチェック */
    10851061                        if (eprpcnt + 1 != size)
    10861062                                return 0;
     
    10901066                }
    10911067                else {
    1092                         /* サイズチェック */
     1068                        /* サイズチェック */
    10931069                        if (size != 17)
    10941070                                return 0;
     
    10991075                sobj->pmapFlag |= PMAP_FLAG_SET;
    11001076                break;
    1101         /* GETプロパティマップの場合 */
     1077        /* GETプロパティマップの場合 */
    11021078        case 0x9F:
    11031079                eprpcnt = edt[0];
    11041080
    11051081                if (eprpcnt < 16) {
    1106                         /* サイズチェック */
     1082                        /* サイズチェック */
    11071083                        if (eprpcnt + 1 != size)
    11081084                                return 0;
     
    11121088                }
    11131089                else {
    1114                         /* サイズチェック */
     1090                        /* サイズチェック */
    11151091                        if (size != 17)
    11161092                                return 0;
Note: See TracChangeset for help on using the changeset viewer.