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
Diff: WiconnectTypes.h
- Revision:
- 0:ea85c4bb5e1f
- Child:
- 1:6ec9998427ad
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WiconnectTypes.h Mon Aug 11 09:58:24 2014 +0000 @@ -0,0 +1,222 @@ +/* + * 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; + +} +