Merge branch 'master' into easysetup & CBOR changes
[platform/upstream/iotivity.git] / service / easy-setup / sdk / enrollee / arduino / wifi / networkHandler.h
1 //******************************************************************
2 //
3 // Copyright 2014 Samsung Electronics 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 // Do not remove the include below
22 #include "Arduino.h"
23
24 #include "logger.h"
25 #include "ocstack.h"
26 #include <string.h>
27
28 // Arduino WiFi Shield
29 #include <SPI.h>
30 #include <WiFi.h>
31 #include <WiFiUdp.h>
32
33 #include "common.h"
34
35 #ifndef ES_NETWORK_HANDLER_H_
36 #define ES_NETWORK_HANDLER_H_
37
38 #define MAXSSIDLEN 33
39 #define MAXNETCREDLEN 20
40 #define MAXNUMTYPE 5
41 #define MAXADDRLEN 15
42
43 typedef void (*NetworkEventCallback)(ES_RESULT);
44
45 enum NetworkType
46 {
47     ES_WIFI = 1, ES_BT = 2, ES_BLE = 3, ES_ZIGBEE = 4, ES_ETH = 5
48 };
49
50 typedef struct NETWORKINFO
51 {
52     NetworkType type;
53
54     // for WiFI
55     IPAddress ipaddr;
56     char ssid[MAXSSIDLEN];
57
58     // for BT, BLE
59     byte mac[6];
60 } NetworkInfo;
61
62 ES_RESULT ConnectToWiFiNetwork(const char *ssid, const char *pass, NetworkEventCallback);
63 int getCurrentNetworkInfo(NetworkType targetType, NetworkInfo *info);
64
65 #endif