Anylogi c пешеход прибытие в указанные c раз - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть таблица базы данных (id, Arrival, flightNumber), и я создал группу агентов из этой таблицы. Я хотел бы, чтобы пешеход появлялся при каждом прибытии из целевой линии в модели. Я (неправильно) предположил, что это будет бриз, используя расписание, но мне не повезло. Любые предложения о том, как выполнить это в anylogi c?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Сначала позвольте мне поблагодарить Фелипе за быстрый ответ. Я немного поработал над этим утром и смог определить частичное решение.

Мои данные были установлены следующим образом: (обратите внимание, мое время прибытия в десятичном формате 24 часа)

db_table id[int] arrival_time[double] flight_number[int] 1 .1701 XYZ 2 .1714 XYZ ...

Я запутался с частью «Повторять каждый:» графика. Это, по сути, устанавливает гранулярность инъекций, поэтому, если вы будете sh вводить пешехода, созданного из таблицы данных за интервал времени в секундах:

  1. Установите для параметра «Повторять каждый» значение 86400 секунд (один день в секунд)
  2. Убедитесь, что ваши данные указаны в секундах ... поэтому для создания нового пешехода за 1 минуту время прибытия должно равняться 60 и, конечно, для времени прибытия 5 минут должно равняться 300.

Ниже приведены изображения моей таблицы данных в моей базе данных и свойства расписания, добавленные в main. Выполнение этого добавит одного пешехода, когда время выполнения будет равно времени прибытия.

enter image description here

enter image description here

Я все еще не верю, что это создает MyAgents, которые представляют собой совокупность агентов, созданных из таблицы базы данных ??? Нужно работать с этим.

С уважением,

0 голосов
/ 03 февраля 2020

Существуют и другие способы, но вы можете использовать этот, так как все ваши агенты уже сгенерированы:

Давайте предположим, что ваши единицы измерения времени - минуты ... сделайте функцию getDateDifference, возвращающую double:

long diff = date.getTime() - date().getTime();
double diffMinutes=(int) (diff / (60 * 1000));
return diffMinutes;

Затем в каждом из ваших агентов создайте событие со следующим кодом:

pedSource.inject();

это событие будет вызвано тайм-аутом, равным минутам getDateDifference () .... но затем у вас будет только 1 пешеход, прибывающий за прибытие в вашу базу данных ... Но, возможно, эта база данных связана с пешеходами, прибывающими. Или самолеты? Я не знаю ...

...