Comunicação da porta COM com o Virtual PC
-
29-10-2019 - |
Pergunta
Estou testando um aplicativo que usa a porta COM.O aplicativo está sendo executado no Virtual PC.Eu configurei as configurações do Virtual PC para usar o pipe nomeado \. \ Pipe \ mypipe para a porta COM1.
Agora estou tentando me comunicar com este pipe nomeado usando C #.
using (var pipe = new NamedPipeServerStream(@"\\.\pipe\mypipe"))
{
pipe.WaitForConnection();
using (var reader = new StreamReader(pipe))
{
// Do some communication here
}
}
O programa está esperando em WaitForConnection () embora o Virtual PC esteja em execução e eu esteja tentando me comunicar com a porta COM.
Também tentei o seguinte, porque não tenho certeza se devo criar o pipe nomeado no meu programa ou se o pipe nomeado é criado pelo Virtual PC.
var p = new NamedPipeClientStream(@"pipe\mypipe");
p.Connect();
O que estou fazendo de errado aqui?
Solução
Quando você configura o Virtual PC para usar um pipe nomeado como uma porta COM, ele atua como o servidor (se fosse o cliente, o VPC teria que pesquisar continuamente um novo servidor se, por exemplo, seu servidor travasse).
Sua segunda abordagem está quase acertada, exceto que você deve usar "mypipe" como o nome do pipe em vez de "pipe \ mypipe".