AP_RTC: tighten types on get_system_clock_utc

None of these components should ever be negative - given its source is
only ever seconds-since-epoch.
This commit is contained in:
Peter Barker 2019-08-16 12:32:13 +10:00 committed by Peter Barker
parent 4492c09b3b
commit 46c880089c
3 changed files with 6 additions and 4 deletions

View File

@ -72,7 +72,7 @@ bool AP_RTC::get_utc_usec(uint64_t &usec) const
return true; return true;
} }
bool AP_RTC::get_system_clock_utc(int32_t &hour, int32_t &min, int32_t &sec, int32_t &ms) bool AP_RTC::get_system_clock_utc(uint8_t &hour, uint8_t &min, uint8_t &sec, uint16_t &ms)
{ {
// get time of day in ms // get time of day in ms
uint64_t time_ms = 0; uint64_t time_ms = 0;
@ -115,7 +115,8 @@ uint32_t AP_RTC::get_time_utc(int32_t hour, int32_t min, int32_t sec, int32_t ms
} }
// get start_time_ms as h, m, s, ms // get start_time_ms as h, m, s, ms
int32_t curr_hour, curr_min, curr_sec, curr_ms; uint8_t curr_hour, curr_min, curr_sec;
uint16_t curr_ms;
if (!get_system_clock_utc(curr_hour, curr_min, curr_sec, curr_ms)) { if (!get_system_clock_utc(curr_hour, curr_min, curr_sec, curr_ms)) {
return 0; return 0;
} }

View File

@ -37,7 +37,7 @@ public:
/* /*
get time in UTC hours, minutes, seconds and milliseconds get time in UTC hours, minutes, seconds and milliseconds
*/ */
bool get_system_clock_utc(int32_t &hour, int32_t &min, int32_t &sec, int32_t &ms); bool get_system_clock_utc(uint8_t &hour, uint8_t &min, uint8_t &sec, uint16_t &ms);
uint32_t get_time_utc(int32_t hour, int32_t min, int32_t sec, int32_t ms); uint32_t get_time_utc(int32_t hour, int32_t min, int32_t sec, int32_t ms);

View File

@ -70,7 +70,8 @@ void loop(void)
} }
{ // generally make sure time is moving forward / initial time { // generally make sure time is moving forward / initial time
// offset looks right // offset looks right
int32_t hour, min, sec, ms; uint8_t hour, min, sec;
uint16_t ms;
if (!rtc.get_system_clock_utc(hour, min, sec, ms)) { if (!rtc.get_system_clock_utc(hour, min, sec, ms)) {
failed("Failed to get hour/min/sec/ms"); failed("Failed to get hour/min/sec/ms");
return; return;