Source code for nidaqmx.system.storage.persisted_channel


from nidaqmx import utils

__all__ = ['PersistedChannel']


[docs] class PersistedChannel: """ Represents a saved DAQmx global channel. Use the DAQmx Persisted Channel properties to query information about programmatically saved global channels. """ __slots__ = ['_name', '_interpreter', '__weakref__']
[docs] def __init__(self, name, *, grpc_options=None): """ Args: name (str): Specifies the name of the global channel. grpc_options (Optional[:class:`~nidaqmx.GrpcSessionOptions`]): Specifies the gRPC session options. """ self._name = name self._interpreter = utils._select_interpreter(grpc_options)
[docs] def __eq__(self, other): if isinstance(other, self.__class__): return self._name == other._name return False
[docs] def __hash__(self): return hash(self._name)
[docs] def __ne__(self, other): return not self.__eq__(other)
[docs] def __repr__(self): return f'PersistedChannel(name={self._name})'
@property def name(self): """ str: Indicates the name of the global channel. """ return self._name @property def author(self): """ str: Indicates the author of the global channel. """ val = self._interpreter.get_persisted_chan_attribute_string(self._name, 0x22d0) return val @property def allow_interactive_editing(self): """ bool: Indicates whether the global channel can be edited in the DAQ Assistant. """ val = self._interpreter.get_persisted_chan_attribute_bool(self._name, 0x22d1) return val @property def allow_interactive_deletion(self): """ bool: Indicates whether the global channel can be deleted through MAX. """ val = self._interpreter.get_persisted_chan_attribute_bool(self._name, 0x22d2) return val
[docs] def delete(self): """ Deletes this global channel from MAX. This function does not remove the global channel from tasks that use it. """ self._interpreter.delete_saved_global_chan(self._name)
class _PersistedChannelAlternateConstructor(PersistedChannel): """ Provide an alternate constructor for the PersistedChannel object. This is a private API used to instantiate a PersistedChannel with an existing interpreter. """ # Setting __slots__ avoids TypeError: __class__ assignment: 'Base' object layout differs from 'Derived'. __slots__ = () def __init__(self, name, interpreter): """ Args: name: Specifies the name of the PersistedChannel. interpreter: Specifies the interpreter instance. """ self._name = name self._interpreter = interpreter # Use meta-programming to change the type of this object to PersistedChannel, # so the user isn't confused when doing introspection. self.__class__ = PersistedChannel # type: ignore[assignment]