Я пишу программу на C для управления некоторыми аспектами беспроводной сети (точка доступа + клиентские устройства). Одна часть программы работает на устройствах, а другая — на точке доступа. Точка доступа представляет собой простую Linux-станцию (грузовик Cubietruck, позже замененный платой хранения Intel Celeron; установка точки доступа с помощью hostapd и dnsmasq). Некоторые функции уже реализованы. Я много сделал с cfg80211/nl80211 и немного с Wext, и некоторые коммуникационные процедуры через сокеты BSD стоят.
Но теперь возникла проблема. В программе C, работающей на точке доступа, мне нужна сила полученного сигнала связанных устройств. На устройствах все работает хорошо. С nl80211 я могу получить почти всю информацию о соединении. Но на точке доступа я не знаю, как получить RSS. Я пробовал несколько запросов nl80211 с некоторыми атрибутами, но не могу заставить их работать. Конечно, на Устройствах это просто, потому что у них одно соединение. Но на точке доступа я ожидал что-то вроде ответа nl80211 со связанным списком или вложенными атрибутами, но ничего. Я проверил содержащиеся атрибуты ответов на определенные запросы, и сообщения не содержат ничего полезного.
Кто-нибудь знает, как это решить? Это не должно быть большой проблемой, чтобы получить мощность принятого сигнала связанных устройств на точке доступа WLAN. Было бы очень хорошо, если бы это было возможно с nl80211, но другое решение также приветствуется. Может быть, с парсингом пакетов WiFi? Я слышал, что есть что-то вроде RSSI (Индикатор силы принятого сигнала), но я с этим не знаком.
заранее спасибо