OP25 Boatbod Web UI Update

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
I finally got around to re-doing the web UI for OP25 Boatbod, and I'm interested in seeing if anyone would like to test and provide feedback, and @boatbod if you're interested in digesting it into your repo.

This implementation works on what python already sends over with just one small addition to tk_p25.py, which is to send over the talkgruop tags in the trunk_update payload. See line 1672 through 1685 below.

There is also an addition of config.js in the www-static folder which adds the variables for Smart Colors, Site Names, and Presets.

This is tested with P25 only. Honestly, I can't get Smartnet or DMR to run on OP25 at all, but I haven't tried very hard.

If there is interest, I will be happy to share the updates later today. There are still a couple of things to clean up. Thoughts?

1744555869901.png

1744555923847.png
 

maus92

Member
Premium Subscriber
Joined
Jun 23, 2004
Messages
8,462
Location
The OP
Looks nice - how is the gui’s responsiveness with the datascope open?
 

n5pwp

Member
Joined
Jan 10, 2015
Messages
284
Location
Spring, Texas
OuterDog: I never saw the Datascope in the Osmocom release. Is it in there? If so how do you launch it from the browser GUI?

Mike
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
@maus92 - the responsiveness is largely unaffected since the update interval of the web interface is 1 sec.

@n5pwp - Pretty sure data scope is available in Osmocom, but that version doesn't have a way to enable/disable plots from the ui the way Boatbod version does.
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
Any plans to port OPLOG over to Boatbod OP25?

I don't have any plans to do it. Oplog works on Osmocom, but it generates a massive amount of data, far more than the implementation was prepared to handle, in my opinion.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,089
Location
NE Wisconsin
I don't have any plans to do it. Oplog works on Osmocom, but it generates a massive amount of data, far more than the implementation was prepared to handle, in my opinion.
Thanks, Trip.

I have your new Web UI up and running on an Ubuntu 22.04.5 VM and it's looking great! I had initially tried the code on one of my RPi-4B's flashed with Raspbian Bullseye with op25 built on GNU Radio 3.8 / Python 3.9. However, I quickly discovered that tk_p25.py would not run
and surmised that it was developed on and instance of boatbod op25 built on GNU Radio 3.10 / Python 3.10. I will try flashing the RPi-4B
with Bookworm that should default to GNU Radio 3.10 that I expect will address the tk_p25.py compatibility issue.

I am unclear where the site alias info appears when configured in config.js?

A couple of observations so far: Toggle adjacent sites is not sticky but reverts back to present on the UI when refreshing the browser but
plots do toggle on/off and remain as set by the user. The home button doesn't return the display form settings for example. Instead, one
has to do a refresh of the browser to clear the settings screen.
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
Thanks for that feedback @wgbecks - let me address your points:

Yes, this is based on the latest release found on the OP25 Boatbod repo.

None of the settings are persistent. In Max's version, we developed a scheme to save the various configs back to the web server. Since that's not available here, the next best option is to save it to the browser's localStorage, which I intend to do.

The Home button doesn't do anything. You can click "settings" again to collapse it. I will fix the Home button and make it collapse settings. I don't think it serves any other purpose right now.

The Site Names are in config.js - the comment there explains it. Decimal system id, decimal RFSS, decimal site ID.

1744586608474.png

The site aliasesa appear in the Adjacent Sites table. It doesn't do much, just a "nice to have" kind of thing.

1744587984083.png

Edit: the repo is updated with these changes (adjacent sites toggle still not persistent, will fix in future)
 
Last edited:

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
Trip, I have setup (edited) the siteAliases with my local System ID, RFSS, and Site (in decimal) ok. Just wondering where
this info appears? IE: In the UI or in the logfile?

Right, I misread that. They appear in the Adjacent Sites table. I edited my post above. They don't show up in the log file or anywhere else.
 

wgbecks

Active Member
Joined
Jan 17, 2005
Messages
1,089
Location
NE Wisconsin
Right, I misread that. They appear in the Adjacent Sites table. I edited my post above. They don't show up in the log file or anywhere else.
I had only populated the site info for the local site I am tuned to. I see them now in the Adjacent Sites Table since adding that data
having read your response. It's hard to get good help these days! LOL

Thanks for all off the great work developing the code to add this nice UI to Boatbod.

Bill
 
Last edited:

boatbod

Member
Joined
Mar 3, 2007
Messages
3,489
Location
Talbot Co, MD
Outerdog - I'm certainly interested. Some questions:
- Do you think there might be a (relatively) easy way to have the old & new coexist, at least for a while? It sounds like the added data in the trunk_update json message would be benign as far as the old terminal is concerned.
- Is this only for multi_rx.py or does it support legacy rx.py as well? I'm fine with it just being multi_rx, because really the legacy stuff needs to quietly go away, and they do have different interfaces.

Boatbod logging does need a re-write, and it's something that is on my mind, but I haven't reached a good conclusion on exactly how, yet. I'm leaning towards syslog or something of that sort rather than attempting to reinvent the wheel.

The easiest way to integrate your new code would be to submit a pull request against github boatbod/op25 repo's "dev" branch. From there I can merge it in elsewhere.
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
@boatbod - I'm happy to hear from you and glad you are interested. Let me address your points:

- Regarding old and new co-existing, should it default to new with a link to old, or the other way around?

- I will test on legacy rx.py.

- Copy that on pull from dev. I will do the necessary housekeeping before doing so. Lots of stuff about managing the various divs and html strings are no longer needed.... Once that's done and the items above are addressed, I will do the dev pull request.
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,489
Location
Talbot Co, MD
@boatbod - I'm happy to hear from you and glad you are interested. Let me address your points:

- Regarding old and new co-existing, should it default to new with a link to old, or the other way around?

Can it be done via a configuration parameter "terminal_type" similar to the switch between curses and web terminal? At present the default is 'curses'...
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
@boatbod

It could be done that way. Of course that would require a parameter coming over in one of the dicts for main.js to handle. Then the js would have to receive that and do a redirect or otherwise decide what to display.

If it were up to me, I'd just default to new and put a link to the legacy ui up top, like so:

1744677718970.png
 

Outerdog

T¹ ÆS Ø
Premium Subscriber
Joined
Jul 1, 2016
Messages
679
Pull requests done (triptolemus510). GitHub is not my area of expertise. If I've made a mistake, please let me know.

Also I was playing around with srcaddr in trunk_update but overwrote that commit with the file without it. You should see the one that does NOT include srcaddr in that method.

1744848589032.png
 
Top