[Bug 3002] problems writting to serial ports on 2005-05-24 release

Wine Bugs wine-bugs at winehq.org
Sat Jun 11 18:30:48 CDT 2005


http://bugs.winehq.org/show_bug.cgi?id=3002





------- Additional Comments From dclark at akamail.com  2005-11-06 18:30 -------
Just to verify that I am looking at the same thing, with an old version of Wine,
I get the application, a splash screen, and then a large dialog entitled
"Attempting to contact target...", with lots of available settings. With a newer
version of Wine, I get to the splash screen, but never get the dialog. This is
with my Wine "Version" set to win2k (my default).

To apply a patch, use a command like:
patch -p0 < patch.diff
To reverse a patch:
patch -p0 -R < patch.diff
The "-p0" can differ depending on how the patch was formed. For example, the
patches in CVS generally require "-p1" instead of "-p0". Read the patch man page
to understand what that is doing.

What is it you want to know about serial ports in Linux? Here is some simple C
code for accessing the serial port:
main(int argc, char *argv[])
{
    char *ttyname="/dev/ttyS1";
    int fd, i;
    struct termios options;
    unsigned char cdata[30], *cdata_p;

    fd = open(ttyname, O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd == -1) {
        sprintf(cdata, "Unable to open %s", ttyname);
        perror(cdata);
        return;
    }
    
    fcntl(fd, F_SETFL, FNDELAY);
    /*
    * Set to dumb RAW mode with no echo and no character interpretation.
    */
    tcgetattr(fd, &options);
    cfsetispeed(&options, B19200);
    cfsetospeed(&options, B19200);
    options.c_cflag &= ~PARENB; /* no parity */
    options.c_cflag &= ~CSTOPB; /* a '1' causes 2 stop bits */
    options.c_cflag &= ~CSIZE; /* Mask the character size bits */
    options.c_cflag |= CS8|CREAD|CLOCAL;
    options.c_iflag &= ~(IXON | IXOFF | IXANY); /* no software flow control */
    options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /* raw input */
    options.c_oflag &= ~OPOST; /* raw output */
    tcsetattr(fd, TCSANOW, &options);
    
    sprintf(cdata, "mwr f000000c 0\r");
    i = write(fd, cdata, strlen(cdata));
...

Be careful about checking whether all the data was read/written during a call;
that is, check and act on the returned value "i".



-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list