NesCTBugFix

Version 16-09-06

  • NesCT is not generating code due to case sensitive compare recently added. You can fix this problem temporarily by replacing Blink.nc with this
    configuration Blink {
    }
    implementation {
     components Main, BLINKM, SingleTimer, LedsC;
     Main.StdControl -> SingleTimer.StdControl;
     Main.StdControl -> BLINKM.StdControl;
     BLINKM.Timer -> SingleTimer.Timer;
     BLINKM.Leds -> LedsC;
    } 
    

  • When changing the topology file for the Surge example (Mhop:LEPSM) in Windows, do a

copy surge.ned ..\tictoc1.ned

to the tictoc directory as well. On Windows the .ned file is read from this directory, not the bin directory.

version 02-09-06

  • nesct is not able to translate CntToLedsAndRfm, error message : we couldn't find StdControl function in repository at IntToRfm for IntToRfm.StdControl to IntToRfmM.SubControl

Edit storage.cpp line 8974 in NesCT sources, and enclose FindSubClass method with an if statement as follows:
if (!subclass)
{
subclass = FindSubClass (cls, as->right_interface);							
}

  • compilation error: ‘cList’ does not name a type

This is due to a name clash between util.h of NesCT and OMNeT++. When we include the header file using "#include <util.h>", it is going to take it from OMNeT++ instead of NesCT. Note that, this problem is not seen at every platform.

  1. Move util.h to include directory and rename it to nesct_util.h .
  2. Edit util.cc and change util.h include statement to nesct_util.h.
  3. Edit gen_include.h file in include directory and change util.h to nesct_util.h.

  • Java tools (Surge) will display incorrect results on screen

MS compilers and gcc compilers pack the structs differently. In order to support Deluge application, packing of structs with 1 byte border has been disabled. However, this seems to effect other applications. Edit tossim.h and uncomment the section with "pragma pack(1)" for other applications. And leave it commented out for Deluge.

version 24-08-06

  • Single shot timers are not running ?

Recent releases (24-08-06) include a bug about timers, fixed with 02/09/06 release. I replaced the timers in 01-08-06 release and built a system interface class (SysIface) recently. (31/08/06) The bug is that single shot timers may not run if you are starting the singleshot timer again in your fired function.

The bug fix for this is also here: edit TimerM.nc in components directory. In Handlefire function change the order of releaseTimer as follows:

   releaseTimer(&mTimerList[i].msg);
   mTimerList[i].msg = NULL;
   signal Timer.fired[i]();              

  • Packets are delivered even though there is 100% channel loss.

Error handling is not yet (31/08/06) built into NesCT, but it is pretty simple. Included in 02/09/06 release. I'll include it in the next version. OMNeT++ delivers the message, even if the message has bit error. But, it sets the biterror attribute of cmessage to true. What you need to do is to check if a message has biterror and delete it; otherwise deliver the message to the stack.

Put the following code to the beginning of TinyOSReceive function in cTinyOSMain.

if (msg->hasBitError())
{
   ret= 0;
  delete msg;
  return ret;
} 

Edit - History - Print - Recent Changes - Search
Page last modified on September 19, 2006, at 05:24 PM