v1.0

Dependencies:   SDFileSystem mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers WiFiTracker.cpp Source File

WiFiTracker.cpp

00001 #include "mbed.h"
00002 #include "WiFiTracker.h"
00003 
00004 
00005 
00006 WiFiTracker::WiFiTracker() : dbg(USBTX, USBRX), sd(PB_3, PB_2, PB_1, PB_0, "sd"), led(LED3)
00007 {
00008     
00009     buffer.init(128);
00010     printf("make wifi tracker!\n"); 
00011     g_store_cnt = 0;
00012     mkdir("/sd/mydir", 0777);
00013     
00014     LedBlink(5, 20);
00015     
00016 }
00017 
00018 
00019 WiFiTracker::~WiFiTracker()
00020 {
00021     printf("destroy\n");
00022     fclose(fp);
00023 }
00024 
00025 
00026 //uint8_t WiFiTracker::store_probe_request(WiFiProbe wp)
00027 //uint8_t WiFiTracker::store_probe_request(char c)
00028 uint8_t WiFiTracker::write_sdcard(char c)
00029 {
00030     dbg.printf("store\n"); 
00031     
00032     return 0;
00033 }
00034 
00035 uint8_t WiFiTracker::write_sdcard(char* str, int len)
00036 {    
00037     char temp_str[30] = {0,};
00038     
00039     //dbg.printf("%s, (%d)", str, len);
00040     
00041     if(char_cnt(str,'/') && len == 30 )
00042     {
00043         strncpy(temp_str, str, len);
00044         char_change(temp_str, '/', ',');
00045         dbg.printf("(%d), %s", len, temp_str);
00046         fprintf(fp, temp_str);
00047         g_store_cnt++;  
00048     }
00049     
00050     
00051     if(g_store_cnt % 100 == 0)
00052     {
00053         dbg.printf("\r\n[100]\r\n");
00054         fclose(fp);
00055         
00056         fp = fopen("/sd/mydir/wifi_tracker.txt", "a");
00057         if(fp == NULL) {
00058             error("Could not open file for write\n");
00059         } 
00060         
00061         LedBlink(2,50);
00062     }
00063     
00064     //dbg.printf("\r\nwrite sd card\r\n"); 
00065     return 0;
00066 }
00067 
00068 char WiFiTracker::read()
00069 {
00070     return (char)buffer.consumeByte();
00071 }
00072 
00073 int WiFiTracker::write(char c)
00074 {
00075     //return buffer.addbyte((byte)c);
00076     return 0;
00077 
00078 }
00079 
00080 int WiFiTracker::find(char* str)
00081 {
00082     return buffer.findBuf(str);
00083     
00084 }
00085 
00086 
00087 
00088 int WiFiTracker::char_cnt(char* str, char c)
00089 {
00090     int i = 0;
00091     char* tmp = str;
00092     
00093     while( *tmp )
00094     {
00095         if( *tmp++ == c )
00096             i++;
00097     }
00098     
00099     return i;
00100 }
00101 
00102 
00103 int WiFiTracker::char_change(char* str, char dst_char, char new_char)
00104 {
00105     int i = 0;
00106     char* tmp = str;
00107     
00108     while( *tmp )
00109     {
00110         if( *tmp == dst_char )
00111             *tmp = new_char;
00112         tmp++;
00113     }
00114     
00115     return i;    
00116     
00117 } 
00118 
00119 void WiFiTracker::LedBlink(int cnt, int interval)
00120 {
00121     int i;
00122     
00123     for(i=0; i<cnt; i++)
00124     {
00125         led = 1;
00126         wait_ms(interval);
00127         led = 0;
00128     }
00129 }
00130 
00131 //
00132 //int8_t WiFiTracker::send_command(char* cmd)
00133 //{
00134 //
00135 //}
00136 //int8_t WiFiTracker::wait_response(char* rsp)
00137 //{
00138 //}
00139 
00140 
00141