Austin Blackstone / Mbed 2 deprecated murataDemo

Dependencies:   SNICInterface mbed-rtos mbed

Fork of SNIC-xively-jumpstart-demo by muRata

Committer:
mbedAustin
Date:
Thu Apr 02 06:03:05 2015 +0000
Revision:
30:de5a32932408
Parent:
29:9f08c7152c7a
Child:
31:c42d189364b4
got all API's working, need to cleanup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kishino 21:25b85cbbdd82 1 /* Copyright (C) 2014 Murata Manufacturing Co.,Ltd., MIT License
kishino 23:39cf9f03b076 2 * muRata, SWITCH SCIENCE Wi-FI module TypeYD SNIC-UART.
kishino 21:25b85cbbdd82 3 *
kishino 21:25b85cbbdd82 4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
kishino 21:25b85cbbdd82 5 * and associated documentation files (the "Software"), to deal in the Software without restriction,
kishino 21:25b85cbbdd82 6 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
kishino 21:25b85cbbdd82 7 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
kishino 21:25b85cbbdd82 8 * furnished to do so, subject to the following conditions:
kishino 21:25b85cbbdd82 9 *
kishino 21:25b85cbbdd82 10 * The above copyright notice and this permission notice shall be included in all copies or
kishino 21:25b85cbbdd82 11 * substantial portions of the Software.
kishino 21:25b85cbbdd82 12 *
kishino 21:25b85cbbdd82 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
kishino 21:25b85cbbdd82 14 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
kishino 21:25b85cbbdd82 15 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kishino 21:25b85cbbdd82 16 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kishino 21:25b85cbbdd82 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kishino 21:25b85cbbdd82 18 */
xively 0:efdea27c3b81 19 #include "mbed.h"
kishino 14:6d58d3855feb 20 #include "SNIC_WifiInterface.h"
xively 7:0eff5db44b8b 21
mbedAustin 28:174412ff9671 22 Serial pc(USBTX, USBRX);
xively 7:0eff5db44b8b 23
errordeveloper 10:86ffba646df1 24
mbedAustin 29:9f08c7152c7a 25 #define WIFI_SSID "demossid"
mbedAustin 29:9f08c7152c7a 26 #define WIFI_SECURITY_TYPE e_SEC_OPEN
mbedAustin 28:174412ff9671 27 #define WIFI_SECUTIRY_KEY "WPA2_PASSPHRASE"
mbedAustin 28:174412ff9671 28 #define WIFI_SECUTIRY_KEY_LEN 15
errordeveloper 11:bdf601a405fc 29
mbedAustin 29:9f08c7152c7a 30 //#define WIFI_SSID "AP_SSID"
mbedAustin 29:9f08c7152c7a 31 //#define WIFI_SECURITY_TYPE e_SEC_WPA2_AES
mbedAustin 29:9f08c7152c7a 32 //#define WIFI_SECUTIRY_KEY "WPA2_PASSPHRASE"
mbedAustin 29:9f08c7152c7a 33 //#define WIFI_SECUTIRY_KEY_LEN 15
mbedAustin 29:9f08c7152c7a 34
mbedAustin 29:9f08c7152c7a 35
mbedAustin 28:174412ff9671 36 C_SNIC_WifiInterface wifi( D1, D0, NC, NC, D3 );
kishino 17:0bf3c49a83d5 37
mbedAustin 30:de5a32932408 38
mbedAustin 30:de5a32932408 39 void scanCallbackFn(tagSCAN_RESULT_T *scan_result)
mbedAustin 30:de5a32932408 40 {
mbedAustin 30:de5a32932408 41 printf("\r\n");
mbedAustin 30:de5a32932408 42 printf("channel = %d \r\n" ,scan_result->channel);
mbedAustin 30:de5a32932408 43 printf("rssi = %d \r\n" ,scan_result->rssi);
mbedAustin 30:de5a32932408 44 printf("security = %d \r\n" ,scan_result->security);
mbedAustin 30:de5a32932408 45 printf("bssid = %x%x%x%x%x%x\r\n",scan_result->bssid[0],scan_result->bssid[1],scan_result->bssid[2],scan_result->bssid[3],scan_result->bssid[4],scan_result->bssid[5]);
mbedAustin 30:de5a32932408 46 printf("network_type = %d \r\n" ,scan_result->network_type);
mbedAustin 30:de5a32932408 47 printf("max_rate = %d \r\n" ,scan_result->max_rate);
mbedAustin 30:de5a32932408 48 printf("ssid = %s \r\n" ,scan_result->ssid);
mbedAustin 30:de5a32932408 49 }
mbedAustin 30:de5a32932408 50
mbedAustin 30:de5a32932408 51
mbedAustin 28:174412ff9671 52 int main()
mbedAustin 28:174412ff9671 53 {
mbedAustin 28:174412ff9671 54 // for built in debug printouts
mbedAustin 29:9f08c7152c7a 55 // pc.baud( 115200 );
mbedAustin 29:9f08c7152c7a 56
mbedAustin 29:9f08c7152c7a 57 int check = 0;
mbedAustin 28:174412ff9671 58
kishino 14:6d58d3855feb 59 // Initialize Wi-Fi interface
mbedAustin 29:9f08c7152c7a 60 check = wifi.init();
mbedAustin 29:9f08c7152c7a 61 if( check != 0 ) {
mbedAustin 28:174412ff9671 62 printf( "Wifi could not be initialized, halting.\r\n" );
kishino 14:6d58d3855feb 63 return -1;
mbedAustin 29:9f08c7152c7a 64 } else {
mbedAustin 28:174412ff9671 65 printf("wifi initialized successfully!\r\n");
mbedAustin 28:174412ff9671 66 }
kishino 19:4e2900daad59 67 wait(0.5);
mbedAustin 29:9f08c7152c7a 68
mbedAustin 28:174412ff9671 69 // good form to make sure you are disconnected from all AP's
mbedAustin 29:9f08c7152c7a 70 check = wifi.disconnect();
mbedAustin 29:9f08c7152c7a 71 if( check != 0 ) {
mbedAustin 28:174412ff9671 72 printf( "disconnect failed\r\n" );
mbedAustin 28:174412ff9671 73 return -1;
mbedAustin 29:9f08c7152c7a 74 } else {
mbedAustin 28:174412ff9671 75 printf("disconnection successful!\r\n");
mbedAustin 29:9f08c7152c7a 76 }
mbedAustin 28:174412ff9671 77 wait(0.3);
mbedAustin 29:9f08c7152c7a 78
mbedAustin 28:174412ff9671 79 // Connect AP
mbedAustin 29:9f08c7152c7a 80 check = wifi.connect( WIFI_SSID
mbedAustin 29:9f08c7152c7a 81 , strlen(WIFI_SSID)
mbedAustin 29:9f08c7152c7a 82 , WIFI_SECURITY_TYPE
mbedAustin 29:9f08c7152c7a 83 , WIFI_SECUTIRY_KEY
mbedAustin 29:9f08c7152c7a 84 , WIFI_SECUTIRY_KEY_LEN );
mbedAustin 29:9f08c7152c7a 85 if( check != 0) {
mbedAustin 29:9f08c7152c7a 86 printf("Connect Failed\r\n");
mbedAustin 29:9f08c7152c7a 87 } else {
mbedAustin 29:9f08c7152c7a 88 printf("connected successfully!\r\n");
mbedAustin 29:9f08c7152c7a 89 }
kishino 14:6d58d3855feb 90 wait(0.5);
kishino 14:6d58d3855feb 91
mbedAustin 29:9f08c7152c7a 92 // Get DHCP IP
mbedAustin 29:9f08c7152c7a 93 check = wifi.setIPConfig( true ); // get IP as DHCP IP
mbedAustin 29:9f08c7152c7a 94 if(check != 0) {
mbedAustin 29:9f08c7152c7a 95 printf("SetIPConfig failed \r\n");
mbedAustin 29:9f08c7152c7a 96 } else {
mbedAustin 29:9f08c7152c7a 97 printf("SetIPConfig successful \r\n");
mbedAustin 29:9f08c7152c7a 98 }
mbedAustin 30:de5a32932408 99
mbedAustin 29:9f08c7152c7a 100 // Get RSSI
mbedAustin 29:9f08c7152c7a 101 signed char temp = 0;
mbedAustin 29:9f08c7152c7a 102 check = wifi.getRssi(&temp);
mbedAustin 30:de5a32932408 103 if(check != 0) {
mbedAustin 29:9f08c7152c7a 104 printf("getRssi failed. \r\n");
mbedAustin 30:de5a32932408 105 } else {
mbedAustin 29:9f08c7152c7a 106 printf("getRssi success: %d \r\n",temp);
mbedAustin 29:9f08c7152c7a 107 }
mbedAustin 30:de5a32932408 108
mbedAustin 30:de5a32932408 109 // check IP Address
mbedAustin 30:de5a32932408 110 char * ip ;
mbedAustin 30:de5a32932408 111 ip = wifi.getIPAddress();
mbedAustin 30:de5a32932408 112 if(ip == 0) {
mbedAustin 30:de5a32932408 113 printf("getIP failed. \r\n");
mbedAustin 30:de5a32932408 114 } else {
mbedAustin 30:de5a32932408 115 printf("getIP success: %s \r\n",ip);
mbedAustin 30:de5a32932408 116 }
mbedAustin 30:de5a32932408 117
mbedAustin 30:de5a32932408 118 // get wifi status
mbedAustin 30:de5a32932408 119 tagWIFI_STATUS_T status;
mbedAustin 30:de5a32932408 120 check = wifi.getWifiStatus(&status);
mbedAustin 30:de5a32932408 121 if(check != 0) {
mbedAustin 30:de5a32932408 122 printf("getWifiStatus failed \r\n");
mbedAustin 30:de5a32932408 123 } else {
mbedAustin 30:de5a32932408 124 // Status 0=WifiOff, 1=No Network, 2=Connected to AP, 3=Started AP mode
mbedAustin 30:de5a32932408 125 printf("getWifiStatus success: status =%d, MAC = %x%x%x%x%x%x, SSID = %s \r\n",
mbedAustin 30:de5a32932408 126 status.status,
mbedAustin 30:de5a32932408 127 status.mac_address[0], status.mac_address[1],
mbedAustin 30:de5a32932408 128 status.mac_address[2], status.mac_address[3],
mbedAustin 30:de5a32932408 129 status.mac_address[4], status.mac_address[5],
mbedAustin 30:de5a32932408 130 status.ssid );
mbedAustin 30:de5a32932408 131 }
mbedAustin 30:de5a32932408 132
mbedAustin 30:de5a32932408 133 // scan for wifi
mbedAustin 30:de5a32932408 134 check = wifi.scan(NULL,NULL,scanCallbackFn);
mbedAustin 30:de5a32932408 135 if(check != 0) {
mbedAustin 30:de5a32932408 136 printf("scan failed! \r\n");
mbedAustin 30:de5a32932408 137 } else {
mbedAustin 30:de5a32932408 138 printf("Scan Success! \r\n");
mbedAustin 30:de5a32932408 139
mbedAustin 30:de5a32932408 140 }
mbedAustin 30:de5a32932408 141
mbedAustin 29:9f08c7152c7a 142 // if(check != 0){
mbedAustin 29:9f08c7152c7a 143 // printf(" \r\n");
mbedAustin 29:9f08c7152c7a 144 // }else{
mbedAustin 29:9f08c7152c7a 145 // printf(" \r\n");
mbedAustin 29:9f08c7152c7a 146 // }
mbedAustin 28:174412ff9671 147
mbedAustin 28:174412ff9671 148 wait( 1.0 );
Ilya Dmitrichenko 6:9e4f4a8c1829 149 }