git.ucc.asn.au
/
matches
/
MCTX3420.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github:szmoore/MCTX3420
[matches/MCTX3420.git]
/
server
/
actuator.c
diff --git
a/server/actuator.c
b/server/actuator.c
index
2be4194
..
1c105db
100644
(file)
--- a/
server/actuator.c
+++ b/
server/actuator.c
@@
-171,9
+171,12
@@
void * Actuator_Loop(void * arg)
Actuator_SetValue(a, a->control.start, true);
// Currently does discrete steps after specified time intervals
Actuator_SetValue(a, a->control.start, true);
// Currently does discrete steps after specified time intervals
+
+ struct timespec wait;
+ DOUBLE_TO_TIMEVAL(a->control.stepsize, &wait);
while (!a->control_changed && a->control.steps > 0 && a->activated)
{
while (!a->control_changed && a->control.steps > 0 && a->activated)
{
-
usleep(1e6*(a->control.stepwait)
);
+
clock_nanosleep(CLOCK_MONOTONIC, 0, &wait, NULL
);
a->control.start += a->control.stepsize;
Actuator_SetValue(a, a->control.start, true);
a->control.start += a->control.stepsize;
Actuator_SetValue(a, a->control.start, true);
@@
-181,7
+184,7
@@
void * Actuator_Loop(void * arg)
}
if (a->control_changed)
continue;
}
if (a->control_changed)
continue;
-
usleep(1e6*(a->control.stepwait)
);
+
clock_nanosleep(CLOCK_MONOTONIC, 0, &wait, NULL
);
//TODO:
// Note that although this loop has a sleep in it which would seem to make it hard to enforce urgent shutdowns,
//TODO:
// Note that although this loop has a sleep in it which would seem to make it hard to enforce urgent shutdowns,
@@
-231,8
+234,8
@@
void Actuator_SetValue(Actuator * a, double value, bool record)
}
// Set time stamp
}
// Set time stamp
- struct time
val
t;
-
gettimeofday(&t, NULL
);
+ struct time
spec
t;
+
clock_gettime(CLOCK_MONOTONIC, &t
);
DataPoint d = {TIMEVAL_DIFF(t, *Control_GetStartTime()), a->last_setting.value};
// Record value change
if (record)
DataPoint d = {TIMEVAL_DIFF(t, *Control_GetStartTime()), a->last_setting.value};
// Record value change
if (record)
@@
-296,8
+299,8
@@
void Actuator_EndResponse(FCGIContext * context, Actuator * a, DataFormat format
*/
void Actuator_Handler(FCGIContext * context, char * params)
{
*/
void Actuator_Handler(FCGIContext * context, char * params)
{
- struct time
val
now;
-
gettimeofday(&now, NULL
);
+ struct time
spec
now;
+
clock_gettime(CLOCK_MONOTONIC, &now
);
double current_time = TIMEVAL_DIFF(now, *Control_GetStartTime());
int id = 0;
char * name = "";
double current_time = TIMEVAL_DIFF(now, *Control_GetStartTime());
int id = 0;
char * name = "";
UCC
git Repository :: git.ucc.asn.au