Как заблокировать ассемблерный компонент в AnyLogic?

У меня есть ассемблер, который действует как точка синхронизации в моей сети. Он получает два разных объекта, и в событии «OnEnterDelay» этого блока я хотел бы, чтобы создание выходного объекта начиналось только в том случае, если у меня есть определенное значение внутри входных объектов.

Мне удалось выполнить проверку, но я не знаю, как отказаться от ввода, если это условие не выполнено, и я попытался удалить агентов только из входных очередей, но, похоже, он не работает.

SupplierInfo supplierInfo = (SupplierInfo)self.queueGet(2, 0);

if (!supplierInfo.getStatus())
{
    self.queue1.removeFirst();
    self.queue2.removeFirst();
}

person Andrea Meneghinello    schedule 08.11.2016    source источник
comment
Вы проверили, есть ли элементы в очереди при возникновении действия «Задержка на вход». Блок ассемблера потребляет входные данные, когда он производит выходные, поэтому он, возможно, уже потребил продукты в очереди.   -  person luizfvpereira    schedule 10.11.2016


Ответы (1)


возможно, вам нужно куда-то отправить выброшенные предметы. вы можете подключить входящий объект к приемнику, а затем использовать:
enter.take(self.queue1.removeFirst)

если это не сработает, вы можете создать проверку перед ассемблером и удалить их до того, как они войдут в ассемблер.

person Nikolaj Klitlund Børty    schedule 10.11.2016