Bitrex Menu system unable to compile

Been trying to use the menu system by @bitrex (v1.1) but have been unable to get it to upload to the arduino.

I’m using an elegoo uno r3 and 20x4 LCD with i2c interface

Full log in attached .txt
XOD bitrex menu log.txt (91.5 KB)

Begin compiling code for the board Arduino Uno :package:

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1392:5: error: expected unqualified-id before ‘namespace’
namespace menu_base = ____menu_base;
^~~~~~~~~

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1393:25: error: ‘menu_base’ does not name a type
using menu_base_t = menu_base::MenuBase;
^~~~~~~~~

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1395:18: error: ‘menu_base’ does not name a type
using Type = menu_base::BiDirectionalList<menu_base_t*>;
^~~~~~~~~

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1398:9: error: ‘menu_base’ does not name a type
menu_base::LeafMenuImpl<menu_base_t> leaf_menu;
^~~~~~~~~

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1399:9: error: ‘menu_base’ does not name a type
menu_base::BiDirectionalPlainListView<menu_base_t*> leaf_menu_view =
^~~~~~~~~

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:1403:13: error: ‘Type’ does not name a type; did you mean ‘byte’?
typedef Type typeof_OUT;
^~~~
byte

/
/
/
/
/
/
/

C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:4472:20: error: ‘struct xod::bitrex__xod_menu_system_11__menu_controller::Node::ContextObject’ has no member named ‘_input_MENU_TREE’; did you mean ‘_input_TITLE_1’?
ctxObj._input_MENU_TREE = node_48._output_OUT;
^~~~~~~~~~~~~~~~
_input_TITLE_1
C:\Users\danie\AppData\Local\Temp\xod_temp_sketchbookJQzRlK\xod_1660066239316_sketch\xod_1660066239316_sketch.ino:4472:47: error: ‘xod::Node_48 {aka struct xod::bitrex__xod_menu_system_11__concat_menu::Node}’ has no member named ‘_output_OUT’; did you mean ‘output_OUT’?
ctxObj._input_MENU_TREE = node_48._output_OUT;
^~~~~~~~~~~
output_OUT

Error during build: exit status 1
Compilation failed
Command Process exited with code 1
The generated C++ code contains errors. It can be due to a bad node implementation or if your board is not compatible with XOD runtime code. The original compiler error message is above. Fix C++ errors to continue. If you believe it is a bug, report the problem to XOD developers.

I should mention the above log is from the default menu system, but with the LCD node changed to work with my i2c screen.

Hi glasboxkeeper!

It’s been some time since I’ve worked with XOD, I can’t recall the version of XOD I was working with at the time when I wrote the library but I’m not surprised it’s not compiling under recent versions. I had hoped to do more with it but this was in pre-pandemic times and it ended up not high on the priorities list the past couple years but it’s nice to see people are still interested and in XOD! :blush:

My C++ has lapsed a bit but the list of errors doesn’t look too horrible, it might be feasible to at least get it working under the current version. If you’re OK with sending me your sketch (or just a minimal example sketch that replicates the errors your seeing to start might be good) I’ll see what I can do.

bitrex - I appreciate your response!

Here is a minimal sketch I compiled which incorporates the screen and rotary encoder I am using.
temp-rh-controller-Minimal.xodball (83.6 KB)

Ok, I’ll have a chance to look it over this weekend/early next week and I’ll be back in touch around this time next week, once I see what changes in XOD might be preventing it from compiling, and give you a read on it. Thanks

1 Like

Looks like just some changes with how XOD uses namespaces, I recall having to use some hacks to do what I wanted to do a couple years back but that seems maybe unnecessary now. I’m doing a re-work and hope to have an updated version up by next week, standby…

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.