On Sep 24, 2006, at 6:52 PM, Martin Peach wrote:
Hans-Christoph Steiner wrote:
On Sep 24, 2006, at 5:49 PM, Martin Peach wrote:
Martin Peach wrote:
Martin Peach wrote:
Hans-Christoph Steiner wrote:
On the latest version of [comport], the [info( message should
print out a similar output to the Pd window.Don't try it on Windows though, you'll crash pd. for(i=1; i<COMPORT_MAX; i++) { /* TODO: this should actually probe ports */ post("\t%d - COM%s", i, i); } doesn't work as well as being useless and irritating (it is
supposed to just print 98 lines of COM names). But since i isn't a string, post() crashes. I'm looking into how to enumerate serial ports on Windows
properly. It looks like you have to open each device to find out about
it, unlike on linux where they are listed as files.So I changed it in cvs. Now you get a list of available serial
ports in Windows as well. At least it works for me but I only
have one port here so I don't know if it _really_ works.Now I'm trying it on linux where I have only two ports and I get
the full list of 32 devices. Maybe we should try probing them all
to see which ones actually exist?Nice work on the COM stuff, sorry for introducing a bug on
Windows. :-/ I'll be getting a WinXP autobuild machine up in the
next couple days, so that will help.That would be nice. On Mac OS X, the exist if they are in the
file system. On newer Linux-based systems, that is also the
case. But the only manually created files are still prevalent.They 'exist' virtually but there is not usually a real device to
plug your cable into except for the first one or two entries. It
seems like you have to open each virtual device and see if you get
a valid handle. If you do then the hardware exists (and you have to
close it again), otherwise you have to check the error code to see
if it wasn't opened because it's already in use or because it isn't
there.Martin
I guess I meant that and vice versa: on Mac OS X, if they are in the
filesystem, they exist. I think its the same with Linux udev systems.
I am wary of opening and closing every port to test if its there
unless its absolutely necessary. I don't know about Windows or GNU/
Linux, but some devices take a long time to open, so the whole system
hangs waiting for it. The Apple modem is an example of that.
I suppose that the testing phase could be in a background thread,
then it wouldn't hang. A simple thread that just iterated thru all
possible ports, testing to see what exists, then making a report to
the console and the status outlet when complete.
.hc
News is what people want to keep hidden and everything else is
publicity. - Bill Moyers