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); }
/** * 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); }