Repository navigation
Conversation
|
Commented-out parts marked with CFIXME. |
introduced add_cluster_text() and add_other_text() for the specific use cases. also changed argument of bm_add() and send_lan_message() to 'const char *'
|
The logic for forwarding cluster messages to LAN nodes is as follows:
Note1: upon receiving a CLUSTERMSG, a node stops transmitting further Note2: manually generated cluster spots follow the standard cluster data path: The previous implementation relied on the global |
|
Now TLF starts up with the new cluster thread, spots are shown on the band map. |
also always init cluster queues, even if cluster is not explicitly configured, as there could be traffic coming via LAN
The motivations for reworking the cluster interface are:
I decided it was easier to just rewrite the code than to try and untangle the mess of UI and backend logic, especially since most of the current code is just dead and isn't even being used.
particularly when accidentally entered it by typing a colon in the call input field.
The new design moves cluster handling to its own dedicated thread.
To ensure no UI actions occur within this thread, communication with the rest of the TLF (main and background threads) is performed via thread-safe queues. The main RX queue is fed with lines read from the network, serial, or FIFO device, while a similar TX queue is used for sending messages into the cluster.
The tasks of the cluster thread are to:
Cluster-related features like band map or spotting are not affected.
Current cluster information is shown on :INFo screen.
I've been using the code locally for several months, but there may still be some rough edges.
These will be addressed along the way.
Starting with a quick cleanup of an unused define. After this, I'll remove
splitscreen.candsockserv.cand begin incrementally rebuilding the functionality.