I have an application that is monitoring a serial port. Data is sent from the other side only when the port is opened but I found out that I lose some data when I reboot my computer. Why is that?
The computer is running Windows XP.
|
I have an application that is monitoring a serial port. Data is sent from the other side only when the port is opened but I found out that I lose some data when I reboot my computer. Why is that? The computer is running Windows XP. | |||
|
feedback
|
This question came from our site for system administrators and desktop support professionals.
|
This is caused by Windows opening the port at boot time for a very short time (under half a second). During this process, all of the serial ports are opened in order to detect input devices such the mouse. The solution is to simply tell Windows not to do this, this way you don't lose your data since it's not being received. We can do this by modifying | |||||||
feedback
|
|
I'd triple check that your CTS is being properly set and handled (specifically, that both ends know they're supposed to use hardware flow control). It's astonishingly rare for anyone to get this right, and even rarer for some sensor to have enough buffer to be able to store all its results whilst the machine is rebooting, so even if the flow control is working right, it's quite possible the sensor is discarding some data (either oldest or newest, depending on its design) because your machine is taking too long to reboot and reassert CTS. | |||
|
feedback
|
|
There is also a command line tool available to disable scanning on selected com ports in the registry, if you want to avoid manually editing the boot.ini file. | |||
|
feedback
|