M lazy-lock.json M lua/custom/configs/lspconfig.lua M lua/custom/init.lua A lua/custom/journal.lua A nvim_venv/bin/Activate.ps1 A nvim_venv/bin/activate A nvim_venv/bin/activate.csh A nvim_venv/bin/activate.fish
145 lines
3.4 KiB
Python
145 lines
3.4 KiB
Python
"""Constants For Modbus Server/Client.
|
|
|
|
This is the single location for storing default
|
|
values for the servers and clients.
|
|
"""
|
|
import enum
|
|
|
|
|
|
INTERNAL_ERROR = "Pymodbus internal error"
|
|
|
|
|
|
class ModbusStatus(int, enum.Enum):
|
|
"""These represent various status codes in the modbus protocol.
|
|
|
|
.. attribute:: WAITING
|
|
|
|
This indicates that a modbus device is currently
|
|
waiting for a given request to finish some running task.
|
|
|
|
.. attribute:: READY
|
|
|
|
This indicates that a modbus device is currently
|
|
free to perform the next request task.
|
|
|
|
.. attribute:: ON
|
|
|
|
This indicates that the given modbus entity is on
|
|
|
|
.. attribute:: OFF
|
|
|
|
This indicates that the given modbus entity is off
|
|
|
|
.. attribute:: SLAVE_ON
|
|
|
|
This indicates that the given modbus slave is running
|
|
|
|
.. attribute:: SLAVE_OFF
|
|
|
|
This indicates that the given modbus slave is not running
|
|
"""
|
|
|
|
WAITING = 0xFFFF
|
|
READY = 0x0000
|
|
ON = 0xFF00
|
|
OFF = 0x0000
|
|
SLAVE_ON = 0xFF
|
|
SLAVE_OFF = 0x00
|
|
|
|
|
|
class Endian(str, enum.Enum):
|
|
"""An enumeration representing the various byte endianness.
|
|
|
|
.. attribute:: AUTO
|
|
|
|
This indicates that the byte order is chosen by the
|
|
current native environment.
|
|
|
|
.. attribute:: BIG
|
|
|
|
This indicates that the bytes are in big endian format
|
|
|
|
.. attribute:: LITTLE
|
|
|
|
This indicates that the bytes are in little endian format
|
|
|
|
.. note:: I am simply borrowing the format strings from the
|
|
python struct module for my convenience.
|
|
"""
|
|
|
|
AUTO = "@"
|
|
BIG = ">"
|
|
LITTLE = "<"
|
|
|
|
|
|
class ModbusPlusOperation(int, enum.Enum):
|
|
"""Represents the type of modbus plus request.
|
|
|
|
.. attribute:: GET_STATISTICS
|
|
|
|
Operation requesting that the current modbus plus statistics
|
|
be returned in the response.
|
|
|
|
.. attribute:: CLEAR_STATISTICS
|
|
|
|
Operation requesting that the current modbus plus statistics
|
|
be cleared and not returned in the response.
|
|
"""
|
|
|
|
GET_STATISTICS = 0x0003
|
|
CLEAR_STATISTICS = 0x0004
|
|
|
|
|
|
class DeviceInformation(int, enum.Enum):
|
|
"""Represents what type of device information to read.
|
|
|
|
.. attribute:: BASIC
|
|
|
|
This is the basic (required) device information to be returned.
|
|
This includes VendorName, ProductCode, and MajorMinorRevision
|
|
code.
|
|
|
|
.. attribute:: REGULAR
|
|
|
|
In addition to basic data objects, the device provides additional
|
|
and optional identification and description data objects. All of
|
|
the objects of this category are defined in the standard but their
|
|
implementation is optional.
|
|
|
|
.. attribute:: EXTENDED
|
|
|
|
In addition to regular data objects, the device provides additional
|
|
and optional identification and description private data about the
|
|
physical device itself. All of these data are device dependent.
|
|
|
|
.. attribute:: SPECIFIC
|
|
|
|
Request to return a single data object.
|
|
"""
|
|
|
|
BASIC = 0x01
|
|
REGULAR = 0x02
|
|
EXTENDED = 0x03
|
|
SPECIFIC = 0x04
|
|
|
|
def __str__(self):
|
|
"""Override to force int representation for enum members."""
|
|
return str(int(self))
|
|
|
|
|
|
class MoreData(int, enum.Enum):
|
|
"""Represents the more follows condition.
|
|
|
|
.. attribute:: NOTHING
|
|
|
|
This indicates that no more objects are going to be returned.
|
|
|
|
.. attribute:: KEEP_READING
|
|
|
|
This indicates that there are more objects to be returned.
|
|
"""
|
|
|
|
NOTHING = 0x00
|
|
KEEP_READING = 0xFF
|
|
|