Marco Mayer / Mbed OS Queue
Committer:
demayer
Date:
Sat Mar 28 15:28:19 2020 +0000
Revision:
0:6bf0743ece18
IMU Thread with an event-queue running parallel to handle tasks like a 5 times blinking LED. Button with interrupt detected.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
demayer 0:6bf0743ece18 1
demayer 0:6bf0743ece18 2 /* WiFiInterface
demayer 0:6bf0743ece18 3 * Copyright (c) 2015 - 2016 ARM Limited
demayer 0:6bf0743ece18 4 *
demayer 0:6bf0743ece18 5 * Licensed under the Apache License, Version 2.0 (the "License");
demayer 0:6bf0743ece18 6 * you may not use this file except in compliance with the License.
demayer 0:6bf0743ece18 7 * You may obtain a copy of the License at
demayer 0:6bf0743ece18 8 *
demayer 0:6bf0743ece18 9 * http://www.apache.org/licenses/LICENSE-2.0
demayer 0:6bf0743ece18 10 *
demayer 0:6bf0743ece18 11 * Unless required by applicable law or agreed to in writing, software
demayer 0:6bf0743ece18 12 * distributed under the License is distributed on an "AS IS" BASIS,
demayer 0:6bf0743ece18 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
demayer 0:6bf0743ece18 14 * See the License for the specific language governing permissions and
demayer 0:6bf0743ece18 15 * limitations under the License.
demayer 0:6bf0743ece18 16 */
demayer 0:6bf0743ece18 17
demayer 0:6bf0743ece18 18 #ifndef WIFI_INTERFACE_H
demayer 0:6bf0743ece18 19 #define WIFI_INTERFACE_H
demayer 0:6bf0743ece18 20
demayer 0:6bf0743ece18 21 #include <string.h>
demayer 0:6bf0743ece18 22 #include "netsocket/NetworkInterface.h"
demayer 0:6bf0743ece18 23 #include "netsocket/WiFiAccessPoint.h"
demayer 0:6bf0743ece18 24
demayer 0:6bf0743ece18 25 /** WiFiInterface class
demayer 0:6bf0743ece18 26 *
demayer 0:6bf0743ece18 27 * Common interface that is shared between WiFi devices
demayer 0:6bf0743ece18 28 * @addtogroup netsocket
demayer 0:6bf0743ece18 29 */
demayer 0:6bf0743ece18 30 class WiFiInterface: public NetworkInterface
demayer 0:6bf0743ece18 31 {
demayer 0:6bf0743ece18 32 public:
demayer 0:6bf0743ece18 33 /** WiFiInterface lifetime
demayer 0:6bf0743ece18 34 */
demayer 0:6bf0743ece18 35 virtual ~WiFiInterface() {};
demayer 0:6bf0743ece18 36
demayer 0:6bf0743ece18 37 /** Set the WiFi network credentials
demayer 0:6bf0743ece18 38 *
demayer 0:6bf0743ece18 39 * @param ssid Name of the network to connect to
demayer 0:6bf0743ece18 40 * @param pass Security passphrase to connect to the network
demayer 0:6bf0743ece18 41 * @param security Type of encryption for connection
demayer 0:6bf0743ece18 42 * (defaults to NSAPI_SECURITY_NONE)
demayer 0:6bf0743ece18 43 * @return 0 on success, or error code on failure
demayer 0:6bf0743ece18 44 */
demayer 0:6bf0743ece18 45 virtual nsapi_error_t set_credentials(const char *ssid, const char *pass,
demayer 0:6bf0743ece18 46 nsapi_security_t security = NSAPI_SECURITY_NONE) = 0;
demayer 0:6bf0743ece18 47
demayer 0:6bf0743ece18 48 /** Set the WiFi network channel
demayer 0:6bf0743ece18 49 *
demayer 0:6bf0743ece18 50 * @param channel Channel on which the connection is to be made, or 0 for any (Default: 0)
demayer 0:6bf0743ece18 51 * @return 0 on success, or error code on failure
demayer 0:6bf0743ece18 52 */
demayer 0:6bf0743ece18 53 virtual nsapi_error_t set_channel(uint8_t channel) = 0;
demayer 0:6bf0743ece18 54
demayer 0:6bf0743ece18 55 /** Gets the current radio signal strength for active connection
demayer 0:6bf0743ece18 56 *
demayer 0:6bf0743ece18 57 * @return Connection strength in dBm (negative value),
demayer 0:6bf0743ece18 58 * or 0 if measurement impossible
demayer 0:6bf0743ece18 59 */
demayer 0:6bf0743ece18 60 virtual int8_t get_rssi() = 0;
demayer 0:6bf0743ece18 61
demayer 0:6bf0743ece18 62 /** Start the interface
demayer 0:6bf0743ece18 63 *
demayer 0:6bf0743ece18 64 * Attempts to connect to a WiFi network.
demayer 0:6bf0743ece18 65 *
demayer 0:6bf0743ece18 66 * @param ssid Name of the network to connect to
demayer 0:6bf0743ece18 67 * @param pass Security passphrase to connect to the network
demayer 0:6bf0743ece18 68 * @param security Type of encryption for connection (Default: NSAPI_SECURITY_NONE)
demayer 0:6bf0743ece18 69 * @param channel Channel on which the connection is to be made, or 0 for any (Default: 0)
demayer 0:6bf0743ece18 70 * @return 0 on success, or error code on failure
demayer 0:6bf0743ece18 71 */
demayer 0:6bf0743ece18 72 virtual nsapi_error_t connect(const char *ssid, const char *pass,
demayer 0:6bf0743ece18 73 nsapi_security_t security = NSAPI_SECURITY_NONE, uint8_t channel = 0) = 0;
demayer 0:6bf0743ece18 74
demayer 0:6bf0743ece18 75 /** Start the interface
demayer 0:6bf0743ece18 76 *
demayer 0:6bf0743ece18 77 * Attempts to connect to a WiFi network. Requires ssid and passphrase to be set.
demayer 0:6bf0743ece18 78 * If passphrase is invalid, NSAPI_ERROR_AUTH_ERROR is returned.
demayer 0:6bf0743ece18 79 *
demayer 0:6bf0743ece18 80 * @return 0 on success, negative error code on failure
demayer 0:6bf0743ece18 81 */
demayer 0:6bf0743ece18 82 virtual nsapi_error_t connect() = 0;
demayer 0:6bf0743ece18 83
demayer 0:6bf0743ece18 84 /** Stop the interface
demayer 0:6bf0743ece18 85 *
demayer 0:6bf0743ece18 86 * @return 0 on success, or error code on failure
demayer 0:6bf0743ece18 87 */
demayer 0:6bf0743ece18 88 virtual nsapi_error_t disconnect() = 0;
demayer 0:6bf0743ece18 89
demayer 0:6bf0743ece18 90 /** Scan for available networks
demayer 0:6bf0743ece18 91 *
demayer 0:6bf0743ece18 92 * This function will block. If the @a count is 0, function will only return count of available networks, so that
demayer 0:6bf0743ece18 93 * user can allocated necessary memory. If the \p count is grater than 0 and the a \p res is not NULL it'll be populated
demayer 0:6bf0743ece18 94 * with discovered networks up to value of \p count.
demayer 0:6bf0743ece18 95 *
demayer 0:6bf0743ece18 96 * @param res Pointer to allocated array to store discovered AP
demayer 0:6bf0743ece18 97 * @param count Size of allocated @a res array, or 0 to only count available AP
demayer 0:6bf0743ece18 98 * @return Number of entries in \p count, or if \p count was 0 number of available networks,
demayer 0:6bf0743ece18 99 * negative on error see @a nsapi_error
demayer 0:6bf0743ece18 100 */
demayer 0:6bf0743ece18 101 virtual nsapi_size_or_error_t scan(WiFiAccessPoint *res, nsapi_size_t count) = 0;
demayer 0:6bf0743ece18 102 };
demayer 0:6bf0743ece18 103
demayer 0:6bf0743ece18 104 #endif
demayer 0:6bf0743ece18 105
demayer 0:6bf0743ece18 106 /** @}*/