From 6bc6e6ffeca59432919532873fe0328df05893fb Mon Sep 17 00:00:00 2001 From: gabrielburnworth Date: Fri, 27 Dec 2019 12:30:58 -0800 Subject: [PATCH] add new board type --- app/models/fbos_config.rb | 1 + .../__tests__/firmware_hardware_support_test.ts | 4 ++++ .../fbos_settings/__tests__/board_type_test.tsx | 1 + .../components/firmware_hardware_support.ts | 17 ++++++++++++++--- frontend/devices/interfaces.ts | 1 + frontend/messages/cards.tsx | 5 +++++ package.json | 2 +- 7 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/models/fbos_config.rb b/app/models/fbos_config.rb index ba189245a..62c260dc0 100644 --- a/app/models/fbos_config.rb +++ b/app/models/fbos_config.rb @@ -12,6 +12,7 @@ class FbosConfig < ApplicationRecord ARDUINO = "arduino", FARMDUINO = "farmduino", FARMDUINO_K14 = "farmduino_k14", + FARMDUINO_K15 = "farmduino_k15", EXPRESS_K10 = "express_k10", ] diff --git a/frontend/devices/components/__tests__/firmware_hardware_support_test.ts b/frontend/devices/components/__tests__/firmware_hardware_support_test.ts index 9c252cdc6..3c3d11b64 100644 --- a/frontend/devices/components/__tests__/firmware_hardware_support_test.ts +++ b/frontend/devices/components/__tests__/firmware_hardware_support_test.ts @@ -9,6 +9,10 @@ describe("boardType()", () => { expect(boardType("5.0.3.G")).toEqual("farmduino_k14"); }); + it("returns Farmduino k1.5", () => { + expect(boardType("5.0.3.H")).toEqual("farmduino_k15"); + }); + it("returns Farmduino Express k1.0", () => { expect(boardType("5.0.3.E")).toEqual("express_k10"); }); diff --git a/frontend/devices/components/fbos_settings/__tests__/board_type_test.tsx b/frontend/devices/components/fbos_settings/__tests__/board_type_test.tsx index b6bfdbfaa..2532f9022 100644 --- a/frontend/devices/components/fbos_settings/__tests__/board_type_test.tsx +++ b/frontend/devices/components/fbos_settings/__tests__/board_type_test.tsx @@ -81,6 +81,7 @@ describe("", () => { { label: "Arduino/RAMPS (Genesis v1.2)", value: "arduino" }, { label: "Farmduino (Genesis v1.3)", value: "farmduino" }, { label: "Farmduino (Genesis v1.4)", value: "farmduino_k14" }, + { label: "Farmduino (Genesis v1.5)", value: "farmduino_k15" }, { label: "Farmduino (Express v1.0)", value: "express_k10" }, { label: "None", value: "none" }, ]); diff --git a/frontend/devices/components/firmware_hardware_support.ts b/frontend/devices/components/firmware_hardware_support.ts index 91b42e60f..c7b3e2190 100644 --- a/frontend/devices/components/firmware_hardware_support.ts +++ b/frontend/devices/components/firmware_hardware_support.ts @@ -2,8 +2,12 @@ import { FirmwareHardware } from "farmbot"; import { ShouldDisplay, Feature } from "../interfaces"; export const isFwHardwareValue = (x?: unknown): x is FirmwareHardware => { - const values: FirmwareHardware[] = - ["arduino", "farmduino", "farmduino_k14", "express_k10", "none"]; + const values: FirmwareHardware[] = [ + "arduino", + "farmduino", "farmduino_k14", "farmduino_k15", + "express_k10", + "none" + ]; return !!values.includes(x as FirmwareHardware); }; @@ -13,7 +17,7 @@ export const getBoardIdentifier = export const isKnownBoard = (firmwareVersion: string | undefined): boolean => { const boardIdentifier = getBoardIdentifier(firmwareVersion); - return ["R", "F", "G", "E"].includes(boardIdentifier); + return ["R", "F", "G", "H", "E"].includes(boardIdentifier); }; export const getBoardCategory = @@ -33,6 +37,8 @@ export const boardType = return "farmduino"; case "G": return "farmduino_k14"; + case "H": + return "farmduino_k15"; case "E": return "express_k10"; default: @@ -45,6 +51,9 @@ const FARMDUINO = { label: "Farmduino (Genesis v1.3)", value: "farmduino" }; const FARMDUINO_K14 = { label: "Farmduino (Genesis v1.4)", value: "farmduino_k14" }; +const FARMDUINO_K15 = { + label: "Farmduino (Genesis v1.5)", value: "farmduino_k15" +}; const EXPRESS_K10 = { label: "Farmduino (Express v1.0)", value: "express_k10" }; @@ -54,6 +63,7 @@ export const FIRMWARE_CHOICES_DDI = { [ARDUINO.value]: ARDUINO, [FARMDUINO.value]: FARMDUINO, [FARMDUINO_K14.value]: FARMDUINO_K14, + [FARMDUINO_K15.value]: FARMDUINO_K15, [EXPRESS_K10.value]: EXPRESS_K10, [NONE.value]: NONE }; @@ -63,6 +73,7 @@ export const getFirmwareChoices = ARDUINO, FARMDUINO, FARMDUINO_K14, + ...(shouldDisplay(Feature.farmduino_k15) ? [FARMDUINO_K15] : []), ...(shouldDisplay(Feature.express_k10) ? [EXPRESS_K10] : []), ...(shouldDisplay(Feature.none_firmware) ? [NONE] : []), ]); diff --git a/frontend/devices/interfaces.ts b/frontend/devices/interfaces.ts index 972fb6a3b..9cd5d4174 100644 --- a/frontend/devices/interfaces.ts +++ b/frontend/devices/interfaces.ts @@ -78,6 +78,7 @@ export enum Feature { endstop_invert = "endstop_invert", express_k10 = "express_k10", farmduino_k14 = "farmduino_k14", + farmduino_k15 = "farmduino_k15", firmware_restart = "firmware_restart", flash_firmware = "flash_firmware", groups = "groups", diff --git a/frontend/messages/cards.tsx b/frontend/messages/cards.tsx index 317f14e45..e958759f6 100644 --- a/frontend/messages/cards.tsx +++ b/frontend/messages/cards.tsx @@ -164,6 +164,11 @@ const FirmwareChoiceTable = () => {"Farmduino"} {FIRMWARE_CHOICES_DDI["farmduino_k14"].label} + + {"Genesis v1.5"} + {"Farmduino"} + {FIRMWARE_CHOICES_DDI["farmduino_k15"].label} + {"Express v1.0"} {"Farmduino"} diff --git a/package.json b/package.json index d95ab2685..92e19cbb2 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "coveralls": "3.0.9", "enzyme": "3.10.0", "enzyme-adapter-react-16": "1.15.1", - "farmbot": "9.0.0", + "farmbot": "9.0.1-rc0", "i18next": "19.0.2", "install": "0.13.0", "lodash": "4.17.15",