[PD] comport port numbers :: bash trick

Martin Peach martin.peach at sympatico.ca
Mon Sep 25 00:52:17 CEST 2006


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





More information about the Pd-list mailing list