Esempio n. 1
0
        public async Task SendControlCommand(SwApiCommand cmd)
        {
            if (!_controlUdp.Client.Connected)
            {
                throw new InvalidOperationException();
            }

            var buf = cmd.ToBytes();

            await _sendControlLock.WaitAsync();

            try {
                await _controlUdp.SendAsync(buf, buf.Length);
            } finally {
                _sendControlLock.Release();
            }
        }
Esempio n. 2
0
        public async Task SendGeneralCommand(SwApiCommand cmd)
        {
            if (_generalTcpStream == null)
            {
                throw new InvalidOperationException();
            }

            var payload = cmd.ToBytes();
            var buf     = BitConverter.GetBytes((uint)payload.Length).Concat(payload).ToArray();

            await _sendGeneralLock.WaitAsync();

            try {
                await _generalTcpStream.WriteAsync(buf, 0, buf.Length);
            } finally {
                _sendGeneralLock.Release();
            }
        }