Пример #1
0
/*
 * If the device is connected but we don't know about the network,
 * create the knowledge of it.
 *
 * Asks the WiMAX API to report which NSP we are connected to and we
 * create/update a network_el in the device's network list. Then
 * return it.
 *
 * Returns NULL on error.
 *
 */
WIMAX_API_CONNECTED_NSP_INFO_EX *iwmx_sdk_get_connected_network(struct wmxsdk *wmxsdk)
{
	WIMAX_API_CONNECTED_NSP_INFO_EX *nsp_info = NULL;
	WIMAX_API_RET r;
	char errstr[512];
	UINT32 errstr_size = sizeof(errstr);

	nsp_info = malloc(sizeof (*nsp_info));
	if (!nsp_info) {
		nm_log_err(LOGD_WIMAX, "wmxsdk: cannot allocate NSP info");
		return NULL;
	}

	r = GetConnectedNSPEx(&wmxsdk->device_id, nsp_info);
	if (r != WIMAX_API_RET_SUCCESS) {
		GetErrorString(&wmxsdk->device_id, r, errstr, &errstr_size);
		nm_log_err(LOGD_WIMAX, "wmxsdk: Cannot get connected NSP info: %d (%s)", r, errstr);
		free (nsp_info);
		nsp_info = NULL;
	} else {
		/* Migth be 0 sometimes; fix that up */
		if (nsp_info->linkQuality == 0) {
			int linkq_expected = cinr_to_percentage(nsp_info->CINR - 10);
			if (linkq_expected != nsp_info->linkQuality)
				nsp_info->linkQuality = linkq_expected;
		}
	}

	return nsp_info;
}
Пример #2
0
//return 0 success 
//      1 fail
int wimaxcu_get_user_link_status_ex(WIMAX_API_DEVICE_ID_P p_device_id)
{
	WIMAX_API_RET wmxStatus = WIMAX_API_RET_SUCCESS;
	WIMAX_API_CONNECTED_NSP_INFO_EX ConnectedNSP;
	WIMAX_API_LINK_STATUS_INFO_EX LinkStatus;

	wmxStatus = GetConnectedNSPEx(p_device_id, &ConnectedNSP);
	if (WIMAX_API_RET_SUCCESS != wmxStatus) {
		printf("Link Status: Network is not connected.\n");
		return 1;
	}
	wmxStatus = GetLinkStatusEx(p_device_id, &LinkStatus);
	if (WIMAX_API_RET_SUCCESS != wmxStatus) {
		PrintWmxStatus(wmxStatus);
		return 1;
	}
	PrintUserLinkStatusEx(&LinkStatus);
	return 0;
}
Пример #3
0
void wimaxcu_get_conn_nsp_ex(WIMAX_API_DEVICE_ID_P p_device_id)
{
	WIMAX_API_RET wmxStatus = WIMAX_API_RET_SUCCESS;
	WIMAX_API_CONNECTED_NSP_INFO_EX ConnectedNSP;
	WIMAX_API_LINK_STATUS_INFO_EX LinkStatus;

	wmxStatus = GetLinkStatusEx(p_device_id, &LinkStatus);
	if (WIMAX_API_RET_SUCCESS != wmxStatus) {
		PrintWmxStatus(wmxStatus);
		return;
	}

	wmxStatus = GetConnectedNSPEx(p_device_id, &ConnectedNSP);
	if (WIMAX_API_RET_SUCCESS != wmxStatus) {
		PrintWmxStatus(wmxStatus);
		return;
	}
	ConnectedNSP.RSSI = LinkStatus.RSSI;
	ConnectedNSP.CINR = LinkStatus.CINR;
	ConnectedNSP.linkQuality = LinkStatus.linkQuality;
	PrintUserLinkStatusEx(&ConnectedNSP);
}