SNIC UART Interface library: Serial to Wi-Fi library for Murata TypeYD Wi-Fi module. For more information about TypeYD: http://www.murata.co.jp/products/microwave/module/lbwb1zzydz/index.html
Dependents: SNIC-xively-jumpstart-demo SNIC-FluentLogger-example TCPEchoServer murataDemo ... more
Fork of YDwifiInterface by
Diff: SNIC/SNIC_Core.h
- Revision:
- 20:dd736d328de6
- Child:
- 21:dda155fe5048
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SNIC/SNIC_Core.h Thu Mar 27 06:52:04 2014 +0000
@@ -0,0 +1,263 @@
+/******************* Murata Manufacturing Co.,Ltd. 2014 *****************
+ *
+ * Filename: SNIC_Core.h
+ *
+ * Purpose: This module has define of internal common function for API.
+ *
+ * $Author: kishino $
+ *
+ * $Date: 2014/03/26 $
+ *
+ * $Revision: 0.0.0.1 $
+ * ***********************************************************************/
+#ifndef _SNIC_CORE_H_
+#define _SNIC_CORE_H_
+
+#include "mbed.h"
+#include "rtos.h"
+#include "RawSerial.h"
+#include "CBuffer.h"
+
+#include "SNIC_UartCommandManager.h"
+
+namespace murata_wifi
+{
+#define UART_REQUEST_PAYLOAD_MAX 256
+
+#define MEMPOOL_BLOCK_SIZE 2048
+#define MEMPOOL_PAYLOAD_NUM 1
+typedef struct
+{
+ unsigned char buf[MEMPOOL_BLOCK_SIZE];
+}tagMEMPOOL_BLOCK_T;
+
+#define MAX_SOCKET_ID 5
+
+/** Connection information
+*/
+typedef struct {
+ CircBuffer<unsigned char> *recvbuf_p;
+ bool is_connected;
+ bool is_received;
+}tagCONNECT_INFO_T;
+
+/** Wi-Fi security
+ */
+typedef enum SECURITY {
+ /** Securiry Open */
+ e_SEC_OPEN = 0x00,
+ /** Securiry WEP */
+ e_SEC_WEP = 0x01,
+ /** Securiry WPA-PSK(TKIP) */
+ e_SEC_WPA_TKIP = 0x02,
+ /** Securiry WPA2-PSK(AES) */
+ e_SEC_WPA2_AES = 0x04,
+ /** Securiry WPA2-PSK(TKIP/AES) */
+ e_SEC_WPA2_MIXED = 0x06,
+ /** Securiry WPA-PSK(AES) */
+ e_SEC_WPA_AES = 0x07
+}E_SECURITY;
+
+/** Wi-Fi Network type
+ */
+typedef enum NETWORK_TYPE {
+ /** Infrastructure */
+ e_INFRA = 0,
+ /** Adhoc */
+ e_ADHOC = 1
+}E_NETWORK_TYPE;
+
+/** Wi-Fi status
+ */
+typedef enum WIFI_STATUS {
+ /** Wi-Fi OFF */
+ e_STATUS_OFF = 0,
+ /** No network */
+ e_NO_NETWORK,
+ /** Connected to AP (STA mode) */
+ e_STA_JOINED,
+ /** Started on AP mode */
+ e_AP_STARTED
+}E_WIFI_STATUS;
+
+/** GEN_FW_VER_GET_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+}tagGEN_FW_VER_GET_REQ_T;
+
+/** SNIC_INIT_REQ */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned short buf_size;
+}tagSNIC_INIT_REQ_T;
+
+/** SNIC_TCP_CREATE_SOCKET_REQ */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned char bind;
+ unsigned char local_addr[4];
+ unsigned char local_port[2];
+}tagSNIC_TCP_CREATE_SOCKET_REQ_T;
+
+/** SNIC_TCP_SEND_FROM_SOCKET_REQ */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned char socket_id;
+ unsigned char option;
+ unsigned char payload_len[2];
+}tagSNIC_TCP_SEND_FROM_SOCKET_REQ_T;
+
+/** SNIC_TCP_CONNECT_TO_SERVER_REQ */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned char socket_id;
+ unsigned char remote_addr[4];
+ unsigned char remote_port[2];
+ unsigned char recv_bufsize[2];
+ unsigned char timeout;
+}tagSNIC_TCP_CONNECT_TO_SERVER_REQ_T;
+
+/** WIFI_ON_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ char country[COUNTRYC_CODE_LENTH];
+}tagWIFI_ON_REQ_T;
+
+/** WIFI_OFF_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+}tagWIFI_OFF_REQ_T;
+
+/** WIFI_DISCONNECT_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+}tagWIFI_DISCONNECT_REQ_T;
+
+/** WIFI_GET_STA_RSSI_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+}tagWIFI_GET_STA_RSSI_REQ_T;
+
+/** WIFI_GET_STATUS_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned char interface;
+}tagWIFI_GET_STATUS_REQ_T;
+
+/** WIFI_SCAN_REQ Command */
+typedef struct
+{
+ unsigned char cmd_sid;
+ unsigned char seq;
+ unsigned char scan_type;
+ unsigned char bss_type;
+ unsigned char bssid[BSSID_MAC_LENTH];
+ unsigned char chan_list;
+ unsigned char ssid[SSID_MAX_LENGTH+1];
+}tagWIFI_SCAN_REQ_T;
+
+/** C_SNIC_Core class
+ */
+class C_SNIC_Core
+{
+public:
+
+ /** Get buffer for command from memory pool.
+ @return Pointer of buffer
+ */
+ tagMEMPOOL_BLOCK_T *allocCmdBuf();
+
+ /** Release buffer to memory pool.
+ @param buf_p Pointer of buffer
+ */
+ void freeCmdBuf( tagMEMPOOL_BLOCK_T *buf_p );
+
+ /** Initialize UART
+ */
+ int initUart( PinName tx, PinName rx, int baud );
+
+ /** Send data to UART
+ @param len Length of send data
+ @param data Pointer of send data
+ @return 0:success/other:fail
+ */
+ int sendUart( unsigned int len, unsigned char *data );
+
+ /** Preparation of the UART command
+ @param cmd_id UART Command ID
+ @param cmd_sid UART Command SubID
+ @param req_buf_p Pointer of UART request buffer
+ @param req_buf_len Length of UART request buffer
+ @param response_buf_p Pointer of UART response buffer
+ @param command_p Pointer of UART command[output]
+ @return Length of UART command.
+ */
+ unsigned int preparationSendCommand( unsigned char cmd_id, unsigned char cmd_sid
+ , unsigned char *req_buf_p, unsigned int req_buf_len
+ , unsigned char *response_buf_p, unsigned char *command_p );
+
+ /**
+ Get pointer of connection information.
+ @param socket_id Socket ID
+ @return The pointer of connection information
+ */
+ tagCONNECT_INFO_T *getConnectInfo( int socket_id );
+
+ /**
+ Get pointer of the instance of C_SNIC_UartCommandManager.
+ @return The pointer of the instance of C_SNIC_UartCommandManager.
+ */
+ C_SNIC_UartCommandManager *getUartCommand();
+
+ /** Get an instance of the C_SNIC_Core class.
+ @return Instance of the C_SNIC_Core class
+ @note Please do not create an instance in the default constructor this class.
+ Please use this method when you want to get an instance.
+ */
+ static C_SNIC_Core *getInstance();
+
+private:
+ static C_SNIC_Core *mInstance_p;
+ Thread *mUartRecvThread_p;
+ RawSerial *mUart_p;
+ Mutex mUartMutex;
+// DigitalInOut mModuleReset;
+ C_SNIC_UartCommandManager *mUartCommand_p;
+
+ /** MemoryPool for payload of UART response */
+ MemoryPool<tagMEMPOOL_BLOCK_T, MEMPOOL_PAYLOAD_NUM> mMemPoolPayload;
+
+ /** Socket buffer */
+ tagCONNECT_INFO_T mConnectInfo[MAX_SOCKET_ID+1];
+
+ /** Constructor
+ */
+ C_SNIC_Core();
+
+ /** Receiving thread of UART
+ */
+ static void uartRecvThread( void const *args_p );
+};
+}
+
+#endif
\ No newline at end of file
muRata

Murata TypeYD