source: azure_iot_hub/trunk/ntshell/echonet/echonet_task.h@ 388

Last change on this file since 388 was 388, checked in by coas-nagasima, 5 years ago

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 4.8 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2014 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者
7は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
9 * 変・再é…
10å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13 * スコード中に含まれていること.
14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15 * 用できる形で再é…
16å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
17å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
18 * 者
19マニュアルなど)に,上記の著作権表示,この利用条件および下記
20 * の無保証規定を掲載すること.
21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
22 * 用できない形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
24 * と.
25 * (a) 再é…
26å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
27マニュアルなど)に,上記の著
28 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
29 * (b) 再é…
30å¸ƒã®å½¢æ…
31‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
32 * 報告すること.
33 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
34 * 害からも,上記著作権者
35およびTOPPERSプロジェクトをå…
36è²¬ã™ã‚‹ã“と.
37 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
38 * 由に基づく請求からも,上記著作権者
39およびTOPPERSプロジェクトを
40 * å…
41è²¬ã™ã‚‹ã“と.
42 *
43 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
44お
45 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
46 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
47 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
48 * の責任を負わない.
49 *
50 * @(#) $Id: echonet_task.h 388 2019-05-22 11:25:18Z coas-nagasima $
51 */
52
53/*
54 * ECHONET Lite タスク
55 */
56
57#ifndef TOPPERS_ECHONET_TASK_H
58#define TOPPERS_ECHONET_TASK_H
59
60/*#include ".h"*/
61
62#include "echonet_rename.h"
63#include "echonet.h"
64#include "echonet_fbs.h"
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70/*
71 * ECHONET Lite タスク関連の定数のデフォルト値の定義
72 */
73#ifndef ECHONET_TASK_PRIORITY
74#define ECHONET_TASK_PRIORITY 3 /* 初期優å…
75ˆåº¦ */
76#endif /* ECHONET_TASK_PRIORITY */
77
78#ifndef ECHONET_TASK_STACK_SIZE
79#define ECHONET_TASK_STACK_SIZE 1024 /* スタック領域のサイズ */
80#endif /* ECHONET_TASK_STACK_SIZE */
81
82extern const EOBJINIB _echonet_eobjinib_table[];
83extern EOBJCB _echonet_eobjcb_table[];
84extern ENODADRB _echonet_enodadrb_table[];
85
86/*
87 * ECHONET Lite タスクの本体
88 */
89void echonet_task(intptr_t exinf);
90
91/* ECHONET Lite インスタンスリストの1アナウンス当たり最大ノード数 */
92#define ECN_IST_LST_EOJ_MAX_CT (84)
93
94/* ECHONET Liteオブジェクトコード x1,x2,x3(T_ECN_EOJ)を24bit整数に変換 */
95#define _ECN_EOJ2VALUE(s) (((s).eojx1 << 16) | ((s).eojx2 << 8) | (s).eojx3)
96
97enum ecn_epc_code
98{
99 ECN_EPC_INL_BCS = 0xD5 /* インスタンスリスト通知プロパティ */
100};
101
102typedef enum
103{
104 ECN_MSG_UNDEF = 0,
105 ECN_MSG_INTERNAL = 1,
106 ECN_MSG_ECHONET = 2,
107 ECN_MSG_USER_BREAK = 3
108} ECN_MSG_TYPE;
109
110typedef enum
111{
112 ECN_INM_NOTIFY_INSTANCELIST = 1,
113 ECN_INM_GET_DEVICE_LIST_REQ,
114 ECN_INM_GET_DEVICE_LIST_RES,
115 ECN_INM_GET_DEVICE_INFO_REQ,
116 ECN_INM_GET_DEVICE_INFO_RES,
117 ECN_UDP_MSG_GET_IPADDR_REQ,
118 ECN_UDP_MSG_GET_IPADDR_RES,
119 ECN_UDP_MSG_GET_IPADDR_ERROR
120} ECN_INT_MSG_COMMAND;
121
122typedef struct
123{
124 uint8_t command;
125 uint8_t data[1];
126} T_ECN_INTERNAL_MSG;
127
128/*
129 * インスタンスリスト通知の送信
130 */
131ER _ecn_tsk_ntf_inl();
132/*
133 * 要求電文作成
134 */
135ER _ecn_tsk_mk_esv(ECN_FBS_ID *fp_fbs_id, ID fa_seoj, ID fa_deoj,
136 uint8_t fa_epc, uint8_t fa_pdc, const void *p_edt, ECN_SRV_CODE fa_esv);
137
138ER _ecn_tsk_snd_dtq(ECN_FBS_ID fa_rsp_fbs, bool_t from_app);
139
140/*
141 * 応答電文待
142ちの割り込み電文作成
143 */
144ER _ecn_mk_brk_wai(ECN_FBS_ID *pk_fbs_id, const void *p_dat, size_t fa_size);
145
146const EOBJCB *_ecn_eno_fnd(ECN_ENOD_ID enodid);
147
148const EOBJINIB *_ecn_eoj_fnd(const EOBJCB *fp_nod, const T_ECN_EOJ *fp_eoj);
149
150ER _ecn_tsk_cre_req_fbs(ID sender, uint8_t cmd, ECN_FBS_ID *pk_req);
151
152ER _ecn_tsk_cre_res_fbs(ECN_FBS_ID req, uint8_t cmd, ECN_FBS_ID *pk_res);
153
154#ifdef __cplusplus
155}
156#endif
157
158#endif /* TOPPERS_ECHONET_TASK_H */
Note: See TracBrowser for help on using the repository browser.