:py:mod:`phoenix6.hardware.traits.supports_foc` =============================================== .. py:module:: phoenix6.hardware.traits.supports_foc Module Contents --------------- .. py:class:: SupportsFOC Bases: :py:obj:`phoenix6.hardware.traits.common_device.CommonDevice` Requires Phoenix Pro; Contains all FOC-exclusive control functions available for devices that support FOC. .. py:method:: get_fault_rotor_fault1(refresh: bool = True) -> phoenix6.status_signal.StatusSignal[bool] Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while not in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. - Default Value: False This refreshes and returns a cached StatusSignal object. :param refresh: Whether to refresh the StatusSignal before returning it; defaults to true :type refresh: bool :returns: Fault_RotorFault1 Status Signal Object :rtype: StatusSignal[bool] .. py:method:: get_sticky_fault_rotor_fault1(refresh: bool = True) -> phoenix6.status_signal.StatusSignal[bool] Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while not in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. - Default Value: False This refreshes and returns a cached StatusSignal object. :param refresh: Whether to refresh the StatusSignal before returning it; defaults to true :type refresh: bool :returns: StickyFault_RotorFault1 Status Signal Object :rtype: StatusSignal[bool] .. py:method:: get_fault_rotor_fault2(refresh: bool = True) -> phoenix6.status_signal.StatusSignal[bool] Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. - Default Value: False This refreshes and returns a cached StatusSignal object. :param refresh: Whether to refresh the StatusSignal before returning it; defaults to true :type refresh: bool :returns: Fault_RotorFault2 Status Signal Object :rtype: StatusSignal[bool] .. py:method:: get_sticky_fault_rotor_fault2(refresh: bool = True) -> phoenix6.status_signal.StatusSignal[bool] Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. - Default Value: False This refreshes and returns a cached StatusSignal object. :param refresh: Whether to refresh the StatusSignal before returning it; defaults to true :type refresh: bool :returns: StickyFault_RotorFault2 Status Signal Object :rtype: StatusSignal[bool] .. py:method:: set_control(request: phoenix6.controls.torque_current_foc.TorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.position_torque_current_foc.PositionTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.velocity_torque_current_foc.VelocityTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.motion_magic_torque_current_foc.MotionMagicTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.motion_magic_velocity_torque_current_foc.MotionMagicVelocityTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.motion_magic_expo_torque_current_foc.MotionMagicExpoTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.dynamic_motion_magic_torque_current_foc.DynamicMotionMagicTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.dynamic_motion_magic_expo_torque_current_foc.DynamicMotionMagicExpoTorqueCurrentFOC) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_torque_current_foc_position.Diff_TorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_position_torque_current_foc_position.Diff_PositionTorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_velocity_torque_current_foc_position.Diff_VelocityTorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_torque_current_foc_position.Diff_MotionMagicTorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_expo_torque_current_foc_position.Diff_MotionMagicExpoTorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_velocity_torque_current_foc_position.Diff_MotionMagicVelocityTorqueCurrentFOC_Position) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_torque_current_foc_velocity.Diff_TorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_position_torque_current_foc_velocity.Diff_PositionTorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_velocity_torque_current_foc_velocity.Diff_VelocityTorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_torque_current_foc_velocity.Diff_MotionMagicTorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_expo_torque_current_foc_velocity.Diff_MotionMagicExpoTorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_velocity_torque_current_foc_velocity.Diff_MotionMagicVelocityTorqueCurrentFOC_Velocity) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_torque_current_foc_open.Diff_TorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_position_torque_current_foc_open.Diff_PositionTorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_velocity_torque_current_foc_open.Diff_VelocityTorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_torque_current_foc_open.Diff_MotionMagicTorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_expo_torque_current_foc_open.Diff_MotionMagicExpoTorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.compound.diff_motion_magic_velocity_torque_current_foc_open.Diff_MotionMagicVelocityTorqueCurrentFOC_Open) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.controls.empty_control.EmptyControl) -> phoenix6.status_code.StatusCode set_control(request: phoenix6.hardware.parent_device.SupportsSendRequest) -> phoenix6.status_code.StatusCode .. py:method:: clear_sticky_fault_rotor_fault1(timeout_seconds: phoenix6.units.second = 0.1) -> phoenix6.status_code.StatusCode Clear sticky fault: Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while not in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. :param timeout_seconds: Maximum time to wait up to in seconds. :type timeout_seconds: second :returns: StatusCode of the set command :rtype: StatusCode .. py:method:: clear_sticky_fault_rotor_fault2(timeout_seconds: phoenix6.units.second = 0.1) -> phoenix6.status_code.StatusCode Clear sticky fault: Trips if a major mechanical or ESD event caused a brief loss of position data triggering a recovery while in motion. If the event occurs often, inspect for excess axial force or sources of ESD at the rotor. :param timeout_seconds: Maximum time to wait up to in seconds. :type timeout_seconds: second :returns: StatusCode of the set command :rtype: StatusCode