Beispiel #1
0
static gint compare(gconstpointer a, gconstpointer b)
{
	bool favorite1 = false, favorite2 = false;
	wifi_connection_state_e state1 = 0, state2 = 0;

	wifi_device_info_t *wifi_device1 = (wifi_device_info_t*)a;
	wifi_device_info_t *wifi_device2 = (wifi_device_info_t*)b;

	wifi_ap_get_connection_state(wifi_device1->ap, &state1);
	wifi_ap_get_connection_state(wifi_device2->ap, &state2);

	if (state1 != state2) {
		if (state1 == WIFI_CONNECTION_STATE_CONNECTED)
			return -1;
		if (state2 == WIFI_CONNECTION_STATE_CONNECTED)
			return 1;

		if (state1 == WIFI_CONNECTION_STATE_CONFIGURATION)
			return -1;
		if (state2 == WIFI_CONNECTION_STATE_CONFIGURATION)
			return 1;

		if (state1 == WIFI_CONNECTION_STATE_ASSOCIATION)
			return -1;
		if (state2 == WIFI_CONNECTION_STATE_ASSOCIATION)
			return 1;
	}

	wifi_ap_is_favorite(wifi_device1->ap, &favorite1);
	wifi_ap_is_favorite(wifi_device2->ap, &favorite2);

	if (favorite1 != favorite2) {
		if (favorite1 == true)
			return -1;
		if (favorite2 == true)
			return 1;
	}

	return strcasecmp((const char *)wifi_device1->ssid,
			(const char *)wifi_device2->ssid);
}
bool __wifi_found_ap_cb(wifi_ap_h ap, void *user_data)
{
    OIC_LOG(INFO,LOG_TAG,"#### __wifi_found_ap_cb received ");

    int error_code = 0;
    char *ap_name = NULL;
    wifi_connection_state_e state;

    error_code = wifi_ap_get_essid(ap, &ap_name);
    if (error_code != WIFI_ERROR_NONE)
    {
        OIC_LOG(ERROR,LOG_TAG,"#### Fail to get AP name.");

        return false;
    }
    error_code = wifi_ap_get_connection_state(ap, &state);
    if (error_code != WIFI_ERROR_NONE)
    {
        OIC_LOG(ERROR,LOG_TAG,"#### Fail to get state.");
        free(ap_name);

        return false;
    }
    OIC_LOG_V(INFO,LOG_TAG,"#### AP name : %s, state : %s", ap_name, print_state(state));

    if (strcmp(ap_name, gSsid) == 0)
    {
        OIC_LOG(INFO,LOG_TAG,"#### network found");
        wifi_ap_set_passphrase(ap, gPass);
        connectedWifi = ap;
        error_code = wifi_connect(ap, __wifi_connected_cb, NULL);
        OIC_LOG_V(INFO,LOG_TAG,"Code=%d", error_code);
    }
    OIC_LOG(INFO,LOG_TAG,"#### __wifi_found_ap_cb received ");
    free(ap_name);
    return true;
}
Beispiel #3
0
static bool view_main_wifi_insert_found_ap(wifi_device_info_t *wifi_device)
{
	devpkr_gl_data_t *gdata = g_try_new0(devpkr_gl_data_t, 1);
	wifi_connection_state_e state;

	assertm_if(NULL == list, "list is NULL");

	if (gdata == NULL)
		return false;

	gdata->dev_info = wifi_device;
	if (gdata->dev_info == NULL) {
		g_free(gdata);
		return true;
	}

	wifi_ap_get_connection_state(wifi_device->ap, &state);

	if (WIFI_CONNECTION_STATE_ASSOCIATION == state ||
			WIFI_CONNECTION_STATE_CONFIGURATION == state) {
		gdata->connection_mode = ITEM_CONNECTION_MODE_CONNECTING;
		gdata->it = elm_genlist_item_append(list, &itc, gdata,
				NULL, ELM_GENLIST_ITEM_NONE, __gl_sel,
				gdata);
		view_main_state_set(ITEM_CONNECTION_MODE_CONNECTING);

		return true;
	}

	gdata->connection_mode = ITEM_CONNECTION_MODE_OFF;

	gdata->it = elm_genlist_item_append(list, &itc, gdata, NULL,
			ELM_GENLIST_ITEM_NONE, __gl_sel, gdata);

	return true;
}