From: kevin l. <ke...@ie...> - 2003-10-02 11:13:28
|
i'm trying to get an app that uses a modem to work. right now all the stuff from the modem is junk. however if i build it with borland c there seems to be less junk. since i'm just calling windows api functions, how could this be? would there be issues with the size of the DCB structure or other issues that might affect things? kevin --=20 ke...@ie... "Really, I'm not out to destroy http://ie.suberic.net/~kevin/cgi-bin/blog Microsoft. That will just be a completely unintentional side effect." -- Linus Torvalds |
From: kevin l. <ke...@ie...> - 2003-10-02 11:31:15
|
On Thu, Oct 02, 2003 at 12:13:19PM +0100, kevin lyda wrote: > since i'm just calling windows api functions, how could this be? would > there be issues with the size of the DCB structure or other issues that > might affect things? and just in general have people used mingw32 to work with modems? kevin --=20 ke...@ie... "Really, I'm not out to destroy http://ie.suberic.net/~kevin/cgi-bin/blog Microsoft. That will just be a completely unintentional side effect." -- Linus Torvalds |
From: Earnie B. <ea...@us...> - 2003-10-02 12:22:05
|
Are the handles set to operate in binary mode or text mode processing? Earnie. kevin lyda wrote: > On Thu, Oct 02, 2003 at 12:13:19PM +0100, kevin lyda wrote: > >>since i'm just calling windows api functions, how could this be? would >>there be issues with the size of the DCB structure or other issues that >>might affect things? > > > and just in general have people used mingw32 to work with modems? > > kevin > -- http://www.mingw.org |
From: Earnie B. <ea...@us...> - 2003-10-02 13:02:55
|
kevin lyda wrote: > On Thu, Oct 02, 2003 at 08:22:01AM -0400, Earnie Boyd wrote: > >>Are the handles set to operate in binary mode or text mode processing? > > > uh, stupid question, how would i know? i open them with CreateFile. > > i'll try whittling this down to a simple example. it's for a point of > sale system so i can't release all the code. > And why do you send directly to me? Keep it on list. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__setmode.asp Earnie. -- http://www.mingw.org |
From: kevin l. <ke...@ie...> - 2003-10-02 14:21:04
|
On Thu, Oct 02, 2003 at 09:02:48AM -0400, Earnie Boyd wrote: > kevin lyda wrote: > > uh, stupid question, how would i know? i open them with CreateFile. ok, i'm calling _setmode on the HANDLE i get back from CreateFile. it builds but complains that i'm coverting a pointer to an int. and i still get garbage. > And why do you send directly to me? Keep it on list. sorry, since i've already posted thre times to the list today i thought i'd try to make my list posts a bit more info packed and try not to hammer the world with *every* stupid question i might ask. i think it is in binary mode though. this is what a dump of dcb says: GetCommState to dcb. sizeof(dcb) =3D 28(28) baud rate =3D 2400 binary mode =3D 1 parity =3D 0 cts output flow ctrl =3D 0 dsr output flow ctrl =3D 0 dtr flow ctrl type =3D 1 dsr sensitivity =3D 0 xoff continues tx =3D 0 xon/xoff out flow ctrl =3D 0 xon/xoff in flow ctrl =3D 0 enable error replacement =3D 0 enable null stripping =3D 0 rts flow ctrl =3D 1 abort r/w on error =3D 0 reserved =3D 0 not used =3D 0 transmit xon threshold =3D 2048 transmit xoff threshold =3D 512 number of bits/bytes 4-8 =3D 8 parity: 0-4 [NOEMS] =3D 2 stopbit: 0,1,2 (1,1.5,2) =3D 0 tx/rx xon char =3D 11 tx/rx xoff char =3D 13 error replacement char =3D 00 end of input char =3D 00 received event char =3D 00 reserved1 =3D 0 building dcb from settings (baud=3D2400 parity=3DE data=3D8 stop=3D1). sizeof(dcb) =3D 28(28) baud rate =3D 2400 binary mode =3D 1 parity =3D 0 cts output flow ctrl =3D 0 dsr output flow ctrl =3D 0 dtr flow ctrl type =3D 1 dsr sensitivity =3D 0 xoff continues tx =3D 0 xon/xoff out flow ctrl =3D 0 xon/xoff in flow ctrl =3D 0 enable error replacement =3D 0 enable null stripping =3D 0 rts flow ctrl =3D 1 abort r/w on error =3D 0 reserved =3D 0 not used =3D 0 transmit xon threshold =3D 2048 transmit xoff threshold =3D 512 number of bits/bytes 4-8 =3D 8 parity: 0-4 [NOEMS] =3D 2 stopbit: 0,1,2 (1,1.5,2) =3D 0 tx/rx xon char =3D 11 tx/rx xoff char =3D 13 error replacement char =3D 00 end of input char =3D 00 received event char =3D 00 reserved1 =3D 0 kevin --=20 ke...@ie... "Really, I'm not out to destroy http://ie.suberic.net/~kevin/cgi-bin/blog Microsoft. That will just be a completely unintentional side effect." -- Linus Torvalds |
From: Benjamin R. <Ben...@ep...> - 2003-10-02 15:24:04
|
Hi Kevin, >> kevin lyda wrote: >> > uh, stupid question, how would i know? i open them with CreateFile. > > ok, i'm calling _setmode on the HANDLE i get back from CreateFile. > it builds but complains that i'm coverting a pointer to an int. CreateFile() doesn't know about the text/binary distinction. That's something that the C runtime library has to do, not something that the OS does. That is also why you get a compiler complaint, you can't use HANDLEs with C runtime functions and vice-versa. benny |
From: Gisle V. <gv...@br...> - 2003-10-02 16:45:32
|
"Benjamin Riefenstahl" <Ben...@ep...> said: > CreateFile() doesn't know about the text/binary distinction. That's > something that the C runtime library has to do, not something that the > OS does. That is also why you get a compiler complaint, you can't use > HANDLEs with C runtime functions and vice-versa. Shouldn't this work okay: HANDLE os_handle = _get_osfhandle (file_handle); int file_handle = _open_osfhandle (os_handle); FILE *file = fdopen (file_handle, "rb"); I had the same problem some months ago. Sean Young was kind enough to help me with this here. Thanks Sean! --gv |
From: Benjamin R. <Ben...@ep...> - 2003-10-02 18:41:27
|
Hi Gisle, "Gisle Vanem" <gv...@br...> writes: > Shouldn't this work okay: > > HANDLE os_handle = _get_osfhandle (file_handle); The OP used CreateFile(), so he started out with an OS HANDLE, he doesn't need this step. > int file_handle = _open_osfhandle (os_handle); > FILE *file = fdopen (file_handle, "rb"); That will work, if you afterwards want to use the "file" with fwrite()/fread(). You'd probably need to call setmode() on the "file_handle" too. But the OS functions to read and write files with the orignal HANDLE wouldn't be affected by that. So if the OP doesn't already use this technique to create a runtime file handle ("file_handle") or a FILE, this will not help here. benny |
From: Luke D. <cod...@ho...> - 2003-10-03 01:15:43
|
----- Original Message ----- From: "Gisle Vanem" <gv...@br...> To: <min...@li...> Sent: Friday, October 03, 2003 12:44 AM Subject: Re: [Mingw-users] Re: serial comms with mingw32... > "Benjamin Riefenstahl" <Ben...@ep...> said: > > > CreateFile() doesn't know about the text/binary distinction. That's > > something that the C runtime library has to do, not something that the > > OS does. That is also why you get a compiler complaint, you can't use > > HANDLEs with C runtime functions and vice-versa. > > Shouldn't this work okay: > > HANDLE os_handle = _get_osfhandle (file_handle); > int file_handle = _open_osfhandle (os_handle); > FILE *file = fdopen (file_handle, "rb"); > > I had the same problem some months ago. Sean Young was > kind enough to help me with this here. Thanks Sean! > > --gv This is only relevant if his code is already using _open_osfhandle() and fdopen(). Since he is using CreateFile() I assume that he is also using ReadFile() and WriteFile() to do I/O, therefore the C runtime library and text/binary is irrelevant. Luke |
From: kevin l. <ke...@ie...> - 2003-10-02 12:14:18
|
On Thu, Oct 02, 2003 at 12:13:19PM +0100, kevin lyda wrote: > i'm trying to get an app that uses a modem to work. right now all the > stuff from the modem is junk. however if i build it with borland c > there seems to be less junk. yep, it's official. i can get through to the host with the same code if i dial in with borland c compiled code and not with mingw32 compiled code (cross compiled from linux if it makes a difference). i'm using ReadFile and WriteFile to write to the modem... thoughts? kevin --=20 ke...@ie... "Really, I'm not out to destroy http://ie.suberic.net/~kevin/cgi-bin/blog Microsoft. That will just be a completely unintentional side effect." -- Linus Torvalds |
From: Earnie B. <ea...@us...> - 2003-10-06 12:05:41
|
kevin lyda wrote: > On Thu, Oct 02, 2003 at 12:13:19PM +0100, kevin lyda wrote: > >>i'm trying to get an app that uses a modem to work. right now all the >>stuff from the modem is junk. however if i build it with borland c >>there seems to be less junk. > > > yep, it's official. i can get through to the host with the same code if > i dial in with borland c compiled code and not with mingw32 compiled > code (cross compiled from linux if it makes a difference). > > i'm using ReadFile and WriteFile to write to the modem... > > thoughts? > What constants from header files are you using when opening the communication port? Earnie -- http://www.mingw.org |
From: Luke D. <cod...@ho...> - 2003-10-02 14:45:44
|
----- Original Message ----- From: "Earnie Boyd" <ea...@us...> To: "kevin lyda" <kev...@ie...>; "MinGW Users" <min...@li...> Sent: Thursday, October 02, 2003 9:02 PM Subject: Re: [Mingw-users] serial comms with mingw32... > kevin lyda wrote: > > On Thu, Oct 02, 2003 at 08:22:01AM -0400, Earnie Boyd wrote: > > > >>Are the handles set to operate in binary mode or text mode processing? > > > > > > uh, stupid question, how would i know? i open them with CreateFile. > > > > i'll try whittling this down to a simple example. it's for a point of > > sale system so i can't release all the code. > > > > And why do you send directly to me? Keep it on list. > > See > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__setmode.asp > > Earnie. > -- > http://www.mingw.org No, binary vs. text is not an issue because he is using CreateFile(). Could you please supply a test case that reproduces the problem? Luke |
From: kevin l. <ke...@ie...> - 2003-10-02 17:22:47
|
On Thu, Oct 02, 2003 at 10:53:14PM +0800, Luke Dunstan wrote: > No, binary vs. text is not an issue because he is using CreateFile(). Cou= ld > you please supply a test case that reproduces the problem? yes, in here: http://ie.suberic.net/~kevin/argh/ modem_fun com1 "baud=3D2400 parity=3DE data=3D7 stop=3D1" "at&f&c1&d3&b0&k2%c0&q0b0x4n0j1s37=3D6" 555-1111 (note the 555-1111 is a made up number, that i really can't give out) it opens the first arg (com1) and uses the second arg ("baud=3D2400 parity= =3DE data=3D7 stop=3D1"" to build a dcb structure. it then tries to init the modem with "at&f&c1&d3&b0&k2%c0&q0b0x4n0j1s37=3D6". even by this point it sees garbage chars. it then tries to dial the number. i'm not using overlapped io or events because i fire off a thread to do all the modem work. this code is essentially that thread. kevin --=20 ke...@ie... "Really, I'm not out to destroy http://ie.suberic.net/~kevin/cgi-bin/blog Microsoft. That will just be a completely unintentional side effect." -- Linus Torvalds |
From: Daniel H. <dhe...@ui...> - 2003-10-02 18:25:20
|
Howdy, I wrote a serial driver when creating support code for the lab I TA. Take a look at the rhino.c file in http://www-cvr.ai.uiuc.edu/~lab/ECE370/lab/rhino_lab_20030923.zip It may provide some help; several comments link to useful MSDN docs. Later, Daniel Herring dhe...@ui... P.S. If you find any stupidities in my code, please tell me. ;) |
From: <mi...@ca...> - 2003-10-02 18:46:54
|
This is not a driver. A driver has a DriverEntry function and is placed in the kernel :) /Anders ----- Original Message ----- From: "Daniel Herring" <dhe...@ui...> To: <min...@li...> Sent: Thursday, October 02, 2003 8:25 PM Subject: Re: [Mingw-users] serial comms with mingw32... > Howdy, > > I wrote a serial driver when creating support code for the lab I TA. > Take a look at the rhino.c file in > http://www-cvr.ai.uiuc.edu/~lab/ECE370/lab/rhino_lab_20030923.zip > > It may provide some help; several comments link to useful MSDN docs. > > Later, > Daniel Herring > dhe...@ui... > > > P.S. If you find any stupidities in my code, please tell me. ;) > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users |
From: Benjamin R. <Ben...@ep...> - 2003-10-05 14:15:51
|
Hi Kevin, > On Thu, Oct 02, 2003 at 10:53:14PM +0800, Luke Dunstan wrote: >> Could you please supply a test case that reproduces the problem? > kevin lyda <ke...@ie...> writes: > http://ie.suberic.net/~kevin/argh/ That's much to large to see anything without doing some work. I'd have to shorten this code significantly and charge you consulting fees to even begin to analyse this in earnest. Reduce it to 20-50 lines that demonstrate a difference in behaviour between Mingw and Borland. Drop any code that isn't needed, like parsing, logging and non-essential details about errors. Use hardcoded constants whereever possible. Post the result and than we can begin to talk. benny |