github Stuey3D/VibeSDR vibeserver-mac-v3.1.20
VibeServer 3.1.20 — the aerial, a standing message, and the refusals nobody heard

2 hours ago

VibeServer for macOS 3.1.20 — the same build the Pi runs, from the same source tree.

Two new things an owner can say about their receiver, and a run of faults where the server knew
the answer and never managed to tell anybody.

Say what the aerial is

A receiver has always published what the tuner can reach and never what the antenna can —
and the antenna is what decides whether tuning somewhere is worth a visitor's time. An unlocked
dongle will honestly tune to 1.7 GHz whether or not the aerial follows it up there, so somebody
who hears nothing concludes the receiver is broken.

  • A description per radio, set on that radio's tab and shown under its range on the landing
    screen. It cuts the other way too: a 300 MHz aerial pulling in a lot of ADS-B is a reason to
    visit, and there was nowhere to say so.
  • Eleven aerial icons — vertical, ground plane, whip, discone, dipole, long wire, loop, delta
    loop, QFH, Yagi, dish. A radio whose owner has not chosen shows none, rather than one guessed
    for them.
  • Type it once. Radios on the same mast offer each other's aerial as you type, with no save in
    between.

A standing message on the landing screen

House rules, a donation link, or an explanation of behaviour that looks wrong and is not — the
idle waterfall slowdown being the obvious one. This is not the temporary notice you post while
working on the server: that expires and can be dismissed, this stays up and sits on the landing
screen before anybody connects. Links are accepted as http:// or https:// only.

Refusals the server decided instantly and never sent

sendWs() queues a frame for a writer thread; closing the socket on the next line threw it away.
The server was right, immediate, and silent — the client saw a bare disconnect and waited for
something else to time out.

  • "You are already listening on another radio" now arrives in about 5 ms, naming the radio.
    It used to arrive never.
  • Being taken over by the owner is announced again. This matters more than it sounds: clients
    auto-reconnect unless they are told it was deliberate, so a notice that never landed produced
    exactly the reconnect war the feature was designed to avoid.
  • "Your turn is over" reaches the listener whose session limit expired, instead of leaving them
    to retry into the cooldown and meet "please wait" having never been told why.

A phone in a pocket is still a listener

Backgrounding an app closes the spectrum socket and keeps the audio playing. Three separate rules
only ever looked at that socket:

  • The session limit did not apply at all, so a backgrounded listener held a one-at-a-time radio
    indefinitely — the countdown ran to zero and the radio sat "in use, 0 left" for ever.
  • The admin table showed no row for them, while the listener count and the door both agreed
    they were there. They now appear, marked audio only so a row costing a quarter of a normal
    listener explains itself.

Also

  • The setup page's Server tab silently reverted everything you typed if you opened a radio tab
    before saving — every field on it, not just the new ones.
  • The front door serves the radio picker on first paint instead of showing the single-radio
    page and swapping once JavaScript had worked out what it was talking to.
  • A listener rate that could read 2147483647k.

Don't miss a new VibeSDR release

NewReleases is sending notifications on new releases.