 int last_call_hour;
 int last_message_hour;
 
-int monPeriod1 = 300; // 5 minutes
-int monPeriod2 = 600; // 10 minutes
-int monPeriod3 = 1800;// 60 minutes
-
-long count_t1, count_t2, count_t3;
-long startOfPeriod1, startOfPeriod2, startOfPeriod3;
-
-
-float gsm_signal = 0;
-float tt1m[4], tt2m[4], tt3m[4];
-float tt1mLast[4], tt2mLast[4], tt3mLast[4];
+int monPeriod1Len = 600;                              // 10 minutes
+float dataPeriod1[4][600];
+
+int monPeriod2Len = 36000;                             // 60 minutes
+float dataPeriod2[4][60];
+
+int monPeriod3Len = 21600;                            // 12 hours 
+float dataPeriod3[4][36];
+
+long count_t1,        count_t2,       count_t3;
+long startOfPeriod1,  startOfPeriod2, startOfPeriod3;
+
+
+float gsm_signal;
+float tt1m[4],      tt2m[4],      tt3m[4];
+float tt1mLast[4],  tt2mLast[4],  tt3mLast[4];
 float tt1mTrend[4], tt2mTrend[4], tt3mTrend[4];
-int tt1m_avg[4], tt2m_avg[4], tt3m_avg[4];
+int   tt1m_avg[4],  tt2m_avg[4],  tt3m_avg[4];
+
 
 boolean call_done;
 boolean message_done;

    if (readString.substring(i, i + 5) == "+CSQ:")
    {
      sim900status = true;
        if (debug) {
      Serial.print("FOUND:"); Serial.println(readString.substring(i, i + 10));
       }
      gsm_signal = readString.substring(i+5, i + 10).toFloat();
      break;
    }
  }
  return sim900status;
}

String toProgressBar(int minV, int maxV, int currV)
{
  String result;

  }
  return sim900status;
}

// get and update network db rate from SIM900 module
boolean getNetworkStatus(boolean debug)
{
  boolean sim900status = false;
