import * as React from "react"; import { BooleanMCUInputGroup } from "../boolean_mcu_input_group"; import { ToolTips, DeviceSetting } from "../../../constants"; import { ToggleButton } from "../../../controls/toggle_button"; import { settingToggle } from "../../actions"; import { NumericMCUInputGroup } from "../numeric_mcu_input_group"; import { MotorsProps } from "../interfaces"; import { Header } from "./header"; import { Collapse } from "@blueprintjs/core"; import { Xyz, McuParamName } from "farmbot"; import { SourceFwConfig } from "../../interfaces"; import { calcMicrostepsPerMm } from "../../../controls/move/direction_axes_props"; import { isTMCBoard } from "../firmware_hardware_support"; import { SingleSettingRow } from "./single_setting_row"; import { Highlight } from "../maybe_highlight"; import { SpacePanelHeader } from "./space_panel_header"; export const calculateScale = (sourceFwConfig: SourceFwConfig): Record => { const getV = (key: McuParamName) => sourceFwConfig(key).value; return { x: calcMicrostepsPerMm(getV("movement_step_per_mm_x"), getV("movement_microsteps_x")), y: calcMicrostepsPerMm(getV("movement_step_per_mm_y"), getV("movement_microsteps_y")), z: calcMicrostepsPerMm(getV("movement_step_per_mm_z"), getV("movement_microsteps_z")), }; }; export function Motors(props: MotorsProps) { const { dispatch, controlPanelState, sourceFwConfig, firmwareHardware } = props; const enable2ndXMotor = sourceFwConfig("movement_secondary_motor_x"); const invert2ndXMotor = sourceFwConfig("movement_secondary_motor_invert_x"); const scale = calculateScale(sourceFwConfig); return
{isTMCBoard(firmwareHardware) && } dispatch( settingToggle("movement_secondary_motor_x", sourceFwConfig))} /> dispatch( settingToggle("movement_secondary_motor_invert_x", sourceFwConfig))} />
; }