tcMenu

Menu library for Arduino, mbed and ESP with designer UI and remote control capabilities.

APACHE-2.0 License

Stars
275

Bot releases are hidden (Show)

tcMenu - Small fixes to designer, ready for tcMenu library 2.1

Published by davetcc over 3 years ago

This release contains a number of smaller fixes, and during the next few days we'll release tcMenu 2.1 and switch the stream so that 2.1 library and plugins are current, and 1.7 is previous.

  • confirmation dialogs boxes tidied up
  • large number compilation edge case fixed
  • recursive naming issue sorted out
  • code generator no longer puts blank lines at end of INO / main
  • general settings version grid text improvements.

Plugins (xmlPlugins directory for 2.1):

  • first pass at dark mode
  • fix for lcd screens.

Install the designer by choosing the right package below. There is:

  • A setup file signed with extended validation for Windows
  • A notarized disk image for macOS
  • Debian / Ubuntu package for Linux

The packages below are completely compatible with any designs from the store version. You can upgrade in your own time, and there are no restrictions around where you can save files. We expect there were a few that preferred AppStore deployment, we ask that you try to move this designer and report back any usability issues, we'll iterate a few times if need be to get any usability issues solved.

Given we've made a few changes in 2.0 and then 2.1, we discuss the changes here: https://youtu.be/hxFJxUFlWWM

I've also started a new forum thread to discuss this release for any UX issues encountered or missing features transitioning from Store versions. https://www.thecoderscorner.com/jforum/posts/list/124.page

tcMenu - Single designer codebase, CLI, UX improvements

Published by davetcc over 3 years ago

This release is the first release in the 2.1 series, where we have a single designer code base. From this point on we no longer recommend using the store versions, instead use the versions attached below:

  • A setup file signed with extended validation for Windows
  • A notarized disk image for macOS
  • Debian / Ubuntu package for Linux

The packages below are completely compatible with any designs from the store version. You can upgrade in your own time, and there are no restrictions around where you can save files. We expect there were a few that preferred AppStore deployment, we ask that you try to move this designer and report back any usability issues, we'll iterate a few times if need be to get any usability issues solved.

Given we've made a few changes in 2.0 and then 2.1, we discuss the changes here: https://youtu.be/hxFJxUFlWWM

I've also started a new forum thread to discuss this release for any UX issues encountered or missing features transitioning from Store versions. https://www.thecoderscorner.com/jforum/posts/list/124.page

Changes:

  • New CLI mode added that allows complete round-tripping of menus, from project creation right through to code generation.
  • Single code base, based on the original designer, the most stable and probably still used most.
  • Major UX improvements to the single code base version to take it beyond even the macOS store version in some ways.
tcMenu - Menu Designer 2.0 release for use with 1.7 libraries

Published by davetcc over 3 years ago

As discussed TcMenu 2.0 will be released in two parts, it's a rather large release, but has been beta testing for a long time now. We've also been using it internally for nearly two months for AVR, ESP32, ESP8266, MKR and mbed development. Libraries should remain on 1.7 for now while we complete our testing. Well over 300 automated integration tests also run on our API and UIs and the code coverage is high.

Major improvements in the designer to bring the Java designer up to the same UI as the store application. This is fully compatible with 1.7 libraries, the 2.0 libraries will follow soon, once the testing is fully completed.

  • All the capabilities needed for when library 2.0 is released (Themes, Drawables) but only enabled in beta mode in this release.
  • Plugin Properties now shown on the right of the plugin instead of in a table.
  • Proper Linux build as a deb installer (tested on Ubuntu)
  • A few small bug fixes in the designer
  • Menu item variable name is now locked down after the first code generator run (and can be synced easily).
tcMenu - RGB and Choice item support, stability and usability

Published by davetcc almost 4 years ago

This release provides support for RGB and Choice menu items. RGB allows the editing of RGB based colors with optional alpha, choice provides a more configurable enum that can work with storage in EEPROM, RAM, or custom choices using a callback.

Stability improvements are also included in this release.

tcMenu - Fixes for Linux and Windows 7 UI

Published by davetcc about 4 years ago

In this release, we have some minor fixes for the Java UI.

  1. It is now able to track the TaskManagerIO version.
  2. A very small fix to variable expansion in the plugins.
  3. Ability to handle gregorian date fields and non-negative large numbers

Linux users, ensure that you have a working OpenJDK 11 (or greater) installation that is able to handle graphical apps. Unpack the Linux package and run the startDesigner.sh script within it.

tcMenu - Support for mbed and Nano33BLE

Published by davetcc about 4 years ago

  • Provides support for both mbed and Arduino in the same library.
  • Adapter that can communicate with simhub using a simple custom protocol. We've tested this on ESP32, MKR and mbed with a few different displays.
  • Includes IoAbstraction V1.5 that provides the mbed / Arduino capabilities but also now supports the ability to reallocate the number of switches and tasks at runtime and an improved analog abstraction.

This is a major release of tcMenu and we've done a lot of testing. We are not aware of any APIs that have been broken. However, in the event you encounter any issues please report them here and revert to your previous version.

Note1: To use mbed at the moment, it is considered early release, switch to the BETA plugins (use the library stream combobox, front page on Java, settings dialog on Windows Store version). We'll move them over to STABLE once we've seen some menus generated. If you use tcMenu on mbed please let us know your thoughts.

Note2: there is a bug in the Arduino platform for Nano 33 BLE runtime that prevents the use of hardware rotary encoders at the moment, this fix has already been applied to their master, but has yet to be released. Hopefully, given it's quite a significant bug, it will be fixed by them soon.

tcMenu - Ability to use different streams for updating, small fixes

Published by davetcc over 4 years ago

This release is able to handle various streams so that when we release new features, you can choose to test them earlier or later. It tells you which library version to use for each stream and offers to keep the plugins at the right version for that release.

A few small fixes in the Java Designer UI.

Upgrade TcMenuLib to 1.4.2 - now supports on commit editing callback. See examples.

tcMenu - Major designer release with some library improvements

Published by davetcc over 4 years ago

Summary

A major release of TcMenu that significantly changes the way that the designer works. The designer now relies on library manager for library installation and loads plugins automatically, so no longer needs a new install for either a library or plugin upgrade. However, it does fully monitor versions and warns you when updates are needed.

You can now configure that any generated CPP / H files are put in the source directory. Note that this is a major change to tcMenu Designer. Should you experience significant issues please revert to 1.3.5 and either raise an issue or on the forum (see main page for link).

Library changes:

  • All bitmaps are now in XBitmap format, this fixes many issues with PROGMEM on ESP
  • MightyCore now compiles
  • Title optional on liquid crystal.
  • Visible flag now allows for hiding menu items at runtime.
  • Left / Back and Right / Forward functionality added.
  • MenuIterator security fixes and tidy up
  • Better editing on matrix keyboards.
  • Other small fixes to the library
tcMenu - Large number editing, more stable connectivity, important fixes

Published by davetcc almost 5 years ago

Quick start guide: https://www.thecoderscorner.com/products/arduino-libraries/tc-menu/tcmenu-overview-quick-start/

Major changes in this release

New functionality:

  • Upgraded to IoAbstraction 1.4.10. (https://github.com/davetcc/IoAbstraction/releases/tag/1.4.10)
  • Very large number support. Numbers stored internally as BCD can now be held up to 12 digits +/-. These can be edited a digit at a time similar to how text fields are edited.
  • More stable remote connectivity. This is the first part of a large refactor of the remote connectivity to make it more stable and more testable.

Fixes:

  • Fixed an issue on 8 bit devices that caused corruption of the title on the LCD
  • Fixed an issue on graphical screens where the last pixel in the Y dimension was not used.
  • Any unused plugins are now removed on a best efforts basis by the designer UI, this should nearly always clean up any unused plugins.
  • Remote Serial now works properly on ESP8266.
tcMenu - Password protected sub-menus, render cleanup.

Published by davetcc about 5 years ago

  • Submenus are now able to be password protected.
  • Renderer clean up separating out input code from display code.
  • Core LCD renderer now supports title line and title line widgets based on custom chars (0-7).

Breaking changes: there is one breaking change, the renderer classes have completely changed. Ensure you do a rebuild through the menu designer before trying to compile.

Any issues, let us know through the forum linked from the main page.

For Windows and Mac: The designer package contains all the embedded libraries, so if you're using the designer you don't need the standalone package. The controller provides the ability to remotely manage and control menus on Windows and macOS. From 1.4 the controller will move toward UWP and mobile devices.

tcMenu - Keyboard support, revised protocol, time menu items, designer improvements

Published by davetcc about 5 years ago

This release is mainly incremental with a few new features:

  • Keyboard support for matrix keyboards with a new packaged example.
  • Protocol refactoring to make processing more efficient - not backward compatible.
  • Time menu items now supported with 12/24 hour and up to hundreds/sec accuracy.
  • Documentation links now available from the code generator view.
  • Ability to generate menu names that are fully qualified.
  • Other minor improvements.

For Windows: Download the windows package for the designer UI and the controller. This will include everything you need to build a menu.

For MacOS: Download the macOS disk image file that contains both the designer UI and the controller. This will include everything you need to build a menu.

Standalone libraries only: download the zip file with standalone libraries.

tcMenu - ESP32, remote authentication, better editing, runtime & recursive menus

Published by davetcc over 5 years ago

Along with quite a few bug fixes, this major release contains the following major features:

  • Full support for both ESP32 and ESP8266
  • Support for menu items that can be created at runtime, without needing to be statically defined in INFO blocks. this includes basic support for list items.
  • Editing of IP address and text fields - on device and remote.
  • Improved examples with less hardwiring.
  • Dialogs that can render onto any display and also remotely. For questions or information.
  • Authentication in the tagval protocol, including a few different implementations of the key manager.
  • Multi-level nesting of menus
  • Taking over the display and handling the reset time on the menu now better
  • Usability of AnalogMenuItem greatly improved with helpers to floats and fixed point structure.
  • Bluetooth serial modules tested and working with the library.

Note that if you previously used RemoteMenuItem in the designer UI, this has now been migrated to a runtime menu item that you add to the script. See any of the examples with remote functionality. Compatibility should otherwise be quite high.

TcMenu Designer is the application that allows you to graphically configure menus.
TcMenu controller is the application that lets you control menus remotely over Bluetooth, Ethernet, WiFi and Serial.

Available for both Windows and MacOS.

tcMenu - ESP8266, OLED, Joystick input, recursive menus and bug fixes

Published by davetcc over 5 years ago

This release of TcMenu brings quite a few new features:

  • Support for PROGMEM and Wifi on ESP8266 including a new example
  • Tested example for OLED displays such as SSD1306
  • Joystick input support using an analog joystick for UP / DOWN
  • Recursive menus with configurable max depth, defaults to 4 now.
  • Improved select button handling, no longer sends two events. Holding select now acts as back.
  • Fixed a few other minor issues

If you've been previously using tcMenu. Once 1.3.1 is installed, ensure that you generate your menu design again by loading into the designer and selecting Code -> Generate Code. This is needed to update the generated code.

For Windows:

If you have any existing versions of the designer UI or controller UI installed, it is recommended that you remove them first and then install the new packages.

  • tcMenuDesigner is the menu designer UI, once run it will offer to install the base library for you. There is no need to take the standalone download in addition to this.
  • tcMenuController is the controller application that can remote control your device running tcMenu.

For MacOS

Release coming soon

Standalone

The libraries can be taken as a zip file standalone, should you not wish to use the packaged designer.

tcMenu - Better Adafruit_GFX support, better remote control, moves out of BETA

Published by davetcc over 5 years ago

This release provides a few key new features:

There are a few smaller breaking changes in this release, especially if you had used the RemoteConnector communication layer in the past. These are quite simple to fix however. Any problems please either report an issue or use the TCC forum linked on the main page.

  • Vast improvement in Adafruit_GFX support, tested on ILI9341 and 5110. Should work on many others.
  • Remote capability can now be configured to also work with UIPEthernet
  • Remote control utility that can control your menu over serial or ethernet now packaged.
  • Considerable fixes to the remote layer
  • Many other bug fixes.

Windows:

  • setupTcMenuDesigner.exe is the application to design menus.
  • setupRemoteConnector is used to connect and remote control to a menu on your device.

MacOS:

  • tcMenu-1.3-final contains both applications in one disk image.

Additional:

  • Standalone libs is the standalone libraries, only needed if you are not using the designer UI.

Breaking changes V1.1 to V1.2

This is a major release of tcMenu, it is not quite compatible with the previous release. Before generating code on an existing project you will need to open the project directory and remove the projectName.cpp and projectName.h (where projectName is your project name). These files were regenerated every round trip anyway and there should be none of your code in there. This is because those files clashed with many IDE's and Arduino editors (which also use that name for the generated sketch).

The PROGMEM exposure in the library has been completely hidden and we've generally moved towards every string copy operation needing a size parameter. The changes are minor and should be quite self-explanatory as you come across them. Feel free to use the forum to discuss any problems and I'll respond quickly (see link in README.md).

From this point on API changes will be kept to a minimum, and it will come out of "under development" probably at V1.3.

Changes ( see the 1.2 milestone for more details )

Once you're on this version you'll get

  • Far better code generation than before
  • Proper support for 32 bit boards
  • Rotary encoder and switches acceleration
  • Ability to schedule tasks in taskManager in an OOP manner if required.
  • Full plugin capability to install additional code generators.
  • Many general bug fixes.
  • DfRobot shield

Builds available for Windows and MacOS as usual. If you want a Linux desktop build please raise an issue and I'll look into building there too.

tcMenu - Plugin model, smaller packages, better testing

Published by davetcc over 5 years ago

This release may not show much change on the surface, but some huge gaps have been filled underneath.

If you are using the Designer UI then you just need setupTcMenu.exe on windows or the disk image for macos.

Instead of the library exposing many classes that were not always needed, or needed a lot of sub libraries installed, the designer UI now copies in the rendering and remote components needed for your case. This makes dependencies much easier.

The library installer has been added back in, this time able to reason about versioning and not overwrite something it should not.

The executable designer package is now much better tested than before. Automated testing makes releasing much easier and covers a large number of basic cases.

Many bugs in the designer and a few in IoAbstraction fixed during the prolonged testing period.

tcMenu - Major improvements to performance and memory footprint.

Published by davetcc about 6 years ago

Major memory usage improvements.
FloatMenuItem, RemoteMenuItem, ActionMenuItem are now supported.
Performance improved
On latest IoAbstraction version

tcMenu - Minor improvements, widget support in AdaGFX rendering

Published by davetcc about 6 years ago

This release contains minor improvements upon the previous version:

  • Fixes issues with dependencies
  • Widget support in AdaGFX rendering
  • Slight improvements to communications layer.
tcMenu - Ethernet Support, 32 bit boards and Adafruit_GFX displays

Published by davetcc about 6 years ago

** Please use the newer release,it fixes the dependencies mentioned below **

Please note there are two dependencies needed that have not been packaged in this release. The workaround is to install the following Arduino libraries first:

This will be rectified before the next release

  • Ethernet is now supported for remote control and the Java API is able to communicate over sockets
  • Adafruit_GFX based display renderer in a basic form is now working, improvements coming soon.
  • 32 bit boards now test (SAMD tested and working)
  • Text fields now supported as menu items and can be saved to EEPROM.
  • Dark look and feel replaced with standard look and feel, just looks better.
tcMenu - Native packages for Windows and MacOS

Published by davetcc over 6 years ago

Native packaging for Windows and MacOS.
Fix for No Remote capability case.