2020-11-17 05:07 PM
After adding many text fields, resources, and typographies to a screen, I went to compile and was met with errors that generated base classes were using text IDs that did not exist. The text ID's had been added to the source files for the containers they were used in, but not to the header file or TEXTS enum.
In an attempt to "clean" the project I deleted the contents of the TouchGFX/generated folder. The designer regenerates source files, but generated/texts/include/texts is empty. I have tried to add/remove resources in the designer so it would detect changes in the spreadsheet without any luck. With an empty folder my compile errors are now:
../TouchGFX/target/generated/TouchGFXConfiguration.cpp:17:10: fatal error: texts/TypedTextDatabase.hpp: No such file or directory
#include <texts/TypedTextDatabase.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
How can I force the designer to regenerate these files?
2020-11-17 11:21 PM
When you "generate code" from the designer, you should get everything that's supposed to be in the "generated" folder back.
I've never seen this behavior before - can you share the project?
/Martin
2020-11-18 10:36 AM
Unfortunately I'm not able to share the project in the forum.
After deleting the generated folder here is the output from the generator when run on the console.
C:\src\throttle_h7\mainapp\Debug>rmdir ..\TouchGFX\generated /s
..\TouchGFX\generated, Are you sure (Y/N)? Y
C:\src\throttle_h7\mainapp\Debug>C:\TouchGFX\4.15.0\designer\tgfx.exe generate --path=..\TouchGFX\throttle_mainapp.touchgfx -v
Generate Code
Wrote generated/gui_generated/include/gui_generated/betascreen_screen/BetaScreenViewBase.hpp
Wrote generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp
Wrote generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp
Wrote generated/gui_generated/include/gui_generated/common/SimConstants.hpp
Wrote generated/gui_generated/include/gui_generated/containers/Container_BatterySummaryBase.hpp
Wrote generated/gui_generated/include/gui_generated/containers/Container_CompassBase.hpp
Wrote generated/gui_generated/include/gui_generated/containers/Container_GearSelectorBase.hpp
Wrote generated/gui_generated/include/gui_generated/containers/Container_MotorSummaryBase.hpp
Wrote generated/gui_generated/include/gui_generated/containers/Container_SpeedAndPowerBase.hpp
Wrote generated/gui_generated/include/gui_generated/devscreen_screen/DevScreenViewBase.hpp
Wrote generated/gui_generated/include/gui_generated/home_screen/HomeViewBase.hpp
Wrote generated/gui_generated/include/gui_generated/motorcontrollerdebug_screen/MotorControllerDebugViewBase.hpp
Wrote generated/gui_generated/include/gui_generated/throttlescreen_screen/ThrottleScreenViewBase.hpp
Wrote generated/gui_generated/src/betascreen_screen/BetaScreenViewBase.cpp
Wrote generated/gui_generated/src/common/FrontendApplicationBase.cpp
Wrote generated/gui_generated/src/containers/Container_BatterySummaryBase.cpp
Wrote generated/gui_generated/src/containers/Container_CompassBase.cpp
Wrote generated/gui_generated/src/containers/Container_GearSelectorBase.cpp
Wrote generated/gui_generated/src/containers/Container_MotorSummaryBase.cpp
Wrote generated/gui_generated/src/containers/Container_SpeedAndPowerBase.cpp
Wrote generated/gui_generated/src/devscreen_screen/DevScreenViewBase.cpp
Wrote generated/gui_generated/src/home_screen/HomeViewBase.cpp
Wrote generated/gui_generated/src/motorcontrollerdebug_screen/MotorControllerDebugViewBase.cpp
Wrote generated/gui_generated/src/throttlescreen_screen/ThrottleScreenViewBase.cpp
Wrote generated/simulator/gcc/Makefile
Wrote generated/simulator/include/simulator/mainBase.hpp
Wrote generated/simulator/msvs/touchgfx.props
Wrote generated/simulator/msvs/touchgfx_prebuild.targets
Wrote generated/simulator/msvs/touchgfx_sdl2.props
Wrote generated/simulator/src/mainBase.cpp
Wrote generated/simulator/touchgfx.ico
Wrote generated/simulator/touchgfx.rc
Wrote generated/simulator/touchgfx.res
Done
Generate Assets
make -f simulator/gcc/Makefile assets -j8
Reading ./application.config
Generating generated/images/src/image_cropped-Pure-Watercraft-Logo_250.cpp
Generating generated/images/src/image_Icon_Battery_1x.cpp
Generating generated/images/src/image_Icon_Battery_4x.cpp
Generating generated/images/include/BitmapDatabase.hpp
Generating generated/images/src/BitmapDatabase.cpp
The fallback character differs for typography "Speed_Units" and typography "Battery_Percentage_Symbol"
Cleaning generated files from generated/texts and generated/fonts.
Generating generated/fonts/include/fonts/GeneratedFont.hpp
Generating generated/fonts/src/GeneratedFont.cpp
Generating generated/fonts/include/fonts/UnmappedDataFont.hpp
Generating generated/fonts/src/UnmappedDataFont.cpp
Generating generated/fonts/include/fonts/CachedFont.hpp
Generating generated/fonts/src/CachedFont.cpp
Generating generated/fonts/include/fonts/FontCache.hpp
Generating generated/fonts/src/FontCache.cpp
Done
Post Generate
touchgfx update_project --project-file=simulator/msvs/Application.vcxproj
Done
Post Generate Target
touchgfx update_project --project-file=../h7_mainapp.ioc --platform=m7
Done
Generation & Update complete
This still leaves me with generated/texts folder that only contains options.cache and an empty include/texts folder.
I also tried re-cloneing the project from a clean state and only copying over the .touchgfx and texts.xlsx files, but that produced the same result.
2020-11-19 12:29 AM
Odd, i just created a blank project, generated from the designer and have two files "TextKeysAndLanguages.hpp" and "TypedTextDatabase.hpp". Can you try from the designer? If that works, then maybe it's an issue with tgfx.exe.
/Martin
2020-11-19 09:09 AM
I usually use the designer to generate the files, but used tgfx.exe here since I thought the output may have been useful.
I was able to eventually get it to generate files by re-cloning the project in a different directory and adding my changes back in one-by-one, but that's not a very sustainable workflow.
2022-06-12 03:32 PM
I had the same problem just an hour ago. It costed me like 4 hours of work I deleted just trying to get it work.
Here's why: I had an "unexpected character" in a wildcard range. TouchGFX allows you enter a character it cannot process. And it's practically any character that is not alphanumeric. For those use hex codes, so to select range of all printable ASCII use 0x20-0x7e.
Anyways, I changed the offending wildcard range and it started to generate texts correctly. It's clearly TouchGFX bug and a big one.
We could avoid loss of data / work if we read the console messages on generate code.
2022-06-21 05:30 AM
I think I discovered my problem: a Zigbee-type wi-fi hub become nearby. After transferring that, my problems to get service from wetwash went away! (At least so far. Never realize with intermittent issues!)
2024-06-05 08:39 AM
The same thing was happening to me. I could not generate new texts after adding them to an old project, or even change the justification/font size of text IDs that were already generated. After I updated to 4.24, I can now delete the generated folder and it will generate the new texts I have added. It will not generate them if I add any more after I have generated the files once, i have to delete the whole folder again. Make sure you delete the generated folder, and not just its contents.
HTD is right, it is to do with the ranges used in wildcard buffers. I get the below error when I generate for the first time.
WARNING - Char 0xC0 is used but does not exist in the font!
WARNING - A total of 64 Unicode characters did not exist in the font!
It would be nice if the code generator could ignore this error instead of failing to generate new files.