Как получить случайное число, которое меняется со временем в файле cooja simulator- c? - PullRequest
0 голосов
/ 03 апреля 2020

Я знаю, что есть похожие посты на это. Я перепробовал их все. Но это не отвечает на мой вопрос. Я уже пробовал srand, который предоставляется c, но он не работает в cooja. Я также пробовал #include "cfs / cfs.h", #include "cfs / cfs-coffee.h". Но это обеспечивает случайное число c.

1 Ответ

1 голос
/ 08 апреля 2020

Используйте node_id для инициализации генератора случайных чисел.

В Contiki вы должны использовать random_init() и random_rand() вместо библиотечных функций C:

#include <sys/node-id.h>
/* ... */

random_init(node_id);
unsigned short r = random_rand();

Редактировать: это даст вам разные случайные числа на разных узлах. Если вы хотите использовать разные случайные числа в разных запусках симуляции, вы можете использовать платформу Cooja mote. Он инициализирует RNG Contiki из переменной simRandomSeed, которая является случайным начальным числом моделирования, которое вы можете каждый раз устанавливать на другое значение (из командной строки или в файле .cs c).

Если Вы не используете пылинки Cooja и не хотите назначать разные идентификаторы узлов в разных сеансах симуляции. Единственный вариант - получить случайное начальное число для мотылька через внешний интерфейс, например, отправить его через последовательный порт и прочитать на узел.

...