我想從安裝爲Linux板上的ttyHS4(控制)和ttyHS5(數據)的選項調制解調器獲取RSSI值。預期的結果顯示在控制檯上,但fgets僅捕獲任何控制檯輸出數據。fgets無法捕獲來自tty設備的輸出
if ((f=popen("echo -e \"AT+CSQ\r\n\">dev\ttyHS4","r"))==NULL){
perror("popen");
exit(1);
}
while (fgets(buff,sizeof(buff),f){
printf(":%s:\n",buff);
}
我使用popen命令中的「echo \」TEST \「」進行了測試,上面的代碼能夠打印出「:TEST:」字符串。使用ttyHS4輸出,我只能在控制檯上獲得一些輸出,但fgets + fprintf不能獲取任何數據。
請告訴我可能發生故障的位置。
刪除'「\ r」' –
並在路徑前加一個'/' –
您的意思是\ r \ n \用於AT + CSQ?請記住,我能夠獲得RSSI和BER值,即。 + CSQ:16,99。問題只有在Linux控制檯上,而不是通過C程序中的fgets。無論如何 - 我試過了,刪除了\ r - 這次完全沒有結果。 – user1108249