Compare commits

..

2 Commits

Author SHA1 Message Date
dw-0
aa1b435da5 feat: implement build + flash process
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-04-17 19:58:40 +02:00
dw-0
449317b118 fix: fix sd flash process
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-04-17 19:48:31 +02:00
3 changed files with 15 additions and 6 deletions

View File

@@ -11,11 +11,13 @@ from subprocess import CalledProcessError, check_output, Popen, PIPE, STDOUT, ru
from typing import List from typing import List
from components.klipper import KLIPPER_DIR from components.klipper import KLIPPER_DIR
from components.klipper.klipper import Klipper
from components.klipper_firmware import SD_FLASH_SCRIPT from components.klipper_firmware import SD_FLASH_SCRIPT
from components.klipper_firmware.flash_options import ( from components.klipper_firmware.flash_options import (
FlashOptions, FlashOptions,
FlashMethod, FlashMethod,
) )
from core.instance_manager.instance_manager import InstanceManager
from utils.logger import Logger from utils.logger import Logger
from utils.system_utils import log_process from utils.system_utils import log_process
@@ -106,18 +108,22 @@ def start_flash_process(flash_options: FlashOptions) -> None:
if not SD_FLASH_SCRIPT.exists(): if not SD_FLASH_SCRIPT.exists():
raise Exception("Unable to find Klippers sdcard flash script!") raise Exception("Unable to find Klippers sdcard flash script!")
cmd = [ cmd = [
SD_FLASH_SCRIPT, SD_FLASH_SCRIPT.as_posix(),
"-b", f"-b {flash_options.selected_baudrate}",
flash_options.selected_baudrate,
flash_options.selected_mcu, flash_options.selected_mcu,
flash_options.selected_board, flash_options.selected_board,
] ]
else: else:
raise Exception("Invalid value for flash_method!") raise Exception("Invalid value for flash_method!")
instance_manager = InstanceManager(Klipper)
instance_manager.stop_all_instance()
process = Popen(cmd, cwd=KLIPPER_DIR, stdout=PIPE, stderr=STDOUT, text=True) process = Popen(cmd, cwd=KLIPPER_DIR, stdout=PIPE, stderr=STDOUT, text=True)
log_process(process) log_process(process)
instance_manager.start_all_instance()
rc = process.returncode rc = process.returncode
if rc != 0: if rc != 0:
raise Exception(f"Flashing failed with returncode: {rc}") raise Exception(f"Flashing failed with returncode: {rc}")

View File

@@ -432,12 +432,10 @@ class KlipperFlashOverviewMenu(BaseMenu):
print(menu, end="") print(menu, end="")
def execute_flash(self, **kwargs): def execute_flash(self, **kwargs):
from core.menus.advanced_menu import AdvancedMenu
start_flash_process(self.flash_options) start_flash_process(self.flash_options)
Logger.print_info("Returning to MCU Flash Menu in 5 seconds ...") Logger.print_info("Returning to MCU Flash Menu in 5 seconds ...")
time.sleep(5) time.sleep(5)
KlipperFlashMethodMenu(previous_menu=AdvancedMenu).run() KlipperFlashMethodMenu().run()
def abort_process(self, **kwargs): def abort_process(self, **kwargs):
from core.menus.advanced_menu import AdvancedMenu from core.menus.advanced_menu import AdvancedMenu

View File

@@ -39,6 +39,7 @@ class AdvancedMenu(BaseMenu):
self.options = { self.options = {
"3": Option(method=self.build, menu=True), "3": Option(method=self.build, menu=True),
"4": Option(method=self.flash, menu=False), "4": Option(method=self.flash, menu=False),
"5": Option(method=self.build_flash, menu=False),
"6": Option(method=self.get_id, menu=False), "6": Option(method=self.get_id, menu=False),
} }
@@ -70,6 +71,10 @@ class AdvancedMenu(BaseMenu):
def flash(self, **kwargs): def flash(self, **kwargs):
KlipperFlashMethodMenu(previous_menu=self.__class__).run() KlipperFlashMethodMenu(previous_menu=self.__class__).run()
def build_flash(self, **kwargs):
KlipperBuildFirmwareMenu(previous_menu=KlipperFlashMethodMenu).run()
KlipperFlashMethodMenu(previous_menu=self.__class__).run()
def get_id(self, **kwargs): def get_id(self, **kwargs):
KlipperSelectMcuConnectionMenu( KlipperSelectMcuConnectionMenu(
previous_menu=self.__class__, previous_menu=self.__class__,