Skip to content

Automate Generation of Boards Feature#30

Open
rebdiaz wants to merge 102 commits intoshulltronics:mainfrom
CAPSTONE-24-25-IRON-CODER:rebecca-dev
Open

Automate Generation of Boards Feature#30
rebdiaz wants to merge 102 commits intoshulltronics:mainfrom
CAPSTONE-24-25-IRON-CODER:rebecca-dev

Conversation

@rebdiaz
Copy link

@rebdiaz rebdiaz commented Feb 11, 2025

Automate Generation of Boards Vertical Slice

  • Added a generate new boards button to the end of the add components menu
  • Created a TOML information form that allows the user to input information about the new board
    • The generate new boards button navigates to this window
  • Added a file dialog that prompts the user for an SVG file when the user completes the TOML information form
  • Created a new window that displays the selected SVG image or an error message if there was SVG parsing failures
  • Implemented basic error handling for SVG parsing failures
  • Added functionality that creates a new board directory, TOML file, and SVG file based on user input
  • Implemented basic error handling for file operation errors
  • Made a confirmation window pop-up when the user finishes the board generation process
  • Added two structs: BoardTomlInfo and PinoutTomlInfo that are used to save board state from user input

Also contains everything from fall semester.

rebdiaz and others added 30 commits October 20, 2024 19:25
…to generating boards in addition to learning Rust/EGUI and fixing small bugs / build errors
Added hyperlink for forum repository
…build and load onto Arduino Uno through Iron Coder dev window
# Conflicts:
#	Cargo.lock
#	rust-toolchain.toml
@rebdiaz
Copy link
Author

rebdiaz commented Feb 22, 2025

Beta Build

  • Add user input validation to the TOML information form
    • Make all fields required, user can’t proceed without providing all fields
    • Ensure user is not attempting to duplicate an existing board
  • Add designate pinout functionality
    • Left-clicking image adds a blue pin circle to the UI with the pin name
    • Right-clicking an existing pin deletes it
    • Double-clicking a pin renames it with the name in the pin name box
    • User can change the size of all pins with the pin radius slider
    • Information about the user’s pinouts are saved as EGUI Rects and a vector of String pin names
  • When the user selects done, the pinout information is translated into SVG circle elements, and these are appended to the end of the SVG file
  • When the user adds the generated board to the editor, they can access their created pins and make connections
  • Improve error messages for user when selecting an SVG file
    • Display the specific error that is thrown
    • Add a new error kind (ImageNotPNG) that specifies that the SVG was not derived from a PNG
      • SVG parser only support PNG image types
    • Previously, a confusing NoImage error was thrown when the image type was not a PNG
    • Add supporting error messages for the user when the ImageNotPNG error is thrown
      • “SVG Image must be derived from a PNG”
  • Add Unit Tests for generating TOML File and SVG File

… to same place we look for right click to delete. Change minimum pin radius to 4
…e component without providing CPU, RAM, Flash fields. These fields are no longer accessible for discrete components because they are not needed.
…splayed to the designate pins window"

This reverts commit 2972788.
…designate pinout window. Change new pin name textbox to a drop-down member that is connected to the form. Visual and instruction improvements. User error handling to issue pinouts are designated before new board can be generated.
…prove user input validation, and fix window sizing issues.
…ral component without providing CPU, RAM, Flash fields. These fields are no longer accessible for peripheral components because they are not needed. Also add None as a Board Standard
…their own PNG file, or their own SVG file. Created functionality for creating an SVG file from a PNG. Finished up saving board error handling TO-DOs
…ing SVG image once instead of during every iteration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants