idf-eclipse-plugin icon indicating copy to clipboard operation
idf-eclipse-plugin copied to clipboard

IEP-1297 Consolidate information about the target and board in one place

Open sigmaaa opened this issue 1 year ago β€’ 1 comments

Description

Updated the target editing page with the flash option and the board selection. Updated launch configuration and debug configuration

Fixes # (IEP-XXX)

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How has this been tested?

  • the changes affect the build and flash/debug functionality, so need to test these functionalities carefully under different circumstances. For example -> importing configuration from the older version.

Test Configuration:

  • ESP-IDF Version:
  • OS (Windows,Linux and macOS):

Dependent components impacted by this PR:

  • Launch configuration
  • Debug Configuration
  • Target editing page

Checklist

  • [ ] PR Self Reviewed
  • [ ] Applied Code formatting
  • [ ] Added Documentation
  • [ ] Added Unit Test
  • [ ] Verified on all platforms - Windows,Linux and macOS

Summary by CodeRabbit

  • New Features

    • Introduced new configuration files for Eclipse projects to streamline Java development.
    • Added custom UI components for enhanced user interactions in the GDB debugger settings.
    • Implemented new constants for launch bar target configurations.
    • Enhanced localization support with new message strings for improved user interface clarity.
    • Introduced a new class to resolve dynamic variables related to JTAG configurations.
  • Bug Fixes

    • Improved handling of dynamic variables related to JTAG and GDB operations, enhancing documentation clarity.
  • Documentation

    • Updated properties files to include new key-value pairs for better guidance on settings.
  • Chores

    • Added .gitignore and project configuration files to support efficient project management.

sigmaaa avatar Aug 05 '24 13:08 sigmaaa

Walkthrough

This update introduces configuration files for Java SE 17 in the Eclipse-based Java project, optimizing classpath settings and enhancing dynamic variable management for JTAG and GDB operations. Additionally, new user interface components and utility classes improve the Espressif IDF environment, streamlining the development process and expanding functionality for users.

Changes

File(s) Summary
bundles/.classpath, bundles/.settings/org.eclipse.jdt.core.prefs, bundles/.settings/org.eclipse.pde.core.prefs Created new configuration files for classpath setup and Eclipse IDE preferences for Java SE 17.
bundles/com.espressif.idf.core/OSGI-INF/l10n/bundle.properties, bundles/com.espressif.idf.core/plugin.xml Enhanced documentation and updated variable definitions for improved clarity in plugin configuration.
bundles/com.espressif.idf.core/src/com/espressif/idf/core/DefaultBoardProvider.java, bundles/com.espressif.idf.core/src/com/espressif/idf/core/LaunchBarTargetConstants.java Introduced new classes and methods for managing board configurations and dynamic variables.
bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java, bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFLaunchConstants.java Refactored code to utilize updated constant references for launch configurations.
bundles/com.espressif.idf.core/src/com/espressif/idf/core/variable/*.java Added new enums and resolvers for managing dynamic variables related to JTAG and GDB.
bundles/com.espressif.idf.swt.custom/build.properties Introduced a new build properties file for managing source and output directories.
bundles/com.espressif.idf.debug.gdbjtag.openocd/* Enhanced GDB JTAG integration through UI changes and new message properties.
bundles/com.espressif.idf.launch.serial.core/src/com/espressif/idf/launch/serial/util/ESPFlashUtil.java Updated constant DEFAULT_ARGUMENT_PREFIX for improved clarity regarding OpenOCD executable naming.
bundles/com.espressif.idf.launch.serial.core/* Updated serial launch configurations by removing deprecated constants.
tests/com.espressif.idf.core.test/* Modified test classes to reflect changes in constants and method updates.
bundles/pom.xml, features/com.espressif.idf.feature/feature.xml Added module and plugin declarations to support the new SWT custom widgets.
bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/NewSerialFlashTargetWizardPage.java Enhanced functionality for serial port management and configuration settings for ESP32.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant IDE
    participant CorePlugin
    participant SWTPackage

    User->>IDE: Configure Project
    IDE->>CorePlugin: Update Board Configurations
    CorePlugin->>SWTPackage: Initialize Custom Widgets
    SWTPackage-->>IDE: Load UI Components
    IDE-->>User: Display Enhanced Configuration UI

🐰 In a world of code, I hop and play,
With new tools and features brightening my day.
JTAG and GDB dance in the light,
Espressif's magic makes coding feel right!
So let’s celebrate with carrots and fun,
Hopping through changes, oh what a run! πŸ₯•βœ¨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot] avatar Aug 05 '24 13:08 coderabbitai[bot]

Hi @sigmaaa I am getting this error when trying to flash with JTAG image

Just on a side note I was able to flash and debug with all the default options fine. This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration. image

alirana01 avatar Aug 21 '24 12:08 alirana01

Hi @sigmaaa I am getting this error when trying to flash with JTAG image

Just on a side note I was able to flash and debug with all the default options fine. This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration. image

Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit

sigmaaa avatar Aug 21 '24 13:08 sigmaaa

Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit

Hi @sigmaaa tested it with basic build flash and debug seems to be working fine Please see if you can verify DFU I currently dont have the board with me to verify that.

Also when switching from to this branch from an other branch's workspace the launch configs seems to be working fine.

All tests done on windows

alirana01 avatar Aug 22 '24 07:08 alirana01

tested dfu, seems to be working fine

sigmaaa avatar Aug 23 '24 09:08 sigmaaa

@sigmaaa hi !

Tested under: OS - Windows 11 ESP-IDF: v5.3

create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder image

but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears

AndriiFilippov avatar Aug 28 '24 14:08 AndriiFilippov

@sigmaaa hi !

Tested under: OS - Windows 11 ESP-IDF: v5.3

create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder image

but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears

Hi @AndriiFilippov, fixed in the latest commit

sigmaaa avatar Aug 29 '24 11:08 sigmaaa

I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.

STACK 0
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
	at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
	at org.eclipse.jface.window.Window.open(Window.java:788)
	at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
	at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
	at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Caused by: java.io.IOException
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)

kolipakakondal avatar Aug 30 '24 06:08 kolipakakondal

serial_port variable value has not shown

image

kolipakakondal avatar Aug 30 '24 06:08 kolipakakondal

@sigmaaa hi !

Tested under: OS - Windows 11

small UI fix: when window is minimized - no port info visible. image

AndriiFilippov avatar Aug 30 '24 08:08 AndriiFilippov

@sigmaaa hi !

shouldn't it be "read only" ? image

AndriiFilippov avatar Aug 30 '24 08:08 AndriiFilippov

@sigmaaa hi !

shouldn't it be "read only" ? image

This was added to support creating a new target that is not yet available in the IDE. For example, the esp32p4 target is still not available in the IDE, but users can manually add it and build projects.

kolipakakondal avatar Aug 30 '24 08:08 kolipakakondal

@sigmaaa hi !

Tested under: OS - Windows 11

small UI fix: when window is minimized - no port info visible. ![image](https://private-user-i

I wish we could provide a fix, but that’s the case with every window, it’s not specific to Eclipse.

kolipakakondal avatar Aug 30 '24 08:08 kolipakakondal

I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.

STACK 0
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
	at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
	at org.eclipse.jface.window.Window.open(Window.java:788)
	at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
	at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
	at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Caused by: java.io.IOException
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)

Hi @kolipakakondal, I'm not able to reproduce this one. Probably it's not related to the PR since the serial port part hasn't been touched

sigmaaa avatar Aug 30 '24 09:08 sigmaaa

serial_port variable value has not shown

image

we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it

sigmaaa avatar Aug 30 '24 09:08 sigmaaa

serial_port variable value has not shown image

we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it

fixed in the last commit

sigmaaa avatar Aug 30 '24 10:08 sigmaaa

@AndriiFilippov FYI

kolipakakondal avatar Sep 02 '24 08:09 kolipakakondal

I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.

STACK 0
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
	at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
	at org.eclipse.jface.window.Window.open(Window.java:788)
	at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
	at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
	at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Caused by: java.io.IOException
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)

@sigmaaa hi ! able to reproduce it. MacOS

create project - connect board - go to Edit Launch Target - select port - click "Finish" - disconnect board - click Edit Launch Target -> it stuck. Error logs same as @kolipakakondal :

com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbserial-120
	at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
	at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
	at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
	at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
	at org.eclipse.jface.window.Window.create(Window.java:431)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
	at org.eclipse.jface.window.Window.open(Window.java:788)
	at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
	at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
	at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)

AndriiFilippov avatar Sep 02 '24 18:09 AndriiFilippov

Hi @AndriiFilippov,

thanks for finding a way to reproduce it. Fixed in the latest commit. Also added new icons for dynamic variables to hide and show

sigmaaa avatar Sep 03 '24 08:09 sigmaaa

@sigmaaa hi !

Tested under: OS - Windows 11 / MacOS / Linux Ubuntu

able to create new target βœ… able to delete target βœ… able to flash / monitor βœ… able to debug βœ… able to erase flash βœ… switch from old workspace without problems βœ…

LGTM πŸ‘

AndriiFilippov avatar Sep 05 '24 10:09 AndriiFilippov