Farmbot-Web-App/frontend/devices/components/hardware_settings.tsx

82 lines
3.3 KiB
TypeScript
Raw Normal View History

2017-06-29 12:54:02 -06:00
import * as React from "react";
import { MCUFactoryReset, bulkToggleControlPanel } from "../actions";
import { Widget, WidgetHeader, WidgetBody } from "../../ui/index";
2017-06-29 12:54:02 -06:00
import { HardwareSettingsProps } from "../interfaces";
2020-02-15 11:29:31 -07:00
import { isBotOnline } from "../must_be_online";
2017-06-29 12:54:02 -06:00
import { ToolTips } from "../../constants";
import { DangerZone } from "./hardware_settings/danger_zone";
2017-12-16 18:21:13 -07:00
import { PinGuard } from "./hardware_settings/pin_guard";
2020-02-15 11:29:09 -07:00
import { Encoders } from "./hardware_settings/encoders";
import { EndStops } from "./hardware_settings/endstops";
2017-06-29 12:54:02 -06:00
import { Motors } from "./hardware_settings/motors";
import { SpacePanelHeader } from "./hardware_settings/space_panel_header";
2017-07-26 09:51:31 -06:00
import {
HomingAndCalibration
} from "./hardware_settings/homing_and_calibration";
2018-03-08 21:03:02 -07:00
import { Popover, Position } from "@blueprintjs/core";
2018-07-18 20:53:32 -06:00
import { FwParamExportMenu } from "./hardware_settings/export_menu";
2019-04-02 13:59:37 -06:00
import { t } from "../../i18next_wrapper";
2020-02-15 11:29:09 -07:00
import { PinBindings } from "./hardware_settings/pin_bindings";
import { ErrorHandling } from "./hardware_settings/error_handling";
2017-06-29 12:54:02 -06:00
export class HardwareSettings extends
React.Component<HardwareSettingsProps, {}> {
render() {
2018-03-09 02:34:24 -07:00
const {
2019-04-09 19:15:50 -06:00
bot, dispatch, sourceFwConfig, controlPanelState, firmwareConfig,
2019-06-21 15:45:44 -06:00
botToMqttStatus, firmwareHardware, resources
2018-03-09 02:34:24 -07:00
} = this.props;
const { informational_settings } = this.props.bot.hardware;
const { sync_status } = informational_settings;
2019-04-09 19:15:50 -06:00
const botDisconnected = !isBotOnline(sync_status, botToMqttStatus);
2020-02-15 11:29:09 -07:00
const commonProps = { dispatch, controlPanelState };
return <Widget className="hardware-widget">
2020-02-15 11:29:31 -07:00
<WidgetHeader title={t("Hardware")} helpText={ToolTips.HW_SETTINGS} />
<WidgetBody>
<button
className={"fb-button gray no-float"}
onClick={() => dispatch(bulkToggleControlPanel(true))}>
2018-02-27 10:49:37 -07:00
{t("Expand All")}
2018-03-08 21:03:02 -07:00
</button>
<button
className={"fb-button gray no-float"}
onClick={() => dispatch(bulkToggleControlPanel(false))}>
2018-02-27 10:49:37 -07:00
{t("Collapse All")}
2018-03-08 21:03:02 -07:00
</button>
2020-02-15 11:29:31 -07:00
<Popover position={Position.BOTTOM_RIGHT}>
<i className="fa fa-download" />
<FwParamExportMenu firmwareConfig={firmwareConfig} />
</Popover>
<div className="label-headings">
<SpacePanelHeader />
</div>
<HomingAndCalibration {...commonProps}
bot={bot}
sourceFwConfig={sourceFwConfig}
firmwareConfig={firmwareConfig}
firmwareHardware={firmwareHardware}
botDisconnected={botDisconnected} />
<Motors {...commonProps}
sourceFwConfig={sourceFwConfig}
firmwareHardware={firmwareHardware} />
<Encoders {...commonProps}
sourceFwConfig={sourceFwConfig}
firmwareHardware={firmwareHardware} />
<EndStops {...commonProps}
sourceFwConfig={sourceFwConfig} />
<ErrorHandling {...commonProps}
sourceFwConfig={sourceFwConfig} />
<PinGuard {...commonProps}
resources={resources}
sourceFwConfig={sourceFwConfig} />
<DangerZone {...commonProps}
onReset={MCUFactoryReset}
botDisconnected={botDisconnected} />
<PinBindings {...commonProps}
resources={resources} />
</WidgetBody>
</Widget>;
2017-06-29 12:54:02 -06:00
}
}