Replies: 5 comments 1 reply
-
|
If EEZ Studio could generate native LVGL C code—meaning no dependency on a runtime interpreter or binary blobs—while preserving its current visual programming capabilities, and integrate a cross-platform LVGL simulator (e.g., based on SDL) that runs the actual generated LVGL project instead of simulating logic, it would fundamentally eliminate inconsistencies between simulation and real-world behavior. Moreover, if the generated C code is human-readable and debuggable, and users are allowed to embed custom C code snippets directly within Flow nodes (not just via Action nodes), development flexibility and efficiency would be greatly enhanced. This combination—visual design + native code generation + real LVGL simulation—might well be a promising direction for the future evolution of EEZ Flow. |
Beta Was this translation helpful? Give feedback.
-
|
To avoid any confusion, the EEZ Studio does not simulate the LVGL API but instead uses the actual LVGL library compiled with Emscripten - the result is WASM (web assembly) which can be run inside Electron (web platform) application such as EEZ Studio. What you're asking for – to be able to insert any C inline code – isn't that simple, because it would require a C interpreter. Or, another way to implement this is to use an external C compiler, and every time the Run button is pressed, generate the code, invoke the C compiler (i.e., Emscripten), and then run the generated WASM. However, this would inevitably slow down the launching of the project (Run) within the Studio. One possible way to accomplish this is to use Podman as a way to install all required tools for C compilation. Currently, EEZ Flow allows too much flexibility (multiple lines connected to the same node input, multiple lines coming from the same node output). Because of that it is very very difficult to generate clean (human readable) C code. Hence, I wrote that we need EEZ Flow Lite that will forbid such flexibility, but it will be possible to generate straightforward C code. |
Beta Was this translation helpful? Give feedback.
-
|
I agree with your opinion. "Running in Full Simulator" would be a great addition to the Studio. Also, EEZ Flow Lite that can be both interpreted inside Studio and that can generate clean C code is also something that should be goal so that normal "Run" is even more realistic. As a side note, let me tell you that I already have a tool to do quick testing of the eez-project's using real LVGL SDL simulator. Here is how it looks:
As I usually work on Windows, I'm using WSL (Windows Subsystem for Linux) to do the compilation. I needed to prepare Ubuntu image under WSL to have all required components (mainly Emscripten) to be able to build the projects. This is not portable solution, so I'm experimenting with the Docker Desktop. I tried also Podman Desktop, but found that Docker Desktop is easier to use. Here is how it looks the similar tool that uses Docker Desktop:
I'm not quite satisfied with the Docker as it is slower than previous WSL solution. Anyway, I will continue to investigate this and hopefully I will integrate something like this into Studio. |
Beta Was this translation helpful? Give feedback.
-
|
FYI I created an issue for “Run in Full Simulator”: #896 |
Beta Was this translation helpful? Give feedback.
-
|
FYI Full Sim is now implemented (#896) and it is in master branch. It will be released in version 0.26.0 |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
-
I understand that for some users EEZ Flow is not ideal solution because of various reasons:
When EEZ Flow is not used, only option is to implement event handlers in native code. Big problem with this is that it can't be tested in Studio simulator.
What can be alternative way to implement event handlers so that it can be tested in Studio and later converted to clean C code?
These are some options:
I want to know your opinion about this?
Beta Was this translation helpful? Give feedback.
All reactions