Hi Bill;
it's hard to hit a performance target without knowing what the numbers
need to be. Checking each call one at a time externally would surely
be the slowest.

But it also seems like the timing requirements on external dupe
checking could be relaxed entirely by doing something like this, which
would even fit into your existing framework in place for communicating
with external programs:

(For contesting dupe-check purposes, you just need a WORKED/NOT-WORKED):
In the speedy internal table used to maintain the wsjt-x worked-before
status, add a field that can store a signal field with values
EXTERNAL_NO_INFO / EXTERNAL_NOT_WORKED / EXTERNAL_WORKED

You only have to externally check call signs that haven't been worked
in WSJT-X, and are EXTERNAL_NO_INFO or EXTERNAL_NOT_WORKED.
End of Decode Interval 0:
   Send all of the non-wsjtx-worked calls with EXTERNAL_NO_INFO or
EXTERNAL_NOT_WORKED  to the external program. Don't wait around. You
can probably use the existing decode message broadcasts for these.
   Paint the status of each decoded call on the screen informed by the
local super-speedy DB for whether they've been worked, but also taking
into account the EXTERNAL_* flags. Use a different color for NO_INFO
and NOT_WORKED statuses.
Start Decode Interval 1:
    The external app sends the information to update the EXTERNAL_*
flags (only with WORKED or NOT_WORKED) in the speedy table using the
existing UDP infrastructure you have in place (with a new message type
defined, of course). The colors of a particular callsign may be off by
up to a decode interval.  I don't recall if you can re-color calls
on-screen after they've been decoded, but you could.

You could argue that EXTERNAL_NO_INFO and EXTERNAL_NOT_WORKED are the
same, but if they're colored differently, a wise operator will wait
for the EXTERNAL_NOT_WORKED color if they're concentrating on wsjt-x
operation, and not adding calls into the external one through another
means.

So the only new work here is the extra field consultation and
coloration, and the messages to update your speedy internal table.

-Brian N9ADG

On Tue, Nov 20, 2018 at 11:40 AM Bill Somerville <g4...@classdesign.com> wrote:
>
> On 20/11/2018 19:25, Brian Moran wrote:
> > Hi Bill! You say time critical -- how many milliseconds are currently
> > available to look up the up-to-40-calls and render a 'worked_before'
> > status for each of them?
>
> Hi Brian,
>
> we have no deadline specified but I would expect the current
> implementation to add no more than a handful of microseconds (probably a
> lot less) to the print delay of each decode it might highlight. Note
> that this is almost certainly orders of magnitude faster than the time
> required assemble a network message, dispatch it, context switch to
> another application, receive the message, parse it, do a lookup, compose
> a reply, dispatch it, context switch again, receive the reply, parse it,
> act on it.
>
> 73
> Bill
> G4WJS.
>
>
>
> _______________________________________________
> wsjt-devel mailing list
> wsjt-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wsjt-devel


_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to