Finalmente la risposta!
In C++ utilizzare libnm-glib per agire sul proxy dbus. Dalla riga di comando, utilizzare ..
gdbus call --system --dest org.freedesktop.ModemManager --object-path /org/freedesktop/ModemManager/Modems/0 --method org.freedesktop.ModemManager.Modem.Gsm.Network.GetSignalQuality
fornisce la potenza del segnale del modem gsm.
Se MM dice che non è possibile ottenere la qualità del segnale mentre è connesso, è perché c'è solo una porta AT per tutti i comandi e dati. Pertanto, quando è collegata la porta AT , non è possibile inviare comandi AT per raccogliere la qualità del segnale. Avrete bisogno di ottenere un modem migliore con più porte AT o di passare da a un modem non AT, come QMI o MBIM. - Aleksander Morgado
Si può ascoltare org.freedesktop.ModemManager.Modem.Gsm.Network.GetSignalQuality
segnale utilizzando
gdbus monitor --system --dest org.freedesktop.NetworkManager --object-path /org/freedesktop/NetworkManager/Modems/0
D. i segnali del proxy ogni volta che c'è un cambiamento nella potenza del segnale asynchonously o ModemManager modem sondaggi periodicamente per ottenere la qualità del segnale ?
A. Dipende dal modem in uso; se il modem supporta indicazioni di modifica della qualità non richieste , le useremo; altrimenti MM eseguirà il polling di tutti gli 30 per i valori di qualità del segnale. I valori delle proprietà nell'interfaccia saranno aggiornati una volta ottenuti i nuovi valori (più o meno). - Aleksander Morgado
il mio dispositivo è un modem 3g. posso usare 'iwlist ppp0 scanning'? lo proverò. – neckTwi
Funziona? Stavo cercando una libreria C++ per fare la stessa cosa, ma non ero in grado di farlo. Avevo trovato in Android però. Quindi in questo modo Bash + C++ ha risolto il mio problema in modo efficiente. Spero che funzioni anche per te. – Tlos
ma non l'ho provato. sto seguendo questo [collegamento] (http://arachnoid.com/linux/linux_mobile_internet_access.html). anche questo può aiutarti. – neckTwi