hat.drivers.mms

Manufacturing Message Specification

  1"""Manufacturing Message Specification"""
  2
  3from hat.drivers.mms.connection import (
  4    ConnectionCb,
  5    RequestCb,
  6    UnconfirmedCb,
  7    connect,
  8    listen,
  9    Server,
 10    Connection)
 11
 12from hat.drivers.mms.common import (
 13    DataAccessError,
 14    ObjectClass,
 15    ErrorClass,
 16    StatusRequest,
 17    GetNameListRequest,
 18    IdentifyRequest,
 19    GetVariableAccessAttributesRequest,
 20    GetNamedVariableListAttributesRequest,
 21    ReadRequest,
 22    WriteRequest,
 23    DefineNamedVariableListRequest,
 24    DeleteNamedVariableListRequest,
 25    Request,
 26    ErrorResponse,
 27    StatusResponse,
 28    GetNameListResponse,
 29    IdentifyResponse,
 30    GetVariableAccessAttributesResponse,
 31    GetNamedVariableListAttributesResponse,
 32    ReadResponse,
 33    WriteResponse,
 34    DefineNamedVariableListResponse,
 35    DeleteNamedVariableListResponse,
 36    Response,
 37    EventNotificationUnconfirmed,
 38    InformationReportUnconfirmed,
 39    UnsolicitedStatusUnconfirmed,
 40    Unconfirmed,
 41    ArrayData,
 42    BcdData,
 43    BinaryTimeData,
 44    BitStringData,
 45    BooleanData,
 46    BooleanArrayData,
 47    FloatingPointData,
 48    GeneralizedTimeData,
 49    IntegerData,
 50    MmsStringData,
 51    ObjIdData,
 52    OctetStringData,
 53    StructureData,
 54    UnsignedData,
 55    UtcTimeData,
 56    VisibleStringData,
 57    Data,
 58    ArrayTypeDescription,
 59    BcdTypeDescription,
 60    BinaryTimeTypeDescription,
 61    BitStringTypeDescription,
 62    BooleanTypeDescription,
 63    FloatingPointTypeDescription,
 64    GeneralizedTimeTypeDescription,
 65    IntegerTypeDescription,
 66    MmsStringTypeDescription,
 67    ObjIdTypeDescription,
 68    OctetStringTypeDescription,
 69    StructureTypeDescription,
 70    UnsignedTypeDescription,
 71    UtcTimeTypeDescription,
 72    VisibleStringTypeDescription,
 73    TypeDescription,
 74    AaSpecificObjectName,
 75    DomainSpecificObjectName,
 76    VmdSpecificObjectName,
 77    ObjectName,
 78    AaSpecificObjectScope,
 79    DomainSpecificObjectScope,
 80    VmdSpecificObjectScope,
 81    ObjectScope,
 82    AddressVariableSpecification,
 83    InvalidatedVariableSpecification,
 84    NameVariableSpecification,
 85    ScatteredAccessDescriptionVariableSpecification,
 86    VariableDescriptionVariableSpecification,
 87    VariableSpecification)
 88
 89
 90__all__ = [
 91    'ConnectionCb',
 92    'RequestCb',
 93    'UnconfirmedCb',
 94    'connect',
 95    'listen',
 96    'Server',
 97    'Connection',
 98    'DataAccessError',
 99    'ObjectClass',
100    'ErrorClass',
101    'StatusRequest',
102    'GetNameListRequest',
103    'IdentifyRequest',
104    'GetVariableAccessAttributesRequest',
105    'GetNamedVariableListAttributesRequest',
106    'ReadRequest',
107    'WriteRequest',
108    'DefineNamedVariableListRequest',
109    'DeleteNamedVariableListRequest',
110    'Request',
111    'ErrorResponse',
112    'StatusResponse',
113    'GetNameListResponse',
114    'IdentifyResponse',
115    'GetVariableAccessAttributesResponse',
116    'GetNamedVariableListAttributesResponse',
117    'ReadResponse',
118    'WriteResponse',
119    'DefineNamedVariableListResponse',
120    'DeleteNamedVariableListResponse',
121    'Response',
122    'EventNotificationUnconfirmed',
123    'InformationReportUnconfirmed',
124    'UnsolicitedStatusUnconfirmed',
125    'Unconfirmed',
126    'ArrayData',
127    'BcdData',
128    'BinaryTimeData',
129    'BitStringData',
130    'BooleanData',
131    'BooleanArrayData',
132    'FloatingPointData',
133    'GeneralizedTimeData',
134    'IntegerData',
135    'MmsStringData',
136    'ObjIdData',
137    'OctetStringData',
138    'StructureData',
139    'UnsignedData',
140    'UtcTimeData',
141    'VisibleStringData',
142    'Data',
143    'ArrayTypeDescription',
144    'BcdTypeDescription',
145    'BinaryTimeTypeDescription',
146    'BitStringTypeDescription',
147    'BooleanTypeDescription',
148    'FloatingPointTypeDescription',
149    'GeneralizedTimeTypeDescription',
150    'IntegerTypeDescription',
151    'MmsStringTypeDescription',
152    'ObjIdTypeDescription',
153    'OctetStringTypeDescription',
154    'StructureTypeDescription',
155    'UnsignedTypeDescription',
156    'UtcTimeTypeDescription',
157    'VisibleStringTypeDescription',
158    'TypeDescription',
159    'AaSpecificObjectName',
160    'DomainSpecificObjectName',
161    'VmdSpecificObjectName',
162    'ObjectName',
163    'AaSpecificObjectScope',
164    'DomainSpecificObjectScope',
165    'VmdSpecificObjectScope',
166    'ObjectScope',
167    'AddressVariableSpecification',
168    'InvalidatedVariableSpecification',
169    'NameVariableSpecification',
170    'ScatteredAccessDescriptionVariableSpecification',
171    'VariableDescriptionVariableSpecification',
172    'VariableSpecification']
ConnectionCb = typing.Callable[[ForwardRef('Connection')], typing.Optional[typing.Awaitable[NoneType]]]
RequestCb = typing.Callable[[ForwardRef('Connection'), Request], typing.Union[Response, typing.Awaitable[Response]]]
UnconfirmedCb = typing.Callable[[ForwardRef('Connection'), Unconfirmed], typing.Optional[typing.Awaitable[NoneType]]]
async def connect( addr: hat.drivers.tcp.Address, request_cb: Optional[Callable[[Connection, Request], Union[Response, Awaitable[Response]]]] = None, unconfirmed_cb: Optional[Callable[[Connection, Unconfirmed], Optional[Awaitable[NoneType]]]] = None, **kwargs) -> Connection:
 71async def connect(addr: tcp.Address,
 72                  request_cb: RequestCb | None = None,
 73                  unconfirmed_cb: UnconfirmedCb | None = None,
 74                  **kwargs
 75                  ) -> 'Connection':
 76    """Connect to MMS server
 77
 78    Additional arguments are passed directly to `hat.drivers.acse.connect`
 79    (`syntax_name_list`, `app_context_name` and `user_data` are set by
 80    this coroutine).
 81
 82    """
 83    initiate_req = 'initiate-RequestPDU', {
 84        'proposedMaxServOutstandingCalling': 5,
 85        'proposedMaxServOutstandingCalled': 5,
 86        'initRequestDetail': {
 87            'proposedVersionNumber': 1,
 88            'proposedParameterCBB': _parameter_cbb,
 89            'servicesSupportedCalling': _service_support}}
 90    req_user_data = _encode(initiate_req)
 91    conn = await acse.connect(addr, [_mms_syntax_name], _mms_app_context_name,
 92                              (_mms_syntax_name, req_user_data), **kwargs)
 93
 94    try:
 95        res_syntax_name, res_user_data = conn.conn_res_user_data
 96        if res_syntax_name != _mms_syntax_name:
 97            raise Exception("invalid syntax name")
 98
 99        initiate_res = _decode(res_user_data)
100        if initiate_res[0] != 'initiate-ResponsePDU':
101            raise Exception("invalid initiate response")
102
103        return Connection(conn, request_cb, unconfirmed_cb)
104
105    except Exception:
106        await aio.uncancellable(conn.async_close())
107        raise

Connect to MMS server

Additional arguments are passed directly to hat.drivers.acse.connect (syntax_name_list, app_context_name and user_data are set by this coroutine).

async def listen( connection_cb: Callable[[hat.drivers.acse.Connection], Optional[Awaitable[NoneType]]], addr: hat.drivers.tcp.Address = Address(host='0.0.0.0', port=102), request_cb: Optional[Callable[[Connection, Request], Union[Response, Awaitable[Response]]]] = None, unconfirmed_cb: Optional[Callable[[Connection, Unconfirmed], Optional[Awaitable[NoneType]]]] = None, *, bind_connections: bool = False, **kwargs) -> Server:
110async def listen(connection_cb: ConnectionCb,
111                 addr: tcp.Address = tcp.Address('0.0.0.0', 102),
112                 request_cb: RequestCb | None = None,
113                 unconfirmed_cb: UnconfirmedCb | None = None,
114                 *,
115                 bind_connections: bool = False,
116                 **kwargs
117                 ) -> 'Server':
118    """Create MMS listening server
119
120    Additional arguments are passed directly to `hat.drivers.acse.listen`.
121
122    Args:
123        connection_cb: new connection callback
124        request_cb: received request callback
125        addr: local listening address
126
127    """
128    server = Server()
129    server._connection_cb = connection_cb
130    server._request_cb = request_cb
131    server._unconfirmed_cb = unconfirmed_cb
132    server._bind_connections = bind_connections
133
134    server._srv = await acse.listen(server._on_validate,
135                                    server._on_connection,
136                                    addr,
137                                    bind_connections=False,
138                                    **kwargs)
139
140    return server

Create MMS listening server

Additional arguments are passed directly to hat.drivers.acse.listen.

Arguments:
  • connection_cb: new connection callback
  • request_cb: received request callback
  • addr: local listening address
class Server(hat.aio.group.Resource):
143class Server(aio.Resource):
144    """MMS listening server
145
146    For creating new server see `listen`.
147
148    """
149
150    @property
151    def async_group(self) -> aio.Group:
152        """Async group"""
153        return self._srv.async_group
154
155    @property
156    def addresses(self) -> list[tcp.Address]:
157        """Listening addresses"""
158        return self._srv.addresses
159
160    async def _on_validate(self, syntax_names, user_data):
161        syntax_name, req_user_data = user_data
162        if syntax_name != _mms_syntax_name:
163            raise Exception('invalid mms syntax name')
164
165        initiate_req = _decode(req_user_data)
166        if initiate_req[0] != 'initiate-RequestPDU':
167            raise Exception('invalid initiate request')
168
169        initiate_res = 'initiate-ResponsePDU', {
170            'negotiatedMaxServOutstandingCalling': 5,
171            'negotiatedMaxServOutstandingCalled': 5,
172            'negotiatedDataStructureNestingLevel': 4,  # TODO compatibility
173            'initResponseDetail': {
174                'negotiatedVersionNumber': 1,
175                'negotiatedParameterCBB': _parameter_cbb,
176                'servicesSupportedCalled': _service_support}}
177        if 'localDetailCalling' in initiate_req[1]:
178            initiate_res[1]['localDetailCalled'] = \
179                initiate_req[1]['localDetailCalling']
180
181        res_user_data = _encode(initiate_res)
182        return _mms_syntax_name, res_user_data
183
184    async def _on_connection(self, acse_conn):
185        try:
186            try:
187                conn = Connection(acse_conn, self._request_cb,
188                                  self._unconfirmed_cb)
189
190            except Exception:
191                await aio.uncancellable(acse_conn.async_close())
192                raise
193
194            try:
195                await aio.call(self._connection_cb, conn)
196
197            except BaseException:
198                await aio.uncancellable(conn.async_close())
199                raise
200
201        except Exception as e:
202            mlog.error("error creating new incomming connection: %s",
203                       e, exc_info=e)
204            return
205
206        if not self._bind_connections:
207            return
208
209        try:
210            await conn.wait_closed()
211
212        except BaseException:
213            await aio.uncancellable(conn.async_close())
214            raise

MMS listening server

For creating new server see listen.

async_group: hat.aio.group.Group
150    @property
151    def async_group(self) -> aio.Group:
152        """Async group"""
153        return self._srv.async_group

Async group

addresses: list[hat.drivers.tcp.Address]
155    @property
156    def addresses(self) -> list[tcp.Address]:
157        """Listening addresses"""
158        return self._srv.addresses

Listening addresses

Inherited Members
hat.aio.group.Resource
is_open
is_closing
is_closed
wait_closing
wait_closed
close
async_close
class Connection(hat.aio.group.Resource):
217class Connection(aio.Resource):
218    """MMS connection
219
220    For creating new connection see `connect` or `listen`.
221
222    """
223
224    def __init__(self,
225                 conn: acse.Connection,
226                 request_cb: RequestCb,
227                 unconfirmed_cb: UnconfirmedCb):
228        self._conn = conn
229        self._request_cb = request_cb
230        self._unconfirmed_cb = unconfirmed_cb
231        self._loop = asyncio.get_running_loop()
232        self._next_invoke_ids = itertools.count(0)
233        self._response_futures = {}
234        self._close_pdu = 'conclude-RequestPDU', None
235        self._async_group = aio.Group()
236
237        self.async_group.spawn(aio.call_on_cancel, self._on_close)
238        self.async_group.spawn(self._receive_loop)
239        self.async_group.spawn(aio.call_on_done, conn.wait_closing(),
240                               self.close)
241
242    @property
243    def async_group(self) -> aio.Group:
244        """Async group"""
245        return self._async_group
246
247    @property
248    def info(self) -> acse.ConnectionInfo:
249        """Connection info"""
250        return self._conn.info
251
252    async def send_unconfirmed(self, unconfirmed: common.Unconfirmed):
253        """Send unconfirmed message"""
254        if not self.is_open:
255            raise ConnectionError()
256
257        pdu = 'unconfirmed-PDU', {
258            'service': encoder.encode_unconfirmed(unconfirmed)}
259        data = _mms_syntax_name, _encode(pdu)
260        await self._conn.send(data)
261
262    async def send_confirmed(self,
263                             req: common.Request
264                             ) -> common.Response:
265        """Send confirmed request and wait for response"""
266        if not self.is_open:
267            raise ConnectionError()
268
269        invoke_id = next(self._next_invoke_ids)
270        pdu = 'confirmed-RequestPDU', {
271            'invokeID': invoke_id,
272            'service': encoder.encode_request(req)}
273        data = _mms_syntax_name, _encode(pdu)
274        await self._conn.send(data)
275
276        if not self.is_open:
277            raise ConnectionError()
278
279        try:
280            future = self._loop.create_future()
281            self._response_futures[invoke_id] = future
282            return await future
283
284        finally:
285            self._response_futures.pop(invoke_id, None)
286
287    async def _on_close(self):
288        if self._conn.is_open:
289            try:
290                data = _mms_syntax_name, _encode(self._close_pdu)
291                await self._conn.send(data)
292                await self._conn.drain()
293
294                # TODO: wait for response in case of conclude-RequestPDU
295
296            except Exception as e:
297                mlog.error("on close error: %s", e, exc_info=e)
298
299        await self._conn.async_close()
300
301    async def _receive_loop(self):
302        try:
303            while True:
304                syntax_name, entity = await self._conn.receive()
305                if syntax_name != _mms_syntax_name:
306                    continue
307
308                pdu = _decode(entity)
309                name, data = pdu
310
311                if name == 'unconfirmed-PDU':
312                    await self._process_unconfirmed(data)
313
314                elif name == 'confirmed-RequestPDU':
315                    await self._process_request(data)
316
317                elif name == 'confirmed-ResponsePDU':
318                    await self._process_response(data)
319
320                elif name == 'confirmed-ErrorPDU':
321                    await self._process_error(data)
322
323                elif name == 'conclude-RequestPDU':
324                    self._close_pdu = 'conclude-ResponsePDU', None
325                    break
326
327                else:
328                    raise Exception('unsupported pdu')
329
330        except ConnectionError:
331            pass
332
333        except Exception as e:
334            mlog.error("receive loop error: %s", e, exc_info=e)
335
336        finally:
337            self.close()
338
339            for response_future in self._response_futures.values():
340                if not response_future.done():
341                    response_future.set_exception(ConnectionError())
342
343    async def _process_unconfirmed(self, data):
344        unconfirmed = encoder.decode_unconfirmed(data['service'])
345
346        if self._unconfirmed_cb is None:
347            raise Exception('unconfirmed_cb not defined')
348
349        await aio.call(self._unconfirmed_cb, self, unconfirmed)
350
351    async def _process_request(self, data):
352        invoke_id = data['invokeID']
353        req = encoder.decode_request(data['service'])
354
355        if self._request_cb is None:
356            raise Exception('request_cb not defined')
357
358        res = await aio.call(self._request_cb, self, req)
359
360        if isinstance(res, common.ErrorResponse):
361            res_pdu = 'confirmed-ErrorPDU', {
362                'invokeID': invoke_id,
363                'serviceError': {
364                    'errorClass': (res.error_class.value, res.value)}}
365
366        else:
367            res_pdu = 'confirmed-ResponsePDU', {
368                'invokeID': invoke_id,
369                'service': encoder.encode_response(res)}
370
371        res_data = _mms_syntax_name, _encode(res_pdu)
372        await self._conn.send(res_data)
373
374    async def _process_response(self, data):
375        invoke_id = data['invokeID']
376        res = encoder.decode_response(data['service'])
377
378        future = self._response_futures.get(invoke_id)
379        if not future or future.done():
380            mlog.warning("dropping confirmed response (invoke_id: %s)",
381                         invoke_id)
382            return
383
384        future.set_result(res)
385
386    async def _process_error(self, data):
387        invoke_id = data['invokeID']
388        error_class_name, value = data['serviceError']['errorClass']
389        error_class = common.ErrorClass(error_class_name)
390        res = common.ErrorResponse(error_class, value)
391
392        future = self._response_futures.get(invoke_id)
393        if not future or future.done():
394            mlog.warning("dropping confirmed error (invoke_id: %s)", invoke_id)
395            return
396
397        future.set_result(res)

MMS connection

For creating new connection see connect or listen.

Connection( conn: hat.drivers.acse.Connection, request_cb: Callable[[Connection, Request], Union[Response, Awaitable[Response]]], unconfirmed_cb: Callable[[Connection, Unconfirmed], Optional[Awaitable[NoneType]]])
224    def __init__(self,
225                 conn: acse.Connection,
226                 request_cb: RequestCb,
227                 unconfirmed_cb: UnconfirmedCb):
228        self._conn = conn
229        self._request_cb = request_cb
230        self._unconfirmed_cb = unconfirmed_cb
231        self._loop = asyncio.get_running_loop()
232        self._next_invoke_ids = itertools.count(0)
233        self._response_futures = {}
234        self._close_pdu = 'conclude-RequestPDU', None
235        self._async_group = aio.Group()
236
237        self.async_group.spawn(aio.call_on_cancel, self._on_close)
238        self.async_group.spawn(self._receive_loop)
239        self.async_group.spawn(aio.call_on_done, conn.wait_closing(),
240                               self.close)
async_group: hat.aio.group.Group
242    @property
243    def async_group(self) -> aio.Group:
244        """Async group"""
245        return self._async_group

Async group

247    @property
248    def info(self) -> acse.ConnectionInfo:
249        """Connection info"""
250        return self._conn.info

Connection info

async def send_unconfirmed(self, unconfirmed: Unconfirmed):
252    async def send_unconfirmed(self, unconfirmed: common.Unconfirmed):
253        """Send unconfirmed message"""
254        if not self.is_open:
255            raise ConnectionError()
256
257        pdu = 'unconfirmed-PDU', {
258            'service': encoder.encode_unconfirmed(unconfirmed)}
259        data = _mms_syntax_name, _encode(pdu)
260        await self._conn.send(data)

Send unconfirmed message

async def send_confirmed(self, req: Request) -> Response:
262    async def send_confirmed(self,
263                             req: common.Request
264                             ) -> common.Response:
265        """Send confirmed request and wait for response"""
266        if not self.is_open:
267            raise ConnectionError()
268
269        invoke_id = next(self._next_invoke_ids)
270        pdu = 'confirmed-RequestPDU', {
271            'invokeID': invoke_id,
272            'service': encoder.encode_request(req)}
273        data = _mms_syntax_name, _encode(pdu)
274        await self._conn.send(data)
275
276        if not self.is_open:
277            raise ConnectionError()
278
279        try:
280            future = self._loop.create_future()
281            self._response_futures[invoke_id] = future
282            return await future
283
284        finally:
285            self._response_futures.pop(invoke_id, None)

Send confirmed request and wait for response

Inherited Members
hat.aio.group.Resource
is_open
is_closing
is_closed
wait_closing
wait_closed
close
async_close
class DataAccessError(enum.Enum):
61class DataAccessError(enum.Enum):
62    OBJECT_INVALIDATED = 0
63    HARDWARE_FAULT = 1
64    TEMPORARILY_UNAVAILABLE = 2
65    OBJECT_ACCESS_DENIED = 3
66    OBJECT_UNDEFINED = 4
67    INVALID_ADDRESS = 5
68    TYPE_UNSUPPORTED = 6
69    TYPE_INCONSISTENT = 7
70    OBJECT_ATTRIBUTE_INCONSISTENT = 8
71    OBJECT_ACCESS_UNSUPPORTED = 9
72    OBJECT_NON_EXISTENT = 10
73    OBJECT_VALUE_INVALID = 11

An enumeration.

OBJECT_INVALIDATED = <DataAccessError.OBJECT_INVALIDATED: 0>
HARDWARE_FAULT = <DataAccessError.HARDWARE_FAULT: 1>
TEMPORARILY_UNAVAILABLE = <DataAccessError.TEMPORARILY_UNAVAILABLE: 2>
OBJECT_ACCESS_DENIED = <DataAccessError.OBJECT_ACCESS_DENIED: 3>
OBJECT_UNDEFINED = <DataAccessError.OBJECT_UNDEFINED: 4>
INVALID_ADDRESS = <DataAccessError.INVALID_ADDRESS: 5>
TYPE_UNSUPPORTED = <DataAccessError.TYPE_UNSUPPORTED: 6>
TYPE_INCONSISTENT = <DataAccessError.TYPE_INCONSISTENT: 7>
OBJECT_ATTRIBUTE_INCONSISTENT = <DataAccessError.OBJECT_ATTRIBUTE_INCONSISTENT: 8>
OBJECT_ACCESS_UNSUPPORTED = <DataAccessError.OBJECT_ACCESS_UNSUPPORTED: 9>
OBJECT_NON_EXISTENT = <DataAccessError.OBJECT_NON_EXISTENT: 10>
OBJECT_VALUE_INVALID = <DataAccessError.OBJECT_VALUE_INVALID: 11>
Inherited Members
enum.Enum
name
value
class ObjectClass(enum.Enum):
76class ObjectClass(enum.Enum):
77    NAMED_VARIABLE = 0
78    NAMED_VARIABLE_LIST = 2
79    JOURNAL = 8
80    DOMAIN = 9
81    UNDEFINED = 0xFF

An enumeration.

NAMED_VARIABLE = <ObjectClass.NAMED_VARIABLE: 0>
NAMED_VARIABLE_LIST = <ObjectClass.NAMED_VARIABLE_LIST: 2>
JOURNAL = <ObjectClass.JOURNAL: 8>
DOMAIN = <ObjectClass.DOMAIN: 9>
UNDEFINED = <ObjectClass.UNDEFINED: 255>
Inherited Members
enum.Enum
name
value
class ErrorClass(enum.Enum):
84class ErrorClass(enum.Enum):
85    ACCESS = 'access'
86    APPLICATION_REFERENCE = 'application-reference'
87    CANCEL = 'cancel'
88    CONCLUDE = 'conclude'
89    DEFINITION = 'definition'
90    FILE = 'file'
91    INITIATE = 'initiate'
92    OTHERS = 'others'
93    RESOURCE = 'resource'
94    SERVICE = 'service'
95    SERVICE_PREEMPT = 'service-preempt'
96    TIME_RESOLUTION = 'time-resolution'
97    VMD_STATE = 'vmd-state'

An enumeration.

ACCESS = <ErrorClass.ACCESS: 'access'>
APPLICATION_REFERENCE = <ErrorClass.APPLICATION_REFERENCE: 'application-reference'>
CANCEL = <ErrorClass.CANCEL: 'cancel'>
CONCLUDE = <ErrorClass.CONCLUDE: 'conclude'>
DEFINITION = <ErrorClass.DEFINITION: 'definition'>
FILE = <ErrorClass.FILE: 'file'>
INITIATE = <ErrorClass.INITIATE: 'initiate'>
OTHERS = <ErrorClass.OTHERS: 'others'>
RESOURCE = <ErrorClass.RESOURCE: 'resource'>
SERVICE = <ErrorClass.SERVICE: 'service'>
SERVICE_PREEMPT = <ErrorClass.SERVICE_PREEMPT: 'service-preempt'>
TIME_RESOLUTION = <ErrorClass.TIME_RESOLUTION: 'time-resolution'>
VMD_STATE = <ErrorClass.VMD_STATE: 'vmd-state'>
Inherited Members
enum.Enum
name
value
@request
class StatusRequest(typing.NamedTuple):
100@request
101class StatusRequest(typing.NamedTuple):
102    pass

StatusRequest()

StatusRequest()

Create new instance of StatusRequest()

Inherited Members
builtins.tuple
index
count
@request
class GetNameListRequest(typing.NamedTuple):
105@request
106class GetNameListRequest(typing.NamedTuple):
107    object_class: ObjectClass
108    object_scope: ObjectScope
109    continue_after: str | None

GetNameListRequest(object_class, object_scope, continue_after)

GetNameListRequest( object_class: ObjectClass, object_scope: ObjectScope, continue_after: str | None)

Create new instance of GetNameListRequest(object_class, object_scope, continue_after)

object_class: ObjectClass

Alias for field number 0

object_scope: ObjectScope

Alias for field number 1

continue_after: str | None

Alias for field number 2

Inherited Members
builtins.tuple
index
count
@request
class IdentifyRequest(typing.NamedTuple):
112@request
113class IdentifyRequest(typing.NamedTuple):
114    pass

IdentifyRequest()

IdentifyRequest()

Create new instance of IdentifyRequest()

Inherited Members
builtins.tuple
index
count
@request
class GetVariableAccessAttributesRequest(typing.NamedTuple):
117@request
118class GetVariableAccessAttributesRequest(typing.NamedTuple):
119    value: ObjectName | int | str | util.Bytes

GetVariableAccessAttributesRequest(value,)

GetVariableAccessAttributesRequest(value: ObjectName | int | str | bytes | bytearray | memoryview)

Create new instance of GetVariableAccessAttributesRequest(value,)

value: ObjectName | int | str | bytes | bytearray | memoryview

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@request
class GetNamedVariableListAttributesRequest(typing.NamedTuple):
122@request
123class GetNamedVariableListAttributesRequest(typing.NamedTuple):
124    value: ObjectName

GetNamedVariableListAttributesRequest(value,)

GetNamedVariableListAttributesRequest(value: ObjectName)

Create new instance of GetNamedVariableListAttributesRequest(value,)

value: ObjectName

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@request
class ReadRequest(typing.NamedTuple):
127@request
128class ReadRequest(typing.NamedTuple):
129    value: list[VariableSpecification] | ObjectName

ReadRequest(value,)

ReadRequest(value: list[VariableSpecification] | ObjectName)

Create new instance of ReadRequest(value,)

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@request
class WriteRequest(typing.NamedTuple):
132@request
133class WriteRequest(typing.NamedTuple):
134    specification: list[VariableSpecification] | ObjectName
135    data: list[Data]

WriteRequest(specification, data)

WriteRequest( specification: list[VariableSpecification] | ObjectName, data: list[Data])

Create new instance of WriteRequest(specification, data)

specification: list[VariableSpecification] | ObjectName

Alias for field number 0

data: list[Data]

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@request
class DefineNamedVariableListRequest(typing.NamedTuple):
138@request
139class DefineNamedVariableListRequest(typing.NamedTuple):
140    name: ObjectName
141    specification: list[VariableSpecification]

DefineNamedVariableListRequest(name, specification)

DefineNamedVariableListRequest(name: ObjectName, specification: list[VariableSpecification])

Create new instance of DefineNamedVariableListRequest(name, specification)

name: ObjectName

Alias for field number 0

specification: list[VariableSpecification]

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@request
class DeleteNamedVariableListRequest(typing.NamedTuple):
144@request
145class DeleteNamedVariableListRequest(typing.NamedTuple):
146    names: list[ObjectName]

DeleteNamedVariableListRequest(names,)

DeleteNamedVariableListRequest(names: list[ObjectName])

Create new instance of DeleteNamedVariableListRequest(names,)

names: list[ObjectName]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
class Request(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@response
class ErrorResponse(typing.NamedTuple):
149@response
150class ErrorResponse(typing.NamedTuple):
151    error_class: ErrorClass
152    value: int

ErrorResponse(error_class, value)

ErrorResponse(error_class: ErrorClass, value: int)

Create new instance of ErrorResponse(error_class, value)

error_class: ErrorClass

Alias for field number 0

value: int

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@response
class StatusResponse(typing.NamedTuple):
155@response
156class StatusResponse(typing.NamedTuple):
157    logical: int
158    physical: int

StatusResponse(logical, physical)

StatusResponse(logical: int, physical: int)

Create new instance of StatusResponse(logical, physical)

logical: int

Alias for field number 0

physical: int

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@response
class GetNameListResponse(typing.NamedTuple):
161@response
162class GetNameListResponse(typing.NamedTuple):
163    identifiers: list[str]
164    more_follows: bool

GetNameListResponse(identifiers, more_follows)

GetNameListResponse(identifiers: list[str], more_follows: bool)

Create new instance of GetNameListResponse(identifiers, more_follows)

identifiers: list[str]

Alias for field number 0

more_follows: bool

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@response
class IdentifyResponse(typing.NamedTuple):
167@response
168class IdentifyResponse(typing.NamedTuple):
169    vendor: str
170    model: str
171    revision: str
172    syntaxes: list[asn1.ObjectIdentifier] | None

IdentifyResponse(vendor, model, revision, syntaxes)

IdentifyResponse( vendor: str, model: str, revision: str, syntaxes: list[tuple[int, ...]] | None)

Create new instance of IdentifyResponse(vendor, model, revision, syntaxes)

vendor: str

Alias for field number 0

model: str

Alias for field number 1

revision: str

Alias for field number 2

syntaxes: list[tuple[int, ...]] | None

Alias for field number 3

Inherited Members
builtins.tuple
index
count
@response
class GetVariableAccessAttributesResponse(typing.NamedTuple):
175@response
176class GetVariableAccessAttributesResponse(typing.NamedTuple):
177    mms_deletable: bool
178    type_description: TypeDescription

GetVariableAccessAttributesResponse(mms_deletable, type_description)

GetVariableAccessAttributesResponse(mms_deletable: bool, type_description: TypeDescription)

Create new instance of GetVariableAccessAttributesResponse(mms_deletable, type_description)

mms_deletable: bool

Alias for field number 0

type_description: TypeDescription

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@response
class GetNamedVariableListAttributesResponse(typing.NamedTuple):
181@response
182class GetNamedVariableListAttributesResponse(typing.NamedTuple):
183    mms_deletable: bool
184    specification: list[VariableSpecification]

GetNamedVariableListAttributesResponse(mms_deletable, specification)

GetNamedVariableListAttributesResponse(mms_deletable: bool, specification: list[VariableSpecification])

Create new instance of GetNamedVariableListAttributesResponse(mms_deletable, specification)

mms_deletable: bool

Alias for field number 0

specification: list[VariableSpecification]

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@response
class ReadResponse(typing.NamedTuple):
187@response
188class ReadResponse(typing.NamedTuple):
189    results: list[DataAccessError | Data]

ReadResponse(results,)

ReadResponse(results: list[DataAccessError | Data])

Create new instance of ReadResponse(results,)

results: list[DataAccessError | Data]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@response
class WriteResponse(typing.NamedTuple):
192@response
193class WriteResponse(typing.NamedTuple):
194    results: list[DataAccessError | None]

WriteResponse(results,)

WriteResponse(results: list[DataAccessError | None])

Create new instance of WriteResponse(results,)

results: list[DataAccessError | None]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@response
class DefineNamedVariableListResponse(typing.NamedTuple):
197@response
198class DefineNamedVariableListResponse(typing.NamedTuple):
199    pass

DefineNamedVariableListResponse()

DefineNamedVariableListResponse()

Create new instance of DefineNamedVariableListResponse()

Inherited Members
builtins.tuple
index
count
@response
class DeleteNamedVariableListResponse(typing.NamedTuple):
202@response
203class DeleteNamedVariableListResponse(typing.NamedTuple):
204    matched: int
205    deleted: int

DeleteNamedVariableListResponse(matched, deleted)

DeleteNamedVariableListResponse(matched: int, deleted: int)

Create new instance of DeleteNamedVariableListResponse(matched, deleted)

matched: int

Alias for field number 0

deleted: int

Alias for field number 1

Inherited Members
builtins.tuple
index
count
class Response(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@unconfirmed
class EventNotificationUnconfirmed(typing.NamedTuple):
208@unconfirmed
209class EventNotificationUnconfirmed(typing.NamedTuple):
210    enrollment: ObjectName
211    condition: ObjectName
212    severity: int
213    time: Data | int | None

EventNotificationUnconfirmed(enrollment, condition, severity, time)

EventNotificationUnconfirmed( enrollment: ObjectName, condition: ObjectName, severity: int, time: Data | int | None)

Create new instance of EventNotificationUnconfirmed(enrollment, condition, severity, time)

enrollment: ObjectName

Alias for field number 0

condition: ObjectName

Alias for field number 1

severity: int

Alias for field number 2

time: Data | int | None

Alias for field number 3

Inherited Members
builtins.tuple
index
count
@unconfirmed
class InformationReportUnconfirmed(typing.NamedTuple):
216@unconfirmed
217class InformationReportUnconfirmed(typing.NamedTuple):
218    specification: list[VariableSpecification] | ObjectName
219    data: list[DataAccessError | Data]

InformationReportUnconfirmed(specification, data)

InformationReportUnconfirmed( specification: list[VariableSpecification] | ObjectName, data: list[DataAccessError | Data])

Create new instance of InformationReportUnconfirmed(specification, data)

specification: list[VariableSpecification] | ObjectName

Alias for field number 0

data: list[DataAccessError | Data]

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@unconfirmed
class UnsolicitedStatusUnconfirmed(typing.NamedTuple):
222@unconfirmed
223class UnsolicitedStatusUnconfirmed(typing.NamedTuple):
224    logical: int
225    physical: int

UnsolicitedStatusUnconfirmed(logical, physical)

UnsolicitedStatusUnconfirmed(logical: int, physical: int)

Create new instance of UnsolicitedStatusUnconfirmed(logical, physical)

logical: int

Alias for field number 0

physical: int

Alias for field number 1

Inherited Members
builtins.tuple
index
count
class Unconfirmed(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@data
class ArrayData(typing.NamedTuple):
228@data
229class ArrayData(typing.NamedTuple):
230    elements: list[Data]

ArrayData(elements,)

ArrayData(elements: list[Data])

Create new instance of ArrayData(elements,)

elements: list[Data]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class BcdData(typing.NamedTuple):
233@data
234class BcdData(typing.NamedTuple):
235    value: int

BcdData(value,)

BcdData(value: int)

Create new instance of BcdData(value,)

value: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class BinaryTimeData(typing.NamedTuple):
238@data
239class BinaryTimeData(typing.NamedTuple):
240    value: datetime.datetime

BinaryTimeData(value,)

BinaryTimeData(value: datetime.datetime)

Create new instance of BinaryTimeData(value,)

value: datetime.datetime

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class BitStringData(typing.NamedTuple):
243@data
244class BitStringData(typing.NamedTuple):
245    value: list[bool]

BitStringData(value,)

BitStringData(value: list[bool])

Create new instance of BitStringData(value,)

value: list[bool]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class BooleanData(typing.NamedTuple):
248@data
249class BooleanData(typing.NamedTuple):
250    value: bool

BooleanData(value,)

BooleanData(value: bool)

Create new instance of BooleanData(value,)

value: bool

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class BooleanArrayData(typing.NamedTuple):
253@data
254class BooleanArrayData(typing.NamedTuple):
255    value: list[bool]

BooleanArrayData(value,)

BooleanArrayData(value: list[bool])

Create new instance of BooleanArrayData(value,)

value: list[bool]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class FloatingPointData(typing.NamedTuple):
258@data
259class FloatingPointData(typing.NamedTuple):
260    value: float

FloatingPointData(value,)

FloatingPointData(value: float)

Create new instance of FloatingPointData(value,)

value: float

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class GeneralizedTimeData(typing.NamedTuple):
263@data
264class GeneralizedTimeData(typing.NamedTuple):
265    value: str

GeneralizedTimeData(value,)

GeneralizedTimeData(value: str)

Create new instance of GeneralizedTimeData(value,)

value: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class IntegerData(typing.NamedTuple):
268@data
269class IntegerData(typing.NamedTuple):
270    value: int

IntegerData(value,)

IntegerData(value: int)

Create new instance of IntegerData(value,)

value: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class MmsStringData(typing.NamedTuple):
273@data
274class MmsStringData(typing.NamedTuple):
275    value: str

MmsStringData(value,)

MmsStringData(value: str)

Create new instance of MmsStringData(value,)

value: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class ObjIdData(typing.NamedTuple):
278@data
279class ObjIdData(typing.NamedTuple):
280    value: asn1.ObjectIdentifier

ObjIdData(value,)

ObjIdData(value: tuple[int, ...])

Create new instance of ObjIdData(value,)

value: tuple[int, ...]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class OctetStringData(typing.NamedTuple):
283@data
284class OctetStringData(typing.NamedTuple):
285    value: asn1.Bytes

OctetStringData(value,)

OctetStringData(value: bytes | bytearray | memoryview)

Create new instance of OctetStringData(value,)

value: bytes | bytearray | memoryview

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class StructureData(typing.NamedTuple):
288@data
289class StructureData(typing.NamedTuple):
290    elements: list[Data]

StructureData(elements,)

StructureData(elements: list[Data])

Create new instance of StructureData(elements,)

elements: list[Data]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class UnsignedData(typing.NamedTuple):
293@data
294class UnsignedData(typing.NamedTuple):
295    value: int

UnsignedData(value,)

UnsignedData(value: int)

Create new instance of UnsignedData(value,)

value: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@data
class UtcTimeData(typing.NamedTuple):
298@data
299class UtcTimeData(typing.NamedTuple):
300    value: datetime.datetime
301    leap_second: bool
302    clock_failure: bool
303    not_synchronized: bool
304    accuracy: int | None
305    """accurate fraction bits [0,24]"""

UtcTimeData(value, leap_second, clock_failure, not_synchronized, accuracy)

UtcTimeData( value: datetime.datetime, leap_second: bool, clock_failure: bool, not_synchronized: bool, accuracy: int | None)

Create new instance of UtcTimeData(value, leap_second, clock_failure, not_synchronized, accuracy)

value: datetime.datetime

Alias for field number 0

leap_second: bool

Alias for field number 1

clock_failure: bool

Alias for field number 2

not_synchronized: bool

Alias for field number 3

accuracy: int | None

accurate fraction bits [0,24]

Inherited Members
builtins.tuple
index
count
@data
class VisibleStringData(typing.NamedTuple):
308@data
309class VisibleStringData(typing.NamedTuple):
310    value: str

VisibleStringData(value,)

VisibleStringData(value: str)

Create new instance of VisibleStringData(value,)

value: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
class Data(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@type_description
class ArrayTypeDescription(typing.NamedTuple):
313@type_description
314class ArrayTypeDescription(typing.NamedTuple):
315    number_of_elements: int
316    element_type: TypeDescription | ObjectName

ArrayTypeDescription(number_of_elements, element_type)

ArrayTypeDescription( number_of_elements: int, element_type: TypeDescription | ObjectName)

Create new instance of ArrayTypeDescription(number_of_elements, element_type)

number_of_elements: int

Alias for field number 0

element_type: TypeDescription | ObjectName

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@type_description
class BcdTypeDescription(typing.NamedTuple):
319@type_description
320class BcdTypeDescription(typing.NamedTuple):
321    xyz: int

BcdTypeDescription(xyz,)

BcdTypeDescription(xyz: int)

Create new instance of BcdTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class BinaryTimeTypeDescription(typing.NamedTuple):
324@type_description
325class BinaryTimeTypeDescription(typing.NamedTuple):
326    xyz: bool

BinaryTimeTypeDescription(xyz,)

BinaryTimeTypeDescription(xyz: bool)

Create new instance of BinaryTimeTypeDescription(xyz,)

xyz: bool

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class BitStringTypeDescription(typing.NamedTuple):
329@type_description
330class BitStringTypeDescription(typing.NamedTuple):
331    xyz: int

BitStringTypeDescription(xyz,)

BitStringTypeDescription(xyz: int)

Create new instance of BitStringTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class BooleanTypeDescription(typing.NamedTuple):
334@type_description
335class BooleanTypeDescription(typing.NamedTuple):
336    pass

BooleanTypeDescription()

BooleanTypeDescription()

Create new instance of BooleanTypeDescription()

Inherited Members
builtins.tuple
index
count
@type_description
class FloatingPointTypeDescription(typing.NamedTuple):
339@type_description
340class FloatingPointTypeDescription(typing.NamedTuple):
341    format_width: int
342    exponent_width: int

FloatingPointTypeDescription(format_width, exponent_width)

FloatingPointTypeDescription(format_width: int, exponent_width: int)

Create new instance of FloatingPointTypeDescription(format_width, exponent_width)

format_width: int

Alias for field number 0

exponent_width: int

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@type_description
class GeneralizedTimeTypeDescription(typing.NamedTuple):
345@type_description
346class GeneralizedTimeTypeDescription(typing.NamedTuple):
347    pass

GeneralizedTimeTypeDescription()

GeneralizedTimeTypeDescription()

Create new instance of GeneralizedTimeTypeDescription()

Inherited Members
builtins.tuple
index
count
@type_description
class IntegerTypeDescription(typing.NamedTuple):
350@type_description
351class IntegerTypeDescription(typing.NamedTuple):
352    xyz: int

IntegerTypeDescription(xyz,)

IntegerTypeDescription(xyz: int)

Create new instance of IntegerTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class MmsStringTypeDescription(typing.NamedTuple):
355@type_description
356class MmsStringTypeDescription(typing.NamedTuple):
357    xyz: int

MmsStringTypeDescription(xyz,)

MmsStringTypeDescription(xyz: int)

Create new instance of MmsStringTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class ObjIdTypeDescription(typing.NamedTuple):
360@type_description
361class ObjIdTypeDescription(typing.NamedTuple):
362    pass

ObjIdTypeDescription()

ObjIdTypeDescription()

Create new instance of ObjIdTypeDescription()

Inherited Members
builtins.tuple
index
count
@type_description
class OctetStringTypeDescription(typing.NamedTuple):
365@type_description
366class OctetStringTypeDescription(typing.NamedTuple):
367    xyz: int

OctetStringTypeDescription(xyz,)

OctetStringTypeDescription(xyz: int)

Create new instance of OctetStringTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class StructureTypeDescription(typing.NamedTuple):
370@type_description
371class StructureTypeDescription(typing.NamedTuple):
372    components: list[tuple[str | None, TypeDescription | ObjectName]]

StructureTypeDescription(components,)

StructureTypeDescription( components: list[tuple[str | None, TypeDescription | ObjectName]])

Create new instance of StructureTypeDescription(components,)

components: list[tuple[str | None, TypeDescription | ObjectName]]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class UnsignedTypeDescription(typing.NamedTuple):
375@type_description
376class UnsignedTypeDescription(typing.NamedTuple):
377    xyz: int

UnsignedTypeDescription(xyz,)

UnsignedTypeDescription(xyz: int)

Create new instance of UnsignedTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@type_description
class UtcTimeTypeDescription(typing.NamedTuple):
380@type_description
381class UtcTimeTypeDescription(typing.NamedTuple):
382    pass

UtcTimeTypeDescription()

UtcTimeTypeDescription()

Create new instance of UtcTimeTypeDescription()

Inherited Members
builtins.tuple
index
count
@type_description
class VisibleStringTypeDescription(typing.NamedTuple):
385@type_description
386class VisibleStringTypeDescription(typing.NamedTuple):
387    xyz: int

VisibleStringTypeDescription(xyz,)

VisibleStringTypeDescription(xyz: int)

Create new instance of VisibleStringTypeDescription(xyz,)

xyz: int

Alias for field number 0

Inherited Members
builtins.tuple
index
count
class TypeDescription(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@object_name
class AaSpecificObjectName(typing.NamedTuple):
390@object_name
391class AaSpecificObjectName(typing.NamedTuple):
392    identifier: str

AaSpecificObjectName(identifier,)

AaSpecificObjectName(identifier: str)

Create new instance of AaSpecificObjectName(identifier,)

identifier: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@object_name
class DomainSpecificObjectName(typing.NamedTuple):
395@object_name
396class DomainSpecificObjectName(typing.NamedTuple):
397    domain_id: str
398    item_id: str

DomainSpecificObjectName(domain_id, item_id)

DomainSpecificObjectName(domain_id: str, item_id: str)

Create new instance of DomainSpecificObjectName(domain_id, item_id)

domain_id: str

Alias for field number 0

item_id: str

Alias for field number 1

Inherited Members
builtins.tuple
index
count
@object_name
class VmdSpecificObjectName(typing.NamedTuple):
401@object_name
402class VmdSpecificObjectName(typing.NamedTuple):
403    identifier: str

VmdSpecificObjectName(identifier,)

VmdSpecificObjectName(identifier: str)

Create new instance of VmdSpecificObjectName(identifier,)

identifier: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
class ObjectName(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@object_scope
class AaSpecificObjectScope(typing.NamedTuple):
406@object_scope
407class AaSpecificObjectScope(typing.NamedTuple):
408    pass

AaSpecificObjectScope()

AaSpecificObjectScope()

Create new instance of AaSpecificObjectScope()

Inherited Members
builtins.tuple
index
count
@object_scope
class DomainSpecificObjectScope(typing.NamedTuple):
411@object_scope
412class DomainSpecificObjectScope(typing.NamedTuple):
413    identifier: str

DomainSpecificObjectScope(identifier,)

DomainSpecificObjectScope(identifier: str)

Create new instance of DomainSpecificObjectScope(identifier,)

identifier: str

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@object_scope
class VmdSpecificObjectScope(typing.NamedTuple):
416@object_scope
417class VmdSpecificObjectScope(typing.NamedTuple):
418    pass

VmdSpecificObjectScope()

VmdSpecificObjectScope()

Create new instance of VmdSpecificObjectScope()

Inherited Members
builtins.tuple
index
count
class ObjectScope(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.

@variable_specification
class AddressVariableSpecification(typing.NamedTuple):
421@variable_specification
422class AddressVariableSpecification(typing.NamedTuple):
423    address: int | str | asn1.Bytes

AddressVariableSpecification(address,)

AddressVariableSpecification(address: int | str | bytes | bytearray | memoryview)

Create new instance of AddressVariableSpecification(address,)

address: int | str | bytes | bytearray | memoryview

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@variable_specification
class InvalidatedVariableSpecification(typing.NamedTuple):
426@variable_specification
427class InvalidatedVariableSpecification(typing.NamedTuple):
428    pass

InvalidatedVariableSpecification()

InvalidatedVariableSpecification()

Create new instance of InvalidatedVariableSpecification()

Inherited Members
builtins.tuple
index
count
@variable_specification
class NameVariableSpecification(typing.NamedTuple):
431@variable_specification
432class NameVariableSpecification(typing.NamedTuple):
433    name: ObjectName

NameVariableSpecification(name,)

NameVariableSpecification(name: ObjectName)

Create new instance of NameVariableSpecification(name,)

name: ObjectName

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@variable_specification
class ScatteredAccessDescriptionVariableSpecification(typing.NamedTuple):
436@variable_specification
437class ScatteredAccessDescriptionVariableSpecification(typing.NamedTuple):
438    specifications: list[VariableSpecification]

ScatteredAccessDescriptionVariableSpecification(specifications,)

ScatteredAccessDescriptionVariableSpecification(specifications: list[VariableSpecification])

Create new instance of ScatteredAccessDescriptionVariableSpecification(specifications,)

specifications: list[VariableSpecification]

Alias for field number 0

Inherited Members
builtins.tuple
index
count
@variable_specification
class VariableDescriptionVariableSpecification(typing.NamedTuple):
441@variable_specification
442class VariableDescriptionVariableSpecification(typing.NamedTuple):
443    address: int | str | asn1.Bytes
444    type_specification: TypeDescription | ObjectName

VariableDescriptionVariableSpecification(address, type_specification)

VariableDescriptionVariableSpecification( address: int | str | bytes | bytearray | memoryview, type_specification: TypeDescription | ObjectName)

Create new instance of VariableDescriptionVariableSpecification(address, type_specification)

address: int | str | bytes | bytearray | memoryview

Alias for field number 0

type_specification: TypeDescription | ObjectName

Alias for field number 1

Inherited Members
builtins.tuple
index
count
class VariableSpecification(abc.ABC):

Helper class that provides a standard way to create an ABC using inheritance.