//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with this program.  If not, see http://www.gnu.org/licenses/.
// 

package project.baseNetwork.node.netw;

import org.mixim.base.modules.BaseLayer;
import org.mixim.base.modules.IBaseNetwLayer;

simple LEACH extends BaseLayer like IBaseNetwLayer
{
    parameters:
        @class(LEACH);

		//Required *IBaseNetwLayer* parameters
        bool debug; // debug switch
        bool stats; // stats switch
        double headerLength @unit(bit); // length of the network packet header (in bits)

		////////////////////////
        //LEACH parameters
        ////////////////////////
        double P; 					//percentage of CHs [0-1]
        double roundTime @unit(s);	//LEACH whole round time (in seconds)
        double slotTime @unit(s);	//slot transmission time (in seconds)
        double compressionIndex;	//Index of compression [0-1]
        double watingTime @unit(s);	//Maximun packet waiting time to go to the next stage (in seconds)
        int maxClusterSize;			//Maximum number of nodes per cluster
}
