From 5e33b1e371f9fc381b85c1d470474fc5628ac5f2 Mon Sep 17 00:00:00 2001 From: Oliver Seiler Date: Fri, 11 Dec 2020 20:13:31 +1300 Subject: [PATCH 1/3] Added os_timeToNextTimeCriticalJob() to retrieve time to next scheduled job --- src/lmic/oslmic.c | 5 +++++ src/lmic/oslmic.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/lmic/oslmic.c b/src/lmic/oslmic.c index fa205f44..bb8f8a90 100644 --- a/src/lmic/oslmic.c +++ b/src/lmic/oslmic.c @@ -167,3 +167,8 @@ bit_t os_queryTimeCriticalJobs(ostime_t time) { else return 0; } + +ostime_t os_timeToNextTimeCriticalJob() { + if (!OS.scheduledjobs) return 0x7FFFFFFFl;//ostime_t_max; + return OS.scheduledjobs->deadline - os_getTime(); +} diff --git a/src/lmic/oslmic.h b/src/lmic/oslmic.h index 448b0290..6ec297ee 100644 --- a/src/lmic/oslmic.h +++ b/src/lmic/oslmic.h @@ -215,6 +215,8 @@ u1_t os_getBattLevel (void); #ifndef os_queryTimeCriticalJobs //! Return non-zero if any jobs are scheduled between now and now+time. bit_t os_queryTimeCriticalJobs(ostime_t time); +// return the time to the next scheduled job, or ostime_t_max if no job is scheduled +ostime_t os_timeToNextTimeCriticalJob(); #endif #ifndef os_rlsbf4 From 6544f5dd2950e95a6eae0b3733f4c8f5274b67a7 Mon Sep 17 00:00:00 2001 From: Oliver Seiler Date: Sat, 30 Mar 2024 09:17:25 +1300 Subject: [PATCH 2/3] check OS.runnablejobs in os_timeToNextTimeCriticalJob() --- src/lmic/oslmic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lmic/oslmic.c b/src/lmic/oslmic.c index bb8f8a90..69520bd2 100644 --- a/src/lmic/oslmic.c +++ b/src/lmic/oslmic.c @@ -169,6 +169,8 @@ bit_t os_queryTimeCriticalJobs(ostime_t time) { } ostime_t os_timeToNextTimeCriticalJob() { + if (OS.runnablejobs) return 0; + if (!OS.scheduledjobs) return 0x7FFFFFFFl;//ostime_t_max; return OS.scheduledjobs->deadline - os_getTime(); } From 231aacb4ef6583d2fff9088f50a0c03a580b0840 Mon Sep 17 00:00:00 2001 From: Oliver Seiler Date: Sat, 30 Mar 2024 09:39:56 +1300 Subject: [PATCH 3/3] fix os_timeToNextTimeCriticalJob declaration --- src/lmic/oslmic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lmic/oslmic.h b/src/lmic/oslmic.h index cb71bad6..6be402ec 100644 --- a/src/lmic/oslmic.h +++ b/src/lmic/oslmic.h @@ -215,6 +215,8 @@ u1_t os_getBattLevel (void); #ifndef os_queryTimeCriticalJobs //! Return non-zero if any jobs are scheduled between now and now+time. bit_t os_queryTimeCriticalJobs(ostime_t time); +#endif +#ifndef os_timeToNextTimeCriticalJob // return the time to the next scheduled job, or ostime_t_max if no job is scheduled ostime_t os_timeToNextTimeCriticalJob(); #endif