from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class PdoBaseId(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    PDO_BASE_ID_UNSPECIFIED: _ClassVar[PdoBaseId]
    RPDO1_BASE_ID_200: _ClassVar[PdoBaseId]
    RPDO2_BASE_ID_300: _ClassVar[PdoBaseId]
    RPDO3_BASE_ID_400: _ClassVar[PdoBaseId]
    RPDO4_BASE_ID_500: _ClassVar[PdoBaseId]
    TPDO1_BASE_ID_180: _ClassVar[PdoBaseId]
    TPDO2_BASE_ID_280: _ClassVar[PdoBaseId]
    TPDO3_BASE_ID_380: _ClassVar[PdoBaseId]
    TPDO4_BASE_ID_480: _ClassVar[PdoBaseId]

class TransmissionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    SYNC_EVENT_DRIVEN: _ClassVar[TransmissionType]
    SYNC_CYCLIC: _ClassVar[TransmissionType]
    REMOTE_SYNC: _ClassVar[TransmissionType]
    REMOTE_ASYNC: _ClassVar[TransmissionType]
    ASYNC_MANUFACTURER_SPECIFIC: _ClassVar[TransmissionType]
    ASYNC_DEVICE_SPECIFIC: _ClassVar[TransmissionType]

class CommandSpecifier(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    CS_NO: _ClassVar[CommandSpecifier]
    CS_WRITE_ONE_BYTE: _ClassVar[CommandSpecifier]
    CS_WRITE_TWO_BYTES: _ClassVar[CommandSpecifier]
    CS_WRITE_THREE_BYTES: _ClassVar[CommandSpecifier]
    CS_WRITE_FOUR_BYTES: _ClassVar[CommandSpecifier]
    CS_WRITE_SUCCESS_RESPONSE: _ClassVar[CommandSpecifier]
    CS_READ_REQUEST: _ClassVar[CommandSpecifier]
    CS_READ_RESPONSE_ONE_BYTE: _ClassVar[CommandSpecifier]
    CS_READ_RESPONSE_TWO_BYTES: _ClassVar[CommandSpecifier]
    CS_READ_RESPONSE_THREE_BYTES: _ClassVar[CommandSpecifier]
    CS_READ_RESPONSE_FOUR_BYTES: _ClassVar[CommandSpecifier]
    CS_EXCEPTION_RESPONSE: _ClassVar[CommandSpecifier]

class NmtState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    NMT_INITIALIZING: _ClassVar[NmtState]
    NMT_RESET_APPLICATION: _ClassVar[NmtState]
    NMT_CONNECTING: _ClassVar[NmtState]
    NMT_PREPARING: _ClassVar[NmtState]
    NMT_STOPPED: _ClassVar[NmtState]
    NMT_OPERATIONAL: _ClassVar[NmtState]
    NMT_PRE_OPERATIONAL: _ClassVar[NmtState]

class NmtCommand(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    NMT_COMMAND_UNSPECIFIED: _ClassVar[NmtCommand]
    NMT_START_REMOTE_NODE: _ClassVar[NmtCommand]
    NMT_STOP_REMOTE_NODE: _ClassVar[NmtCommand]
    NMT_ENTER_PRE_OPERATIONAL: _ClassVar[NmtCommand]
    NMT_RESET_NODE: _ClassVar[NmtCommand]
    NMT_RESET_COMMUNICATION: _ClassVar[NmtCommand]

class ObIndex(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    INDEX_ZERO: _ClassVar[ObIndex]
    USER_SAVE_PARA_2000: _ClassVar[ObIndex]
    POSITION_OFFSET_2008: _ClassVar[ObIndex]
    ERROR_CODE_6007: _ClassVar[ObIndex]
    ERROR_CODE_603F: _ClassVar[ObIndex]
    CONTROL_WORD_6040: _ClassVar[ObIndex]
    STATUS_WORD_6041: _ClassVar[ObIndex]
    OPERATION_MODE_6060: _ClassVar[ObIndex]
    MODE_DISPLAY_6061: _ClassVar[ObIndex]
    ACTUAL_POSITION_6064: _ClassVar[ObIndex]
    ACTUAL_SPEED_606C: _ClassVar[ObIndex]
    ACTUAL_CURRENT_6078: _ClassVar[ObIndex]
    TARGET_TORQUE_6071: _ClassVar[ObIndex]
    MAX_TORQUE_6072: _ClassVar[ObIndex]
    DEMAND_TORQUE_6074: _ClassVar[ObIndex]
    TARGET_POSITION_607A: _ClassVar[ObIndex]
    SOFTWARE_POSITION_LIMIT_607D: _ClassVar[ObIndex]
    MAX_SPEED_607F: _ClassVar[ObIndex]
    PROFILE_SPEED_6081: _ClassVar[ObIndex]
    PROFILE_ACCELERATION_6083: _ClassVar[ObIndex]
    PROFILE_DECELERATION_6084: _ClassVar[ObIndex]
    CURRENT_LOOP_PID_60F6: _ClassVar[ObIndex]
    SPEED_LOOP_PID_60F9: _ClassVar[ObIndex]
    POSITION_LOOP_PID_60FB: _ClassVar[ObIndex]
    TARGET_SPEED_60FF: _ClassVar[ObIndex]
    QUICK_STOP_OPTION_605A: _ClassVar[ObIndex]
    QUICK_STOP_DECEL_6085: _ClassVar[ObIndex]
    RPDO1_COMM_1400: _ClassVar[ObIndex]
    RPDO2_COMM_1401: _ClassVar[ObIndex]
    RPDO3_COMM_1402: _ClassVar[ObIndex]
    RPDO4_COMM_1403: _ClassVar[ObIndex]
    TPDO1_COMM_1800: _ClassVar[ObIndex]
    TPDO2_COMM_1801: _ClassVar[ObIndex]
    TPDO3_COMM_1802: _ClassVar[ObIndex]
    TPDO4_COMM_1803: _ClassVar[ObIndex]
    RPDO1_MAP_1600: _ClassVar[ObIndex]
    RPDO2_MAP_1601: _ClassVar[ObIndex]
    RPDO3_MAP_1602: _ClassVar[ObIndex]
    RPDO4_MAP_1603: _ClassVar[ObIndex]
    TPDO1_MAP_1A00: _ClassVar[ObIndex]
    TPDO2_MAP_1A01: _ClassVar[ObIndex]
    TPDO3_MAP_1A02: _ClassVar[ObIndex]
    TPDO4_MAP_1A03: _ClassVar[ObIndex]
    PRODUCER_HEARTBEAT_TIME: _ClassVar[ObIndex]

class ObSubIndex(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    SUB_INDEX_0: _ClassVar[ObSubIndex]
    SUB_INDEX_1: _ClassVar[ObSubIndex]
    SUB_INDEX_2: _ClassVar[ObSubIndex]
    SUB_INDEX_3: _ClassVar[ObSubIndex]
    SUB_INDEX_4: _ClassVar[ObSubIndex]
    SUB_INDEX_5: _ClassVar[ObSubIndex]
    SUB_INDEX_6: _ClassVar[ObSubIndex]
    SUB_INDEX_7: _ClassVar[ObSubIndex]
PDO_BASE_ID_UNSPECIFIED: PdoBaseId
RPDO1_BASE_ID_200: PdoBaseId
RPDO2_BASE_ID_300: PdoBaseId
RPDO3_BASE_ID_400: PdoBaseId
RPDO4_BASE_ID_500: PdoBaseId
TPDO1_BASE_ID_180: PdoBaseId
TPDO2_BASE_ID_280: PdoBaseId
TPDO3_BASE_ID_380: PdoBaseId
TPDO4_BASE_ID_480: PdoBaseId
SYNC_EVENT_DRIVEN: TransmissionType
SYNC_CYCLIC: TransmissionType
REMOTE_SYNC: TransmissionType
REMOTE_ASYNC: TransmissionType
ASYNC_MANUFACTURER_SPECIFIC: TransmissionType
ASYNC_DEVICE_SPECIFIC: TransmissionType
CS_NO: CommandSpecifier
CS_WRITE_ONE_BYTE: CommandSpecifier
CS_WRITE_TWO_BYTES: CommandSpecifier
CS_WRITE_THREE_BYTES: CommandSpecifier
CS_WRITE_FOUR_BYTES: CommandSpecifier
CS_WRITE_SUCCESS_RESPONSE: CommandSpecifier
CS_READ_REQUEST: CommandSpecifier
CS_READ_RESPONSE_ONE_BYTE: CommandSpecifier
CS_READ_RESPONSE_TWO_BYTES: CommandSpecifier
CS_READ_RESPONSE_THREE_BYTES: CommandSpecifier
CS_READ_RESPONSE_FOUR_BYTES: CommandSpecifier
CS_EXCEPTION_RESPONSE: CommandSpecifier
NMT_INITIALIZING: NmtState
NMT_RESET_APPLICATION: NmtState
NMT_CONNECTING: NmtState
NMT_PREPARING: NmtState
NMT_STOPPED: NmtState
NMT_OPERATIONAL: NmtState
NMT_PRE_OPERATIONAL: NmtState
NMT_COMMAND_UNSPECIFIED: NmtCommand
NMT_START_REMOTE_NODE: NmtCommand
NMT_STOP_REMOTE_NODE: NmtCommand
NMT_ENTER_PRE_OPERATIONAL: NmtCommand
NMT_RESET_NODE: NmtCommand
NMT_RESET_COMMUNICATION: NmtCommand
INDEX_ZERO: ObIndex
USER_SAVE_PARA_2000: ObIndex
POSITION_OFFSET_2008: ObIndex
ERROR_CODE_6007: ObIndex
ERROR_CODE_603F: ObIndex
CONTROL_WORD_6040: ObIndex
STATUS_WORD_6041: ObIndex
OPERATION_MODE_6060: ObIndex
MODE_DISPLAY_6061: ObIndex
ACTUAL_POSITION_6064: ObIndex
ACTUAL_SPEED_606C: ObIndex
ACTUAL_CURRENT_6078: ObIndex
TARGET_TORQUE_6071: ObIndex
MAX_TORQUE_6072: ObIndex
DEMAND_TORQUE_6074: ObIndex
TARGET_POSITION_607A: ObIndex
SOFTWARE_POSITION_LIMIT_607D: ObIndex
MAX_SPEED_607F: ObIndex
PROFILE_SPEED_6081: ObIndex
PROFILE_ACCELERATION_6083: ObIndex
PROFILE_DECELERATION_6084: ObIndex
CURRENT_LOOP_PID_60F6: ObIndex
SPEED_LOOP_PID_60F9: ObIndex
POSITION_LOOP_PID_60FB: ObIndex
TARGET_SPEED_60FF: ObIndex
QUICK_STOP_OPTION_605A: ObIndex
QUICK_STOP_DECEL_6085: ObIndex
RPDO1_COMM_1400: ObIndex
RPDO2_COMM_1401: ObIndex
RPDO3_COMM_1402: ObIndex
RPDO4_COMM_1403: ObIndex
TPDO1_COMM_1800: ObIndex
TPDO2_COMM_1801: ObIndex
TPDO3_COMM_1802: ObIndex
TPDO4_COMM_1803: ObIndex
RPDO1_MAP_1600: ObIndex
RPDO2_MAP_1601: ObIndex
RPDO3_MAP_1602: ObIndex
RPDO4_MAP_1603: ObIndex
TPDO1_MAP_1A00: ObIndex
TPDO2_MAP_1A01: ObIndex
TPDO3_MAP_1A02: ObIndex
TPDO4_MAP_1A03: ObIndex
PRODUCER_HEARTBEAT_TIME: ObIndex
SUB_INDEX_0: ObSubIndex
SUB_INDEX_1: ObSubIndex
SUB_INDEX_2: ObSubIndex
SUB_INDEX_3: ObSubIndex
SUB_INDEX_4: ObSubIndex
SUB_INDEX_5: ObSubIndex
SUB_INDEX_6: ObSubIndex
SUB_INDEX_7: ObSubIndex

class SdoFrame(_message.Message):
    __slots__ = ("node_id", "cs", "index", "sub_index", "data")
    NODE_ID_FIELD_NUMBER: _ClassVar[int]
    CS_FIELD_NUMBER: _ClassVar[int]
    INDEX_FIELD_NUMBER: _ClassVar[int]
    SUB_INDEX_FIELD_NUMBER: _ClassVar[int]
    DATA_FIELD_NUMBER: _ClassVar[int]
    node_id: int
    cs: CommandSpecifier
    index: ObIndex
    sub_index: ObSubIndex
    data: int
    def __init__(self, node_id: _Optional[int] = ..., cs: _Optional[_Union[CommandSpecifier, str]] = ..., index: _Optional[_Union[ObIndex, str]] = ..., sub_index: _Optional[_Union[ObSubIndex, str]] = ..., data: _Optional[int] = ...) -> None: ...
