В моем проекте я использую диаграмму состояний внутри группы агентов с именем «средство передвижения». Есть 5 машин. Все машины имеют одинаковую скорость. Есть еще один агент по имени «отправитель». Что происходит в моем проекте, так это то, что отправитель отправляет разные сообщения разным транспортным средствам. то есть сообщения m1, m2, m3, m4, m5, которые отправляются транспортным средствам, имеющим id v1, v2, v3, v4, v5. Сообщения отправляются от отправителя каждый раз, когда в отправителе запускается циклическое событие.
Давайте рассмотрим пример: когда событие отправляется отправителю, он отправляет сообщение m1 на v1. Диаграмма состояний получает сообщение m1 и использует его до конечной точки диаграммы состояний. Аналогичным образом через определенный интервал отправляется сообщение m2 на v2 и так далее. Каждое полученное сообщение присваивается переменной с именем messageVal в агенте транспортного средства.
Нажмите здесь, чтобы посмотреть диаграмму состояний .
В настоящее время работает нормально.
Вот проблема, которая возникает, когда я назначаю разные скорости автомобилям.
Диаграмма состояний для транспортного средства v1, когда он все еще обрабатывается в середине, в то время как событие в отправителе снова срабатывает и отправляет другое сообщение m2 в транспортное средство v2. Таким образом, значение переменной messageVal для транспортного средства v1, которое должно было быть m1, теперь становится m2. и так далее. Следовательно, результаты, которые я получаю для каждого транспортного средства, в конце концов, неверны.
Вот пример результата:
транспортное средство = v1, сообщение = м2
транспортное средство = v2, сообщение = м2
У меня нет проблем с логикой события. Все, что мне нужно знать, это то, что кто-нибудь знает какой-нибудь метод, позволяющий нескольким транспортным средствам, которые имеют разные скорости, использовать диаграмму состояний одновременно без изменения значений переменной messageVal до конечной точки диаграммы состояний?
Если есть какая-то путаница в понимании моего вопроса, я могу уточнить его. Thankyou.