-
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
✅ SITL OSD Support + Ideas for HD Fonts #14
Comments
What a pity, no reaction. |
Sorry for a late answer! Ok I will check SITL this week, I think that setting up analog OSD at least should be pretty fast because it is implemented aleady. |
Analogue OSD for SITL via the HITL MSP command will not work because the analogue OSD is dependent on the MAX7456, you have to use the MSP display port. I have almost finished the support for HD fonts for HITL, based on the fonts for WTFOS (DJI), on the INAV side I have solved this via a new display port, which is activated via a CLI option. The challenges if you want to integrate SITL completely:
|
Compared to HITL, SITL has a big advantage that you can compile completely different code into PC executable. So it is possible to remove MAX7456 communication and just send whole video buffer throught the same channel which is used to communicate with X-Plane already. I still have to look how it works.
How do you pass OSD MSP commands from FC to X-Plane? I was thinking on supporting HD OSD in HITL, but: Analog OSD has framebuffer. So I can just read framebuffer and transfer small parts to X-Plane with each MSP_SIMULATOR command response. Thus X-Plane has a copy of framebuffer which it can render. Digital OSD does not have framebuffer. It sends MSP commands through separate UART. So in order to support HD OSD, I have to send OSD MSP stream through the VCP UART (somehow), or ask user to connect second uart using USB-UART convertor( this is really ugly solution). |
As I said, an extra displayport is needed, which actually does the same thing as the MSP displayport (displayport_msp_osd): Only the changed characters are sent, instead of sending them directly, the buffer is saved and the HITL MSP command retrieves the buffer and then sends it. I'll finish it in a few days, then you can have a look at it. |
OK, here is my first implementation for HD Fonts: X-Plane Plugin: Font package: INAV: The whole thing is "work in progress", nothing finished yet. |
Ok, so I assume I should wait for pull request or green light from you, then I will merge and release new plugin. Random notes:
|
|
With: HITL: hd osd support #9327 SITL: OSD CMS menu does not work #9344 HITL/SITL: allow hitl/sitl to arm with uncalibrated accelerometer #9345 SITL: implemented built-in serial receivers support in SITL, implemented FC proxy mode, updated SITL docs Configurator: and a plugin currently in development: It is now possible to connect to SITL similar to connecting to real FC:
Tested under Windows. |
Awesome! |
Yes, I am interested. |
https://gist.github.com/Scavanger/c2272ca7c42e70f6f82341d84bfaa46b It`s based on the XPlane widgets, not very fancy and pretty, but functional. ;) |
Thanks, integrated into master. |
Well, with these commints #14 (comment) SITL can now be used with HITL plugin, featuring HD OSD and plugin tools. While OSD support could be implemented for the original SITL <-> X-Plane communication (via array datarefs), I am not willing to do it, because it is a lot of work to repeat existing functionality. I would rather vote to deprecate datarefs communication method. Will close when all commits are merged in. |
SITL connection is supported in release 1.4.0 |
SITL requires an external program for the OSD, for X-Plane a plugin solution would certainly be a great thing and having only one Inav plugin for both would certainly also be great. To run SITL over MSP is unfortunately not possible, to integrate the OSD would be one thing and at the same time to switch to HD fonts, here are a few ideas:
Fonts: The DJIWTFOS fonts are great for this, they are already in raw RGBA format and can be loaded relatively simple in OpenGL as textures.
INAV side: The cleanest solution would be an own displayport, based on displayport_msp_osd, which transfers only the changed characters and the dependency on MAX7456 is also gone
The text was updated successfully, but these errors were encountered: