# Responses
RESPONSE_OK = "1"
RESPONSE_ERROR = "0"

# Statuses
STATUS_DISCONNECTED = "Disconnected"
STATUS_CONNECTING = "Connecting"
STATUS_CONNECTED = "Connected"
STATUS_CONFIGURING = "Configuring"
STATUS_CONFIGURED = "Configured"
STATUS_IDLE = "Idle"
STATUS_BUSY = "Busy"
STATUS_ERROR = "Error"
STATUS_DISCONNECTING = "Disconnecting"

READY_DEVICE_STATUSES = (STATUS_CONFIGURED, STATUS_IDLE, STATUS_BUSY)
IDLE_DEVICE_STATUSES = (STATUS_CONFIGURED, STATUS_IDLE)
STATUSES_PRIORITY = (
    STATUS_ERROR,
    STATUS_DISCONNECTING,
    STATUS_DISCONNECTED,
    STATUS_CONNECTING,
    STATUS_CONNECTED,
    STATUS_CONFIGURING,
    STATUS_BUSY,
    STATUS_IDLE,
    STATUS_CONFIGURED,
)

# Macro states
IDLE = 0
BUSY = 1
PAUSED = 2
DONE = 3
STOPPED = 4
ERROR = 5
WARNING = 6

ABORT = "Abort macro"
SKIP = "Skip"

MODE_ALL = 2
MODE_EXTENDED = 1
MODE_SIMPLE = 0

# Attribute values
VALUE = "Value"
TYPE = "Type"
MIN = "Min"
MAX = "Max"
UNIT = "Unit"
DECIMALS = "Decimals"
DESCRIPTION = "Description"
READONLY = "Readonly"
TYPE_LIST = "<type> List"
TYPE_LIST_VALUES = "<type> List values"
TYPE_ARRAY = "<type> Array"
FACTOR = "Factor"
OFFSET = "Offset"
TOLERANCE = "Tolerance"
SETPOINT = "Setpoint"
PREVIOUS = "Previous"
SAVE_CHANGE = "Save"
ALL = "*"
DISPLAY = "display"
IMAGE = "Image"
LOCAL_FILESYSTEM = "Local filesystem"
ALLOW_BROADCAST = "Allow broadcast"

# Basic attributes
ATTR_ID = "Id"
ATTR_DESCRIPTION = "Description"
ATTR_STATUS = "Status"
ATTR_ENABLED = "Enabled"

INSTRUCTION_GET = b"0"
INSTRUCTION_SET = b"1"
INSTRUCTION_COMMAND = b"2"
INSTRUCTION_INIT = b"3"
INSTRUCTION_METHOD = b"4"
INSTRUCTION_POLL = b"5"
INSTRUCTION_PULL = b"6"
INSTRUCTION_PUSH = b"7"
INSTRUCTION_FORWARD = b"8"
INSTRUCTION_SYNC = b"9"

# Tokens
TOKEN_ATTRIBUTE = "A!"
TOKEN_ATTRIBUTE_REPLACE = "R!"
TOKEN_ATTRIBUTE_DELETE = "D!"
TOKEN_ATTRIBUTE_GROUP_DELETE = "GD!"
TOKEN_ALL = "*"

# Words
RISING = "Rising"
FALLING = "Falling"
POSITIVE = "Positive"
NEGATIVE = "Negative"
ROWS = "Rows"
COLUMNS = "Columns"

# Macro steps
MACRO_SET_ATTRIBUTE_STEP = "Set attribute"
MACRO_EXECUTE_METHOD_STEP = "Execute method"

# Config enums
CFG_TEMPLATE = 0

# Zmq message tokens
WORKER_READY = b"1"
MSG_TERMINATE = b"0"
WORKER_DONE = b"2"
MSG_EMPTY = b""
MSG_JSON = b"J"
MSG_ARRAY = b"A"
MSG_BYTES = b"B"
MSG_PICKLE = b"P"
MSG_FILE = b"F"
MSG_ACK = b"ACK"
MSG_FORWARD = b"FRWD"
MSG_ABORT = b"ABT"
MSG_PROGRESS = b"PROG"

OPEN_LOOP = "Open loop"
CLOSE_LOOP = "Close loop"

PROXY = "PROXY"

# Session groups
GROUP_RC = "RocketChat"

# List of general Attributes
ATTR_DETECTOR_DISTANCE = "Detector distance"
ATTR_DISTANCE_SETPOINT = "Detector distance setpoint"
ATTR_DIODE_VOLTAGE = "Diode voltage"
ATTR_FILEWRITER_STATUS = "Filewriter status"
ATTR_EIGERSTREAM_STATUS = "Eigerstream status"
ATTR_COLLIMATOR_STATUS = "Collimator status"
ATTR_POSITION_Z = "Position z"
ATTR_IMAGES_NUMBER = "Images number"
ATTR_EXTERNAL_TRIGGER = "External trigger"
ATTR_ACQUIRED_FRAMES = "Acquired frames"
ATTR_FRAME_NAME = "Frame name"
ATTR_FRAME_FILE = "Frame file"
ATTR_TRIGGERS_SP = "Triggers setpoint"
ATTR_TRIGGERS_GENERATED = "Triggers generated"
ATTR_LAST_TRIGGER_TYPE = "Last trigger type"
TYPE_SW = "SW"
TYPE_HW = "HW"
ATTR_RUN_ID = "Run id"
ATTR_AVAILABLE_LENGTH = "Available length"
ATTR_USED_LENGTH = "Used length"
ATTR_USED_LENGTH_PERCENT = "Used length percentage"
ATTR_REFERENCE_POSITION = "Reference position"
ATTR_TAPE_RADIUS = "Tape radius"
ATTR_SERIAL_NUMBER = "Serial number"
ATTR_PRODUCT_TYPE = "Product type"
ATTR_MODEL = "Model name"
ATTR_ANALOG_INPUT_READOUT_TASK = "Analog readout task"
ATTR_TERMINAL_CONFIGURATION = "Terminal configuration"
ATTR_SAMPLES_NUMBER = "Number of samples"
ATTR_READOUT_AT_SAMPLES = "Readout at samples"
ATTR_TEMPERATURE = "Temperature"
ATTR_TEMPERATURE_SETPOINT = "Temperature setpoint"
ATTR_CHANNELS = "Channels"
ATTR_POSITION = "Position"
ATTR_TARGET_POSITION = "Target position"
ATTR_STALL_FLAG = "Stall flag"
ATTR_MOVING = "Moving"
ATTR_VELOCITY = "Velocity"
ATTR_VELOCITY_SETPOINT = "Velocity setpoint"
ATTR_HOLDING_CURRENT = "Holding current"
ATTR_MAXIMUM_VELOCITY = "Maximum velocity"
ATTR_RUN_CURRENT = "Run current"
ATTR_ROTATION_DIRECTION = "Rotation direction"
ATTR_TORQUE_SPEED = "Torque speed"
ATTR_ENCODER_ENABLED = "Encoder enabled"
ATTR_MICROSTEP_RESOLUTION = "Microstep resolution"
ATTR_STEPS_PER_REVOLUTION = "Steps / revolution"
ATTR_STALL_FACTOR = "Stall factor"
ATTR_POSITIVE_LIMIT_SWITCH = "+limit switch"
ATTR_NEGATIVE_LIMIT_SWITCH = "-limit switch"
ATTR_INDEX_MARK = "Index mark"
ATTR_USE_POSITIVE_LIMIT_SWITCH = "Use +limit switch"
ATTR_USE_NEGATIVE_LIMIT_SWITCH = "Use -limit switch"
ATTR_INITIAL_VELOCITY = "Initial velocity"
ATTR_REFERENCING = "Referencing"
ATTR_ERROR_CODE = "Error code"
ATTR_LATENCY = "Latency"
ATTR_MODULES = "Modules count"
ATTR_STATE = "State"
ATTR_ENCODER_BASE_UNIT = "Enc base unit"
ATTR_HAND_TOOL = "Hand tool"
ATTR_MOVEMENT_LOCKED = "Movement locked"
ATTR_INTERNAL_COMM_FAILURE = "Comm failure"
ATTR_STREAMING = "Streaming"
ATTR_HOLDING = "Holding"
ATTR_SENSOR_PRESENT = "Sensor present"
ATTR_BOOSTER_PRESENT = "Booster present"
ATTR_ADJUSTMENT_ACTIVE = "Adjustment active"
ATTR_IOM_PRESENT = "I/O present"
ATTR_HIGH_VOLTAGE_FAILURE = "High voltage failure"
ATTR_HIGH_VOLTAGE_OVERLOAD = "High voltage overload"
ATTR_OVER_TEMPERATURE = "Over temperature"
ATTR_CLOSED_LOOP_ACTIVE = "Closed loop active"
ATTR_CALIBRATING = "Calibrating"
ATTR_MOVE_DELAYED = "Move delayed"
ATTR_CALIBRATED = "Calibrated"
ATTR_REFERENCED = "Referenced"
ATTR_END_STOP_REACHED = "On end stop"
ATTR_RANGE_LIMIT_REACHED = "On range limit"
ATTR_FOLLOWING_LIMIT_REACHED = "On Following limit"
ATTR_MOVEMENT_FAILED = "Movement failed"
ATTR_POSITIONER_TYPE = "Positioner type"
ATTR_POSITIONER_CODE = "Positioner code"
ATTR_CONFIGURED_LIMITS = "Configured Limits"
ATTR_POSITION_UPPER_LIMIT = "Position +limit"
ATTR_POSITION_LOWER_LIMIT = "Position -limit"
ATTR_STEP_FREQUENCY = "Step frequency"
ATTR_STEP_AMPLITUDE = "Step amplitude"
ATTR_ACCELERATION = "Acceleration"
ATTR_DECELERATION = "Deceleration"
ATTR_SENSOR_MODE = "Sensor mode"
ATTR_MOVE_MODE = "Move mode"
ATTR_SAFE_DIRECTION = "Safe direction"
ATTR_HAND_TOOL_MODE = "Hand tool mode"
ATTR_SENSOR_TYPE = "Sensor type"
ATTR_REVOLUTIONS = "Revolutions"
ATTR_BAUDRATE = "Baudrate"
ATTR_REFERENCING_METHOD = "Referencing method"
ATTR_ACCELERATION_PATTERN = "Acceleration pattern"
ATTR_ACCELERATION_TIME = "Acceleration time"
ATTR_CORRECTION = "Position correction"
ATTR_CORRECTION_RETRY = "Correction retry_count"
ATTR_DECELERATION_TIME = "Deceleration time"
ATTR_ENCODER_ADDING = "Encoder adding"
ATTR_ENCODER_READ = "Encoder read"
ATTR_ENCODER_RESOLUTION = "Encoder resolution"
ATTR_PULSE_POSITION = "Pulse position"
ATTR_PULSE_READ = "Pulse read"
ATTR_START_SPEED = "Start speed"
ATTR_STEP_FACTOR = "Step factor"
ATTR_STEP_RESOLUTION = "Step resolution"
ATTR_TOP_SPEED = "Top speed"
ATTR_TRIGGER_EDGE = "Trigger edge"
ATTR_TRIGGER_ENC_PITCH = "Trigger enc pitch"
ATTR_TRIGGER_LOGIC = "Trigger logic"
ATTR_TRIGGER_PM_PITCH = "Trigger pm pitch"
ATTR_TRIGGER_PULSE_WIDTH = "Trigger pulse width"
ATTR_TRIGGER_SELECT = "Trigger select"
ATTR_TRIGGER_SOURCE = "Trigger source"
ATTR_ENCODER_CALC_NUM = "Encoder calc num"
ATTR_ENCODER_CALC_DEN = "Encoder calc den"
ATTR_ROTATION_CHANGE = "Rotation change"
ATTR_SWAP_LIMITS = "Swap limits"
ATTR_RETRY_COUNT = "Retry count"
ATTR_FEEDBACK_TIMEOUT = "Feedback timeout"
ATTR_FEEDBACK_CONTROL_TYPE = "Feedback type"
ATTR_MOTOR_EXCITATION = "Motor excitation"
ATTR_MOTOR_SELECTION = "Motor selection"
ATTR_MICROSTEP_SELECT = "Microstep select"
ATTR_STOP_TYPE = "Stop type"
ATTR_EMERGENCY_STOP = "Emergency stop"
ATTR_CWL = "CW limit"
ATTR_CCWL = "CCW limit"
ATTR_ORG = "ORG signal"
ATTR_NORG = "NORG signal"
ATTR_LAST_ERROR = "Last error"
ATTR_LOG_DIRECTORY = "Log directory"
ATTR_SCAN_DIRECTORY = "Scan directory"
ATTR_ALLOW_CONSOLE_LOG = "Allow console log"
ATTR_ALLOW_DEVICE_LOG = "Allow device log"
ATTR_ALLOW_GUI_LOG = "Allow gui log"
ATTR_ALLOW_ATTRIBUTE_LOG = "Allow attribute log"
ATTR_ALLOW_MACRO_LOG = "Allow macro log"
ATTR_DEVICES_COUNT = "Devices count"
ATTR_LOOPS_RUNNING = "Control loops running"
ATTR_FILEPATH = "Filepath"
ATTR_CONTENT = "Content"
ATTR_STEP_INDEX = "Step index"
ATTR_POINT_INDEX = "Point index"
ATTR_STEPS_COUNT = "Steps count"
ATTR_POINTS_COUNT = "Points count"
ATTR_PROGRESS = "Progress"
ATTR_STARTED_AT = "Started at"
ATTR_RUNNING_TIME = "Running time"
ATTR_ESTIMATED_TIME = "Estimated time"
ATTR_ESTIMATED_END = "Estimated end"
ATTR_REMAINING_TIME = "Remaining time"
ATTR_CHAIN_LINK = "Chain link"
ATTR_OPENED = "Opened"
ATTR_OPENED_POSITION = "Opened position"
ATTR_CLOSED_POSITION = "Closed position"
ATTR_OPENED_VALUE = "Opened value"
ATTR_CLOSED_VALUE = "Closed value"
ATTR_OPENED_AT = "Opened at"
ATTR_AUTO_MODE = "Auto mode"
ATTR_SYNTAX_VERSION = "Syntax vesrion"
ATTR_SERVO_STATE = "Servo state"
ATTR_ON_TARGET = "On target"
ATTR_ACTIVE_UNIT = "Active unit"
ATTR_REFERENCING_DIRECTION_X = "Ref direction X"
ATTR_REFERENCING_DIRECTION_Y = "Ref direction Y"
ATTR_REFERENCING_DIRECTION_Z = "Ref direction Z"
ATTR_PIVOT_MODE = "Pivot mode"
ATTR_PIVOT_X = "Pivot X"
ATTR_PIVOT_Y = "Pivot Y"
ATTR_PIVOT_Z = "Pivot Z"
ATTR_POSITIONS = "Positions"
ATTR_USE_MARK_INDEX = "Use mark index"
ATTR_BACKLASH_DISTANCE = "Backlash distance"
ATTR_BUFFERED_COMMANDS = "Buffered commands"
ATTR_HANGING_COMMANDS = "Hanging commands"
ATTR_CONSTANT_CURRENT = "Constant current"
ATTR_CONSTANT_VOLTAGE = "Constant voltage"
ATTR_CURRENT = "Current"
ATTR_VOLTAGE = "Voltage"
ATTR_MAX_CURRENT = "Max current"
ATTR_MAX_VOLTAGE = "Max voltage"
ATTR_OUTPUT_SWITCH = "Output switch"
ATTR_INTENSITY = "Intensity"
ATTR_RESOURCE_DIRECTORY = "Resource directory"
ATTR_CACHE_DIRECTORY = "Cache directory"
ATTR_SCAN_PREFIX = "Scan prefix"
ATTR_SCAN_COUNT = "Scan count"
ATTR_OUTPUT_FILENAME = "Output filename"
ATTR_TIMEOUT = "Timeout"
ATTR_ACRONYM = "Acronym"
ATTR_MOTOR_TYPE = "Motor type"
ATTR_AMPLIFIER_GAIN = "Amplifier gain"
ATTR_FAST_REFERENCE_SPEED = "Fast reference speed"
ATTR_FULL_STEP_RESOLUTION = "Full step resolution"
ATTR_HOMING_DIRECTION = "Homing direction"
ATTR_JOG_BACKWARD = "Jog backward"
ATTR_JOG_FORWARD = "Jog forward"
ATTR_LATCH_INPUT_LEVEL = "Latch input level"
ATTR_LIMIT_SWITCH_ACTIVE_LEVEL = "Limit switch active level"
ATTR_LOW_CURRENT_STEPPER_MODE = "Low current stepper mode"
ATTR_SLOW_REFERENCE_SPEED = "Slow reference speed"
ATTR_STEP_DRIVE_RESOLUTION = "Step drive resolution"
ATTR_JOG_MOTOR = "Jog motor"
ATTR_HOMING_METHOD = "Homing method"
ATTR_LIMIT_SWITCHES_MODE = "Limit switches mode"
ATTR_REMOTE_TIMESTAMP = "Remote timestamp"
ATTR_LOCAL_TIMESTAMP = "Local timestamp"
ATTR_DELTA_TIMESTAMP = "Delta timestamp"
ATTR_REMOTE_TRAIN_ID = "Remote train id"
ATTR_LOCAL_TRAIN_ID = "Local train id"
ATTR_MIN_UPDATE_TIMEOUT = "Min update timeout"
ATTR_TRAIN_TIMEOUT = "Train timeout"
ATTR_TRAIN_OFFSET = "Train id offset"
ATTR_COUNTER = "Counter"
ATTR_REFRESHING = "Refreshing"
ATTR_WAVETABLE_LENGTH = "Wavetable length"
ATTR_WAVETABLE_DATA = "Wave table data"
ATTR_WAVETABLE_RATE = "Wave table rate"
ATTR_WAVETABLE_INTERPOLATION = "Wave table interpolation"
ATTR_WAVE_GEN_OFFSET = "Wave gen offset"
ATTR_TRIGGER_OUTPUTS_COUNT = "Trigger outputs count"
ATTR_WAVE_GEN_COUNT = "Wave generators count"
ATTR_WAVE_TABLE = "Wave table"
ATTR_SERVO_UPDATE_TIME = "Servo update time"
ATTR_RECORD_TABLE_RATE = "Record table rate"
ATTR_RECORD_TABLE_DATA = "Record table data"
ATTR_RECORD_TABLE_DATA_SETPOINTS = "Record table data setpoints"
ATTR_WAVETABLE_OFFSET = "Wave table offset"
ATTR_TRIGGER_LINE_DATA = "Trigger line data"
ATTR_SCANNING = "Scanning"
ATTR_READOUT = "Readout"
ATTR_CAMERA_CALIBRATION = "Pixel calibration"
ATTR_COLOR_OUTPUT = "Color output"
ATTR_COMMENT = "Comment"
ATTR_DUMMY_IMAGE = "Dummy image"
ATTR_EXPOSURE_TIME = "Exposure time"
ATTR_FRAMERATE = "Framerate"
ATTR_FRAME_IMAGE = "Frame image"
ATTR_GAIN = "Gain"
ATTR_HEIGHT_DIVIDER = "Height divider"
ATTR_HEIGHT_MAX = "Height max"
ATTR_LIVE_VIEW = "Live view"
ATTR_LIVE_VIEW_FPS_LIMIT = "Live view limit"
ATTR_OUTPUT_NAME = "Output name"
ATTR_PIXEL_BITSIZE = "PixelSize"
ATTR_REAL_FRAMERATE = "Real framerate"
ATTR_ROI_OFFSET_X = "ROI offset X"
ATTR_ROI_OFFSET_Y = "ROI offset Y"
ATTR_SAVE_FRAMES = "Save frames"
ATTR_START_ACQUISITION = "Start acquisition"
ATTR_STOP_ACQUISITION = "Stop acquisition"
ATTR_SUMMED_FRAMES = "Summed frames"
ATTR_TRIGGER_MODE = "Trigger mode"
ATTR_WIDTH_DIVIDER = "Width divider"
ATTR_WIDTH_MAX = "Width max"
GROUP_ROI = "Roi"
ATTR_WAVE_GENERATOR = "Wave generator"
ATTR_OUTPUT_DIRECTORY = "Output directory"
ATTR_TRIGGER_DURATION = "Trigger duration"
ATTR_SETPOINT = "Setpoint"
ATTR_FAULT_BYTE = "Fault byte"
ATTR_FAST_REFERENCE_VELOCITY = "Fast reference velocity"
ATTR_SLOW_REFERENCE_VELOCITY = "Slow reference velocity"
ATTR_REFERENCE_STEPS_BACK = "Reference steps back"
ATTR_HOLDING_TIME = "Holding time"
ATTR_STEPS = "Steps"
ATTR_PRESSURE = "Pressure"
ATTR_POWER = "Power"
ATTR_CURRENT_SAMPLE = "Current sample"
ATTR_CURRENT_CHANNEL = "Current channel"
ATTR_ACTIVE_SWITCHES = "Active switches"
ATTR_LIBRARY = "Library"
ATTR_ENCODER_READOUT = "Encoder readout"
ATTR_COUNTS_PER_REVOLUTION = "Counts pre revolution"
ATTR_REFERENCE_VELOCITY = "Reference velocity"
ATTR_DIRECTION = "Direction"
ATTR_DWELL_TIME = "Dwell time"
ATTR_TEMPLATES_COUNT = "Templates count"
ATTR_MACRO_COUNT = "Macro count"
ATTR_MACRO_PREFIX = "Macro prefix"
ATTR_TEMPLATE_DIRECTORY = "Template directory"
ATTR_UPLOADED_COUNT = "Uploaded count"
ATTR_FINISHED_COUNT = "Finished count"
ATTR_RUNNING_COUNT = "Running count"
ATTR_MAX_RUNNING_MACROS = "Max running macros"
ATTR_MAX_MACRO_HISTORY = "Max macro history"
ATTR_TEMPLATE = "Template"
ATTR_CHAIN_LINK_OUTPUT = "Chain link output"
ATTR_OFF = "Off"
ATTR_PS1_VOLTAGE = "PS 1 voltage"
ATTR_PS1_POWER = "PS 1 power"
ATTR_PS1_CURRENT = "PS 1 current"
ATTR_PS2_VOLTAGE = "PS 2 voltage"
ATTR_PS2_POWER = "PS 2 power"
ATTR_PS2_CURRENT = "PS 2 current"
ATTR_PS3_VOLTAGE = "PS 3 voltage"
ATTR_PS3_POWER = "PS 3 power"
ATTR_PS3_CURRENT = "PS 3 current"
ATTR_PS4_VOLTAGE = "PS 4 voltage"
ATTR_PS4_POWER = "PS 4 power"
ATTR_PS4_CURRENT = "PS 4 current"
ATTR_POWER_SETPOINT = "Power setpoint"
ATTR_VOLTAGE_SETPOINT = "Voltage setpoint"
ATTR_CURRENT_SETPOINT = "Current setpoint"
ATTR_OUTPUT_RELEASED = "Output released"
ATTR_PROCESS_ID = "Process ID"
ATTR_MEMORY_USAGE = "Memory usage"
ATTR_CPU_USAGE = "Cpu usage"
ATTR_AVAILABLE_MEMORY = "Available memory"
ATTR_HOME_SWITCH_FLAG = "Home switch flag"
ATTR_HARDWARE_VERSION = "Hardware version"
ATTR_SOFTWARE_VERSION = "Software version"
ATTR_MANUFACTURE_DATE = "Manufacture date"
ATTR_APPLICATION_NUMBER = "Application number"
ATTR_APPLICATION_VERSION = "Application version"
ATTR_OPERATION_MODE = "Operation mode"
ATTR_VELOCITY_UNITS = "Velocity units"
ATTR_WIDTH = "Width"
ATTR_HEIGHT = "Height"
ATTR_INPUT_DIR_LIST = "Input dir list"
ATTR_OUTPUT_DIR_LIST = "Output dir list"
ATTR_FILE_FILTER_PATTERN = "File filter pattern"
ATTR_ADDRESS = "Address"
ATTR_HOST = "Host"
ATTR_PORT = "Port"
ATTR_TASKS = "Tasks"
ATTR_WORKER = "Worker"
ATTR_CLIENT = "Client"
ATTR_TASK_INSTRUCTION = "Task instruction"
ATTR_SOURCE_FILE = "Source file"
ATTR_TARGET_FILE = "Target file"
ATTR_ABORTED = "Aborted"
ATTR_DRIVES = "Drives"
ATTR_FINISHED_AT = "Finished at"
ATTR_REQUESTED_FILES = "Requested files"
ATTR_SYNCED_FILES = "Synced files"
ATTR_METADATA = "Metadata"
ATTR_LOGFILE = "Logfile"
ATTR_HEADER = "Header"
ATTR_LAST_LOG_LINE = "Last log line"
ATTR_INTERVAL = "Interval"
ATTR_LOGGING = "Logging"
ATTR_MEASURING_SCALE = "Measuring scale"
ATTR_DISTANCE = "Distance"
ATTR_MODES = "Modes"
ATTR_AUTO_STOP = "Auto stop"
ATTR_ABSOLUTE_POSITION = "Absolute position"
ATTR_WARNING = "Warning"
ATTR_VELOCITY_TIMEOUT = "Velocity timeout"
ATTR_SPEED_TABLE_ROW = "Speed table row"
ATTR_RESISTANCE = "Resistance"
ATTR_ALLOW_RC = "Allow RocketChat"
ATTR_MAIN_ROOM = "Main room name"
ATTR_RC_MACRO_DISCUSSION = "Macro ds name"
ATTR_AUTH_TOKEN = "Auth token"
ATTR_USER_NAME = "username"
ATTR_PASSWORD = "Password"

ATTR_ANALOGUE_PROGRAMMING_ACTIVE = "Analogue prog active"
ATTR_CALIBRATION_MODE = "Calibration mode"
ATTR_CONTROL_CURRENT = "Control current"
ATTR_CONTROL_VOLTAGE = "Control voltage"
ATTR_CURRENT_RAMPING_RATE = "Current ramping rate"
ATTR_DIGITAL_PROGRAMMING_ACTIVE = "Digital prog active"
ATTR_MONITORED_CURRENT = "I-Mon"
ATTR_MONITORED_VOLTAGE = "V-Mon"
ATTR_OUTPUT_POLARITY = "Output polarity"
ATTR_OUTPUT_RELEASE = "Output release"
ATTR_POLARITY_REVERSAL = "Polarity"
ATTR_VOLTAGE_RAMPING_RATE = "Voltage ramping rate"
ATTR_VOLTAGE_READOUT = "Voltage readout"
ATTR_CURRENT_READOUT = "Current readout"
ATTR_CURRENT_ON_TARGET = "Current on target"
ATTR_VOLTAGE_ON_TARGET = "Voltage on target"
ATTR_RAMP_VOLTAGE_MODE = "Ramp voltage mode"
ATTR_RAMP_CURRENT_MODE = "Ramp current mode"
ATTR_OUTPUT_POWER = "Output power"
ATTR_DIGITAL_OUTPUT = "Digital output"
ATTR_DIGITAL_INPUT = "Digital input"
ATTR_ANALOG_OUTPUT = "Analog output"
ATTR_ANALOG_INPUT = "Analog input"
ATTR_CHANNELS_CONFIGURATION = "Channels configuration"
ATTR_NAME = "Name"
ATTR_MEASUREMENT_STATUS = "Measurement status"
ATTR_FIRMWARE = "Firmware version"
ATTR_SENSORS_COUNT = "Sensors count"
GROUP_MATERIALS = "Materials"
ATTR_MATERIAL = "Material"
ATTR_AUTO_Z = "Auto Z"
ATTR_OUTPUT = "Output"
GROUP_OUTPUTS = "Outputs"
ATTR_PROCESS = "Process"
GROUP_PROCESSES = "Processes"
GROUP_USER_MESSAGES = "User messages"
ATTR_USER_MESSAGE = "User message"
ATTR_Z_RATIO = "Z ratio"
ATTR_FUNDAMENTAL_FREQUENCY = "Fundamental freq"
ATTR_AHARMONIC_FREQUENCY = "Aharmonic freq"
ATTR_SENSOR_THICKNESS = "Sensor thickness"
ATTR_CRYSTAL_LIFE = "Crystal life"
ATTR_RAW_RATE = "Raw rate"
ATTR_SHUTTER_STROKES = "Shutter strokes"
ATTR_SHUTTER_OPEN = "Shutter open"
ATTR_LAYER_THICKNESS = "Layer thickness"
ATTR_ACTIVE_PROCESS = "Active process"
ATTR_GROUPS = "Groups"
ATTR_LAST_UPDATE = "Last update"
ATTR_SOURCE_ID = "Source id"
GROUP_FRAME = "Frame"
ATTR_FRAME = "Frame"
ATTR_FRAME_COUNT = "Frame count"
ATTR_ALLOW_STREAM = "Allow stream"
ATTR_MAX_STREAM_RATE = "Max stream rate"
ATTR_ALLOW_BROADCAST = "Allow broadcast"
ATTR_MAX_BROADCAST_RATE = "Max broadcast rate"
ATTR_SOURCE = "Source"
ATTR_SOURCE_FRAMERATE = "Source framerate"
ATTR_SOURCE_WIDTH = "Source width"
ATTR_SOURCE_HEIGHT = "Source height"
ATTR_AUTO_SET_FRAMERATE = "Autoset framerate"
ATTR_CAPTURE_API = "Capture API"
ATTR_SOURCES_COUNT = "Sources count"
ATTR_STREAM_READOUT = "Stream readout"
ATTR_VALUE_READOUT = "Value readout"
ATTR_STREAMABLE = "Streamable"
ATTR_FULL_ACCESS = "Full access"
ATTR_PILOT_LASER = "Pilot laser"
ATTR_IS_STABLE = "Is stable"
ATTR_CAPTURE_REGION = "Capture region"
ATTR_FourCC_CODEC = "FourCC Codec"
ATTR_FILENAME_PREFIX = "Filename prefix"
ATTR_RECORDING = "Recording"
ATTR_FRAME_AGGREGATION = "Frame aggregation"
ATTR_BUFFER_AGGREGATION = "Buffer aggregation"
ATTR_STREAMING_MODE = "Streaming mode"
ATTR_BUFFERS_INTERLEAVED = "Buffers interleaved"
ATTR_FILTER_RATE = "Filter rate"
ATTR_BUFFERS_COUNT = "Buffers count"
ATTR_FRAMES_GRABBED = "Frames grabbed"
ATTR_HEAD_FIBER_LENGTH = "Head fiber length"
ATTR_EXTENSION_FIBER_LENGTH = "Extension fiber length"
ATTR_HEAD_TYPE = "Head type"
ATTR_MIN_WORKING_DISTANCE = "Min working distance"
ATTR_MAX_WORKING_DISTANCE = "Max working distance"
ATTR_BEAM_INTERRUPT_TOLERANCE = "Beam interrupt tolerance"
ATTR_CLOSE_LOOP_UNIT = "Close loop unit"
ATTR_CLOSE_LOOP_FACTOR = "Close loop factor"
ATTR_OPEN_LOOP_FACTOR = "Open loop factor"
ATTR_MOVE_METHOD = "Move method"
ATTR_CHANNEL_ENABLED = "Channel enabled"
ATTR_PRESCAN_PIXELS = "Prescan pixels"
ATTR_POSTSCAN_PIXELS = "Postcan pixels"
ATTR_RECORDED_POSITIONS = "Recorded positions"
ATTR_REFERENCE_DIRECTION = "Reference direction"
ATTR_AUTO_CONTROL_SHUTTER = "Auto control shutter"
ATTR_OPEN_DELAY = "Open delay"
ATTR_CLOSE_DELAY = "Close delay"
