diff --git a/class/bc26/at_device_bc26.c b/class/bc26/at_device_bc26.c index 7dcc43a..7657b51 100644 --- a/class/bc26/at_device_bc26.c +++ b/class/bc26/at_device_bc26.c @@ -40,8 +40,6 @@ static int bc26_power_on(struct at_device *device) { struct at_device_bc26 *bc26 = RT_NULL; - RT_ASSERT(device); - bc26 = (struct at_device_bc26 *)device->user_data; bc26->power_status = RT_TRUE; @@ -63,8 +61,6 @@ static int bc26_power_off(struct at_device *device) at_response_t resp = RT_NULL; struct at_device_bc26 *bc26 = RT_NULL; - RT_ASSERT(device); - resp = at_create_resp(64, 0, rt_tick_from_millisecond(300)); if (resp == RT_NULL) { @@ -91,8 +87,6 @@ static int bc26_sleep(struct at_device *device) { at_response_t resp = RT_NULL; struct at_device_bc26 *bc26 = RT_NULL; - - RT_ASSERT(device); bc26 = (struct at_device_bc26 *)device->user_data; if ( ! bc26->power_status)//power off @@ -135,9 +129,7 @@ static int bc26_wakeup(struct at_device *device) { at_response_t resp = RT_NULL; struct at_device_bc26 *bc26 = RT_NULL; - - RT_ASSERT(device); - + bc26 = (struct at_device_bc26 *)device->user_data; if ( ! bc26->power_status)//power off { @@ -182,16 +174,13 @@ static int bc26_check_link_status(struct at_device *device) at_response_t resp = RT_NULL; struct at_device_bc26 *bc26 = RT_NULL; int result = -RT_ERROR; - - RT_ASSERT(device); - + + bc26 = (struct at_device_bc26 *)device->user_data; if ( ! bc26->power_status)//power off { LOG_D("the power is off."); return(-RT_ERROR); } - - bc26 = (struct at_device_bc26 *)device->user_data; if (bc26->sleep_status)//is sleep status { if (bc26->power_pin != -1) @@ -874,8 +863,11 @@ static int bc26_net_init(struct at_device *device) static int bc26_init(struct at_device *device) { - struct at_device_bc26 *bc26 = (struct at_device_bc26 *) device->user_data; - + struct at_device_bc26 *bc26 = RT_NULL; + + RT_ASSERT(device); + + bc26 = (struct at_device_bc26 *) device->user_data; bc26->power_status = RT_FALSE;//default power is off. bc26->sleep_status = RT_FALSE;//default sleep is disabled. @@ -915,6 +907,8 @@ static int bc26_init(struct at_device *device) static int bc26_deinit(struct at_device *device) { + RT_ASSERT(device); + return bc26_netdev_set_down(device->netdev); } diff --git a/class/bc26/at_socket_bc26.c b/class/bc26/at_socket_bc26.c index b490738..042a003 100644 --- a/class/bc26/at_socket_bc26.c +++ b/class/bc26/at_socket_bc26.c @@ -446,8 +446,7 @@ static int bc26_domain_resolve(const char *name, char ip[16]) int i, result; at_response_t resp = RT_NULL; struct at_device *device = RT_NULL; - struct at_device_bc26 *bc26 = (struct at_device_bc26 *) device->user_data; - char *recv_ip = (char *) bc26->socket_data; + struct at_device_bc26 *bc26 = RT_NULL; RT_ASSERT(name); RT_ASSERT(ip); @@ -489,10 +488,7 @@ static int bc26_domain_resolve(const char *name, char ip[16]) } else { - //struct at_device_bc26 *bc26 = (struct at_device_bc26 *) device->user_data; - //char *recv_ip = (char *) bc26->socket_data; - - if (rt_strlen(recv_ip) < 8) + if (rt_strlen(ip) < 8) { rt_thread_mdelay(100); /* resolve failed, maybe receive an URC CRLF */ @@ -501,8 +497,6 @@ static int bc26_domain_resolve(const char *name, char ip[16]) } else { - //rt_strncpy(ip, recv_ip, 15); - //ip[15] = '\0'; result = RT_EOK; break; } @@ -510,6 +504,7 @@ static int bc26_domain_resolve(const char *name, char ip[16]) } __exit: + bc26->socket_data = RT_NULL; if (resp) { at_delete_resp(resp); @@ -576,6 +571,7 @@ static void urc_send_func(struct at_client *client, const char *data, rt_size_t LOG_E("get device(%s) failed.", client_name); return; } + bc26 = (struct at_device_bc26 *) device->user_data; device_socket = (int) bc26->user_data;