source: uKadecot/trunk/kadecot/wamp_dealer.h@ 108

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

MIMEプロパティの変更

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr; charset=SHIFT_JIS
File size: 8.5 KB
RevLine 
[101]1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2015 Cores Co., Ltd. Japan
5 *
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 * の責任を負わない.
34 *
35 * @(#) $Id: wamp_dealer.h 108 2015-06-11 09:15:46Z coas-nagasima $
36 */
37
38#ifndef WAMP_DEALER_H
39#define WAMP_DEALER_H
40
41typedef enum wamp_dealer_state
42{
43 WAMP_DEALER_STATE_DEVICE_ID,
44 WAMP_DEALER_STATE_DEOJID,
45 WAMP_DEALER_STATE_PROPERTIES,
46 WAMP_DEALER_STATE_PROPERTY_LIST,
47 WAMP_DEALER_STATE_PROPERTY_NAME,
48 WAMP_DEALER_STATE_PROPERTY_CODE,
49 WAMP_DEALER_STATE_PROPERTY_VALUE,
50 WAMP_DEALER_STATE_PIN,
51 WAMP_DEALER_STATE_MODE,
52 WAMP_DEALER_STATE_DIGITAL_VALUE,
53 WAMP_DEALER_STATE_ANALOG_VALUE,
54 WAMP_DEALER_STATE_MAC_ADDR_VALUE,
55} wamp_dealer_state_t;
56
57typedef enum wamp_dealer_procedure
58{
59 WAMP_DEALER_PROCEDURE_NONE,
60 WAMP_DEALER_PROCEDURE_GET_DEVICELIST,
61 WAMP_DEALER_PROCEDURE_KADECOT_GET,
62 WAMP_DEALER_PROCEDURE_KADECOT_SET,
63 WAMP_DEALER_PROCEDURE_GET_DEVICEINFO,
64 WAMP_DEALER_PROCEDURE_ECNL_SET,
65 WAMP_DEALER_PROCEDURE_ECNL_GET,
66 WAMP_DEALER_PROCEDURE_ECNL_SETGET,
67 WAMP_DEALER_PROCEDURE_PIN_MODE,
68 WAMP_DEALER_PROCEDURE_DIGITAL_WRITE,
69 WAMP_DEALER_PROCEDURE_DIGITAL_READ,
70 WAMP_DEALER_PROCEDURE_ANALOG_READ,
71 WAMP_DEALER_PROCEDURE_ANALOG_WRITE,
72 WAMP_DEALER_PROCEDURE_SET_INIT_PARAMS,
73 WAMP_DEALER_PROCEDURE_GET_INIT_PARAMS,
74} wamp_dealer_procedure_t;
75
76typedef enum wamp_dealer_pin_mode
77{
78 WAMP_DEALER_PIN_MODE_NONE,
79 WAMP_DEALER_PIN_MODE_INPUT,
80 WAMP_DEALER_PIN_MODE_OUTPUT,
81 WAMP_DEALER_PIN_MODE_INPUT_PULLUP
82} wamp_dealer_pin_mode_t;
83
84typedef enum wamp_dealer_digital_value
85{
86 WAMP_DEALER_DIGITAL_VALUE_NONE,
87 WAMP_DEALER_DIGITAL_VALUE_HIGH,
88 WAMP_DEALER_DIGITAL_VALUE_LOW,
89} wamp_dealer_digital_value_t;
90
91typedef void (*wamp_dealer_args_parse_t)(struct wamp_dealer *dealer, jsonsl_action_t action,
92 struct jsonsl_state_st *state, const char *buf);
93typedef void (*wamp_dealer_call_close_t)(struct wamp_dealer *dealer);
94
95typedef struct wamp_dealer_params{
96 uint8_t epc;
97 uint8_t pdc;
98 uint8_t edt[256];
99 uint32_t deojid;
100 char prop_name[80];
101} wamp_dealer_params_t;
102
103typedef struct wamp_dealer_arduino_params{
104 int pin;
105 wamp_dealer_pin_mode_t mode;
106 wamp_dealer_digital_value_t digval;
107 int anaval;
108} wamp_dealer_arduino_params_t;
109
110typedef struct wamp_dealer_init_params{
111 int pos;
112 uint8_t mac_addr[32]; /* DATA FLASHのサイズ分 */
113} wamp_dealer_init_params_t;
114
115typedef struct echonetlite_device
116{
117 int deviceId;
118 int nodeId;
119 int addrId;
120 uint16_t deviceType;
121 uint8_t x3;
122 char deviceTypeStr[32];
123 char description[32];
124 char ip_addr[16];
125 char nickname[32];
126 bool_t status;
127} echonetlite_device_t;
128
129typedef struct wamp_dealer
130{
131 struct wamp_state *s;
132 wamp_dealer_state_t state;
133 wamp_dealer_procedure_t procedure;
134 unsigned int requestId;
135 union{
136 wamp_dealer_params_t params;
137 wamp_dealer_arduino_params_t arduino_params;
138 wamp_dealer_init_params_t init_params;
139 };
140 T_EDATA *ecnl_mag;
141 echonetlite_device_t devices[20];
142 int devices_pos;
143 echonetlite_device_t *current_device;
144 wamp_dealer_args_parse_t args_parse;
145 wamp_dealer_call_close_t call_close;
146 const char *error;
147} wamp_dealer_t;
148
149void wamp_dealer_init(wamp_dealer_t *dealer);
150
151void wamp_dealer_register(wamp_dealer_t *dealer);
152void wamp_dealer_register_request_id(wamp_dealer_t *dealer, const char *value);
153void wamp_dealer_register_options(wamp_dealer_t *dealer, const char *value);
154void wamp_dealer_register_options_param(wamp_dealer_t *dealer, jsonsl_action_t action,
155 struct jsonsl_state_st *state, const char *buf);
156void wamp_dealer_register_procedure(wamp_dealer_t *dealer, const char *value);
157void wamp_dealer_register_close(struct wamp_state *s);
158
159void wamp_dealer_unregister(wamp_dealer_t *dealer);
160void wamp_dealer_unregister_request_id(wamp_dealer_t *dealer, const char *value);
161void wamp_dealer_unregister_registration_id(wamp_dealer_t *dealer, const char *value);
162void wamp_dealer_unregister_close(struct wamp_state *s);
163
164void wamp_dealer_call(wamp_dealer_t *dealer);
165void wamp_dealer_call_request_id(wamp_dealer_t *dealer, const char *value);
166void wamp_dealer_call_options(wamp_dealer_t *dealer, const char *value);
167void wamp_dealer_call_options_param(wamp_dealer_t *dealer, jsonsl_action_t action,
168 struct jsonsl_state_st *state, const char *buf);
169void wamp_dealer_call_procedure(wamp_dealer_t *dealer, const char *value);
170void wamp_dealer_call_arguments(wamp_dealer_t *dealer, const char *value);
171void wamp_dealer_call_arguments_param(wamp_dealer_t *dealer, jsonsl_action_t action,
172 struct jsonsl_state_st *state, const char *buf);
173void wamp_dealer_call_argumentskw(wamp_dealer_t *dealer, const char *value);
174void wamp_dealer_call_argumentskw_param(wamp_dealer_t *dealer, jsonsl_action_t action,
175 struct jsonsl_state_st *state, const char *buf);
176void wamp_dealer_call_close(struct wamp_state *s);
177
178void wamp_dealer_yield(wamp_dealer_t *dealer);
179void wamp_dealer_yield_request_id(wamp_dealer_t *dealer, const char *value);
180void wamp_dealer_yield_options(wamp_dealer_t *dealer, const char *value);
181void wamp_dealer_yield_options_param(wamp_dealer_t *dealer, jsonsl_action_t action,
182 struct jsonsl_state_st *state, const char *buf);
183void wamp_dealer_yield_arguments(wamp_dealer_t *dealer, const char *value);
184void wamp_dealer_yield_arguments_param(wamp_dealer_t *dealer, jsonsl_action_t action,
185 struct jsonsl_state_st *state, const char *buf);
186void wamp_dealer_yield_argumentskw(wamp_dealer_t *dealer, const char *value);
187void wamp_dealer_yield_argumentskw_param(wamp_dealer_t *dealer, jsonsl_action_t action,
188 struct jsonsl_state_st *state, const char *buf);
189void wamp_dealer_yield_close(struct wamp_state *s);
190
191void wamp_dealer_cansel(wamp_dealer_t *dealer);
192void wamp_dealer_cansel_request_id(wamp_dealer_t *dealer, const char *value);
193void wamp_dealer_cansel_options(wamp_dealer_t *dealer, const char *value);
194void wamp_dealer_cansel_options_param(wamp_dealer_t *dealer, jsonsl_action_t action,
195 struct jsonsl_state_st *state, const char *buf);
196void wamp_dealer_cansel_close(struct wamp_state *s);
197
198void wamp_dealer_set_devicelist(struct wamp_dealer *dealer, ECN_FBS_ID msg);
199void wamp_dealer_get_devicelist_timeout(struct wamp_dealer *dealer);
200void wamp_dealer_set_ipaddr(struct wamp_dealer *dealer, char *ipaddr);
201void wamp_dealer_get_ipaddr_timeout(struct wamp_dealer *dealer);
202void wamp_dealer_set_deviceinfo(struct wamp_dealer *dealer, int deviceId,
203 uint8_t *pmapSet, uint8_t *pmapGet, uint8_t *pmapAnno);
204void wamp_dealer_get_deviceinfo_timeout(struct wamp_dealer *dealer);
205void wamp_dealer_kadecot_set(struct wamp_dealer *dealer, int deviceId, uint8_t epc);
206void wamp_dealer_kadecot_set_timeout(struct wamp_dealer *dealer);
207void wamp_dealer_kadecot_get(struct wamp_dealer *dealer, int deviceId, uint8_t epc,
208 uint8_t pdc, uint8_t *edt);
209void wamp_dealer_kadecot_get_timeout(struct wamp_dealer *dealer);
210void wamp_dealer_ecnl_set_res(struct wamp_dealer *dealer, T_EDATA *res);
211void wamp_dealer_ecnl_set_timeout(struct wamp_dealer *dealer);
212void wamp_dealer_ecnl_get_res(struct wamp_dealer *dealer, T_EDATA *res);
213void wamp_dealer_ecnl_get_timeout(struct wamp_dealer *dealer);
214void wamp_dealer_ecnl_setget_res(struct wamp_dealer *dealer, T_EDATA *res);
215void wamp_dealer_ecnl_setget_timeout(struct wamp_dealer *dealer);
216
217#endif // WAMP_DEALER_H
Note: See TracBrowser for help on using the repository browser.