Martin Dupras wrote:
Well, Frank seems to be right. I have 0.39.2extended-test4.exe on XP; I have changed the actual com number by doing
control panel->system->device manager->bluetooth devices and changing the com number for my device to com 2.
That seems to work fine.
I have always wondered why these limitations are put in place? Why limit things like that? Surely the memory usage difference is minimal in comparison with the hassle that arises from hitting the limitations? Or am I missing something?
I don't know. It probably started with the list of names being too boring to type after COM8 , and then got changed to an apparently arbitrary maximum of 99. I suppose ideally the code should find out from the OS how many serial ports are actually available on the system and use those and only those. This approach takes more time to code than just setting the arbitrary limit (and it will be different code for each OS). The easiest is to not have a limit but experience teaches that there are usually one or more values that will crash the program. In the past checking for the existence of a serial port involved accessing memory at its presumed address, which could cause another device at that location to malfunction. A quick check on MSDN shows no obvious way in Windows to find a list of serial devices without trying each and every one, which starts to take too much time beyond a few hundred...
Martin
Thanks for the help. I don't think I would have been close to a solution without it.
- martin
On 04/08/06, *Martin Peach* < martin.peach@sympatico.ca mailto:martin.peach@sympatico.ca> wrote:
Frank Barknecht wrote: > Hallo, > Martin Dupras hat gesagt: // Martin Dupras wrote: > > >> Hi, >> >> I'm trying to use a Spark Fun WiTilt (essentially a 3D accelerometer >> attached to a bluetooth radio, see >> http://www.sparkfun.com/commerce/product_info.php?products_id=254) with PD >> 0.39.2extended-test4 on win XP. >> >> I know the device is connected and sending because I can see the correct >> output if I connect to the device with hyperterminal. >> >> My device is on com port 12. If I try >> >> [comport 12 9600] >> >> I get the error: "[comport] invalid handle for COM". >> >> Is there any reason why comport should not see the port, when hyperterminal >> can? >> > > > You may need to recompile comport or use a different port: As default it only > accepts up to 8 comports. > > Therse is this in comport.c: > > #define COMPORT_MAX 8 > static char *sys_com_port[COMPORT_MAX] = > { > "COM1", "COM2", "COM3", "COM4", > "COM5", "COM6", "COM7", "COM8" > }; > > I think you have an older version of comport. The sys_com_port array is not there. There is just this in the latest version of comport.c in cvs: #define COMPORT_MAX 99 so you should be able to open COM1 through COM98. Martin > which you can try to change to something like: > > #define COMPORT_MAX 12 > static char *sys_com_port[COMPORT_MAX] = > { > "COM1", "COM2", "COM3", "COM4", > "COM5", "COM6", "COM7", "COM8" > "COM9", "COM10", "COM11", "COM12" > }; > > but I just guessed this, so no guarantees. > > Ciao > _______________________________________________ PD-list@iem.at <mailto:PD-list@iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list