cliff
Fork of WizFi250Interface by
Diff: WizFi250/WizFi250_msg.cpp
- Revision:
- 2:13aeb8e94fed
- Parent:
- 0:e3dc9e54a15b
diff -r 046a828fe0d2 -r 13aeb8e94fed WizFi250/WizFi250_msg.cpp
--- a/WizFi250/WizFi250_msg.cpp Fri Aug 18 05:52:17 2017 +0000
+++ b/WizFi250/WizFi250_msg.cpp Mon Aug 21 23:02:00 2017 +0000
@@ -397,35 +397,58 @@
}
void WizFi250::resWSTATUS (const char *buf)
+//{
+// int idx=0,sep_cnt=0;
+// int ip_idx=0,gw_idx=0;
+//
+// if(_state.n == 0)
+// {
+// _state.n++;
+// }
+// else if(_state.n == 1)
+// {
+// for(idx=0;buf[idx]!='\r';idx++)
+// {
+// if(buf[idx] =='/')
+// {
+// sep_cnt++;
+// continue;
+// }
+//
+// if( sep_cnt == 2) // IP Address
+// {
+// _state.ip[ip_idx++] = buf[idx];
+// }
+// else if(sep_cnt == 3)
+// {
+// _state.gateway[gw_idx++] = buf[idx];
+// }
+// }
+// _state.ip[ip_idx] = '\0';
+// _state.gateway[gw_idx] = '\0';
+// _state.res = RES_NULL;
+// }
+//}
{
- int idx=0,sep_cnt=0;
- int ip_idx=0,gw_idx=0;
-
+ char* idx_ptr;
+
if(_state.n == 0)
{
_state.n++;
}
else if(_state.n == 1)
{
- for(idx=0;buf[idx]!='\r';idx++)
- {
- if(buf[idx] =='/')
- {
- sep_cnt++;
- continue;
- }
-
- if( sep_cnt == 2) // IP Address
- {
- _state.ip[ip_idx++] = buf[idx];
- }
- else if(sep_cnt == 3)
- {
- _state.gateway[gw_idx++] = buf[idx];
- }
- }
- _state.ip[ip_idx] = '\0';
- _state.gateway[gw_idx] = '\0';
+ idx_ptr = strtok((char*)buf, "/"); // Interface STA or AP
+ idx_ptr = strtok( NULL, "/"); // SSID
+ idx_ptr = strtok( NULL, "/"); // IP Addr
+ memset(_state.ip, 0, sizeof(_state.ip));
+ memcpy(_state.ip, idx_ptr, strlen(idx_ptr)+1);
+
+ idx_ptr = strtok( NULL, "/"); // Gateway Addr
+ memset(_state.gateway, 0, sizeof(_state.gateway));
+ memcpy(_state.gateway, idx_ptr, strlen(idx_ptr)+1);
+
_state.res = RES_NULL;
}
+
}
