Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Committer:
kadonotakashi
Date:
Thu Oct 11 02:27:46 2018 +0000
Revision:
3:f3764f852aa8
Parent:
0:8fdf9a60065b
Nucreo 446 + SSD1331 test version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kadonotakashi 0:8fdf9a60065b 1 /* Wiced implementation of NetworkInterfaceAPI
kadonotakashi 0:8fdf9a60065b 2 * Copyright (c) 2017 ARM Limited
kadonotakashi 0:8fdf9a60065b 3 *
kadonotakashi 0:8fdf9a60065b 4 * Licensed under the Apache License, Version 2.0 (the "License");
kadonotakashi 0:8fdf9a60065b 5 * you may not use this file except in compliance with the License.
kadonotakashi 0:8fdf9a60065b 6 * You may obtain a copy of the License at
kadonotakashi 0:8fdf9a60065b 7 *
kadonotakashi 0:8fdf9a60065b 8 * http://www.apache.org/licenses/LICENSE-2.0
kadonotakashi 0:8fdf9a60065b 9 *
kadonotakashi 0:8fdf9a60065b 10 * Unless required by applicable law or agreed to in writing, software
kadonotakashi 0:8fdf9a60065b 11 * distributed under the License is distributed on an "AS IS" BASIS,
kadonotakashi 0:8fdf9a60065b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kadonotakashi 0:8fdf9a60065b 13 * See the License for the specific language governing permissions and
kadonotakashi 0:8fdf9a60065b 14 * limitations under the License.
kadonotakashi 0:8fdf9a60065b 15 */
kadonotakashi 0:8fdf9a60065b 16
kadonotakashi 0:8fdf9a60065b 17 #ifndef WICED_INTERFACE_H
kadonotakashi 0:8fdf9a60065b 18 #define WICED_INTERFACE_H
kadonotakashi 0:8fdf9a60065b 19
kadonotakashi 0:8fdf9a60065b 20 #include "mbed.h"
kadonotakashi 0:8fdf9a60065b 21 #include "EthernetInterface.h"
kadonotakashi 0:8fdf9a60065b 22 #include "netsocket/OnboardNetworkStack.h"
kadonotakashi 0:8fdf9a60065b 23 #include "wiced_emac.h"
kadonotakashi 0:8fdf9a60065b 24
kadonotakashi 0:8fdf9a60065b 25
kadonotakashi 0:8fdf9a60065b 26 /** WicedInterface class
kadonotakashi 0:8fdf9a60065b 27 * Implementation of the NetworkStack for the Wiced
kadonotakashi 0:8fdf9a60065b 28 */
kadonotakashi 0:8fdf9a60065b 29 class WicedInterface : public WiFiInterface, public EMACInterface
kadonotakashi 0:8fdf9a60065b 30 {
kadonotakashi 0:8fdf9a60065b 31 public:
kadonotakashi 0:8fdf9a60065b 32
kadonotakashi 0:8fdf9a60065b 33 WicedInterface(
kadonotakashi 0:8fdf9a60065b 34 EMAC &emac = WICED_EMAC::get_instance(),
kadonotakashi 0:8fdf9a60065b 35 OnboardNetworkStack &stack = OnboardNetworkStack::get_default_instance());
kadonotakashi 0:8fdf9a60065b 36
kadonotakashi 0:8fdf9a60065b 37 /** Start the interface
kadonotakashi 0:8fdf9a60065b 38 *
kadonotakashi 0:8fdf9a60065b 39 * Attempts to connect to a WiFi network. Requires ssid and passphrase to be set.
kadonotakashi 0:8fdf9a60065b 40 * If passphrase is invalid, NSAPI_ERROR_AUTH_ERROR is returned.
kadonotakashi 0:8fdf9a60065b 41 *
kadonotakashi 0:8fdf9a60065b 42 * @return 0 on success, negative error code on failure
kadonotakashi 0:8fdf9a60065b 43 */
kadonotakashi 0:8fdf9a60065b 44 nsapi_error_t connect();
kadonotakashi 0:8fdf9a60065b 45
kadonotakashi 0:8fdf9a60065b 46 /** Start the interface
kadonotakashi 0:8fdf9a60065b 47 *
kadonotakashi 0:8fdf9a60065b 48 * Attempts to connect to a WiFi network.
kadonotakashi 0:8fdf9a60065b 49 *
kadonotakashi 0:8fdf9a60065b 50 * @param ssid Name of the network to connect to
kadonotakashi 0:8fdf9a60065b 51 * @param pass Security passphrase to connect to the network
kadonotakashi 0:8fdf9a60065b 52 * @param security Type of encryption for connection (Default: NSAPI_SECURITY_NONE)
kadonotakashi 0:8fdf9a60065b 53 * @param channel This parameter is not supported, setting it to anything else than 0 will result in NSAPI_ERROR_UNSUPPORTED
kadonotakashi 0:8fdf9a60065b 54 * @return 0 on success, or error code on failure
kadonotakashi 0:8fdf9a60065b 55 */
kadonotakashi 0:8fdf9a60065b 56 nsapi_error_t connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE, uint8_t channel = 0);
kadonotakashi 0:8fdf9a60065b 57
kadonotakashi 0:8fdf9a60065b 58 /** Stop the interface
kadonotakashi 0:8fdf9a60065b 59 * @return 0 on success, negative on failure
kadonotakashi 0:8fdf9a60065b 60 */
kadonotakashi 0:8fdf9a60065b 61 nsapi_error_t disconnect();
kadonotakashi 0:8fdf9a60065b 62
kadonotakashi 0:8fdf9a60065b 63 /** Set the WiFi network credentials
kadonotakashi 0:8fdf9a60065b 64 *
kadonotakashi 0:8fdf9a60065b 65 * @param ssid Name of the network to connect to
kadonotakashi 0:8fdf9a60065b 66 * @param pass Security passphrase to connect to the network
kadonotakashi 0:8fdf9a60065b 67 * @param security Type of encryption for connection
kadonotakashi 0:8fdf9a60065b 68 * (defaults to NSAPI_SECURITY_NONE)
kadonotakashi 0:8fdf9a60065b 69 * @return 0 on success, or error code on failure
kadonotakashi 0:8fdf9a60065b 70 */
kadonotakashi 0:8fdf9a60065b 71 nsapi_error_t set_credentials(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE);
kadonotakashi 0:8fdf9a60065b 72
kadonotakashi 0:8fdf9a60065b 73 /** Set the WiFi network channel - NOT SUPPORTED
kadonotakashi 0:8fdf9a60065b 74 *
kadonotakashi 0:8fdf9a60065b 75 * This function is not supported and will return NSAPI_ERROR_UNSUPPORTED
kadonotakashi 0:8fdf9a60065b 76 *
kadonotakashi 0:8fdf9a60065b 77 * @param channel Channel on which the connection is to be made, or 0 for any (Default: 0)
kadonotakashi 0:8fdf9a60065b 78 * @return Not supported, returns NSAPI_ERROR_UNSUPPORTED
kadonotakashi 0:8fdf9a60065b 79 */
kadonotakashi 0:8fdf9a60065b 80 nsapi_error_t set_channel(uint8_t channel) {
kadonotakashi 0:8fdf9a60065b 81 if (channel != 0) {
kadonotakashi 0:8fdf9a60065b 82 return NSAPI_ERROR_UNSUPPORTED;
kadonotakashi 0:8fdf9a60065b 83 }
kadonotakashi 0:8fdf9a60065b 84
kadonotakashi 0:8fdf9a60065b 85 return 0;
kadonotakashi 0:8fdf9a60065b 86 }
kadonotakashi 0:8fdf9a60065b 87
kadonotakashi 0:8fdf9a60065b 88 /** Gets the current radio signal strength for active connection
kadonotakashi 0:8fdf9a60065b 89 *
kadonotakashi 0:8fdf9a60065b 90 * @return Connection strength in dBm (negative value)
kadonotakashi 0:8fdf9a60065b 91 */
kadonotakashi 0:8fdf9a60065b 92 int8_t get_rssi();
kadonotakashi 0:8fdf9a60065b 93
kadonotakashi 0:8fdf9a60065b 94 /** Scan for available networks
kadonotakashi 0:8fdf9a60065b 95 *
kadonotakashi 0:8fdf9a60065b 96 * This function will block.
kadonotakashi 0:8fdf9a60065b 97 *
kadonotakashi 0:8fdf9a60065b 98 * @param ap Pointer to allocated array to store discovered AP
kadonotakashi 0:8fdf9a60065b 99 * @param count Size of allocated @a res array, or 0 to only count available AP
kadonotakashi 0:8fdf9a60065b 100 * @param timeout Timeout in milliseconds; 0 for no timeout (Default: 0)
kadonotakashi 0:8fdf9a60065b 101 * @return Number of entries in @a, or if @a count was 0 number of available networks, negative on error
kadonotakashi 0:8fdf9a60065b 102 * see @a nsapi_error
kadonotakashi 0:8fdf9a60065b 103 */
kadonotakashi 0:8fdf9a60065b 104 int scan(WiFiAccessPoint *res, unsigned count);
kadonotakashi 0:8fdf9a60065b 105
kadonotakashi 0:8fdf9a60065b 106 private:
kadonotakashi 0:8fdf9a60065b 107
kadonotakashi 0:8fdf9a60065b 108 char _ssid[33]; /* The longest possible name (defined in 802.11) +1 for the \0 */
kadonotakashi 0:8fdf9a60065b 109 char _pass[64]; /* The longest allowed passphrase + 1 */
kadonotakashi 0:8fdf9a60065b 110 nsapi_security_t _security;
kadonotakashi 0:8fdf9a60065b 111 };
kadonotakashi 0:8fdf9a60065b 112
kadonotakashi 0:8fdf9a60065b 113 #endif