maximal mögliche Wlan-Empfangsstärke auslesen in c++

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
cyborium
Beiträge: 3
Registriert: 03.10.2009 16:28:40

maximal mögliche Wlan-Empfangsstärke auslesen in c++

Beitrag von cyborium » 27.05.2010 21:47:33

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.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: maximal mögliche Wlan-Empfangsstärke auslesen in c++

Beitrag von Danielx » 27.05.2010 22:50:06

cyborium hat geschrieben:Nun benötige ich aber weiterhin die maximal mögliche Empfangsstärke, wie sie auch unter iwconfig angezeigt wird.
Hm, was meinst du damit genau?
cyborium hat geschrieben:Kann mir jemand sagen, wie ich an diese Information komme?
Im Zweifel im Quellcode von iwconfig nachsehen. :D

Gruß,
Daniel

cyborium
Beiträge: 3
Registriert: 03.10.2009 16:28:40

Re: maximal mögliche Wlan-Empfangsstärke auslesen in c++

Beitrag von cyborium » 28.05.2010 07:57:02

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.

Benutzeravatar
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++

Beitrag von schorsch_76 » 28.05.2010 09:35:50

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

Antworten