private void Awake() { _protocol = new WearableProxyServerProtocol(); _protocol.KeepAlive += OnKeepAlivePacket; _protocol.SensorControl += OnSensorControlPacket; _protocol.GestureControl += OnGestureControlPacket; _protocol.ConnectToDevice += OnConnectToDevicePacket; _protocol.DisconnectFromDevice += OnDisconnectFromDevicePacket; _protocol.InitiateDeviceSearch += OnInitiateDeviceSearchPacket; _protocol.StopDeviceSearch += OnStopDeviceSearchPacket; _protocol.QueryConnectionStatus += OnQueryConnectionStatusPacket; _protocol.QueryUpdateInterval += OnQueryUpdateIntervalPacket; _protocol.RSSIFilterValueChange += OnRSSIFilterValueChangePacket; _protocol.SetUpdateInterval += OnSetUpdateIntervalPacket; _protocol.QuerySensorStatus += OnQuerySensorStatusPacket; _protocol.QueryGestureStatus += OnQueryGestureStatusPacket; _protocol.PingQuery += OnPingQuery; _listener = new TcpListener(IPAddress.Any, _port); _receiveBuffer = new byte[WearableProxyProtocolBase.SuggestedClientToServerBufferSize]; _receiveIndex = 0; _transmitBuffer = new byte[WearableProxyProtocolBase.SuggestedServerToClientBufferSize]; _transmitIndex = 0; _networkTimeout = 0.5f; _running = false; _wearableControl = WearableControl.Instance; _wearableControl.DeviceConnecting += OnDeviceConnecting; _wearableControl.DeviceConnected += OnDeviceConnected; _wearableControl.DeviceDisconnected += OnDeviceDisconnected; _deviceProvider = (WearableDeviceProvider)_wearableControl.GetOrCreateProvider <WearableDeviceProvider>(); }