Skip to main content

DataValue

Struct DataValue 

Source
pub struct DataValue {
    pub value: Option<Variant>,
    pub status: Option<StatusCode>,
    pub source_timestamp: Option<DateTime>,
    pub source_picoseconds: Option<u16>,
    pub server_timestamp: Option<DateTime>,
    pub server_picoseconds: Option<u16>,
}
Expand description

A data value is a value of a variable in the OPC UA server and contains information about its value, status and change timestamps.

Fields§

§value: Option<Variant>

The value. BaseDataType Not present if the Value bit in the EncodingMask is False.

§status: Option<StatusCode>

The status associated with the value. Not present if the StatusCode bit in the EncodingMask is False

§source_timestamp: Option<DateTime>

The source timestamp associated with the value. Not present if the SourceTimestamp bit in the EncodingMask is False.

§source_picoseconds: Option<u16>

The number of 10 picosecond intervals for the SourceTimestamp. Not present if the SourcePicoSeconds bit in the EncodingMask is False. If the source timestamp is missing the picoseconds are ignored.

§server_timestamp: Option<DateTime>

The Server timestamp associated with the value. Not present if the ServerTimestamp bit in the EncodingMask is False.

§server_picoseconds: Option<u16>

The number of 10 picosecond intervals for the ServerTimestamp. Not present if the ServerPicoSeconds bit in the EncodingMask is False. If the Server timestamp is missing the picoseconds are ignored.

Implementations§

Source§

impl DataValue

Source

pub fn value_only<V>(value: V) -> DataValue
where V: Into<Variant>,

Creates a DataValue from the supplied value with nothing else.

Source

pub fn new_now<V>(value: V) -> DataValue
where V: Into<Variant>,

Creates a DataValue from the supplied value AND a timestamp for now. If you are passing a value to the Attribute::Write service on a server from a server, you may consider this from the specification:

If the SourceTimestamp or the ServerTimestamp is specified, the Server shall use these values. The Server returns a Bad_WriteNotSupported error if it does not support writing of timestamps

In which case, use the value_only() constructor, or make explicit which fields you pass.

Source

pub fn new_at<V>(value: V, time: DateTime) -> DataValue
where V: Into<Variant>,

Creates a DataValue from the supplied value and timestamp. If you are passing a value to the Attribute::Write service on a server from a server, you may consider this from the specification:

If the SourceTimestamp or the ServerTimestamp is specified, the Server shall use these values. The Server returns a Bad_WriteNotSupported error if it does not support writing of timestamps

In which case, use the value_only() constructor, or make explicit which fields you pass.

Source

pub fn new_now_status<V>(value: V, status: StatusCode) -> DataValue
where V: Into<Variant>,

Creates a DataValue from the supplied value AND a timestamp for now. If you are passing a value to the Attribute::Write service on a server from a server, you may consider this from the specification:

If the SourceTimestamp or the ServerTimestamp is specified, the Server shall use these values. The Server returns a Bad_WriteNotSupported error if it does not support writing of timestamps

In which case, use the value_only() constructor, or make explicit which fields you pass.

Source

pub fn new_at_status<V>( value: V, time: DateTime, status: StatusCode, ) -> DataValue
where V: Into<Variant>,

Creates a DataValue from the supplied value and timestamp. If you are passing a value to the Attribute::Write service on a server from a server, you may consider this from the specification:

If the SourceTimestamp or the ServerTimestamp is specified, the Server shall use these values. The Server returns a Bad_WriteNotSupported error if it does not support writing of timestamps

In which case, use the value_only() constructor, or make explicit which fields you pass.

Source

pub fn null() -> DataValue

Creates an empty DataValue

Source

pub fn set_value<V>( &mut self, value: V, source_timestamp: &DateTime, server_timestamp: &DateTime, )
where V: Into<Variant>,

Sets the value of the data value, updating the timestamps at the same point

Source

pub fn set_timestamps( &mut self, timestamps_to_return: TimestampsToReturn, source_timestamp: DateTime, server_timestamp: DateTime, )

Sets the timestamps of the data value based on supplied timestamps to return

Source

pub fn status(&self) -> StatusCode

Returns the status code or Good if there is no code on the value

Source

pub fn is_valid(&self) -> bool

Test if the value held by this data value is known to be good Anything other than Good is assumed to be invalid.

Trait Implementations§

Source§

impl BinaryDecodable for DataValue

Source§

fn decode<S: Read + ?Sized>( stream: &mut S, ctx: &Context<'_>, ) -> EncodingResult<Self>

Decodes an instance from the read stream. The decoding options contains restrictions set by the server / client on the length of strings, arrays etc. If these limits are exceeded the implementation should return with a BadDecodingError as soon as possible.
Source§

impl BinaryEncodable for DataValue

Source§

fn byte_len(&self, ctx: &Context<'_>) -> usize

Returns the exact byte length of the structure as it would be if encode were called. This may be called prior to writing to ensure the correct amount of space is available.
Source§

fn encode<S: Write + ?Sized>( &self, stream: &mut S, ctx: &Context<'_>, ) -> EncodingResult<()>

Encodes the instance to the write stream.
Source§

fn override_encoding(&self) -> Option<BuiltInDataEncoding>

Override the extension object encoding used for this type. This only makes sense if the type can only ever be encoded using a single built-in encoding.
Source§

fn encode_to_vec(&self, ctx: &Context<'_>) -> Vec<u8>

Convenience method for encoding a message straight into an array of bytes. It is preferable to reuse buffers than to call this so it should be reserved for tests and trivial code.
Source§

impl Clone for DataValue

Source§

fn clone(&self) -> DataValue

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DataValue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DataValue

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'a> From<&'a str> for DataValue

Source§

fn from(v: &'a str) -> Self

Converts to this type from the input type.
Source§

impl From<(Variant, StatusCode)> for DataValue

Source§

fn from(v: (Variant, StatusCode)) -> Self

Converts to this type from the input type.
Source§

impl From<ByteString> for DataValue

Source§

fn from(v: ByteString) -> Self

Converts to this type from the input type.
Source§

impl From<DateTime> for DataValue

Source§

fn from(v: DateTime) -> Self

Converts to this type from the input type.
Source§

impl From<Guid> for DataValue

Source§

fn from(v: Guid) -> Self

Converts to this type from the input type.
Source§

impl From<LocalizedText> for DataValue

Source§

fn from(v: LocalizedText) -> Self

Converts to this type from the input type.
Source§

impl From<NodeId> for DataValue

Source§

fn from(v: NodeId) -> Self

Converts to this type from the input type.
Source§

impl From<QualifiedName> for DataValue

Source§

fn from(v: QualifiedName) -> Self

Converts to this type from the input type.
Source§

impl From<StatusCode> for DataValue

Source§

fn from(v: StatusCode) -> Self

Converts to this type from the input type.
Source§

impl From<String> for DataValue

Source§

fn from(v: String) -> Self

Converts to this type from the input type.
Source§

impl From<UAString> for DataValue

Source§

fn from(v: UAString) -> Self

Converts to this type from the input type.
Source§

impl From<Variant> for DataValue

Source§

fn from(v: Variant) -> Self

Converts to this type from the input type.
Source§

impl From<bool> for DataValue

Source§

fn from(v: bool) -> Self

Converts to this type from the input type.
Source§

impl From<f32> for DataValue

Source§

fn from(v: f32) -> Self

Converts to this type from the input type.
Source§

impl From<f64> for DataValue

Source§

fn from(v: f64) -> Self

Converts to this type from the input type.
Source§

impl From<i16> for DataValue

Source§

fn from(v: i16) -> Self

Converts to this type from the input type.
Source§

impl From<i32> for DataValue

Source§

fn from(v: i32) -> Self

Converts to this type from the input type.
Source§

impl From<i64> for DataValue

Source§

fn from(v: i64) -> Self

Converts to this type from the input type.
Source§

impl From<i8> for DataValue

Source§

fn from(v: i8) -> Self

Converts to this type from the input type.
Source§

impl From<u16> for DataValue

Source§

fn from(v: u16) -> Self

Converts to this type from the input type.
Source§

impl From<u32> for DataValue

Source§

fn from(v: u32) -> Self

Converts to this type from the input type.
Source§

impl From<u64> for DataValue

Source§

fn from(v: u64) -> Self

Converts to this type from the input type.
Source§

impl From<u8> for DataValue

Source§

fn from(v: u8) -> Self

Converts to this type from the input type.
Source§

impl IntoVariant for Box<DataValue>

Source§

fn into_variant(self) -> Variant

Convert self into a variant.
Source§

impl IntoVariant for DataValue

Source§

fn into_variant(self) -> Variant

Convert self into a variant.
Source§

impl JsonDecodable for DataValue

Source§

fn decode( stream: &mut JsonStreamReader<&mut dyn Read>, ctx: &Context<'_>, ) -> EncodingResult<Self>

Decode Self from a JSON stream.
Source§

impl JsonEncodable for DataValue

Source§

fn encode( &self, stream: &mut JsonStreamWriter<&mut dyn Write>, ctx: &Context<'_>, ) -> EncodingResult<()>

Write the type to the provided JSON writer.
Source§

impl PartialEq for DataValue

Source§

fn eq(&self, other: &DataValue) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryFromVariant for DataValue

Source§

fn try_from_variant(v: Variant) -> Result<Self, Error>

Try to cast the given variant to this type.
Source§

impl UaNullable for DataValue

Source§

fn is_ua_null(&self) -> bool

Return true if this value is null, meaning it can be left out when being encoded in JSON and XML encodings.
Source§

impl VariantType for DataValue

Source§

fn variant_type_id() -> VariantScalarTypeId

The variant kind this type will be represented as.
Source§

impl XmlDecodable for DataValue

Source§

fn decode( stream: &mut XmlStreamReader<&mut dyn Read>, ctx: &Context<'_>, ) -> EncodingResult<Self>

Decode a value from an XML stream.
Source§

impl XmlEncodable for DataValue

Source§

fn encode( &self, stream: &mut XmlStreamWriter<&mut dyn Write>, ctx: &Context<'_>, ) -> EncodingResult<()>

Encode a value to an XML stream.
Source§

impl XmlType for DataValue

Source§

const TAG: &'static str = "DataValue"

The static fallback tag for this type. Convenience feature, but also used in nested types.
Source§

fn tag(&self) -> &str

The XML tag name for this type.
Source§

impl StructuralPartialEq for DataValue

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> EventField for T
where T: IntoVariant + Clone,

Source§

fn get_value( &self, attribute_id: AttributeId, index_range: &NumericRange, remaining_path: &[QualifiedName], ) -> Variant

Get the variant representation of this field, using the given index range. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more