/*------------------------------------------------------------------------------
Description: Simulator classes for elevator project
Author: Chris Huyler
Language: C++
Name: controller.h
Date: April 30, 2000
------------------------------------------------------------------------------*/

class Sim
{
	public:
      void set_rpm(int r);
    	int Generate_FloorButtonPress(int num);
      int Generate_ElevatorButtonPress(int num,int fbID);
   private:
   	int rpm ;   // requests per minute
};

void Sim::set_rpm(int r){
	rpm = r;
}

int Sim::Generate_FloorButtonPress(int num){
	int fbID = -1;
	if((rand()%60) < rpm)
		fbID = rand() % ((num-1)*2-1);
    return(fbID);
}

int Sim::Generate_ElevatorButtonPress(int num,int fbID){
	int ebID;
	int floor = (fbID+1)/2;
	if((fbID%2) == 1)
		ebID = rand() % floor;   // if up button was pressed to get on elevator
	else                         // if down button was pressed to get on elevator
		ebID = (rand()%((num-1)-floor)) + floor + 1;
    return(ebID);
}
