bool Sim900::waitForSignal(int iterations, int wait_time) { int strength = -1, error_rate = -1, strength_count = 0; while(strength <= 0) { if(getSignalQuality(strength, error_rate)) { if(SIM900_DEBUG_OUTPUT) { SIM900_DEBUG_OUTPUT_STREAM->print("Strength: "); SIM900_DEBUG_OUTPUT_STREAM->print(strength); SIM900_DEBUG_OUTPUT_STREAM->print(" Error Rate: "); SIM900_DEBUG_OUTPUT_STREAM->println(error_rate); } } if(strength <= 0) { if(SIM900_DEBUG_OUTPUT) { SIM900_DEBUG_OUTPUT_STREAM->println("Waiting for modem to establish connection..."); } delay(wait_time); strength_count++; } if(strength_count > iterations) { if(SIM900_DEBUG_OUTPUT) { SIM900_DEBUG_OUTPUT_STREAM->println("Could not establish connection. Not uploading data."); } return false; } } return true; }
uint Solid::Control::ModemGsmNetworkInterface::getSignalQuality() const { Q_D(const ModemGsmNetworkInterface); return_SOLID_CALL(Ifaces::ModemGsmNetworkInterface *, d->backendObject(), 0, getSignalQuality()); }