[etherlab-dev] PdServ library

Richard Hacker ha at igh.de
Thu May 19 00:25:14 CEST 2016


On 11.04.2016 11:04, Philippe Leuba wrote:
> Hi,
>
> First, I want to congratulate you for this very good  and efficient
> library and the accompanying Test Manager and DLS.
Thank you :)

>
> But I face some issues:
> - pdserv_parameter allows defining an access mode, but I did not see any
> effect in Test Manager
At the moment the access mode is not used. It is reserved for future use.

> -  pdserv_parameter allows defining a callback to have a chance to
> modify data before copying it, is the updated value  expected to be
> reported back to Test Manager ?
Test Manager will always get the updated value.

> - pdserv_event_set allows setting and resetting an event, like a state.
> How to deal with a punctual event, if we set it and reset it
> immediately, it seems not to be sent ?
pdserv_event_set() is used to report "process errors", such as 
monitoring whether a value exceeds a limit or a timer has timed out 
waiting for something to occur. It converts a signal, aka a stream of 
values, into an event with a time stamp.

The event's state is managed internally for every element of the vector. 
A change from false (the default state) from a previous call to true in 
the current call will set the event. Likewise a change from true to 
false will reset the event. Any change is logged to syslog, as well as 
notifying clients such as dls, TestManager and pdcom clients.

Calling pdserv_event_set() with no change in the "state" parameter from 
one call to another has no effect.

A typical use is inside your cyclic loop:

<code>
while (true) {
    // ...
    // read pressure from sensor
    // ..
    pdserv_event_set(overpressure_event, 0, pressure > 5, current_time);
    // ...

    pdserv_update_statistics(...);
    pdserv_update(...);
    sleep(delay);
}
</code>

 From the description above, two consecutive calls in the same 
calculation cycle, once with true and once with false, does not make 
much sense and the result thereof is not guaranteed. There can only be 
one change in one calculation cycle.

>
> Best regards
>
> Philippe Leuba



More information about the Etherlab-dev mailing list