enum elevatorStatus{Moving,Idle,Stopped}
enum elevatorDirection{Up,Down}
elevator
{
currentflor
Status -moving ,idle stopped
CurrentDirection- up down
}
sortedlist CurrentDirectionList
SortedList OtherPressUp
SortedList OtherPressDown
ExternalRequest
{
floor
direction
}
InternalRequest
{
floor
direction
}
- addToProcessingFloor(ExternalRequest) //SomeonePressingButton from outside
-switch{
case Idle:
CurrentDirectionList.Add()
case Moving:
if(Up)
//up
ExternalRequest.Up
if(currentfloor<ExternalRequest.floor)
CurrentDirectionList.Add()
else AddTO OtherPressUp
else //down
ExternalRequest.Down
if(currentfloor>ExternalRequest.floor)
CurrentDirectionList.Add()
else OtherPressDown
case Stopped:
CurrentDirectionList.Add()
}
- WhenIdel()
case Moving:
if(Up)
//up
CurrentDirectionList= OtherPressDown
CurrentDirection =down
else //down
CurrentDirectionList= OtherPressDown
CurrentDirection =down
-addToProcessingFloor(InternalRequest)//Somepress button side
-switch{
case Idle:
CurrentDirectionList.Add()
case Moving:
if(Up)
//up
if(currentfloor<InternalRequest.floor)
CurrentDirectionList.Add()
else AddTO OtherPressDown
else //down
if(currentfloor<InternalRequest.floor)
CurrentDirectionList.Add()
else OtherPressUP
case Stopped:
CurrentDirectionList.Add()
}