[PD] [comport]: 'info' not too helpful

Roman Haefeli reduzierer at yahoo.de
Wed Nov 14 00:49:27 CET 2007


On Tue, 2007-11-13 at 19:20 +0000, Martin Peach wrote:
> Roman Haefeli wrote:
> >On Mon, 2007-11-12 at 18:36 +0000, Martin Peach wrote:
> > > Roman Haefeli wrote:
> > > >
> > > >hi all
> > > >
> > > >when sending 'info' to comport, it outputs a bunch of messages to its
> > > >right outlet to give you some information about the properties of the
> > > >connection. however, if you use 'devicename <something>' to open a
> > > >connection, 'info' tells you 'port 9999', which is of course wrong. 
> >when
> > > >you do 'open 9999', not the same device gets opened, or more likely: no
> > > >device gets openend at all.
> > >
> > > 9999 is just a placeholder to indicate that the device was opened by 
> >name.
> > > On Windows the correct index is given because all the ports are named 
> >COM.
> > > On linux and OSX they have more complex names and glob is used to 
> >generate a
> > > list of all ports and the index is just the order in the list. I can add
> > > that feature soon...
> 
> It's now implemented. You can open a port by name, like [devicename 
> /dev/ttyS0(, and the [info( message will give the index.
> 
> > >
> > > Until then, in recent [comport]s you can send the [ports( message and 
> >get a
> > > list on the status outlet.
> > > For example:
> > > [ports(
> > > |
> > > [comport]
> > > |          |
> > >           [route ports]
> > >            |
> > >           [unpack 0 s]
> > > gives you pairs of index and name, which you could compare with the name 
> >you
> > > opened the port with to find the index.
> > >
> > > >
> > > >i am working on a bunch of arduino abstractions that do find
> > > >automagically the correct port of the arduino board. i decided to use
> > > >different approaches on different os to probe the port of arduino. i
> > > >experienced, that on linux the arduino sometimes appears on port 8,
> > > >sometimes on port 48, probably it is different again on other linux
> > > >flavors. in order to avoid 40 or more error messages before the correct
> > > >port is found, i probe not with 'port [1-99]', but with
> > > >'devicename /dev/ttyUSB[0-20]' on linux, since the devicename seems to
> > > >be consistent throughout all linux flavors. however, i would like to
> > > >avoid, that several abstractions use all their own [comport] on the 
> >same
> > > >port, since i encountered, that when several [comport]s are listening 
> >on
> > > >the same port, not all [comport]s will always receive all messages. for
> > > >all above reason i would need to know, what the actual port number is 
> >of
> > > >a connection, even if the connection was opened using
> > > >'devicename /dev/ttyUSB[0-20]'.
> > >
> > > It might be better to use only one [comport] and send the data to the
> > > abstractions with [send] and [receive] since normally opening a comport 
> >will
> > > fail to open a port if the same port is already in use.
> >
> >yo, sorry, if my sentences have been too confusing, but this is exactly
> >what i would like to achieve. i encountered, that it _is_ possible to
> >run several [comport]s on the same port, but then sometimes data from
> >the arduino board doesn't seem to reach all [comport] objects. that is
> >why i would like to implement a kind of a singleton pattern, that
> >automatically uses the already existing/connected [comport], if there is
> >any and otherwise uses it's on [comport]. in order to achieve that, i
> >need to know the port number, that a certain [comport] uses. this is
> >very easy, if the connection was opened using a 'open' message, but if a
> >certain [comport] established a connection using the 'devicename'
> >method, then i don't know, which port this [comport] actually is using.
> >
> >yo, what i am going to try now is to work with the 'port' method, as you
> >proposed, so that i can find out, which device got which index (which
> >actually should solve my problem)
> >
> >can you tell me, how long the new [comport] has been in cvs? is it
> >probably already part of the released pd-extended-0.39.3?
> 
> The [ports( message has been there since August 2007. Today I committed a 
> new version to cvs. It sets the index properly when you open a port by name. 
> It won't work if the port has a really odd name that isn't something like 
> /dev/tty (because I can't guess what it's name might be and it can't be 
> opened with an index number anyway) so in that case it's better to make a 
> symlink with a "normal" name.

yo, thank you a lot. that was really quick :-) probably, the port
message would already have been sufficient for what i want (i still had
a version installed without that method), but this is even better. cool!

roman
 


	
		
___________________________________________________________ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de





More information about the Pd-list mailing list