Ich habe folgendes Problem:
ich muss die Empfangsqualität meines WLAN unter Linux in einem C++Projekt auslesen. Dies erfolgt über das SysFS. Nun benötige ich aber weiterhin die maximal mögliche Empfangsstärke, wie sie auch unter iwconfig angezeigt wird. Kann mir jemand sagen, wie ich an diese Information komme? Derzeit habe ich es nur indirekt geschafft, indem ich iwconfig ausführe, mit grep und sed filtere, die Ausgabe in eine Datei umleite und diese Datei einlese. Ich finde dies aber doch eher eine quick-and-dirty-Lösung. Wäre schön, wenn ihr einen Tipp für mich habt.
maximal mögliche Wlan-Empfangsstärke auslesen in c++
Re: maximal mögliche Wlan-Empfangsstärke auslesen in c++
Hm, was meinst du damit genau?cyborium hat geschrieben:Nun benötige ich aber weiterhin die maximal mögliche Empfangsstärke, wie sie auch unter iwconfig angezeigt wird.
Im Zweifel im Quellcode von iwconfig nachsehen.cyborium hat geschrieben:Kann mir jemand sagen, wie ich an diese Information komme?
Gruß,
Daniel
Re: maximal mögliche Wlan-Empfangsstärke auslesen in c++
Bei iwconfig wird die Empfangsstärke folgendermaßen angezeigt:
Link Quality=aktuellerWert/maximalerWert
z.B. Link Quality=50/94
Ich möchte an den zweiten Wert kommen. Meine Erfahrung im Verstehen komplexer Quelltexte sind leider noch nicht soweit, dass ich solch einen komplett nachvollziehen kann, deshalb hoffe ich auf Unterstützung. Bisher bin ich soweit gekommen, dass der entscheidende Teil in iwlib.c liegt, die Funktion heißt iw_get_range_info. Außerdem habe ich den Tipp bekommen, das Programm mal mit ltrace zu verfolgen. Dies habe ich getan und wie es aussieht, erfolgt das Auslesen mit Hilfe von ioctl, wie weiß ich aber nicht so recht.
Link Quality=aktuellerWert/maximalerWert
z.B. Link Quality=50/94
Ich möchte an den zweiten Wert kommen. Meine Erfahrung im Verstehen komplexer Quelltexte sind leider noch nicht soweit, dass ich solch einen komplett nachvollziehen kann, deshalb hoffe ich auf Unterstützung. Bisher bin ich soweit gekommen, dass der entscheidende Teil in iwlib.c liegt, die Funktion heißt iw_get_range_info. Außerdem habe ich den Tipp bekommen, das Programm mal mit ltrace zu verfolgen. Dies habe ich getan und wie es aussieht, erfolgt das Auslesen mit Hilfe von ioctl, wie weiß ich aber nicht so recht.
- schorsch_76
- Beiträge: 2612
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: maximal mögliche Wlan-Empfangsstärke auslesen in c++
ioctl ruft Kernelfunktionen auf. Hierzu gibt es "Request IDs" und entsprechende Argumente. Kuck dir mal den ioctl Aufruf in der von dir genannten Funktion auf und gib mal die Request ID bei google ein
Siehe dazu auch http://linux.die.net/man/2/ioctl
Welche Requests ein Treiber versteht ist eben im jeweiligen Treiber definiert. Hier gibts im Prinzip im Treiber einfach "switch cases".l
Gruß
schorsch
Siehe dazu auch http://linux.die.net/man/2/ioctl
Welche Requests ein Treiber versteht ist eben im jeweiligen Treiber definiert. Hier gibts im Prinzip im Treiber einfach "switch cases".l
Gruß
schorsch