Merge branch 'plugin-interface' into master
[platform/upstream/iotivity.git] / plugins / zigbee_wrapper / telegesis_wrapper / include / twtypes.h
1 //******************************************************************
2 //
3 // Copyright 2015 Intel Mobile Communications GmbH All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 /**
22  * @file
23  *
24  * This API only works with:
25  *      Telegesis ETRX357
26  *      CICIE R310 B110615
27  *
28  */
29
30 #ifndef TWTYPES_H_
31 #define TWTYPES_H_
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif // __cplusplus
36
37 #include <stdint.h>
38 #include <stdbool.h>
39
40 #define DEVICE_BAUDRATE                 (B19200)
41 #define MAX_ZIGBEE_BYTES                (512)
42 #define MAX_ZIGBEE_ENROLLED_DEVICES     (255)
43
44 #define TIME_OUT_00_SECOND      (0)
45 #define TIME_OUT_01_SECOND      (1)
46 #define TIME_OUT_05_SECONDS     (5)
47 #define TIME_OUT_07_SECONDS     (7)
48 #define TIME_OUT_10_SECONDS     (10)
49 #define TIME_OUT_15_SECONDS     (15)
50
51 #define SIMPLEDESC_RESPONSE_EXPECTED_LINES (6)
52
53 #define AT_STR_ERROR_OK             "00"
54 #define AT_STR_ERROR_INVALID_OP     "70"
55
56 #define AT_STR_ERROR_EVERYTHING_OK                              "00"
57 #define AT_STR_ERROR_NODE_IS_PART_OF_PAN                        "28"
58 #define AT_STR_ERROR_MESSAGE_NOT_SENT_TO_TARGET_SUCCESSFULLY    "66"
59 #define AT_STR_ERROR_INVALID_OPERATION                          "70"
60
61
62 #define SENDMODE                "0"
63 #define SEPARATOR               ","
64 #define SEPARATOR_LENGTH        strlen(SEPARATOR)
65
66 #define AT_CMD_RESET                                    "AT&F"
67 #define AT_CMD_GET_NETWORK_INFO                         "AT+N"
68 #define AT_CMD_ESTABLISH_NETWORK                        "AT+EN"
69 #define AT_CMD_PERMIT_JOIN                              "AT+PJOIN:"
70 #define AT_CMD_MATCH_REQUEST                            "AT+MATCHREQ:"
71 #define AT_CMD_SIMPLE_DESC                              "AT+SIMPLEDESC:"
72 #define AT_CMD_WRITE_ATR                                "AT+WRITEATR:"
73 #define AT_CMD_READ_ATR                                 "AT+READATR:"
74 #define AT_CMD_RUN_ON_OFF                               "AT+RONOFF:"
75 #define AT_CMD_MOVE_TO_LEVEL                            "AT+LCMVTOLEV:"
76 #define AT_CMD_DOOR_LOCK                                "AT+DRLOCK:"
77 #define AT_CMD_COLOR_CTRL_MOVE_TO_COLOR_TEMPERATURE     "AT+CCMVTOCT:"
78 #define AT_CMD_GET_LOCAL_EUI                            "ATS04?"
79 #define AT_CMD_REMOTE_EUI_REQUEST                       "AT+EUIREQ:"
80
81 #define TW_ENDCONTROL_ERROR_STRING                      "ERROR:"
82
83 #define SIZE_EUI                    (17)
84 #define SIZE_NODEID                 (5)
85 #define SIZE_CLUSTERID              (5)
86 #define SIZE_ENDPOINTID             (3)
87
88 #define SIZE_ZONESTATUS             (5)
89 #define SIZE_ZONESTATUS_EXTENDED    (3)
90 #define SIZE_ZONEID                 (3)
91 #define SIZE_ZONETYPE               (5)
92 #define SIZE_UPDATE_DELAY_TIME      (5)
93
94 //-----------------------------------------------------------------------------
95 // Typedefs
96 //-----------------------------------------------------------------------------
97 typedef enum
98 {
99     ZB_STATE_UNKNOWN,
100     ZB_STATE_INIT
101 } TWState;
102
103 typedef struct
104 {
105     TWState state;
106     uint64_t panId;
107     uint64_t extPanId;
108
109     char*   remoteAttributeValueRead;
110     uint8_t remoteAtrributeValueReadLength;
111 } TWStatus;
112
113 typedef enum
114 {
115     TW_RESULT_OK = 0,
116
117     TW_RESULT_ERROR_LINE_COUNT,
118     TW_RESULT_NO_LOCAL_PAN,
119     TW_RESULT_HAS_LOCAL_PAN,
120     TW_RESULT_NEW_LOCAL_PAN_ESTABLISHED,
121     TW_RESULT_DEVICE_JOINED,
122     TW_RESULT_FOUND_NO_MATCHED_DEVICE,
123     TW_RESULT_FOUND_MATCHED_DEVICES,
124     TW_RESULT_HAS_CLUSTERS,
125     TW_RESULT_HAS_NO_CLUSTER,
126     TW_RESULT_REMOTE_ATTR_HAS_VALUE,
127
128     TW_RESULT_UNKNOWN,
129
130     TW_RESULT_ERROR_INVALID_PARAMS,
131     TW_RESULT_ERROR_INVALID_PORT,
132     TW_RESULT_ERROR_NO_MEMORY,
133     TW_RESULT_ERROR_INVALID_OP,
134     TW_RESULT_ERROR_NOTIMPL,
135
136     TW_RESULT_ERROR = 255
137
138 } TWResultCode;
139
140 typedef enum
141 {
142     AT_ERROR_EVERYTHING_OK  = 0,
143     AT_ERROR_NODE_IS_PART_OF_PAN = 28,
144     AT_ERROR_MESSAGE_NOT_SENT_TO_TARGET_SUCCESSFULLY   = 66,
145     AT_ERROR_INVALID_OPERATION  = 70,
146
147 } TWATErrorCode;
148
149 typedef enum
150 {
151     TW_ENDCONTROL_OK = 0,
152     TW_ENDCONTROL_ERROR,
153     TW_ENDCONTROL_ACK,
154     TW_ENDCONTROL_SEQ,
155     TW_ENDCONTROL_MAX_VALUE
156
157 } TWEndControl;
158
159 typedef struct
160 {
161     const char * endStr;
162     TWEndControl endControl;
163
164 } TWEndControlMap;
165
166 typedef TWResultCode (*TWATResultHandler)(int count, char** tokens);
167
168 typedef struct
169 {
170     const char *resultTxt;
171     TWATResultHandler handler;
172
173 } TWATResultHandlerPair;
174
175 #ifdef __cplusplus
176 }
177 #endif // __cplusplus
178
179 #endif /* TWTYPES_H_ */