public override Task <UartMessage> SendUartMessage(UartMessage request, ServerCallContext context) { UartMessage returnMessage = new UartMessage() { Message = "Success" }; try { _logger.LogInformation($"Recieved UART request. Sending {request.Message}."); using (var comms = new UART()) { comms.SerialSend(request.Message); } } catch (Exception ex) { returnMessage.Message = "Failed"; _logger.LogError("UART communication failure."); _logger.LogInformation($"Available Ports: {string.Join(',', UART.GetPorts())}"); _logger.LogInformation(ex.Message); _logger.LogInformation(ex.StackTrace); } return(Task.FromResult(returnMessage)); }