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, ®, 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, ®, 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(); }
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); }