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
YDwifiInterface.cpp@3:9f90024d7fb2, 2014-03-13 (annotated)
- Committer:
- kishino
- Date:
- Thu Mar 13 01:34:56 2014 +0000
- Revision:
- 3:9f90024d7fb2
- Parent:
- 2:0ba43344c814
- Child:
- 5:ef3befe3edad
The following API was created.; =>Connect to AP.; =>Disconnect from AP.; =>Scan AP.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kishino | 0:61c402886fbb | 1 | #include "YDwifiInterface.h" |
| kishino | 2:0ba43344c814 | 2 | #include "YDwifi_uartmsg.h" |
| kishino | 0:61c402886fbb | 3 | |
| kishino | 2:0ba43344c814 | 4 | using namespace murata_wifi; |
| kishino | 2:0ba43344c814 | 5 | |
| kishino | 2:0ba43344c814 | 6 | #define MEMPOOL_BLOCK_SIZE 2048 |
| kishino | 2:0ba43344c814 | 7 | typedef struct |
| kishino | 2:0ba43344c814 | 8 | { |
| kishino | 2:0ba43344c814 | 9 | unsigned char buf[MEMPOOL_BLOCK_SIZE]; |
| kishino | 2:0ba43344c814 | 10 | }tagMEMPOOL_BLOCK_T; |
| kishino | 2:0ba43344c814 | 11 | #define MEMPOOL_PAYLOAD_NUM 1 |
| kishino | 2:0ba43344c814 | 12 | /** MemoryPool for payload of UART response */ |
| kishino | 2:0ba43344c814 | 13 | MemoryPool<tagMEMPOOL_BLOCK_T, MEMPOOL_PAYLOAD_NUM> gMEMPOOL_PAYLOAD; |
| kishino | 2:0ba43344c814 | 14 | |
| kishino | 3:9f90024d7fb2 | 15 | #define UART_REQUEST_PAYLOAD_MAX 256 |
| kishino | 0:61c402886fbb | 16 | |
| kishino | 0:61c402886fbb | 17 | C_YDwifiInterface::C_YDwifiInterface( PinName tx, PinName rx, PinName cts, PinName rts, PinName reset, PinName alarm, int baud): |
| kishino | 0:61c402886fbb | 18 | C_YDwifi(tx, rx, cts, rts, reset, alarm, baud) |
| kishino | 0:61c402886fbb | 19 | { |
| kishino | 0:61c402886fbb | 20 | } |
| kishino | 0:61c402886fbb | 21 | |
| kishino | 0:61c402886fbb | 22 | int C_YDwifiInterface::init() |
| kishino | 0:61c402886fbb | 23 | { |
| kishino | 0:61c402886fbb | 24 | /* Initialize UART */ |
| kishino | 0:61c402886fbb | 25 | initUart(); |
| kishino | 0:61c402886fbb | 26 | return 0; |
| kishino | 2:0ba43344c814 | 27 | } |
| kishino | 2:0ba43344c814 | 28 | |
| kishino | 2:0ba43344c814 | 29 | int C_YDwifiInterface::getFWVersion( unsigned char *version_p ) |
| kishino | 2:0ba43344c814 | 30 | { |
| kishino | 3:9f90024d7fb2 | 31 | // Get buffer for response payload from MemoryPool |
| kishino | 2:0ba43344c814 | 32 | tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc(); |
| kishino | 2:0ba43344c814 | 33 | if( payload_buf == NULL ) |
| kishino | 2:0ba43344c814 | 34 | { |
| kishino | 2:0ba43344c814 | 35 | printf("getFWVersion payload_buf NULL\r\n"); |
| kishino | 2:0ba43344c814 | 36 | return -1; |
| kishino | 2:0ba43344c814 | 37 | } |
| kishino | 2:0ba43344c814 | 38 | |
| kishino | 2:0ba43344c814 | 39 | tagGEN_FW_VER_GET_REQ_T req; |
| kishino | 3:9f90024d7fb2 | 40 | unsigned char payload_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 41 | unsigned char command_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 2:0ba43344c814 | 42 | unsigned short payload_len; |
| kishino | 2:0ba43344c814 | 43 | unsigned int command_len; |
| kishino | 2:0ba43344c814 | 44 | int ret; |
| kishino | 2:0ba43344c814 | 45 | |
| kishino | 2:0ba43344c814 | 46 | // Make request |
| kishino | 2:0ba43344c814 | 47 | req.cmd_sid = UART_CMD_SID_GEN_FW_VER_GET_REQ; |
| kishino | 3:9f90024d7fb2 | 48 | req.seq = mUartRequestSeq++; |
| kishino | 2:0ba43344c814 | 49 | |
| kishino | 2:0ba43344c814 | 50 | // Make command payload |
| kishino | 2:0ba43344c814 | 51 | payload_len = C_YD_UartMsg::makePayload( sizeof(tagGEN_FW_VER_GET_REQ_T), (unsigned char *)&req, payload_array ); |
| kishino | 2:0ba43344c814 | 52 | // Make all command request |
| kishino | 2:0ba43344c814 | 53 | command_len = C_YD_UartMsg::makeRequest( UART_CMD_ID_GEN, payload_array, payload_len, command_array ); |
| kishino | 2:0ba43344c814 | 54 | |
| kishino | 2:0ba43344c814 | 55 | // Set data for response |
| kishino | 2:0ba43344c814 | 56 | mUartCommand.setCommandID( UART_CMD_ID_GEN ); |
| kishino | 3:9f90024d7fb2 | 57 | mUartCommand.setCommandSID( req.cmd_sid ); |
| kishino | 2:0ba43344c814 | 58 | mUartCommand.setResponseBuf( payload_buf->buf ); |
| kishino | 2:0ba43344c814 | 59 | |
| kishino | 2:0ba43344c814 | 60 | // Send uart command request |
| kishino | 2:0ba43344c814 | 61 | sendUart( command_len, command_array ); |
| kishino | 2:0ba43344c814 | 62 | |
| kishino | 2:0ba43344c814 | 63 | // Wait UART response |
| kishino | 2:0ba43344c814 | 64 | ret = mUartCommand.wait(); |
| kishino | 2:0ba43344c814 | 65 | printf( "getFWversion wait:%d\r\n", ret ); |
| kishino | 2:0ba43344c814 | 66 | if( ret != 0 ) |
| kishino | 2:0ba43344c814 | 67 | { |
| kishino | 2:0ba43344c814 | 68 | printf( "getFWversion failed\r\n" ); |
| kishino | 2:0ba43344c814 | 69 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 2:0ba43344c814 | 70 | return -1; |
| kishino | 2:0ba43344c814 | 71 | } |
| kishino | 2:0ba43344c814 | 72 | |
| kishino | 2:0ba43344c814 | 73 | if( mUartCommand.getCommandStatus() == 0 ) |
| kishino | 2:0ba43344c814 | 74 | { |
| kishino | 2:0ba43344c814 | 75 | unsigned char version_len = payload_buf->buf[3]; |
| kishino | 2:0ba43344c814 | 76 | memcpy( version_p, &payload_buf->buf[4], version_len ); |
| kishino | 2:0ba43344c814 | 77 | } |
| kishino | 2:0ba43344c814 | 78 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 2:0ba43344c814 | 79 | return 0; |
| kishino | 2:0ba43344c814 | 80 | } |
| kishino | 3:9f90024d7fb2 | 81 | |
| kishino | 3:9f90024d7fb2 | 82 | int C_YDwifiInterface::connect(const char *ssid_p, unsigned char ssid_len, E_SECURITY sec_type |
| kishino | 3:9f90024d7fb2 | 83 | , const char *sec_key_p, unsigned char sec_key_len) |
| kishino | 3:9f90024d7fb2 | 84 | { |
| kishino | 3:9f90024d7fb2 | 85 | // Parameter check(SSID) |
| kishino | 3:9f90024d7fb2 | 86 | if( (ssid_p == NULL) || (ssid_len == 0) ) |
| kishino | 3:9f90024d7fb2 | 87 | { |
| kishino | 3:9f90024d7fb2 | 88 | printf( "connect failed [ parameter NG:SSID ]\r\n" ); |
| kishino | 3:9f90024d7fb2 | 89 | return -1; |
| kishino | 3:9f90024d7fb2 | 90 | } |
| kishino | 3:9f90024d7fb2 | 91 | |
| kishino | 3:9f90024d7fb2 | 92 | // Parameter check(Security key) |
| kishino | 3:9f90024d7fb2 | 93 | if( (sec_type != e_SEC_OPEN) && ( (sec_key_len == 0) || (sec_key_p == NULL) ) ) |
| kishino | 3:9f90024d7fb2 | 94 | { |
| kishino | 3:9f90024d7fb2 | 95 | printf( "connect failed [ parameter NG:Security key ]\r\n" ); |
| kishino | 3:9f90024d7fb2 | 96 | return -1; |
| kishino | 3:9f90024d7fb2 | 97 | } |
| kishino | 3:9f90024d7fb2 | 98 | |
| kishino | 3:9f90024d7fb2 | 99 | // Get buffer for response payloadfrom MemoryPool |
| kishino | 3:9f90024d7fb2 | 100 | tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc(); |
| kishino | 3:9f90024d7fb2 | 101 | if( payload_buf == NULL ) |
| kishino | 3:9f90024d7fb2 | 102 | { |
| kishino | 3:9f90024d7fb2 | 103 | printf("connect payload_buf NULL\r\n"); |
| kishino | 3:9f90024d7fb2 | 104 | return -1; |
| kishino | 3:9f90024d7fb2 | 105 | } |
| kishino | 3:9f90024d7fb2 | 106 | |
| kishino | 3:9f90024d7fb2 | 107 | unsigned char buf[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 108 | unsigned char payload_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 109 | unsigned char command_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 110 | unsigned int buf_len = 0; |
| kishino | 3:9f90024d7fb2 | 111 | unsigned short payload_len; |
| kishino | 3:9f90024d7fb2 | 112 | unsigned int command_len; |
| kishino | 3:9f90024d7fb2 | 113 | int ret; |
| kishino | 3:9f90024d7fb2 | 114 | |
| kishino | 3:9f90024d7fb2 | 115 | memset( buf, 0, UART_REQUEST_PAYLOAD_MAX ); |
| kishino | 3:9f90024d7fb2 | 116 | // Make request |
| kishino | 3:9f90024d7fb2 | 117 | buf[0] = UART_CMD_SID_WIFI_JOIN_REQ; |
| kishino | 3:9f90024d7fb2 | 118 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 119 | buf[1] = mUartRequestSeq++; |
| kishino | 3:9f90024d7fb2 | 120 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 121 | // SSID |
| kishino | 3:9f90024d7fb2 | 122 | memcpy( &buf[2], ssid_p, ssid_len ); |
| kishino | 3:9f90024d7fb2 | 123 | buf_len += ssid_len; |
| kishino | 3:9f90024d7fb2 | 124 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 125 | |
| kishino | 3:9f90024d7fb2 | 126 | // Security mode |
| kishino | 3:9f90024d7fb2 | 127 | buf[ buf_len ] = (unsigned char)sec_type; |
| kishino | 3:9f90024d7fb2 | 128 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 129 | |
| kishino | 3:9f90024d7fb2 | 130 | // Security key |
| kishino | 3:9f90024d7fb2 | 131 | if( sec_type != e_SEC_OPEN ) |
| kishino | 3:9f90024d7fb2 | 132 | { |
| kishino | 3:9f90024d7fb2 | 133 | buf[ buf_len ] = sec_key_len; |
| kishino | 3:9f90024d7fb2 | 134 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 135 | if( sec_key_len > 0 ) |
| kishino | 3:9f90024d7fb2 | 136 | { |
| kishino | 3:9f90024d7fb2 | 137 | memcpy( &buf[buf_len], sec_key_p, sec_key_len ); |
| kishino | 3:9f90024d7fb2 | 138 | buf_len += sec_key_len; |
| kishino | 3:9f90024d7fb2 | 139 | } |
| kishino | 3:9f90024d7fb2 | 140 | } |
| kishino | 3:9f90024d7fb2 | 141 | // Make command payload |
| kishino | 3:9f90024d7fb2 | 142 | payload_len = C_YD_UartMsg::makePayload( buf_len, (unsigned char *)buf, payload_array ); |
| kishino | 3:9f90024d7fb2 | 143 | // Make all command request |
| kishino | 3:9f90024d7fb2 | 144 | command_len = C_YD_UartMsg::makeRequest( UART_CMD_ID_WIFI, payload_array, payload_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 145 | // Set data for response |
| kishino | 3:9f90024d7fb2 | 146 | mUartCommand.setCommandID( UART_CMD_ID_WIFI ); |
| kishino | 3:9f90024d7fb2 | 147 | mUartCommand.setCommandSID( UART_CMD_SID_WIFI_JOIN_REQ ); |
| kishino | 3:9f90024d7fb2 | 148 | mUartCommand.setResponseBuf( payload_buf->buf ); |
| kishino | 3:9f90024d7fb2 | 149 | |
| kishino | 3:9f90024d7fb2 | 150 | // Send uart command request |
| kishino | 3:9f90024d7fb2 | 151 | sendUart( command_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 152 | |
| kishino | 3:9f90024d7fb2 | 153 | // Wait UART response |
| kishino | 3:9f90024d7fb2 | 154 | ret = mUartCommand.wait(); |
| kishino | 3:9f90024d7fb2 | 155 | if( ret != 0 ) |
| kishino | 3:9f90024d7fb2 | 156 | { |
| kishino | 3:9f90024d7fb2 | 157 | printf( "join failed\r\n" ); |
| kishino | 3:9f90024d7fb2 | 158 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 159 | return -1; |
| kishino | 3:9f90024d7fb2 | 160 | } |
| kishino | 3:9f90024d7fb2 | 161 | |
| kishino | 3:9f90024d7fb2 | 162 | if( mUartCommand.getCommandStatus() != 0 ) |
| kishino | 3:9f90024d7fb2 | 163 | { |
| kishino | 3:9f90024d7fb2 | 164 | printf("join status:%02x\r\n", mUartCommand.getCommandStatus()); |
| kishino | 3:9f90024d7fb2 | 165 | ret = -1; |
| kishino | 3:9f90024d7fb2 | 166 | } |
| kishino | 3:9f90024d7fb2 | 167 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 168 | |
| kishino | 3:9f90024d7fb2 | 169 | return ret; |
| kishino | 3:9f90024d7fb2 | 170 | } |
| kishino | 3:9f90024d7fb2 | 171 | |
| kishino | 3:9f90024d7fb2 | 172 | int C_YDwifiInterface::disconnect() |
| kishino | 3:9f90024d7fb2 | 173 | { |
| kishino | 3:9f90024d7fb2 | 174 | // Get buffer for response payloadfrom MemoryPool |
| kishino | 3:9f90024d7fb2 | 175 | tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc(); |
| kishino | 3:9f90024d7fb2 | 176 | if( payload_buf == NULL ) |
| kishino | 3:9f90024d7fb2 | 177 | { |
| kishino | 3:9f90024d7fb2 | 178 | printf("disconnect payload_buf NULL\r\n"); |
| kishino | 3:9f90024d7fb2 | 179 | return -1; |
| kishino | 3:9f90024d7fb2 | 180 | } |
| kishino | 3:9f90024d7fb2 | 181 | |
| kishino | 3:9f90024d7fb2 | 182 | tagWIFI_DISCONNECT_REQ_T req; |
| kishino | 3:9f90024d7fb2 | 183 | unsigned char payload_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 184 | unsigned char command_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 185 | unsigned short payload_len; |
| kishino | 3:9f90024d7fb2 | 186 | unsigned int command_len; |
| kishino | 3:9f90024d7fb2 | 187 | int ret; |
| kishino | 3:9f90024d7fb2 | 188 | |
| kishino | 3:9f90024d7fb2 | 189 | // Make request |
| kishino | 3:9f90024d7fb2 | 190 | req.cmd_sid = UART_CMD_SID_WIFI_DISCONNECT_REQ; |
| kishino | 3:9f90024d7fb2 | 191 | req.seq = mUartRequestSeq++; |
| kishino | 3:9f90024d7fb2 | 192 | |
| kishino | 3:9f90024d7fb2 | 193 | // Make command payload |
| kishino | 3:9f90024d7fb2 | 194 | payload_len = C_YD_UartMsg::makePayload( sizeof(tagWIFI_DISCONNECT_REQ_T), (unsigned char *)&req, payload_array ); |
| kishino | 3:9f90024d7fb2 | 195 | // Make all command request |
| kishino | 3:9f90024d7fb2 | 196 | command_len = C_YD_UartMsg::makeRequest( UART_CMD_ID_WIFI, payload_array, payload_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 197 | |
| kishino | 3:9f90024d7fb2 | 198 | // Set data for response |
| kishino | 3:9f90024d7fb2 | 199 | mUartCommand.setCommandID( UART_CMD_ID_WIFI ); |
| kishino | 3:9f90024d7fb2 | 200 | mUartCommand.setCommandSID( req.cmd_sid ); |
| kishino | 3:9f90024d7fb2 | 201 | mUartCommand.setResponseBuf( payload_buf->buf ); |
| kishino | 3:9f90024d7fb2 | 202 | |
| kishino | 3:9f90024d7fb2 | 203 | // Send uart command request |
| kishino | 3:9f90024d7fb2 | 204 | sendUart( command_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 205 | |
| kishino | 3:9f90024d7fb2 | 206 | // Wait UART response |
| kishino | 3:9f90024d7fb2 | 207 | ret = mUartCommand.wait(); |
| kishino | 3:9f90024d7fb2 | 208 | if( ret != 0 ) |
| kishino | 3:9f90024d7fb2 | 209 | { |
| kishino | 3:9f90024d7fb2 | 210 | printf( "disconnect failed\r\n" ); |
| kishino | 3:9f90024d7fb2 | 211 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 212 | return -1; |
| kishino | 3:9f90024d7fb2 | 213 | } |
| kishino | 3:9f90024d7fb2 | 214 | |
| kishino | 3:9f90024d7fb2 | 215 | if( mUartCommand.getCommandStatus() != 0 ) |
| kishino | 3:9f90024d7fb2 | 216 | { |
| kishino | 3:9f90024d7fb2 | 217 | printf("disconnect status:%02x\r\n", mUartCommand.getCommandStatus()); |
| kishino | 3:9f90024d7fb2 | 218 | ret = -1; |
| kishino | 3:9f90024d7fb2 | 219 | } |
| kishino | 3:9f90024d7fb2 | 220 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 221 | return 0; |
| kishino | 3:9f90024d7fb2 | 222 | } |
| kishino | 3:9f90024d7fb2 | 223 | |
| kishino | 3:9f90024d7fb2 | 224 | int C_YDwifiInterface::scan( const char *ssid_p, unsigned char *bssid_p |
| kishino | 3:9f90024d7fb2 | 225 | , void (*result_handler_p)(tagSCAN_RESULT_T *scan_result) ) |
| kishino | 3:9f90024d7fb2 | 226 | { |
| kishino | 3:9f90024d7fb2 | 227 | // Get buffer for response payloadfrom MemoryPool |
| kishino | 3:9f90024d7fb2 | 228 | tagMEMPOOL_BLOCK_T *payload_buf = gMEMPOOL_PAYLOAD.alloc(); |
| kishino | 3:9f90024d7fb2 | 229 | if( payload_buf == NULL ) |
| kishino | 3:9f90024d7fb2 | 230 | { |
| kishino | 3:9f90024d7fb2 | 231 | printf("scan payload_buf NULL\r\n"); |
| kishino | 3:9f90024d7fb2 | 232 | return -1; |
| kishino | 3:9f90024d7fb2 | 233 | } |
| kishino | 3:9f90024d7fb2 | 234 | |
| kishino | 3:9f90024d7fb2 | 235 | tagWIFI_SCAN_REQ_T req; |
| kishino | 3:9f90024d7fb2 | 236 | unsigned char payload_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 237 | unsigned char command_array[UART_REQUEST_PAYLOAD_MAX]; |
| kishino | 3:9f90024d7fb2 | 238 | unsigned short payload_len; |
| kishino | 3:9f90024d7fb2 | 239 | unsigned int command_len; |
| kishino | 3:9f90024d7fb2 | 240 | unsigned int buf_len = 0; |
| kishino | 3:9f90024d7fb2 | 241 | int ret; |
| kishino | 3:9f90024d7fb2 | 242 | |
| kishino | 3:9f90024d7fb2 | 243 | memset( &req, 0, sizeof(tagWIFI_SCAN_REQ_T) ); |
| kishino | 3:9f90024d7fb2 | 244 | // Make request |
| kishino | 3:9f90024d7fb2 | 245 | req.cmd_sid = UART_CMD_SID_WIFI_SCAN_REQ; |
| kishino | 3:9f90024d7fb2 | 246 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 247 | req.seq = mUartRequestSeq++; |
| kishino | 3:9f90024d7fb2 | 248 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 249 | |
| kishino | 3:9f90024d7fb2 | 250 | // Set scan type(Active scan) |
| kishino | 3:9f90024d7fb2 | 251 | req.scan_type = 0; |
| kishino | 3:9f90024d7fb2 | 252 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 253 | // Set bss type(any) |
| kishino | 3:9f90024d7fb2 | 254 | req.bss_type = 2; |
| kishino | 3:9f90024d7fb2 | 255 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 256 | // Set BSSID |
| kishino | 3:9f90024d7fb2 | 257 | if( bssid_p != NULL ) |
| kishino | 3:9f90024d7fb2 | 258 | { |
| kishino | 3:9f90024d7fb2 | 259 | memcpy( req.bssid, bssid_p, BSSID_MAC_LENTH ); |
| kishino | 3:9f90024d7fb2 | 260 | } |
| kishino | 3:9f90024d7fb2 | 261 | buf_len += BSSID_MAC_LENTH; |
| kishino | 3:9f90024d7fb2 | 262 | // Set channel list(0) |
| kishino | 3:9f90024d7fb2 | 263 | req.chan_list = 0; |
| kishino | 3:9f90024d7fb2 | 264 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 265 | //Set SSID |
| kishino | 3:9f90024d7fb2 | 266 | if( ssid_p != NULL ) |
| kishino | 3:9f90024d7fb2 | 267 | { |
| kishino | 3:9f90024d7fb2 | 268 | strcpy( (char *)req.ssid, ssid_p ); |
| kishino | 3:9f90024d7fb2 | 269 | buf_len += strlen(ssid_p); |
| kishino | 3:9f90024d7fb2 | 270 | } |
| kishino | 3:9f90024d7fb2 | 271 | else |
| kishino | 3:9f90024d7fb2 | 272 | { |
| kishino | 3:9f90024d7fb2 | 273 | buf_len++; |
| kishino | 3:9f90024d7fb2 | 274 | } |
| kishino | 3:9f90024d7fb2 | 275 | |
| kishino | 3:9f90024d7fb2 | 276 | // Make command payload |
| kishino | 3:9f90024d7fb2 | 277 | payload_len = C_YD_UartMsg::makePayload( buf_len, (unsigned char *)&req, payload_array ); |
| kishino | 3:9f90024d7fb2 | 278 | // Make all command request |
| kishino | 3:9f90024d7fb2 | 279 | command_len = C_YD_UartMsg::makeRequest( UART_CMD_ID_WIFI, payload_array, payload_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 280 | |
| kishino | 3:9f90024d7fb2 | 281 | // Set data for response |
| kishino | 3:9f90024d7fb2 | 282 | mUartCommand.setCommandID( UART_CMD_ID_WIFI ); |
| kishino | 3:9f90024d7fb2 | 283 | mUartCommand.setCommandSID( req.cmd_sid ); |
| kishino | 3:9f90024d7fb2 | 284 | mUartCommand.setResponseBuf( payload_buf->buf ); |
| kishino | 3:9f90024d7fb2 | 285 | // Set scan result callback |
| kishino | 3:9f90024d7fb2 | 286 | mUartCommand.setScanResultHandler( result_handler_p ); |
| kishino | 3:9f90024d7fb2 | 287 | |
| kishino | 3:9f90024d7fb2 | 288 | // Send uart command request |
| kishino | 3:9f90024d7fb2 | 289 | sendUart( command_len, command_array ); |
| kishino | 3:9f90024d7fb2 | 290 | |
| kishino | 3:9f90024d7fb2 | 291 | // Wait UART response |
| kishino | 3:9f90024d7fb2 | 292 | ret = mUartCommand.wait(); |
| kishino | 3:9f90024d7fb2 | 293 | printf( "scan wait:%d\r\n", ret ); |
| kishino | 3:9f90024d7fb2 | 294 | if( ret != 0 ) |
| kishino | 3:9f90024d7fb2 | 295 | { |
| kishino | 3:9f90024d7fb2 | 296 | printf( "scan failed\r\n" ); |
| kishino | 3:9f90024d7fb2 | 297 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 298 | return -1; |
| kishino | 3:9f90024d7fb2 | 299 | } |
| kishino | 3:9f90024d7fb2 | 300 | |
| kishino | 3:9f90024d7fb2 | 301 | if( mUartCommand.getCommandStatus() != 0 ) |
| kishino | 3:9f90024d7fb2 | 302 | { |
| kishino | 3:9f90024d7fb2 | 303 | printf("scan status:%02x\r\n", mUartCommand.getCommandStatus()); |
| kishino | 3:9f90024d7fb2 | 304 | ret = -1; |
| kishino | 3:9f90024d7fb2 | 305 | } |
| kishino | 3:9f90024d7fb2 | 306 | gMEMPOOL_PAYLOAD.free( payload_buf ); |
| kishino | 3:9f90024d7fb2 | 307 | |
| kishino | 3:9f90024d7fb2 | 308 | return 0; |
| kishino | 3:9f90024d7fb2 | 309 | } |
muRata

Murata TypeYD