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(); } }
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(); } }