Linux 获取 4G 信号强度
来源:互联网 发布:win10 php自定义检错 编辑:程序博客网 时间:2024/04/30 01:47
找了好多资料还是没找到 获取4G信号强度的应用代码
最后没办法了, 只能自己写了
首先要知道AT指令是什么 这个可以参考下面的连接:
https://www.cnblogs.com/yuweifeng/p/5587473.html
如果4G设备正常运行 在终端输入下面命令会得到设备当前的信号
命令:cat /dev/ttyUSB2&
echo -e "AT+CSQ\r\n" > /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============\n");int SentATcount = 100; if(ec20check==1) {system("cat /dev/ttyUSB2 | grep \'CSQ\' > signalstrength&");while(SentATcount--){printf("============Launch AT command============\n");system("echo -e \"AT+CSQ\\r\\n\" > /dev/ttyUSB2");printf("echo -e \"AT+CSQ\\r\\n\" > /dev/ttyUSB2\n");usleep(1000);QFile tempFile("signalstrength");if (!tempFile.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug()<<"open signalstrength fail";}else{QTextStream tempLineFile(&tempFile);QString templine ;templine = tempLineFile.readLine().simplified();tempFile.close();if(!templine.isEmpty()){printf("============Get data from temp file, say oh ho!!!!============\n");break;}else{printf("============Fuck , There no useful data yet============\n");//continue wile do nothine}}}system("grep \'+CSQ:\' signalstrength > tempfilesignal");QFile signalFile("tempfilesignal");if (!signalFile.open(QIODevice::ReadOnly | QIODevice::Text)){signalStrenght = 0; qDebug()<<"open tempfilesignal fail";}else{QTextStream infile(&signalFile);QString line ;line = infile.readLine().simplified();signalFile.close();if(!line.isEmpty()){//--------------------------QString linedate ;QString rssi;bool ok; rssi = line.mid(6,2);qDebug() << " signal number is -tmpchr>="<<rssi;printf(" tmp.toInt(&ok,10) is ->%d\n",rssi.toInt(&ok,10));int signalTrans =-113 + (2 * rssi.toInt(&ok,10));printf(" signalTrans is ->%d\n",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 signalsignalStrenght = 0;}printf("=======Get signalStrenght success.= signalStrenght is %d=======\n",signalStrenght);}else{printf("=======Get signalStrenght failed...==set signalStrenght zero=======\n");signalStrenght = 0;}}}system("rm tempfilesignal -rf");}
阅读全文
0 0
- Linux 获取 4G 信号强度
- 运用反射机制获取2G,3G,4G信号强度
- Andoid 获取信号强度
- Android获取信号强度
- WIFI信号强度获取
- Android 获取信号强度
- 获取信号强度
- Android 信号强度的获取
- Android 信号强度的获取
- Android中获取信号强度
- 解决获取3G信号强度
- android获取wifi信号强度
- Android获取WIFI信号强度
- android获取wifi信号强度
- Android 获取wifi信号强度
- iOS 获取wifi信号强度
- iOS 获取蜂窝信号强度
- android 获取wifi 信号质量,信号强度
- 【Scikit-Learn 中文文档】神经网络模块(监督的)- 监督学习
- Jni生成class和h命令
- 如何使用QTP获取数据库连接的字符串
- iOS
- C# 备忘录
- Linux 获取 4G 信号强度
- SpinWait的性能高于Thread.Sleep
- AutoMapper官方文档(八)【内联映射】
- python求补集合、交集、并集
- 【Scikit-Learn 中文文档】概率校准
- 【Scikit-Learn 中文文档】半监督学习
- linux中要怎么创建文件夹
- Linux 下 安装 Redis 亲测可用
- 第七章