control-toolbox / CTGui

Gui for the control-toolbox ecosystem
MIT License
0 stars 0 forks source link

Mousetrap #7

Open PierreMartinon opened 4 months ago

PierreMartinon commented 4 months ago

Current status:

PierreMartinon commented 4 months ago

Gui_mousetrap

PierreMartinon commented 4 months ago

Gui_mousetrap

jbcaillau commented 4 months ago

Nice @PierreMartinon! Making progress with the GUI 🙂

PierreMartinon commented 4 months ago

Added load/save solution using julia JLD2 format, since OCP solution contains complex objects such as interpolated functions, not easy to handle with JSON

PierreMartinon commented 4 months ago

[maybe] try Logging package to display ipopt output in GUI frame via a text file ?

jbcaillau commented 4 months ago

@PierreMartinon @ocots looks a bit like it is a graphical alternative to the REPL approach

PierreMartinon commented 4 months ago

We'll discuss this with Olivier yes. The usage is a bit less clear than for a c++ code such as bocop2, since we do have the julia REPL. Having interactive graphs and a julia REPL inside the GUI would be neat though :D

I'll try to see the limits of this package, then have a look at QML, which may be more powerful, but probably more complicated too. Although a QML interface could be hooked to bocop3 as well, which would be a significant benefit. I'll need to check the practical feasibility though.

It is unfortunate that the old QT gui for bocop2 is written in QTcreator's specific format (.ui) that is not exportable to the more portable .qml format. I'll try to update it for bocop3, and see if we can call julia from c++.

PierreMartinon commented 4 months ago

mousetrap

jbcaillau commented 3 months ago

@PierreMartinon worth a try

PierreMartinon commented 3 months ago

Mousetrap is nice yes, but is a bit similar to PySimpleQT I used for bocop3: it is a simplified wrapper for a lower-level UI library. As such, it is very good for the quick development of basic GUIs using high-level languages, but typically suffers from limitations.

PierreMartinon commented 3 months ago

mousetrap

Added plot save. Solve options also added as Dict and passed to the solve call sucessfully. Unfortunately on the UI side the Entry widget seems bugged and does not retrieve the input text. Maybe linked to the following error message:

No IM module matching GTK_IM_MODULE=ibus found

As of now, this concludes the first experiments with Mousetrap. Moving on to QML.

jbcaillau commented 3 months ago

@PierreMartinon please plan a little demo for our next meeting!

PierreMartinon commented 3 months ago

Sure. Additionaly, I'd be interested to know if the same bug occurs on mac. The test.jl script in mousetrap/ does just the faulty Entry button.

ocots commented 3 months ago

I do not manage to execute the code:

julia> include("ctgui_mousetrap/GUI_mousetrap.jl")
[ Info: Precompiling CTDirect [790bbbee-bee9-49ee-8912-a9de031322d5]
ERROR: LoadError: InitError: could not load library "/Users/ocots/.julia/artifacts/bf37190b92ac2fc3dd5e7073ff7ec7bbfd10343f/lib/libavdevice.58.13.100.dylib"
dlopen(/Users/ocots/.julia/artifacts/bf37190b92ac2fc3dd5e7073ff7ec7bbfd10343f/lib/libavdevice.58.13.100.dylib, 0x0001): Library not loaded: @rpath/libssl.1.1.dylib
  Referenced from: <CB15E436-8C0A-3897-AEDE-C5935555F236> /Users/ocots/.julia/artifacts/bf37190b92ac2fc3dd5e7073ff7ec7bbfd10343f/lib/libavdevice.58.13.100.dylib
  Reason: tried: '/Users/ocots/.julia/artifacts/bf37190b92ac2fc3dd5e7073ff7ec7bbfd10343f/lib/./libssl.1.1.dylib' (no such file), '/Users/ocots/.julia/artifacts/bf37190b92ac2fc3dd5e7073ff7ec7bbfd10343f/lib/./libssl.1.1.dylib' (no such file), '/Users/ocots/.julia/juliaup/julia-1.10.3+0.aarch64.apple.darwin14/lib/julia/libssl.1.1.dylib' (no such file), '/Users/ocots/.julia/juliaup/julia-1.10.3+0.aarch64.apple.darwin14/lib/julia/../libssl.1.1.dylib' (no such file), '/Users/ocots/.julia/juliaup/julia-1.10.3+0.aarch64.apple.darwin14/lib/libssl.1.1.dylib' (no such file)
PierreMartinon commented 2 months ago

Added warm start mousetrap

Also encountered another problem with FileChooser unable to create new file (for save as... function)