omnet - Inet - Какой фактор определяет последовательность передачи узлов

У меня общий вопрос относительно последовательности передачи. В INET -> exapmles-> manetrouting-> dynamicNodeCreation, как он решает, какой узел должен инициировать передачу маяка. И как будет выбран следующий узел для передачи.

Я попытался пройти через пример tic-toc, где getIndex () в функции инициализации используется для выбора передающего узла (например, txc10.cc). Но я не разобрался с такой функциональностью в примерах INET.

Есть ли способ, которым я могу выбрать соответствующий узел для передачи маяка в качестве номинального вектора карты занятости моего маяка?

Есть ли способ, которым я могу выбрать соответствующий узел для передачи маяка в качестве номинального вектора карты занятости моего маяка.

Прошу прощения за то, что не дал исчерпывающей информации по этой проблеме.


person Peter    schedule 16.04.2015    source источник
comment
Я просто понял, что в рамках INET следующая возможность общения предоставляется, когда таймер отсрочки становится -1. Функциональность реализована в файле mac.cc. Таким образом, как только узел завершает передачу маяка и все другие узлы получают данные или шум, все запускают случайный таймер отсрочки передачи через mac.cc, а затем победитель (который получает счетчик -1 раньше) начинает передачу.   -  person Peter    schedule 17.04.2015
comment
Уважаемый Питер, если вы считаете свой комментарий правильным, либо добавьте комментарий как дополнение в конце вашего вопроса, либо воспользуйтесь возможностью ответить на свой вопрос.   -  person user4786271    schedule 04.05.2015
comment
привет @ user4786271, я хотел сказать здесь о процедуре случайного отката в Mac Moulde INET. Но затем я провел совершенно новую оценку. Я создал новый модуль над слоем Mac и на этапе внедрения я использовал что-то вроде этого: - scheduleAt(simTime()+uniform(0,beaconInterval) , beaconTimer). Здесь uniform - это определенная Omnet функция равномерного распределения, которая дает случайное значение, beaconInterval - это время, после которого будет запущен следующий суперкадр, а beaconTimer - это сообщение таймера.   -  person Peter    schedule 04.05.2015
comment
почему бы не добавить эти пояснения в качестве ответа на этот вопрос?   -  person user4786271    schedule 04.05.2015


Ответы (1)


Я возьму пример INET -> examples-> manetrouting-> dynamicNodeCreation, чтобы ответить на свой вопрос. Когда я запускаю этот пример в omnet, первое событие после инициализации (во время выполнения) - это beaconTimer для фиксированного хоста (в моем случае это meshtest.fixhost2 [4] .wlan [0] .magmt). Итак, в основном это начинается с mgmt. подмодуль. (Если вы проверите иерархию любого отдельного узла во время выполнения, это будет: - Delayunit -> wlan0, а в wlan0 это снова mgmt-> mac-> radio. Код для mgmt написан в inet-> source-> linklayer- > ieee80211-> mgmt-> Ieee80211MgmtAP.cc

Теперь в функции инициализации этого класса есть строка кода scheduleAt(simTime()+uniform(0,beaconInterval) , beaconTimer). Здесь uniform - это определенная Omnet функция равномерного распределения, которая дает случайное значение, beaconInterval - это время, по истечении которого начнется следующий суперкадр, а beaconTimer - это сообщение. Эта функция планирует случайное время для отправки маяков для всех узлов (соответственно, их собственным модулем mgmt). Таким образом, любое устройство, получившее наименьшее значение с помощью этой унифицированной функции, начнет отправку маяка. Остальные устройства должны следовать соответственно.

Теперь, если я хочу отправлять маяки заранее по расписанию, я бы изменил функцию handleTimer в том же модуле, который предоставляет функцию scheduleAt () для следующего события.

person Peter    schedule 06.05.2015