v1.0
Dependencies: SDFileSystem mbed
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
Generated on Wed Jul 13 2022 23:28:15 by 1.7.2