Le 2012-03-11 à 15:35:00, Hans-Christoph Steiner a écrit :
There is already buffering happening,
But there wasn't enough of it, obviously, because I modified an existing
external that I'm not maintainer for, just to have a large enough buffer.
I don't remember what was the original size, but it sucked.
my guess is at the OS level, since the bytes are read in bursts, no
matter how fast the polling it for read or write.
At 38400 bps with 10 bits/byte, it's 3840 bytes per second. If they are
received at full speed, they are equally spaced in time every 0.2604 ms.
This is a time resolution that I suppose the kernel isn't especially good
with. Back in the early days of multitasking, modem constructors even had
to upgrade all the UART chips because OSes were not able to keep up (and
because it was a pure waste of CPU in 99,99 % of the cases). That's when
the buffer was upgraded from 1 byte to 16 bytes. That was precisely when
38400 bps became a common serial rate, because 14400 bps modems all used
MNP5 and/or v.42bis compression, and they needed to fake a fixed-rate COM
port.
Have you tried adjusting the size of the system buffer for serial? Is
that even an option?
I don't recall. If there was an option for it, then it surely was
unsufficient for what I was doing, which was to send elaborate vector
graphics to a plotter.
______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC
_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list