clean 님이 쓰신 글 :
: 빌더 님이 쓰신 글 :
: : 하이~ 님이 쓰신 글 :
: : : C++을 공부하고 있습니다. 최대한 알아보려고 노력해 보았지만 검색창에 어떻게 쳐도 네트워크 강도 및 속도를 가져오는 것에 대한설명에 대한것이 나와있지 않아서 질문에 올려봅니다. 물론 제가 못찾는 것일수도 있을텐데 찾으려면 어떻게 해야되는지좀 부탁드립니다. 왠만하면 질문 안올리려고 했지만 실력이 없어서 올리게 되었습니다. 많은 도움 부탁드립니다.
: : : 제가 원하는것은 네트워크 강도가 나왔으면 좋겠습니다. 매우 좋음 좋음 보통 나쁨 매우 나쁨 이렇게 말입니다.
: :
: :
: :
: :
: : 답변:
: :
: :
: : PWLAN_INTERFACE_INFO_LIST pInterfaceList;
: : PWLAN_INTERFACE_INFO pInterfaceInfo;
: :
: : PWLAN_AVAILABLE_NETWORK_LIST pNetwokList;
: : PWLAN_AVAILABLE_NETWORK pNetworkEntry;
: :
: : WlanOpenHandle(...., &hWlanHandle);
: :
: : WlanEnumInterfaces(hWlanHandle, NULL, &pInterfaceList);
: :
: : for (int i = 0; i < pInterfaceList->dwNumberOfItems; i++)
: : {
: : pInterfaceInfo = (WLAN_INTERFACE_INFO *) &pInterfaceList->InterfaceInfo[i];
: :
: : switch (pInterfaceInfo->isState) {
: : case wlan_interface_state_connected:
: : printf("Connected\n");
: : break;
: : case wlan_interface_state_disconnected:
: : printf("Not connected\n");
: : break;
: : ...........................................
: : }
: :
: : WlanGetAvailableNetworkList(hWlanHandle,
: : &pInterfaceInfo->InterfaceGuid,
: : 0,
: : NULL,
: : &pNetworkList);
: :
: :
: : for (int k = 0; k < pNetworkList->dwNumberOfItems; k++)
: : {
: : pNetworkEntry = (WLAN_AVAILABLE_NETWORK *) & pNetworkList->Network[j];
: : printf(" 신호강도[%u]: %u\n", k, pNetworkEntry->wlanSignalQuality);
: : }
: : }
: :
: :
: : C#으로 코딩하면 소스를 더 짧고 간결하게 작성할 수 있는데... 함수의 사용법은 MSDN에서 Wlanapi
: : 문서를 참조 하세요.
:
:
: 무선랜 신호강도에서 dbm 값을 알려면 linear interpolation을 계산하라고 나와있는데요.
: 어떻게 계산하라는 건지 잘모르겠습니다. 빌더님! 답변해주시면 고맙겠습니다.
답변:
Wireless Lan에서 신호강도를 표시하는 기준은 칩셋을 제조하는 회사마다 약간 씩 차이가 있습니다.
그래서 MS사에서는 신호강도를 0 ~ 100%의 퍼센테이지로 적용할 때.. 신호강도의 dBm 범위를...
-100 dBm ~ -50 dBm 으로 기준을 정해서 사용하고 있습니다.
dBm 값을 계산하기 위해서 Linear Interpolation을 하라는 것은... 위의 범위를 기준으로 선형보간을
취하라는 의미 입니다.
따라서...
dBm 값을 선형보간 해서 구하면...
dBm = -100 + (wlanSignalQuality / 2);
위와 같이 되겠죠.
|