void Start() { client = new TrainingManagerEndpoint(new TcpClient(settings.host, settings.port)); client.OnMessage += OnMessage; client.PostComplete(); if (Camera.main) { Camera.main.enabled = false; } }
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); } } }
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(); }
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; } } } }