void testBACnetDateTimeAdd( Test * pTest) { BACNET_DATE_TIME bdatetime, test_bdatetime; uint32_t minutes = 0; int diff = 0; datetime_set_values(&bdatetime, 1900, 1, 1, 0, 0, 0, 0); datetime_copy(&test_bdatetime, &bdatetime); datetime_add_minutes(&bdatetime, minutes); diff = datetime_compare(&test_bdatetime, &bdatetime); ct_test(pTest, diff == 0); datetime_set_values(&bdatetime, 1900, 1, 1, 0, 0, 0, 0); datetime_add_minutes(&bdatetime, 60); datetime_set_values(&test_bdatetime, 1900, 1, 1, 1, 0, 0, 0); diff = datetime_compare(&test_bdatetime, &bdatetime); ct_test(pTest, diff == 0); datetime_set_values(&bdatetime, 1900, 1, 1, 0, 0, 0, 0); datetime_add_minutes(&bdatetime, (24 * 60)); datetime_set_values(&test_bdatetime, 1900, 1, 2, 0, 0, 0, 0); diff = datetime_compare(&test_bdatetime, &bdatetime); ct_test(pTest, diff == 0); datetime_set_values(&bdatetime, 1900, 1, 1, 0, 0, 0, 0); datetime_add_minutes(&bdatetime, (31 * 24 * 60)); datetime_set_values(&test_bdatetime, 1900, 2, 1, 0, 0, 0, 0); diff = datetime_compare(&test_bdatetime, &bdatetime); ct_test(pTest, diff == 0); }
void bacapp_timestamp_datetime_set( BACNET_TIMESTAMP * dest, BACNET_DATE_TIME * bdateTime) { if (dest && bdateTime) { dest->tag = TIME_STAMP_DATETIME; datetime_copy(&dest->value.dateTime, bdateTime); } }
/** * Sends a UTC TimeSync message using the local time from the device. */ void Send_TimeSyncUTC_Device(void) { int32_t utc_offset_minutes = 0; bool dst = false; BACNET_DATE_TIME local_time; BACNET_DATE_TIME utc_time; Device_getCurrentDateTime(&local_time); dst = Device_Daylight_Savings_Status(); utc_offset_minutes = Device_UTC_Offset(); datetime_copy(&utc_time, &local_time); datetime_add_minutes(&utc_time, utc_offset_minutes); if (dst) { datetime_add_minutes(&utc_time, -60); } Send_TimeSyncUTC(&utc_time.date, &utc_time.time); }
void bacapp_timestamp_copy( BACNET_TIMESTAMP * dest, BACNET_TIMESTAMP * src) { if (dest && src) { dest->tag = src->tag; switch (src->tag) { case TIME_STAMP_TIME: datetime_copy_time(&dest->value.time, &src->value.time); break; case TIME_STAMP_SEQUENCE: dest->value.sequenceNum = src->value.sequenceNum; break; case TIME_STAMP_DATETIME: datetime_copy(&dest->value.dateTime, &src->value.dateTime); break; default: break; } } }
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; }
void testBACnetDateTime( Test * pTest) { BACNET_DATE_TIME bdatetime1, bdatetime2; BACNET_DATE bdate; BACNET_TIME btime; int diff = 0; datetime_set_values(&bdatetime1, 1900, 1, 1, 0, 0, 0, 0); datetime_copy(&bdatetime2, &bdatetime1); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff == 0); datetime_set_time(&btime, 0, 0, 0, 0); datetime_set_date(&bdate, 1900, 1, 1); datetime_set(&bdatetime1, &bdate, &btime); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff == 0); /* midpoint */ /* if datetime1 is before datetime2, returns negative */ datetime_set_values(&bdatetime1, 2000, 7, 15, 12, 30, 30, 50); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 30, 30, 51); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 30, 31, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 31, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 13, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 7, 16, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 8, 15, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2001, 7, 15, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff < 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 30, 30, 49); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 30, 29, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 12, 29, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 2000, 7, 15, 11, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 2000, 7, 14, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 2000, 6, 15, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); datetime_set_values(&bdatetime2, 1999, 7, 15, 12, 30, 30, 50); diff = datetime_compare(&bdatetime1, &bdatetime2); ct_test(pTest, diff > 0); return; }