Topic RSS16:58, EET
March 16, 2017
OfflineHi,
what is the difference between GOOD (0x00000000) and Good (0x00000480)
DataValue(value=20, statusCode=GOOD (0x00000000) “The operation succeeded.”, sourceTimestamp=01/02/26 14:44:36.0000000 GMT…
DataValue(value=21, statusCode=GOOD (0x00000000) “The operation succeeded.”, sourceTimestamp=01/02/26 14:44:37.0000000 GMT…
DataValue(value=23, statusCode=Good (0x00000480) “The operation succeeded.”, sourceTimestamp=01/02/26 14:44:39.0000000 GMT…
Thank you!
17:19, EET
December 21, 2011
OfflineThe lower bits in the Status Code may provide additional information, in this case it’s an indication of Overflow.
This is from the source of StatusCode.java and it corresponds to the specification but more clearly…
/**
* If these bits are set, not every detected change has been returned since the Server’s queue
* buffer for the MonitoredItem reached its limit and had to purge out data.
*
*
* Consists of the {@link #INFOTYPE_DATAVALUE} and {@link #OVERFLOW_BIT}
*/
public static final int OVERFLOW_MASK = 0x00000480;
18:05, EET
March 16, 2017
OfflineThank you.
It seems to happen very seldom.
I’ve a subscription with publishing interval 10s and a monitored data item with sampling interval 1s and queue size 10.
So I assume that sometimes I get 11 data changes in this 10 seconds and if that is the case, then the last one is overwritten with the 11th value (so the value is 23 instead of 22 from my example), right?
18:20, EET
December 21, 2011
OfflineExactly. In this case, the info bits in the StatusCode are changed to indicate that one or more samples were dropped. You could just use a longer queue, to ensure you get all the samples in all cases. It shouldn’t hurt to use even 20 or more – in practice the server (SDK for Java based, at least), uses a dynamically sized queue, so the QueueSize is just an upper limit for it, in practice.
In case you would get connection hiccups, the server could use a longer queue to store all the samples during the break, as well.
1 Guest(s)

Log In
Register