-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flexible OSD #27
Comments
I have a prototype that was based on some ideas from QGroundControl and my experience working with monitoring dashboards (eg, Grafana/Prometheus etc). OSD is more or less indeed a monitoring dashboard overlayed over the video, so it makes sense to borrow ideas from that area =). Presentation layer:
Data layer:
Widgets (their coordinates, type + arguments, facts they want to subscribe to) can be declaratively described in JSON file (or .yaml, or .ini, need to decide). And maybe later someone will create a GUI to generate such file. format_vsn: "0.0.1"
widgets:
- type: PlainText
x: 10
y: 10
text: "Hello world"
- type: Template
x: 10
y: 30
template: "GPS %f:%f"
facts:
- name: "mavlink.gps_x"
- name: "mavlink.gps_y"
- type: IconAndTemplate
x: -30 # bound to the left side of the window
y: 50
icon: "/usr/lib/pixelpilot/wfb.png"
template: "RSSI: %i, SNR: %i, FEC: %i"
facts:
- name: "wfb.rssi"
- name "wfb.snr"
- name: "wfb.fec_corrected"
- type: Lua
x: 10
y: -10 # bound to the bottom of the window
lua: "/config/my_widget.lua"
facts:
- name: "my-fact-1"
- name: "my-fact-2"
- "..." That is all for now, but I think it might be nice to add some |
I'm working on it in this branch, if someone is interested in early preview master...seriyps:PixelPilot_rk:flexible-osd |
Right now the OSD in pixelpilot is quite rudimentary and mostly hardcoded. I think we should make it possible to define it declaratively in some config file. Later external programs can be used to generate such config.
Also I think the values to display in OSD should not be calculated ad-hoc, but rather being "emitted" in raw form to some kind of bus and OSD elements can "subscribe" to (one or many) such value updates.
Let's discuss the ways we can achieve that in this ticket.
The text was updated successfully, but these errors were encountered: