Search code examples
ns2ns-3

What is the meaning of l1 and l2 in EnergyModel() in ns2


In the EnergyModule() method in ns-2 has parameters l1 and l2 , i want to know the meaning of the levels, why we calling it has levels. And what is the purpose of setting it?

EnergyModel::EnergyModel    (   
  MobileNode *  n,
  double    energy,
  double    l1,
 double     l2
 )  

Solution

  • The L1 and L1 are values for changing node color with respect to energy depletion. double l1 = 0.5; double l2 = 0.2;

         if (srcnode) {
             if (srcnode->energy_model()) {
                     energy = srcnode->energy_model()->energy();
                     initenergy = srcnode->energy_model()->initialenergy();
                     l1 = srcnode->energy_model()->level1();
                     l2 = srcnode->energy_model()->level2();
             }
         }
    
         int energyLevel = 0 ;
         double energyLeft = (double)(energy/initenergy) ;
    
         if ((energyLeft <= 1 ) && (energyLeft >= l1 )) energyLevel = 3; 
         if ((energyLeft >= l2 ) && (energyLeft < l1 )) energyLevel = 2; 
         if ((energyLeft > 0 ) && (energyLeft < l2 )) energyLevel = 1;   
    
         if (energyLevel == 0) 
                 strcpy(colors,"-c black -o red");
         else if (energyLevel == 1) 
                 strcpy(colors,"-c red -o yellow");
         else if (energyLevel == 2) 
                 strcpy(colors,"-c yellow -o green");
         else if (energyLevel == 3) 
                 strcpy(colors,"-c green -o black");