Por que eu perco dados da porta serial quando reinicio meu computador?

2

Eu tenho um aplicativo que está monitorando uma porta serial. Os dados são enviados do outro lado apenas quando a porta é aberta, mas descobri que perdia alguns dados quando reiniciava o computador. Por que isso?

O computador está executando o Windows XP.

    
por bogdan 18.01.2010 / 00:26

3 respostas

7

Isso é causado pelo fato de o Windows abrir a porta no momento da inicialização por um tempo muito curto (menos de meio segundo). Durante esse processo, todas as portas seriais são abertas para detectar dispositivos de entrada como o mouse.

A solução é simplesmente dizer ao Windows para não fazer isso, assim você não perde seus dados, pois não está sendo recebido. Podemos fazer isso modificando boot.ini e garantindo que estamos usando a opção /fastdetect . No entanto, isso já estará ativado na maioria dos casos, já que está habilitado por padrão na configuração do Windows. Eu encontrei a solução aqui , o artigo também inclui informações sobre NT e 9x (existem diferentes soluções).

    
por 18.01.2010 / 01:28
1

Eu triplo verifiquei se o seu CTS está sendo configurado e tratado adequadamente (especificamente, que ambas as extremidades sabem que devem usar o controle de fluxo de hardware). É incrivelmente raro para qualquer um acertar isso, e ainda mais raro para algum sensor ter buffer suficiente para armazenar todos os seus resultados enquanto a máquina está reinicializando, então mesmo que o controle de fluxo esteja funcionando corretamente, é bem possível que o sensor esteja funcionando. descartar alguns dados (mais antigos ou mais novos, dependendo do design), porque a sua máquina está demorando muito para reiniciar e reafirmar o CTS.

    
por 18.01.2010 / 00:39
0

Há também uma ferramenta de linha de comando disponível para desabilitar a verificação em portas com clientes selecionadas no registro, se você quiser evite editar manualmente o arquivo boot.ini.

    
por 01.04.2010 / 18:08