[aprssig] Aprx v2 beta, now with Viscous Digipeater
Matti Aarnio
oh2mqk at sral.fi
Thu Oct 22 10:51:47 EDT 2009
On Thu, Oct 22, 2009 at 08:36:02AM -0500, Jason KG4WSV wrote:
> I have to say that every time I see "viscous" in a digipeating context
> I read "vicious". (:
Pronouncing it is even quite close to each other.
> Nice work, although I would like to see it ported to a microcontroller
> so that any old (KISS capable?) TNC can be upgraded.
The algorithm is rather simple for lone one-arm system:
- At packet arrival, check if it has been seen before (Standard APRS Dupe Check)
- Increment observation count for every match
- Discard the lattest arrival, if count is over 1.
- Hold received packets in probation queue for 5 seconds (the viscous delay)
- If observation count for the packet is just 1 after the probation delay,
then digipeat it with normal digipeat algorithm.
So it needs memory for that 5 second (10 second at most) queue of
waiting packets, and one counter byte (one bit minimum: 0 = seen once,
1 = seen again, regardless of how many times).
So who has sourcecode for UIDIGI?
One should realize that we can get ARM processors with megabytes of flash
and RAM embedded on a DIP-40 form-factor card. So what do you want?
It would not be difficult to make a new "processor", but it probably
would be cheaper to make whole new TNC.
I have a bit more complex versions of this for multi-receiver/multi-
transmitter/multi-queue/multi-viscousness system implemented in Aprx v2.
It was fun weekend to map around 250 different event sequence, and
how each should be treated. In the end the C code to make it is
less than 100 lines long, and half of it are comments, like any decent
programming should be.
> -Jason
> kg4wsv
73 de Matti, OH2MQK
More information about the aprssig
mailing list