internal async void ReceiveVSDebug(MeadowSerialDevice meadow) { // Console.WriteLine("ActiveClient:Start receiving from VS"); try { // Receive from Visual Studio and send to Meadow await Task.Run(async() => { while (tcpClient.Connected && okayToRun) { var recvdBuffer = new byte[490]; var bytesRead = await networkStream.ReadAsync(recvdBuffer, 0, recvdBuffer.Length); if (!okayToRun) { break; } if (bytesRead > 0) { // Console.WriteLine($"{DateTime.Now:HH:mm:ss.fff}-Received {bytesRead} bytes from VS will forward to HCOM"); // Need a buffer the exact size of received data to work with CLI var meadowBuffer = new byte[bytesRead]; Array.Copy(recvdBuffer, 0, meadowBuffer, 0, bytesRead); // Forward to Meadow MeadowDeviceManager.ForwardVisualStudioDataToMono(meadowBuffer, meadow, 0); //Console.WriteLine($"{DateTime.Now:HH:mm:ss.fff}-Forwarded {bytesRead} from VS to Meadow"); } } }); } catch (System.IO.IOException ioe) { // VS client probably died Console.WriteLine(ioe.ToString()); debuggingServer.CloseActiveClient(); } catch (Exception e) { Console.WriteLine(e.ToString()); debuggingServer.CloseActiveClient(); if (okayToRun) { throw; } } }