Skip to content

v1.0.0

Compare
Choose a tag to compare
@AndreVale69 AndreVale69 released this 04 Aug 14:56
· 25 commits to main since this release

New Features and Improvements

  • Random tray generation added to the Tray class. It's now possible to generate only one tray.
  • Improved get_minimum_offset method to calculate the minimum offset between columns in the warehouse.
  • Improved gen_rand method in the Warehouse class. Now it cleanup the warehouse and then generate a bay
    (bool parameter), a buffer (bool parameter), and populates the columns.
  • Improved simulation execution. Moved all simulation methods from Warehouse class to Simulation class.
    The list of moved methods is:
    • run_simulation
    • new_simulation
    • go_to_bay
    • go_to_buffer
    • load_in_carousel
    • loading_buffer_and_remove
    • vertical_move
    • allocate_best_pos
    • reach_tray_height
    • unload
    • load
    • horiz_move
  • Improved the logic of the Simulation class.
    Created Simulation class as superclass and WarehouseSimulation as child to have any custom simulation method.
  • Improved logic of the simulation_actions methods. It now takes two parameters: tray and destination.
  • Created a new module called Algorithm where it's possible to insert a new algorithm.
  • New methods added to the Column and Carousel classes: is_full and is_empty.
  • Moved the gen_materials_and_trays static method from Warehouse to the Column class (for logical reasons).
  • Moved the remove_tray method from TrayContainer to the Column class.
  • Added a min_height parameter when randomly generating a material in the Material class.
  • Added a cleanup method to cleanup the warehouse.
  • Added a get_num_columns method to get the number of columns in the warehouse.
  • Added get_bay_tray and get_buffer_tray methods to the Carousel class (useful methods).
  • Added last_position_is_occupied method to the Column class.
  • Added cleanup_columns and cleanup_carousel methods to the Warehouse class.
  • Added update_config_from_file and update_config methods to the WarehouseConfigurationSingleton class
    to allow loading a new configuration from the file o from an hardcoded object.
  • Added add_materials and remove_materials methods to the Tray class.
  • Added a new exception in horiz_move if the offset is not found.
  • Added a new exception in load if the offset is not found.
  • Added a new exception when a tray is too large to be inserted into a container.
  • Added a new exception when a material is too large to be inserted into a tray.
  • Added default config path if none is specified (configuration/sample_config.yaml).
  • Added total simulation time.
  • Added length field in the configuration.
  • Added tray field in the configuration (length, width, maximum height).
  • Added a configuration validator to check that some properties are respected
    (e.g. "the height property of each column can't be greater than the height of the warehouse (height_warehouse).").
  • Changed the first trayEntry reference. Now the first trayEntry will be the lower limit.
    For example, a tray with three entries; in the container the first trayEntry will be position 2,
    and entries 0 and 1 are simple trayEntries.
  • Changed Carousel class signature.
    It doesn't accept a dictionary anymore as parameter, but it wants a CarouselConfiguration class instantiation.
    This was done for clarity.
  • Changed Column class signature.
    It doesn't accept a dictionary anymore as parameter, but it wants a ColumnConfiguration class instantiation.
    This was done for clarity.
  • Changed Tray class signature.
    It wants a TrayConfiguration class instantiation and the list of materials.
    This was done for clarity.
  • Changed get_height_container method to get_num_entries.
    The first returns the height of the container (config value)
    and the second returns the number of entries in the warehouse.
  • Changed the add_column method. It raises a ValueError if the x-offset of the column is not unique.
  • Changed src folder name in automatic_warehouse.
  • Changed resources folder name in automatic_warehouse-res.
  • Changed configuration folder name in automatic_warehouse-config.
  • Drawer name changed to Tray.
  • Deposit name changed to Bay.

Bug Fixes and Enhancements

  • Fixed random trays generation in Tray class. There were some problems (raise ValueError) when the
    materials_to_insert parameter was larger than the how_many parameter.
  • Fixed get_num_entries_free in Column class.
    There were some problems because the last position of the warehouse was considered multiple times
    (instead of only once).
  • Fixed __hash__ in Tray class. It throws an exception because Python can't hash a list.
  • Fixed remove_tray in the Carousel class.
    It returns true if a tray isn't in the carousel.
    This fix improves performance because it only checks two items (not the whole container...).
  • Fixed is_empty in Column class. It used a wrong height.
  • Fixed __hash__ in Entry class. It always returns the same value.
  • Fixed file not found error if the name of the project's directory was different from simulator-automatic-warehouse.
  • Improved readability calculate_max_height method of the Tray class.
  • Improved readability __eq__ method for Material class.
  • Improved readability and naming of the methods used to decide where to insert a tray.
  • Improved readability and speed of the _high_position_algorithm.
  • Improved readability of the gen_rand method in the Warehouse class.
  • Improved readability between simulation class methods.
  • Improved logic for abstract methods. They now throw a NotImplementedError.
  • Added different prime number in hash method for each class.
  • Added new __eq__ methods.
  • Added new __hash__ methods.
  • Changed name of get_max_num_space method (Tray class) to get_num_space_occupied.
  • Changed name of get_height_col method (TrayContainer class) to get_height_container.

Other

  • Refactoring comments, change comment style.
  • Added tests.