void datetime_wildcard_set( BACNET_DATE_TIME * bdatetime) { if (bdatetime) { datetime_date_wildcard_set(&bdatetime->date); datetime_time_wildcard_set(&bdatetime->time); } }
static void Update_Current_Time( void) { struct tm *tblock = NULL; #if defined(_MSC_VER) time_t tTemp; #else struct timeval tv; #endif /* struct tm int tm_sec Seconds [0,60]. int tm_min Minutes [0,59]. int tm_hour Hour [0,23]. int tm_mday Day of month [1,31]. int tm_mon Month of year [0,11]. int tm_year Years since 1900. int tm_wday Day of week [0,6] (Sunday =0). int tm_yday Day of year [0,365]. int tm_isdst Daylight Savings flag. */ #if defined(_MSC_VER) time(&tTemp); tblock = (struct tm *)localtime(&tTemp); #else if (gettimeofday(&tv, NULL) == 0) { tblock = (struct tm *)localtime((const time_t *)&tv.tv_sec); } #endif if (tblock) { datetime_set_date(&Local_Date, (uint16_t) tblock->tm_year + 1900, (uint8_t) tblock->tm_mon + 1, (uint8_t) tblock->tm_mday); #if !defined(_MSC_VER) datetime_set_time(&Local_Time, (uint8_t) tblock->tm_hour, (uint8_t) tblock->tm_min, (uint8_t) tblock->tm_sec, (uint8_t) (tv.tv_usec / 10000)); #else datetime_set_time(&Local_Time, (uint8_t) tblock->tm_hour, (uint8_t) tblock->tm_min, (uint8_t) tblock->tm_sec, 0); #endif if (tblock->tm_isdst) { Daylight_Savings_Status = true; } else { Daylight_Savings_Status = false; } /* note: timezone is declared in <time.h> stdlib. */ UTC_Offset = timezone / 60; } else { datetime_date_wildcard_set(&Local_Date); datetime_time_wildcard_set(&Local_Time); Daylight_Savings_Status = false; } }
static void testWildcardDateTime( Test * pTest) { BACNET_DATE_TIME bdatetime1, bdatetime2; BACNET_DATE bdate; BACNET_TIME btime; int diff = 0; datetime_wildcard_set(&bdatetime1); ct_test(pTest, datetime_wildcard(&bdatetime1)); ct_test(pTest, datetime_wildcard_present(&bdatetime1)); datetime_copy(&bdatetime2, &bdatetime1); diff = datetime_wildcard_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff == 0); datetime_time_wildcard_set(&btime); datetime_date_wildcard_set(&bdate); datetime_set(&bdatetime1, &bdate, &btime); diff = datetime_wildcard_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff == 0); return; }