From b698ba0cddb690af653285d248f89861dbfba18e Mon Sep 17 00:00:00 2001 From: skarg Date: Mon, 14 Jan 2008 22:03:15 +0000 Subject: [PATCH] Corrected the COV lifetime to be seconds, not milliseconds. --- bacnet-stack/demo/BACnetDemo.workspace | 4 ++-- bacnet-stack/demo/handler/h_cov.c | 10 +++++----- bacnet-stack/demo/server/main.c | 10 ++++++---- bacnet-stack/include/cov.h | 4 ++-- bacnet-stack/include/handlers.h | 2 +- bacnet-stack/ports/dos/bacnet.prj | Bin 4606 -> 4610 bytes 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/bacnet-stack/demo/BACnetDemo.workspace b/bacnet-stack/demo/BACnetDemo.workspace index 2c547c1b..a7f44ac8 100644 --- a/bacnet-stack/demo/BACnetDemo.workspace +++ b/bacnet-stack/demo/BACnetDemo.workspace @@ -1,8 +1,8 @@ - + - + diff --git a/bacnet-stack/demo/handler/h_cov.c b/bacnet-stack/demo/handler/h_cov.c index d279643c..29ff0343 100644 --- a/bacnet-stack/demo/handler/h_cov.c +++ b/bacnet-stack/demo/handler/h_cov.c @@ -224,10 +224,10 @@ COV_FAILED: /* note: worst case tasking: MS/TP with the ability to send only one notification per task cycle */ void handler_cov_task( - uint32_t elapsed_milliseconds) + uint32_t elapsed_seconds) { int index; - int lifetime_milliseconds; + int lifetime_seconds; BACNET_OBJECT_ID object_id; bool status = false; @@ -236,9 +236,9 @@ void handler_cov_task( for (index = 0; index < MAX_COV_SUBCRIPTIONS; index++) { if (COV_Subscriptions[index].valid) { /* handle timeouts */ - lifetime_milliseconds = COV_Subscriptions[index].lifetime; - if (lifetime_milliseconds >= elapsed_milliseconds) { - COV_Subscriptions[index].lifetime -= elapsed_milliseconds; + lifetime_seconds = COV_Subscriptions[index].lifetime; + if (lifetime_seconds >= elapsed_seconds) { + COV_Subscriptions[index].lifetime -= elapsed_seconds; } else { COV_Subscriptions[index].lifetime = 0; } diff --git a/bacnet-stack/demo/server/main.c b/bacnet-stack/demo/server/main.c index 188efee8..5e71d16f 100644 --- a/bacnet-stack/demo/server/main.c +++ b/bacnet-stack/demo/server/main.c @@ -107,6 +107,7 @@ int main( unsigned timeout = 100; /* milliseconds */ time_t last_seconds = 0; time_t current_seconds = 0; + uint32_t elapsed_seconds = 0; uint32_t elapsed_milliseconds = 0; char *pEnv = NULL; @@ -178,11 +179,12 @@ int main( npdu_handler(&src, &Rx_Buf[0], pdu_len); } /* at least one second has passed */ - if (current_seconds != last_seconds) { - dcc_timer_seconds(current_seconds - last_seconds); + elapsed_seconds = current_seconds - last_seconds; + if (elapsed_seconds) { + dcc_timer_seconds(elapsed_seconds); Load_Control_State_Machine_Handler(); - elapsed_milliseconds = (current_seconds - last_seconds) * 1000; - handler_cov_task(elapsed_milliseconds); + elapsed_milliseconds = elapsed_seconds * 1000; + handler_cov_task(elapsed_seconds); tsm_timer_milliseconds(elapsed_milliseconds); } /* output */ diff --git a/bacnet-stack/include/cov.h b/bacnet-stack/include/cov.h index 24ee2e8c..e0aab321 100644 --- a/bacnet-stack/include/cov.h +++ b/bacnet-stack/include/cov.h @@ -52,7 +52,7 @@ typedef struct BACnet_COV_Data { uint32_t subscriberProcessIdentifier; uint32_t initiatingDeviceIdentifier; BACNET_OBJECT_ID monitoredObjectIdentifier; - uint32_t timeRemaining; + uint32_t timeRemaining; /* seconds */ /* simple linked list of values */ BACNET_PROPERTY_VALUE listOfValues; } BACNET_COV_DATA; @@ -67,7 +67,7 @@ typedef struct BACnet_Subscribe_COV_Data { BACNET_OBJECT_ID monitoredObjectIdentifier; bool cancellationRequest; /* true if this is a cancellation request */ bool issueConfirmedNotifications; /* optional */ - uint32_t lifetime; /* optional */ + uint32_t lifetime; /* seconds, optional */ BACNET_PROPERTY_REFERENCE monitoredProperty; bool covIncrementPresent; /* true if present */ float covIncrement; /* optional */ diff --git a/bacnet-stack/include/handlers.h b/bacnet-stack/include/handlers.h index 389f5bd6..c41b330b 100644 --- a/bacnet-stack/include/handlers.h +++ b/bacnet-stack/include/handlers.h @@ -149,7 +149,7 @@ extern "C" { BACNET_ADDRESS * src, BACNET_CONFIRMED_SERVICE_DATA * service_data); void handler_cov_task( - uint32_t elapsed_milliseconds); + uint32_t elapsed_seconds); #ifdef __cplusplus } diff --git a/bacnet-stack/ports/dos/bacnet.prj b/bacnet-stack/ports/dos/bacnet.prj index c860410c0e33707478702384c23a002a729b5ce7..ce2a1677177fe31434e2f4e846887f9187515860 100644 GIT binary patch delta 705 zcmeyT+@!Lhg@;X^LC{;zVsaNx8owNv$p8hRlmGL?^2>t7WEdfWuA8%Y%^B;JnU#S2 zos7pAA2a@C6k}3mvSo^7DrK6)w2tXA(+?&#W>Mzp3%6F)(m22!r_|U{VyULJY*N zHx~zUB%sO<%5MA*GQ>54fk6NWRRY?~`58L1s?GVpDtN)FdB7w$!`*;db1nwydUXp< z1_@^+3l4^zftnWVU~x8vCdW2&Rxq1|p?saEIWxnx9CZsO28+@*^Z)-3dfZ|9|6c&; z_`p!tP**(mBbF08^r;7XwEj&M}^T&OV_ot}#BIzMdh$ zFh#BrA>QHsK`t=<`&!W70sRpuAq5{g~M#m6@|1n%|8{{$p#LB2rM4s@KWU#Ks36M&K~ bu5K{7$-#n(EFcpmR|qOH1EYHK9Kj?206qcq delta 662 zcmZ8eO)tbi7=CBESh95MV_6m}oO>d(_8{4vc4_vb)!pK-NE{qEAR!VP5g%#7!KHDO zI6DaO3-%Z6AK=8n58&XUI-?tE(#$;bJn#FwPur7;ukrh{NUH=dXEt#zBI{x|ym}D) zHS4&MWiigV1o|Oo9ydD)S{N0Q-hCdepc?u_-FOsFV+-%#OMHtP_#II6{$;5*A_RlLm?2;V365P?rjX|C z#r$f{_|x8R7PO*PDSH$^7vPLyY5ojt6|V`tSocQ(*zUFdrM7Mor4{uwJt~ znVM>b3s#j3#cC?4prjOv