void HandleCallFloorRequest(CallFloorRequest request)
    {
        // Handle it
        listFloorsRequesting.Add(request.level);
        UpdateElevator();

        // Send response
        CallFloorResponse response = new CallFloorResponse(ResultCode.Succeeded, listFloorsRequesting);

        SendCallFloorResponse(response);
    }
    IEnumerator RoutineStimulation()
    {
        while (true)
        {
            if (IsStimulating)
            {
                int randomTerminal = Random.Range(0, (int)GameConfig.NumElevator);
                int randomFloor    = Random.Range((int)GameConfig.GetBottomFloor(), (int)GameConfig.GetTopFloor() + 1);
                int randomPlace    = Random.Range(1, 3); // Floor or elevator
                if (randomPlace == 1)                    // floor request elevator
                {
                    // then up or down or both?
                    int       randomDirection = Random.Range(0, 2);
                    Direction d = Direction.None;
                    if (randomDirection == 0)
                    {
                        d = Direction.Up;
                    }
                    if (randomDirection == 1)
                    {
                        d = Direction.Down;
                    }
                    if (randomDirection == 2)
                    {
                        d = Direction.Both;
                    }
                    CallElevatorRequest request = new CallElevatorRequest((uint)randomFloor, d);
                    terminalControllers[randomTerminal].FakeOnGetCallElevatorRequest(request);
                }
                else if (randomPlace == 2) // elevator call floor
                {
                    CallFloorRequest request = new CallFloorRequest((uint)randomFloor);
                    terminalControllers[randomTerminal].FakeOnGetCallFloorRequest(request);
                }
            }

            yield return(new WaitForSeconds(SpeedSendRequest));
        }
    }
Example #3
0
    public void SendCallFloorRequest(uint level)
    {
        CallFloorRequest request = new CallFloorRequest(level);

        onCallRequestCallback?.Invoke(request);
    }
 public void FakeOnGetCallFloorRequest(CallFloorRequest request)
 {
     Logger.Log(logTagReq, "FakeOnGetCallFloorRequest " + JsonUtility.ToJson(request));
     HandleCallFloorRequest(request);
 }