Linux取得4 G信号強度
2404 ワード
多くの資料を探したが、4 G信号の強度を取得するアプリケーションコードが見つからなかった.
最後は仕方ないので、自分で書くしかありません
まず、ATコマンドが何であるかを知るには、次の接続を参照してください.
https://www.cnblogs.com/yuweifeng/p/5587473.html
4 Gデバイスが正常に動作している場合は、次のコマンドを入力すると、デバイスの現在の信号が得られます.
コマンド:cat/dev/ttyUSB 2&
echo -e "AT+CSQ\r">/dev/ttyUSB2
取得:
AT+CSQ +CSQ: 28,99 OK AAT+CSQ +CSQ: 28,99
28 rssiが信号格子参照文に変換されただけhttp://velep.com/archives/1147.html
大体理解すればいいです.次はqtで書いたコードです.共同で検討します.伝言を歓迎します.
最後は仕方ないので、自分で書くしかありません
まず、ATコマンドが何であるかを知るには、次の接続を参照してください.
https://www.cnblogs.com/yuweifeng/p/5587473.html
4 Gデバイスが正常に動作している場合は、次のコマンドを入力すると、デバイスの現在の信号が得られます.
コマンド:cat/dev/ttyUSB 2&
echo -e "AT+CSQ\r">/dev/ttyUSB2
取得:
AT+CSQ +CSQ: 28,99 OK AAT+CSQ +CSQ: 28,99
28 rssiが信号格子参照文に変換されただけhttp://velep.com/archives/1147.html
大体理解すればいいです.次はqtで書いたコードです.共同で検討します.伝言を歓迎します.
void MainWindow::GetCurSignalStrenght(void)
{
printf("============Geting CurSignalStrenght============
");
int SentATcount = 100;
if(ec20check==1)
{
system("cat /dev/ttyUSB2 | grep \'CSQ\' > signalstrength&");
while(SentATcount--)
{
printf("============Launch AT command============
");
system("echo -e \"AT+CSQ\\r\
\" > /dev/ttyUSB2");
printf("echo -e \"AT+CSQ\\r\
\" > /dev/ttyUSB2
");
usleep(1000);
QFile tempFile("signalstrength");
if (!tempFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()< tempfilesignal");
QFile signalFile("tempfilesignal");
if (!signalFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
signalStrenght = 0;
qDebug()<="<%d
",rssi.toInt(&ok,10));
int signalTrans =-113 + (2 * rssi.toInt(&ok,10));
printf(" signalTrans is ->%d
",signalTrans);
if(signalTrans >-91)
{
signalStrenght = 5;
}
else if(signalTrans <= -91 && signalTrans>-101)
{
signalStrenght = 4;
}
else if(signalTrans <= -101 && signalTrans>-103)
{
signalStrenght = 3;
}
else if(signalTrans <= -103 && signalTrans>-107)
{
signalStrenght = 2;
}
else if(signalTrans <= -107 && signalTrans>-113)
{
signalStrenght = 1;
}
else
{
//no signal
signalStrenght = 0;
}
printf("=======Get signalStrenght success.= signalStrenght is %d=======
",signalStrenght);
}
else
{
printf("=======Get signalStrenght failed...==set signalStrenght zero=======
");
signalStrenght = 0;
}
}
}
system("rm tempfilesignal -rf");
}