Ejemplo n.º 1
0
void load_clock() {
  time_t now = time(NULL);
#ifdef PBL_SDK_2
  struct tm *t = localtime(&now);
#else
  struct tm *t = gmtime(&now);
#endif
  tick_clock(t, true);
  if(persist_exists(SW_BUTT)) {
    sw_butt = persist_read_int(SW_BUTT);
    persist_read_data(SW_STOP, &reg, sizeof(reg));
    lap.tm_hour = t->tm_hour - reg.tm_hour + 960;
    lap.tm_hour += (t->tm_yday - reg.tm_yday) * 24;//days;
    if(reg.tm_year != t->tm_year) {
      lap.tm_hour += 365 * 24;//happy new year (close enough)
      if((reg.tm_year%4 == 0) && ((reg.tm_year%100 != 0) || (reg.tm_year%400 == 0)))
        lap.tm_hour += 24;//leap year day
      if(t->tm_year - reg.tm_year > 1) {//greater than 1 year
        reset_sw();//get a life!!
        return;
      } 
    }
    lap.tm_min = t->tm_min - reg.tm_min + 60;
    lap.tm_sec = t->tm_sec - reg.tm_sec + 60;
    persist_read_data(SW_STORE, &reg, sizeof(reg));
    if((sw_butt&1)==1) {//add extra running time
      reg.tm_hour += lap.tm_hour;
      reg.tm_hour %= 960;//40 day timer
      reg.tm_min += lap.tm_min;
      reg.tm_min %= 60;
      reg.tm_sec += lap.tm_sec;
      reg.tm_sec %= 60;
    }
    persist_read_data(SW_LAP, &lap, sizeof(lap));
    return;
  }
  reset_sw();
}
Ejemplo n.º 2
0
void test_reconfigure(){

	/*
	* initially OF12
	*/
	//OF12->OF10
	reset_sw(OF_VERSION_12);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_10) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw10) == 0);

	//OF12->OF13
	reset_sw(OF_VERSION_12);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_13) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw13) == 0);

	/*
	* initially OF10
	*/
	//OF10->OF12
	reset_sw(OF_VERSION_10);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_12) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw12) == 0);

	//OF10->OF13
	reset_sw(OF_VERSION_10);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_13) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw13) == 0);



	/*
	* initially OF13
	*/
	//OF13->OF10
	reset_sw(OF_VERSION_13);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_10) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw10) == 0);

	//OF13->OF12
	reset_sw(OF_VERSION_13);
	CU_ASSERT(of_reconfigure_switch((of_switch_t*)sw, OF_VERSION_12) == ROFL_SUCCESS);
	CU_ASSERT(compare(sw, sw12) == 0);
}