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

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;
+
+}
+