from cmvr.msgs import canopen_pb2 as _canopen_pb2
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 collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class RunMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    RUN_MODE_UNSPECIFIED: _ClassVar[RunMode]
    RUN_MODE_PROFILE_POSITION: _ClassVar[RunMode]
    RUN_MODE_VELOCITY: _ClassVar[RunMode]
    RUN_MODE_PROFILE_VELOCITY: _ClassVar[RunMode]
    RUN_MODE_TORQUE: _ClassVar[RunMode]
    RUN_MODE_HOMING: _ClassVar[RunMode]
    RUN_MODE_INTERPOLATED_POSITION: _ClassVar[RunMode]
    RUN_MODE_CYCLIC_SYNC_POSITION: _ClassVar[RunMode]
    RUN_MODE_CYCLIC_SYNC_VELOCITY: _ClassVar[RunMode]
    RUN_MODE_CYCLIC_SYNC_CURRENT: _ClassVar[RunMode]
RUN_MODE_UNSPECIFIED: RunMode
RUN_MODE_PROFILE_POSITION: RunMode
RUN_MODE_VELOCITY: RunMode
RUN_MODE_PROFILE_VELOCITY: RunMode
RUN_MODE_TORQUE: RunMode
RUN_MODE_HOMING: RunMode
RUN_MODE_INTERPOLATED_POSITION: RunMode
RUN_MODE_CYCLIC_SYNC_POSITION: RunMode
RUN_MODE_CYCLIC_SYNC_VELOCITY: RunMode
RUN_MODE_CYCLIC_SYNC_CURRENT: RunMode

class MotorStatus(_message.Message):
    __slots__ = ("run_mode", "current", "target_current", "speed", "target_speed", "position", "target_position", "error_state", "speed_kp", "speed_ki", "speed_kd", "position_kp", "position_ki", "position_kd", "bus_voltage", "max_abs_current", "max_pos_current", "min_neg_current", "max_pos_accel", "min_neg_accel", "max_pos_velocity", "min_neg_velocity", "max_pos_position", "min_neg_position", "motor_temp", "board_temp", "current_kp", "current_ki", "current_kd", "motor_type", "motor_version", "software_version", "position_offset", "csp_data", "encoder_voltage", "encoder_state", "overvoltage_limit", "undervoltage_limit", "coil_over_temp", "driver_over_temp", "sdo_response", "nmt_state", "ctrl_word", "status_word")
    RUN_MODE_FIELD_NUMBER: _ClassVar[int]
    CURRENT_FIELD_NUMBER: _ClassVar[int]
    TARGET_CURRENT_FIELD_NUMBER: _ClassVar[int]
    SPEED_FIELD_NUMBER: _ClassVar[int]
    TARGET_SPEED_FIELD_NUMBER: _ClassVar[int]
    POSITION_FIELD_NUMBER: _ClassVar[int]
    TARGET_POSITION_FIELD_NUMBER: _ClassVar[int]
    ERROR_STATE_FIELD_NUMBER: _ClassVar[int]
    SPEED_KP_FIELD_NUMBER: _ClassVar[int]
    SPEED_KI_FIELD_NUMBER: _ClassVar[int]
    SPEED_KD_FIELD_NUMBER: _ClassVar[int]
    POSITION_KP_FIELD_NUMBER: _ClassVar[int]
    POSITION_KI_FIELD_NUMBER: _ClassVar[int]
    POSITION_KD_FIELD_NUMBER: _ClassVar[int]
    BUS_VOLTAGE_FIELD_NUMBER: _ClassVar[int]
    MAX_ABS_CURRENT_FIELD_NUMBER: _ClassVar[int]
    MAX_POS_CURRENT_FIELD_NUMBER: _ClassVar[int]
    MIN_NEG_CURRENT_FIELD_NUMBER: _ClassVar[int]
    MAX_POS_ACCEL_FIELD_NUMBER: _ClassVar[int]
    MIN_NEG_ACCEL_FIELD_NUMBER: _ClassVar[int]
    MAX_POS_VELOCITY_FIELD_NUMBER: _ClassVar[int]
    MIN_NEG_VELOCITY_FIELD_NUMBER: _ClassVar[int]
    MAX_POS_POSITION_FIELD_NUMBER: _ClassVar[int]
    MIN_NEG_POSITION_FIELD_NUMBER: _ClassVar[int]
    MOTOR_TEMP_FIELD_NUMBER: _ClassVar[int]
    BOARD_TEMP_FIELD_NUMBER: _ClassVar[int]
    CURRENT_KP_FIELD_NUMBER: _ClassVar[int]
    CURRENT_KI_FIELD_NUMBER: _ClassVar[int]
    CURRENT_KD_FIELD_NUMBER: _ClassVar[int]
    MOTOR_TYPE_FIELD_NUMBER: _ClassVar[int]
    MOTOR_VERSION_FIELD_NUMBER: _ClassVar[int]
    SOFTWARE_VERSION_FIELD_NUMBER: _ClassVar[int]
    POSITION_OFFSET_FIELD_NUMBER: _ClassVar[int]
    CSP_DATA_FIELD_NUMBER: _ClassVar[int]
    ENCODER_VOLTAGE_FIELD_NUMBER: _ClassVar[int]
    ENCODER_STATE_FIELD_NUMBER: _ClassVar[int]
    OVERVOLTAGE_LIMIT_FIELD_NUMBER: _ClassVar[int]
    UNDERVOLTAGE_LIMIT_FIELD_NUMBER: _ClassVar[int]
    COIL_OVER_TEMP_FIELD_NUMBER: _ClassVar[int]
    DRIVER_OVER_TEMP_FIELD_NUMBER: _ClassVar[int]
    SDO_RESPONSE_FIELD_NUMBER: _ClassVar[int]
    NMT_STATE_FIELD_NUMBER: _ClassVar[int]
    CTRL_WORD_FIELD_NUMBER: _ClassVar[int]
    STATUS_WORD_FIELD_NUMBER: _ClassVar[int]
    run_mode: RunMode
    current: int
    target_current: int
    speed: int
    target_speed: int
    position: int
    target_position: int
    error_state: int
    speed_kp: int
    speed_ki: int
    speed_kd: int
    position_kp: int
    position_ki: int
    position_kd: int
    bus_voltage: int
    max_abs_current: int
    max_pos_current: int
    min_neg_current: int
    max_pos_accel: int
    min_neg_accel: int
    max_pos_velocity: int
    min_neg_velocity: int
    max_pos_position: int
    min_neg_position: int
    motor_temp: int
    board_temp: int
    current_kp: int
    current_ki: int
    current_kd: int
    motor_type: int
    motor_version: int
    software_version: int
    position_offset: int
    csp_data: bytes
    encoder_voltage: int
    encoder_state: int
    overvoltage_limit: int
    undervoltage_limit: int
    coil_over_temp: int
    driver_over_temp: int
    sdo_response: _canopen_pb2.SdoFrame
    nmt_state: _canopen_pb2.NmtState
    ctrl_word: int
    status_word: int
    def __init__(self, run_mode: _Optional[_Union[RunMode, str]] = ..., current: _Optional[int] = ..., target_current: _Optional[int] = ..., speed: _Optional[int] = ..., target_speed: _Optional[int] = ..., position: _Optional[int] = ..., target_position: _Optional[int] = ..., error_state: _Optional[int] = ..., speed_kp: _Optional[int] = ..., speed_ki: _Optional[int] = ..., speed_kd: _Optional[int] = ..., position_kp: _Optional[int] = ..., position_ki: _Optional[int] = ..., position_kd: _Optional[int] = ..., bus_voltage: _Optional[int] = ..., max_abs_current: _Optional[int] = ..., max_pos_current: _Optional[int] = ..., min_neg_current: _Optional[int] = ..., max_pos_accel: _Optional[int] = ..., min_neg_accel: _Optional[int] = ..., max_pos_velocity: _Optional[int] = ..., min_neg_velocity: _Optional[int] = ..., max_pos_position: _Optional[int] = ..., min_neg_position: _Optional[int] = ..., motor_temp: _Optional[int] = ..., board_temp: _Optional[int] = ..., current_kp: _Optional[int] = ..., current_ki: _Optional[int] = ..., current_kd: _Optional[int] = ..., motor_type: _Optional[int] = ..., motor_version: _Optional[int] = ..., software_version: _Optional[int] = ..., position_offset: _Optional[int] = ..., csp_data: _Optional[bytes] = ..., encoder_voltage: _Optional[int] = ..., encoder_state: _Optional[int] = ..., overvoltage_limit: _Optional[int] = ..., undervoltage_limit: _Optional[int] = ..., coil_over_temp: _Optional[int] = ..., driver_over_temp: _Optional[int] = ..., sdo_response: _Optional[_Union[_canopen_pb2.SdoFrame, _Mapping]] = ..., nmt_state: _Optional[_Union[_canopen_pb2.NmtState, str]] = ..., ctrl_word: _Optional[int] = ..., status_word: _Optional[int] = ...) -> None: ...
