From: Jerry Avins on
FatScouser wrote:
>> On Wed, 20 Jan 2010 06:27:38 -0600, FatScouser wrote:
>>> Hi,
>>> I have a motion control system comprising a realtime component and a
>>> non-realtime component. Simple 2D data (position/time) is being
> streamed
>>> from the non-realtime area into a FIFO queue in the realtime area. I
>>> have a few things that I'm hoping someone could help me with:
>>> The realtime component needs to keep running at all cost. Thus, when
>>> data is delayed, my buffer is in danger of running dry.


> Thanks Tim - that all sounds good. Unfortunately I can't demand the thing
> to stop. I really need the crystal-ball type of extrapolator that no-one
> has invented yet!
> I wonder whether inserting a dynamic resampler is the way to go - that
> upsamples the input as the buffer dries up, and downsamples as it fills?

I've been puzzled since you began this thread. What kind of
hard-real-time system can make do with outdated (anyway, stale)
time/position data? What does the system do? Normally, position data
tell where an object is, but with your system, it seems to be
satisfactory to know where the object was.

Why does the data arrive irregularly? Up- and downsampling involve
creating new samples (unless downsampling is done by an integer and
aliasing is not an issue). You would essentially be creating plausible

If you run short of data and temporize, what happens next? Maybe we
could suggest a good approach if we understood more of the system.

Engineering is the art of making what you want from things you can get.