2015-05-05 1 views
-1

Я получаю эту ошибку, когда I make Castalia-3.2 с CTP https://code.google.com/p/ctp-castalia/. У меня есть omnetpp-4.6.Протокол CTP в Кастилии OMNET ++

Команда - omnetpp работает нормально. Я могу запустить примеры примеров, например dyna.

Castalia-3.2 также отлично работает, когда CTP не интегрирован.

Когда я интегрирую CTP, Castalia - make дает ошибку (упоминается наконец).

Я следил за Readme.txt, предоставляемым протоколом CTP.

1) Copy CtpTest in CASTALIA_HOME/Simulations 
2) Copy ctpTestingApplication CASTALIA_HOME/src/node/application/ 
3) Copy ctpNoe in CASTALIA_HOME/src/node/communication/routing/ 
4) Copy cc2420Mac in CASTALIA_HOME/src/node/communication/mac/ 
5) make clean 
6) ./makemake 
7) make 

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

In file included from src/node/communication/mac/cc2420Mac/CC2420Mac.h:108:0, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104: 
    src/node/communication/mac/cc2420Mac/TosEnvironment.h:11:17: error: conflicting declaration ‘typedef uint8_t error_t’ 
     typedef uint8_t error_t; 
      ^
    In file included from /usr/include/c++/4.8/cerrno:41:0, 
      from /usr/include/c++/4.8/ext/string_conversions.h:44, 
      from /usr/include/c++/4.8/bits/basic_string.h:2815, 
      from /usr/include/c++/4.8/string:52, 
      from /usr/include/c++/4.8/stdexcept:39, 
      from /usr/include/c++/4.8/array:38, 
      from /usr/include/c++/4.8/tuple:39, 
      from /usr/include/c++/4.8/bits/stl_map.h:63, 
      from /usr/include/c++/4.8/map:61, 
      from src/node/communication/mac/VirtualMac.h:19, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.h:106, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104: 
/usr/include/errno.h:68:13: error: ‘error_t’ has a previous declaration as ‘typedef int error_t’ 
typedef int error_t; 
     ^
In file included from /usr/include/asm-generic/errno.h:4:0, 
      from /usr/include/x86_64-linux-gnu/asm/errno.h:1, 
      from /usr/include/linux/errno.h:1, 
      from /usr/include/x86_64-linux-gnu/bits/errno.h:24, 
      from /usr/include/errno.h:35, 
      from /usr/include/c++/4.8/cerrno:41, 
      from /usr/include/c++/4.8/ext/string_conversions.h:44, 
      from /usr/include/c++/4.8/bits/basic_string.h:2815, 
      from /usr/include/c++/4.8/string:52, 
      from /usr/include/c++/4.8/stdexcept:39, 
      from /usr/include/c++/4.8/array:38, 
      from /usr/include/c++/4.8/tuple:39, 
      from /usr/include/c++/4.8/bits/stl_map.h:63, 
      from /usr/include/c++/4.8/map:61, 
      from src/node/communication/mac/VirtualMac.h:19, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.h:106, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104: 

src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error: expected identifier before numeric constant 
EBUSY = 3, 
^ 
    src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error:  expected ‘}’ before numeric constant 

src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error: expected unqualified-id before numeric constant 
In file included from src/node/communication/mac/cc2420Mac/CC2420Mac.h:108:0, 
      from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104: 

src/node/communication/mac/cc2420Mac/TosEnvironment.h:28:1: error: expected declaration before ‘}’ token 

}; 
^ 
+0

, пожалуйста, разместите фрагменты кода для файлов и строк, в которых жалуется компилятор. Ошибки, которые вы получаете, - это ошибки времени компиляции, связанные с объявлением и инициализацией. Но сложно сказать без фрагментов ... – user4786271

+0

Привет, я не внес никаких изменений в код. Это точный код, полученный при загрузке CTP с https://code.google.com/p/ctp-castalia/ – vijay

+0

, но вы должны поместить фрагменты кода в вопрос, чтобы они были доступны для других ... и чистыми здравый смысл: никто не захочет проверить код для вас, если вы не потрудились его добавить – user4786271

ответ

2

issue tracker на сайте есть некоторые проблемы, которые были решены уже, связанные с make.

Одним из исправлений предлагает следующее:

  • в CtpTestingApplication.cc и CtpTestingApplication.h
  • заменить ApplicationGenericDataPacket с ApplicationPacket в CtpTestingApplication.cc
  • закомментировать весь update_packets_received() метод
  • удалить declareOutput("My Stats", SN) ; из update_ddr_perSN() и поставил declareOutput("My Stats") ; на startup() метод

  • в mac/cc2420Mac/CC2420Mac.cc

  • заменить экземпляры getRoutingInteractionControl() с getNetMacInfoExchange()
  • заменить getMacInteractionControl() с getMacRadioInfoExchange()
  • своп RSSI с LQI в правой части заданий (немного ошибка в исходный код)

Дополнительно, зависит от платформы (я должен был это сделать для m у Mac OSX)

  • в mac/cc2420Mac/TosEnvironment.h И в routing/ctpNoe/components/TosEnvironment.h:79 строке 79 заменить 0x100000000 с 0xffffffff

  • в routing/ctpNoe/components/CtpForwardingEngine.cc

  • линии 1080 netPkt->getNetMacInfoExchange().source = selfAddress.c_str() ; // ОК заменить
    netPkt->setSource(selfAddress.c_str()) ; // ОК
  • заменить экземпляры getRoutingInteractionControl() с getNetMacInfoExchange() (строки 213, 1053, 1081)

  • в routing/ctpNoe/components/CtpRoutingEngine.cc И routing/ctpNoe/components/DualBuffer.cc И routing/ctpNoe/components/LinkEstimator.cc

  • заменяют экземпляры getRoutingInteractionControl() с getNetMacInfoExchange()

PS: Может быть проблемы, которые вводятся в связи с использованием OMNET 4.6. Более низкая версия (4.2) может работать лучше с Castalia

+1

Более низкая версия 4.4.1 работала для меня. Спасибо чувак ! – vijay

+0

@vijay принять ответ, если он помог –