/* * Asks the WiMAX API to report current link statistics. * * Returns NULL on error. * */ WIMAX_API_LINK_STATUS_INFO_EX *iwmx_sdk_get_link_status_info(struct wmxsdk *wmxsdk) { WIMAX_API_LINK_STATUS_INFO_EX *stats = NULL; WIMAX_API_RET r; char errstr[512]; UINT32 errstr_size = sizeof(errstr); /* Only report if connected */ if (iwmxsdk_status_get(wmxsdk) < WIMAX_API_DEVICE_STATUS_Connecting) { nm_log_err(LOGD_WIMAX, "wmxsdk: cannot get link status info unless connected"); return NULL; } stats = malloc(sizeof (*stats)); if (!stats) { nm_log_err(LOGD_WIMAX, "wmxsdk: cannot allocate links status info"); return NULL; } r = GetLinkStatusEx(&wmxsdk->device_id, stats); if (r != WIMAX_API_RET_SUCCESS) { GetErrorString(&wmxsdk->device_id, r, errstr, &errstr_size); nm_log_err(LOGD_WIMAX, "wmxsdk: Cannot get link status info: %d (%s)", r, errstr); free (stats); stats = NULL; } return stats; }
//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; }
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); }