Exemple #1
0
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());
}