处理信号质量
2012-11-19 09:35
274 查看
/** * Initialize everything that can be configured while we're still in * AT+CFUN=0 */ #define N_RMNET 25 static void initializeCallback(void *param) { We are using +XCIEV: indications instead of +CSQ and storing values for Android to pick up. added by yanghanming 2012-11-06 */ at_send_command("AT+XMER=1",NULL); }
/** * Called by atchannel when an unsolicited line appears * This is called on atchannel's reader thread. AT commands may * not be issued here */ static void onUnsolicited (const char *s, const char *sms_pdu) { /* We are using +XCIEV: indications instead of +CSQ and storing values for Android to pick up. added by yanghanming 2012-11-06 */ } else if (strStartsWith(s,"+XCIEV:")) { unsolicitedRSSI(s); } }
/* added by yanghanming for unsolicitedRSSI.2012-11-06 */ static int intelRSSITo3gpp(int intel_rssi) { switch(intel_rssi){ case 0: return(3); break; case 1: return(7); break; case 2: return(11); break; case 3: return(15); break; case 4: return(19); break; case 5: return(23); break; case 6: return(27); break; case 7: return(31); break; default: return 99; } } /* added by yanghanming for unsolicitedRSSI.2012-11-06 */ static void unsolicitedRSSI(const char * s) { int err; char * line = NULL; RIL_SignalStrength_v6 responseStr; memset (&responseStr, -1, sizeof (responseStr)); responseStr.GW_SignalStrength.signalStrength = 99; line = strdup(s); at_tok_start(&line); err = at_tok_nextint(&line, &(at_csq_rssi)); if (err < 0) goto error; responseStr.GW_SignalStrength.signalStrength = intelRSSITo3gpp(at_csq_rssi); responseStr.GW_SignalStrength.bitErrorRate = at_csq_ber; RIL_onUnsolicitedResponse(RIL_UNSOL_SIGNAL_STRENGTH, &responseStr, sizeof (responseStr)); return; error: /* The notification was for a battery event - do not send a msg to upper layers */ return; } /* added by yanghanming for requestSignalStrength.2012-11-06 */ static void requestSignalStrength(void *data, size_t datalen, RIL_Token t) { int err; RIL_SignalStrength_v6 responseTemp; memset (&responseTemp, -1, sizeof (responseTemp)); responseTemp.GW_SignalStrength.signalStrength = 99; LOGD("Sending stored CSQ values to RIL"); responseTemp.GW_SignalStrength.signalStrength = intelRSSITo3gpp(at_csq_rssi); responseTemp.GW_SignalStrength.bitErrorRate = at_csq_ber; RIL_onRequestComplete(t, RIL_E_SUCCESS, &responseTemp, sizeof (responseTemp)); return; }
相关文章推荐
- 语音信号处理之(四)梅尔频率倒谱系数(MFCC)
- QSignalMapper类处理多信号关联同一个槽的方法(1)
- linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)
- 信号处理学习笔记(二)Decimation信号抽取
- 并行信号处理技术-异构并行实时处理平台
- Linux 多线程应用中如何编写安全的信号处理函数
- 信号处理和模式识别方面的MATLAB工具箱
- Linux信号机制与信号处理
- 信号质量,信号强度
- 用sigaction( )处理信号
- 修改:类shell程序的简化实现,尝试消除ctrl+c,结果处理完信号后挑出了while循环
- 多因子模型之因子(信号)测试平台----python中Pandas做处理时内存节省的技巧
- sigaction 信号处理
- [libevent]集成信号处理和集成定时器事件
- GUI系统之SurfaceFlinger(13)VSync信号的处理
- 浅谈阵列信号处理中的高斯白噪声,功率谱,生成高斯白噪声
- vsftpd中很管用的同异步信号处理代码
- 信号处理——EMD、VMD的一点小思考
- 信号处理(二)
- 无线信号受哪些因素的影响及如何在现有的环境中改善信号传输质量