Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
WiconnectTypes.h
- Committer:
- dan_ackme
- Date:
- 2014-08-11
- Revision:
- 6:8a87a59d0d21
- Parent:
- 1:6ec9998427ad
- Child:
- 11:ea484e1b7fc4
File content as of revision 6:8a87a59d0d21:
/* * Copyright 2014, ACKme Networks * All Rights Reserved. * * This is UNPUBLISHED PROPRIETARY SOURCE CODE of ACKme Networks; * the contents of this file may not be disclosed to third parties, copied * or duplicated in any form, in whole or in part, without the prior * written permission of ACKme Networks. */ #pragma once #include <stdint.h> #include <stdarg.h> #include "sdk.h" namespace wiconnect { #ifndef MIN #define MIN(x,y) ((x) < (y) ? (x) : (y)) #endif #ifndef MAX #define MAX(x,y) ((x) > (y) ? (x) : (y)) #endif #define ALIGN_n(x, n) ((((uint32_t)x) + ((n)-1)) & ~((n)-1)) #define ALIGN_8(x) ALIGN_n(x, 8) #define ALIGN_4(x) ALIGN_n(x, 4) #ifndef OFFSETOF #define OFFSETOF(type, member) ((uintptr_t)&((type *)0)->member) #endif #define ARRAY_COUNT(x) (sizeof (x) / sizeof *(x)) #define WICONNECT_FAILED(result, func) ((int)(result = (func)) < (int)wiconnect::WICONNECT_SUCCESS) #define WICONNECT_SUCCEEDED(result, func) ((result = (func)) == wiconnect::WICONNECT_SUCCESS) #define WICONNECT_NULL_RESPONSE_HANDLER WiconnectAsyncCallback() #define WICONNECT_MAX_CMD_SIZE 128 #define WICONNECT_MAX_VERSION_SIZE 96 #define WICONNECT_MAX_SOCKETS 8 #define SOCKET_INVALID_HANDLE ((uint8_t)0xFF) typedef enum { WICONNECT_ABORTED = 3, WICONNECT_IDLE = 2, WICONNECT_PROCESSING = 1, WICONNECT_SUCCESS = 0, WICONNECT_ERROR = -1, WICONNECT_CMD_RESPONSE_ERROR = -2, WICONNECT_NULL_BUFFER = -3, WICONNECT_NOT_INITIALIZED = -4, WICONNECT_OVERFLOW = -5, WICONNECT_TIMEOUT = -6, WICONNECT_RESPONSE_HANDLER_NULL = -7, WICONNECT_RESPONSE_PARSE_ERROR = -8, WICONNECT_ANOTHER_CMD_EXECUTING = -9, WICONNECT_BAD_ARG = -10, WICONNECT_UNSUPPORTED = -11, WICONNECT_PINNAME_TO_GPIO_MAPPER_NULL = -12, WICONNECT_DUPLICATE = -13, WICONNECT_NOT_FOUND = -14, WICONNECT_PINNAME_TO_GPIO_NO_MAPPING = -15, WICONNECT_NOT_CONNECTED = -16, WICONNECT_UNDERFLOW = -17, WICONNECT_MONITOR_NOT_AVAILABLE = -18, WICONNECT_NOT_OPENED_FOR_READING = -19, } WiconnectResult; typedef enum { NETWORK_STATUS_DOWN, NETWORK_STATUS_WIFI_ONLY, NETWORK_STATUS_UP } NetworkStatus; typedef enum { NETWORK_RSSI_EXCELLENT = 0, ///< > -20 dBm NETWORK_RSSI_VERY_GOOD = 1, ///< > -35 dBm NETWORK_RSSI_GOOD = 2, ///< > -50 dBm NETWORK_RSSI_POOR = 3, ///< > -70 dBm NETWORK_RSSI_VERY_POOR = 4, ///< < -71 dBm NETWORK_RSSI_UNKNOWN = 5 ///< Not available } NetworkSignalStrength; typedef enum { NETWORK_SECURITY_OPEN, NETWORK_SECURITY_WEP_PSK, NETWORK_SECURITY_WPA_AES_PSK, NETWORK_SECURITY_WPA_TKIP_PSK, NETWORK_SECURITY_WPA2_AES_PSK, NETWORK_SECURITY_WPA2_MIXED_PSK, NETWORK_SECURITY_WPA2_TKIP_PSK, NETWORK_SECURITY_UNKNOWN } NetworkSecurity; typedef struct { uint8_t val[32]; uint8_t len; } Ssid; typedef struct { uint8_t octet[6]; } MacAddress; typedef char MacAddressStrBuffer[18]; typedef char SsidStrBuffer[129]; typedef char IpStrBuffer[18]; typedef enum { SOCKET_TYPE_UNKNOWN, SOCKET_TYPE_TCP, SOCKET_TYPE_TLS, SOCKET_TYPE_UDP, SOCKET_TYPE_HTTP, } SocketType; typedef enum { SOCKET_HTTP_GET, SOCKET_HTTP_POST, SOCKET_HTTP_HEAD, } HttpSocketType; typedef struct { const char *contextType; const char *certName; bool openOnly; HttpSocketType type; } HttpSocketArgs; typedef int8_t (*PinToGpioMapper)(Pin pin); typedef enum { FILE_FLAG_NONE = 0, FILE_FLAG_VALID = (1 << 0), FILE_FLAG_EXECUTABLE = (1 << 1), FILE_FLAG_ENCRYPTED = (1 << 2), FILE_FLAG_INTERNAL = (1 << 3), FILE_FLAG_BOOTABLE = (1 << 4), FILE_FLAG_USER = (1 << 5), FILE_FLAG_ESSENTIAL = (1 << 6), FILE_FLAG_BACKUP = (1 << 7), FILE_FLAG_FORCE_COPY = (1 << 15), FILE_FLAG_INVALID = 0xFFFF } FileFlags; typedef enum { FILE_TYPE_UPGRADE_APP = 0x00, FILE_TYPE_WIFI_FW = 0x01, FILE_TYPE_SHARED_LIB = 0x02, FILE_TYPE_TLS_CERT = 0x03, FILE_TYPE_TXT_LOG = 0x04, FILE_TYPE_DCT = 0x05, FILE_TYPE_MISC_APP = 0x80, FILE_TYPE_REGULAR_APP = 0x81, FILE_TYPE_USER_RANGE_START = 150, FILE_TYPE_USER_RANGE_END = 199, FILE_TYPE_TEMPORY = 0xF9, FILE_TYPE_GPIO_CONFIG = 0xFA, FILE_TYPE_COMMAND_HELP = 0xFB, FILE_TYPE_SDC_CAPS = 0xFC, FILE_TYPE_SETUP_SCRIPT = 0xFD, FILE_TYPE_MISC_FIX_LEN = 0xFE, FILE_TYPE_UNKNOWN = 0xFF, FILE_TYPE_ANY = FILE_TYPE_UNKNOWN } FileType; typedef struct { int size; uint8_t *buffer; uint8_t *ptr; int bytesPending; bool allocated; } Buffer; class Wiconnect; class TimeoutTimer; class PeriodicTimer; class QueuedCommand; class CommandQueue; class LogFunc; class ReaderFunc; class Callback; class ScanResult; class ScanResultList; class Socket; class WiconnectSerial; class File; class FileList; class Gpio; class SocketIrqHandlerMap; }