Murata Type YD Wi-Fi driver

Dependents:   easy-connect-type-yd

Committer:
MACRUM
Date:
Wed Jul 12 10:49:10 2017 +0000
Revision:
0:35a2186cf186
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:35a2186cf186 1 /* Copyright (C) 2014 Murata Manufacturing Co.,Ltd., MIT License
MACRUM 0:35a2186cf186 2 * muRata, SWITCH SCIENCE Wi-FI module TypeYD SNIC-UART.
MACRUM 0:35a2186cf186 3 *
MACRUM 0:35a2186cf186 4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
MACRUM 0:35a2186cf186 5 * and associated documentation files (the "Software"), to deal in the Software without restriction,
MACRUM 0:35a2186cf186 6 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
MACRUM 0:35a2186cf186 7 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
MACRUM 0:35a2186cf186 8 * furnished to do so, subject to the following conditions:
MACRUM 0:35a2186cf186 9 *
MACRUM 0:35a2186cf186 10 * The above copyright notice and this permission notice shall be included in all copies or
MACRUM 0:35a2186cf186 11 * substantial portions of the Software.
MACRUM 0:35a2186cf186 12 *
MACRUM 0:35a2186cf186 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
MACRUM 0:35a2186cf186 14 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
MACRUM 0:35a2186cf186 15 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
MACRUM 0:35a2186cf186 16 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
MACRUM 0:35a2186cf186 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MACRUM 0:35a2186cf186 18 */
MACRUM 0:35a2186cf186 19 #ifndef _SNIC_UART_COMMAND_MANAGER_H_
MACRUM 0:35a2186cf186 20 #define _SNIC_UART_COMMAND_MANAGER_H_
MACRUM 0:35a2186cf186 21 #include "SNICInterface/SNIC/MurataObject.h"
MACRUM 0:35a2186cf186 22 #include "mbed.h"
MACRUM 0:35a2186cf186 23 #include "rtos.h"
MACRUM 0:35a2186cf186 24
MACRUM 0:35a2186cf186 25 /** Max length of SSID */
MACRUM 0:35a2186cf186 26 #define SSID_MAX_LENGTH 32
MACRUM 0:35a2186cf186 27 /** Max length of BSSID */
MACRUM 0:35a2186cf186 28 #define BSSID_MAC_LENTH 6
MACRUM 0:35a2186cf186 29 /** Length of Country code */
MACRUM 0:35a2186cf186 30 #define COUNTRYC_CODE_LENTH 2
MACRUM 0:35a2186cf186 31
MACRUM 0:35a2186cf186 32 /** Wait signal ID of UART command */
MACRUM 0:35a2186cf186 33 #define UART_COMMAND_SIGNAL 0x00000001
MACRUM 0:35a2186cf186 34 /** Timeout of UART command wait(ms)*/
MACRUM 0:35a2186cf186 35 #define UART_COMMAND_WAIT_TIMEOUT 10000
MACRUM 0:35a2186cf186 36
MACRUM 0:35a2186cf186 37 /** Scan result structure used by scanresults handler
MACRUM 0:35a2186cf186 38 */
MACRUM 0:35a2186cf186 39 typedef struct {
MACRUM 0:35a2186cf186 40 bool is_complete;
MACRUM 0:35a2186cf186 41 /** Channel */
MACRUM 0:35a2186cf186 42 unsigned char channel;
MACRUM 0:35a2186cf186 43
MACRUM 0:35a2186cf186 44 /** RSSI */
MACRUM 0:35a2186cf186 45 signed char rssi;
MACRUM 0:35a2186cf186 46 /** Security type */
MACRUM 0:35a2186cf186 47 unsigned char security;
MACRUM 0:35a2186cf186 48 /** BSSID */
MACRUM 0:35a2186cf186 49 unsigned char bssid[BSSID_MAC_LENTH];
MACRUM 0:35a2186cf186 50 /** Network type */
MACRUM 0:35a2186cf186 51 unsigned char network_type;
MACRUM 0:35a2186cf186 52 /** Max data rate */
MACRUM 0:35a2186cf186 53 unsigned char max_rate;
MACRUM 0:35a2186cf186 54 /** SSID */
MACRUM 0:35a2186cf186 55 char ssid[SSID_MAX_LENGTH+1];
MACRUM 0:35a2186cf186 56 }tagSCAN_RESULT_T;
MACRUM 0:35a2186cf186 57
MACRUM 0:35a2186cf186 58 /** Internal class for managing the SNIC UART command.
MACRUM 0:35a2186cf186 59 */
MACRUM 0:35a2186cf186 60 class C_SNIC_UartCommandManager: public C_MurataObject
MACRUM 0:35a2186cf186 61 {
MACRUM 0:35a2186cf186 62 friend class C_SNIC_Core;
MACRUM 0:35a2186cf186 63 friend class C_SNIC_WifiInterface;
MACRUM 0:35a2186cf186 64 friend class TCPSocketConnection;
MACRUM 0:35a2186cf186 65 friend class TCPSocketServer;
MACRUM 0:35a2186cf186 66 friend class SnicUDPSocket;
MACRUM 0:35a2186cf186 67 friend class SnicSocket;
MACRUM 0:35a2186cf186 68
MACRUM 0:35a2186cf186 69 private:
MACRUM 0:35a2186cf186 70 virtual ~C_SNIC_UartCommandManager();
MACRUM 0:35a2186cf186 71
MACRUM 0:35a2186cf186 72 /** Set Command ID
MACRUM 0:35a2186cf186 73 @param cmd_id Command ID
MACRUM 0:35a2186cf186 74 */
MACRUM 0:35a2186cf186 75 void setCommandID( unsigned char cmd_id );
MACRUM 0:35a2186cf186 76
MACRUM 0:35a2186cf186 77 /** Get Command ID
MACRUM 0:35a2186cf186 78 @return Command ID
MACRUM 0:35a2186cf186 79 */
MACRUM 0:35a2186cf186 80 unsigned char getCommandID();
MACRUM 0:35a2186cf186 81
MACRUM 0:35a2186cf186 82 /** Set Command SubID
MACRUM 0:35a2186cf186 83 @param cmd_sid Command Sub ID
MACRUM 0:35a2186cf186 84 */
MACRUM 0:35a2186cf186 85 void setCommandSID( unsigned char cmd_sid );
MACRUM 0:35a2186cf186 86
MACRUM 0:35a2186cf186 87 /** Get Command SubID
MACRUM 0:35a2186cf186 88 @return Command Sub ID
MACRUM 0:35a2186cf186 89 */
MACRUM 0:35a2186cf186 90 unsigned char getCommandSID();
MACRUM 0:35a2186cf186 91
MACRUM 0:35a2186cf186 92 /** Set Command status
MACRUM 0:35a2186cf186 93 @param status Command status
MACRUM 0:35a2186cf186 94 */
MACRUM 0:35a2186cf186 95 void setCommandStatus( unsigned char status );
MACRUM 0:35a2186cf186 96
MACRUM 0:35a2186cf186 97 /** Get Command status
MACRUM 0:35a2186cf186 98 @return Command status
MACRUM 0:35a2186cf186 99 */
MACRUM 0:35a2186cf186 100 unsigned char getCommandStatus();
MACRUM 0:35a2186cf186 101
MACRUM 0:35a2186cf186 102 /** Set Response buffer
MACRUM 0:35a2186cf186 103 @param buf_p Pointer of response buffer
MACRUM 0:35a2186cf186 104 */
MACRUM 0:35a2186cf186 105 void setResponseBuf( unsigned char *buf_p );
MACRUM 0:35a2186cf186 106
MACRUM 0:35a2186cf186 107 /** Get Response buffer
MACRUM 0:35a2186cf186 108 @return Pointer of response buffer
MACRUM 0:35a2186cf186 109 */
MACRUM 0:35a2186cf186 110 unsigned char *getResponseBuf();
MACRUM 0:35a2186cf186 111
MACRUM 0:35a2186cf186 112 /** Set scan result callback hander
MACRUM 0:35a2186cf186 113 @param handler_p Pointer of callback function
MACRUM 0:35a2186cf186 114 */
MACRUM 0:35a2186cf186 115 void setScanResultHandler( void (*handler_p)(tagSCAN_RESULT_T *scan_result) );
MACRUM 0:35a2186cf186 116
MACRUM 0:35a2186cf186 117 void bufferredPacket( unsigned char *payload_p, int payload_len );
MACRUM 0:35a2186cf186 118
MACRUM 0:35a2186cf186 119 void bufferredUDPPacket( unsigned char *payload_p, int payload_len );
MACRUM 0:35a2186cf186 120
MACRUM 0:35a2186cf186 121 void scanResultIndicate( unsigned char *payload_p, int payload_len );
MACRUM 0:35a2186cf186 122
MACRUM 0:35a2186cf186 123 void connectedTCPClient( unsigned char *payload_p, int payload_len );
MACRUM 0:35a2186cf186 124
MACRUM 0:35a2186cf186 125 /** Checks in the command which is waiting from Command ID and Sub ID.
MACRUM 0:35a2186cf186 126 @param command_id Command ID
MACRUM 0:35a2186cf186 127 @param payload_p Command payload
MACRUM 0:35a2186cf186 128 @return true: Waiting command / false: Not waiting command
MACRUM 0:35a2186cf186 129 */
MACRUM 0:35a2186cf186 130 bool isWaitingCommand( unsigned int command_id, unsigned char *payload_p );
MACRUM 0:35a2186cf186 131
MACRUM 0:35a2186cf186 132 int wait();
MACRUM 0:35a2186cf186 133
MACRUM 0:35a2186cf186 134 int signal();
MACRUM 0:35a2186cf186 135
MACRUM 0:35a2186cf186 136 private:
MACRUM 0:35a2186cf186 137 /** Command request thread ID */
MACRUM 0:35a2186cf186 138 osThreadId mCommandThreadID;
MACRUM 0:35a2186cf186 139 /** Command ID */
MACRUM 0:35a2186cf186 140 unsigned char mCommandID;
MACRUM 0:35a2186cf186 141 /** Command SubID */
MACRUM 0:35a2186cf186 142 unsigned char mCommandSID;
MACRUM 0:35a2186cf186 143 /** Status of command response */
MACRUM 0:35a2186cf186 144 unsigned char mCommandStatus;
MACRUM 0:35a2186cf186 145 /** ResponseData of command response */
MACRUM 0:35a2186cf186 146 unsigned char *mResponseBuf_p;
MACRUM 0:35a2186cf186 147 /** Scan result handler */
MACRUM 0:35a2186cf186 148 void (*mScanResultHandler_p)(tagSCAN_RESULT_T *scan_result);
MACRUM 0:35a2186cf186 149 };
MACRUM 0:35a2186cf186 150
MACRUM 0:35a2186cf186 151 #endif
MACRUM 0:35a2186cf186 152