// void BtnStartExperiment()
    // {
    //     EExperimentStatus expStatus = Exp.GetExperimentStatus();
    //     Debug.Assert(expStatus == EExperimentStatus.Waiting);
    //     // Exp.StartExperiment();
    // }

    // void BtnAbortExperiment()
    // {
    //     EExperimentStatus expStatus = Exp.GetExperimentStatus();
    //     Debug.Assert(expStatus != EExperimentStatus.Waiting);
    //     Exp.AbortExperiment();
    // }

    void RefreshUI()
    {
        ENetworkState     netState  = NetMan.GetState();
        EExperimentStatus expStatus = Exp.GetExperimentStatus();

        BtnStartServer.gameObject.SetActive(netState == ENetworkState.Closed);
        BtnStartClient.gameObject.SetActive(netState == ENetworkState.Closed);
        BtnAbortClose.gameObject.SetActive(netState == ENetworkState.Running || netState == ENetworkState.Startup);
        PreviousNetState = netState;

        // if (NetMan.IsServer())
        // {
        //     BtnStartExp.gameObject.SetActive(expStatus == EExperimentStatus.Waiting && NetMan.GetNumConnections() == 1);
        //     BtnAbortExp.gameObject.SetActive(expStatus != EExperimentStatus.Waiting);
        // }
        // else
        // {
        //     // BtnStartExp.gameObject.SetActive(false);
        //     // BtnAbortExp.gameObject.SetActive(false);
        // }
        PreviousExpStatus    = expStatus;
        bPreviousServerState = NetMan.IsServer();

        NetworkState.text    = (netState != ENetworkState.Closed ? (NetMan.IsServer() ? "Server - " : "Client - ") : "") + netState.ToString();
        ExperimentState.text = expStatus.ToString();

        ClientList.text = "";
        string[] conns = NetMan.NetComp.GetConnectionNames();
        foreach (string name in conns)
        {
            ClientList.text += name + "\n";
        }
    }
示例#2
0
 public void BroadCastExperimentStatusUpdate(EExperimentStatus status)
 {
     //Debug.LogFormat("Broadcasting experiment status update: {0}", status.ToString());
     NetComp.BroadcastNetworkData(ENetChannel.Reliable, new ExperimentState {
         Status = status
     });
 }
示例#3
0
    public void Deserialize(byte[] data)
    {
        int offset = 0;

        Debug.Assert(data[offset] == (byte)ENetDataType.ExperimentState);   offset += sizeof(byte);
        SocketNumber = data[offset];                                        offset += sizeof(byte);
        Status       = (EExperimentStatus)data[offset];
    }
    // Update is called once per frame
    void Update()
    {
        ENetworkState     netState  = NetMan.GetState();
        EExperimentStatus expStatus = Exp.GetExperimentStatus();

        if (netState != PreviousNetState || expStatus != PreviousExpStatus || bPreviousServerState != NetMan.IsServer())
        {
            RefreshUI();
        }
    }
    private void Start()
    {
        Debug.Assert(NetMan != null, "Sample Network Manager is not set");

        Debug.Assert(RemoteGazeSphere != null, "Remote GazeSphere is not set");
        Debug.Assert(LocalGazeSphere != null, "Local GazeSphere is not set");


        Status = EExperimentStatus.Waiting;

        // _spawnManager = GetComponentInChildren<SpawningManager>();

        localStartExperiment  = false;
        remoteStartExperiment = false;
    }
    public void ClientDisconected()
    {
        if (NetMan.IsServer())
        {
            switch (Status)
            {
            case EExperimentStatus.Waiting:
                break;

            case EExperimentStatus.WarmUp:
            case EExperimentStatus.Running:
                AbortExperiment();
                break;
            }
        }
        else
        {
            Status = EExperimentStatus.Waiting;
        }
    }
    public void SetExperimentStatus(EExperimentStatus status)
    {
        Status = status;
        if (NetMan.IsServer())
        {
            NetMan.BroadCastExperimentStatusUpdate(Status);
        }

        if (status == EExperimentStatus.Waiting)
        {
            // CountdownDisplay.text = "Waiting...";
            // CountdownDisplay.gameObject.SetActive(true);
        }
        else if (status == EExperimentStatus.WarmUp)
        {
            WarmUpTimer = WarmUpTime;
            // CountdownDisplay.gameObject.SetActive(true);
        }
        else // Running
        {
            // CountdownDisplay.gameObject.SetActive(false);
        }
    }