Plusieurs PO peuvent arriver au Sink
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "PoolRouter.hpp"
|
||||
#include "Sink.hpp"
|
||||
|
||||
namespace artis::factory {
|
||||
|
||||
@@ -47,7 +48,15 @@ void PoolRouter::dint(const Time & /* t */) {
|
||||
} else if ((*it)->current_operation().get_type() == CHANGE_POOL_TYPE) {
|
||||
_available_machines[(*it)->previous_operation()->get_loc_index()] = true;
|
||||
} else {
|
||||
_available_machines[(*it)->current_operation().get_loc_index()] = false;
|
||||
//_available_machines[(*it)->current_operation().get_loc_index()] = false;
|
||||
auto idx = (*it)->current_operation().get_loc_index();
|
||||
|
||||
// Modifié pour gérer le Sink
|
||||
if (idx == _available_machines.size()-1) {// Par simplicité, je considère que la dernière machine connectée est le Sink
|
||||
_available_machines[idx] = true;// Et si idx est le dernier index, alors cette "machine" reste disponible
|
||||
} else {
|
||||
_available_machines[idx] = false;
|
||||
}
|
||||
}
|
||||
_pending_po.erase(it);
|
||||
if (std::find_if(_pending_po.cbegin(), _pending_po.cend(), [this](const auto &e) {
|
||||
@@ -150,4 +159,4 @@ PoolRouter::ProductionOrders::const_iterator PoolRouter::next_po() const {
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace artis::factory
|
||||
} // namespace artis::factory
|
||||
|
||||
Reference in New Issue
Block a user