Exemplo n.º 1
0
 void Start()
 {
     client            = new TrainingManagerEndpoint(new TcpClient(settings.host, settings.port));
     client.OnMessage += OnMessage;
     client.PostComplete();
     if (Camera.main)
     {
         Camera.main.enabled = false;
     }
 }
Exemplo n.º 2
0
    private void OnMessage(TrainingManagerEndpoint instance, TrainingMessage message)
    {
        if (message.type == "trainingrequest")
        {
            var request = JsonUtility.FromJson <TrainingRequest>(message.payload);
            manager.requests.Enqueue(request);
        }

        if (message.type == "staterequest")
        {
            lock (state)
            {
                instance.SendStateUpdate(state);
            }
        }
    }
Exemplo n.º 3
0
    public async void StartServer()
    {
        TcpListener listener = new TcpListener(IPAddress.Parse(settings.host), settings.port);

        listener.Start(100);
        while (runServer)
        {
            var client = await listener.AcceptTcpClientAsync();

            var instance = new TrainingManagerEndpoint(client);
            instance.OnMessage += OnMessage;
            lock (instances)
            {
                instances.Add(instance);
            }
        }
        listener.Stop();
    }
Exemplo n.º 4
0
    private void OnMessage(TrainingManagerEndpoint instance, TrainingMessage message)
    {
        if (message.type == "complete")
        {
            if (message.payload.Length > 0)
            {
                var report = JsonUtility.FromJson <TrainingReport>(message.payload);
                manager.SaveTrainingData(report.filename, report.json);
            }

            lock (available)
            {
                available.Add(instance);
            }
        }

        if (message.type == "state")
        {
            lock (visualiser.state)
            {
                var state = JsonUtility.FromJson <TrainingState>(message.payload);

                visualiser.state.scenekey = state.scenekey;
                visualiser.state.carkey   = state.carkey;
                visualiser.state.agents   = state.agents;

                if (visualiser.state.scenekey == "")
                {
                    visualiser.state.scenekey = null;
                }
                if (visualiser.state.carkey == "")
                {
                    visualiser.state.carkey = null;
                }
            }
        }
    }