Pavel wrote:
I have to use wine-0.9.40 to communicate with a device in my work (simple text-based command-reply communication), any wine newer than say 0.9.50 doesn't work, the communication times out. ... I will try to dig into the driver and search for the bugs there. One of the cases is I think simple, the device uses normal ASCII protocol and I can talk to it using kermit or minicom, but the windows program intended to control it simply stucks on the first command and never gets a reply. I think there is a good place to start.
Yep. FWIW, the fix might be tiny. Alexandre fixed a serial bug today, http://bugs.winehq.org/show_bug.cgi?id=9356 with just a single assignment.
If you can come up with a simple way for others to reproduce the problem, that might help, too.
Lessee... here are most of the existing serial bug reports; some of them (eg. 4055, 8783, 9988, 10051, 10056, 11399, 11811) have interesting info: http://bugs.winehq.org/show_bug.cgi?id=1244 (big grab bag of apps, some downloadable) http://bugs.winehq.org/show_bug.cgi?id=1700 (putty, downloadable) http://bugs.winehq.org/show_bug.cgi?id=4055 (interesting, points to kernel bug) http://bugs.winehq.org/show_bug.cgi?id=4633 (Garmin) http://bugs.winehq.org/show_bug.cgi?id=4753 (workaround, interesting, mentions kernel problem) http://bugs.winehq.org/show_bug.cgi?id=5154 (Siemens phone; 0.9.12 bad) http://bugs.winehq.org/show_bug.cgi?id=6895 (0.9.27 bad; timeout control broken) http://bugs.winehq.org/show_bug.cgi?id=5632 (Secure CRT behaves funny, downloadable) http://bugs.winehq.org/show_bug.cgi?id=8113 (0.27 good, 0.35 bad) http://bugs.winehq.org/show_bug.cgi?id=8783 (pinpoints the very commit that caused the problem in 0.9.23!) http://bugs.winehq.org/show_bug.cgi?id=9988 (good analysis, example code, patch) http://bugs.winehq.org/show_bug.cgi?id=10051 (HAL needs to create entries for serial ports?) http://bugs.winehq.org/show_bug.cgi?id=10056 (good source testcase!) http://bugs.winehq.org/show_bug.cgi?id=10573 (wine's tests fail on laptop with serial port; bisect) http://bugs.winehq.org/show_bug.cgi?id=11077 (HAL needs to create entries for serial ports) http://bugs.winehq.org/show_bug.cgi?id=11339 (bugfix for serial.c) http://bugs.winehq.org/show_bug.cgi?id=11811 (HAL support needs improvement) http://bugs.winehq.org/show_bug.cgi?id=11829 (0.9.22 good, 0.9.56 bad) http://bugs.winehq.org/show_bug.cgi?id=12479 (timeout problems?)
OMG that's a lot of bugs. There has been a LOT of analysis done by various folks; now it's time to grind through it all and fix the problems. As I mentioned, Alexandre has fixed one already; perhaps he has time to look at a few more of these.
FWIW, I have some win32 serial i/o example source code here, along with an archive of comments about problems (from back in the day when multiplayer games talked to modems): http://alumnus.caltech.edu/~dank/overlap.htm - Dan