C
Qt Quick Ultralite Thermostat Demo
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial #include "thermo.h" #if defined(QUL_PRIVATE_THERMO_VALIDATE_MONOTYPEDATATABLES) #include <qul/monotype/monotypedatatables.h> #include "ErrorScreen.h" #endif #include <qul/application.h> #include <qul/qul.h> #if defined(APP_TEXT_CACHE_SIZE) // Transitional: the deprecated qul_add_target build cannot consume the // QUL_TEXT_CACHE_SIZE target property, so the size is set here instead. Remove // once this target is ported to the new CMake API. #include <qul/private/text/textcache.h> #endif int main() { Qul::initHardware(); Qul::initPlatform(); Qul::Application app; #if defined(APP_TEXT_CACHE_SIZE) Qul::Private::TextCache::init(APP_TEXT_CACHE_SIZE); #endif #if defined(QUL_PRIVATE_THERMO_VALIDATE_MONOTYPEDATATABLES) // If the Monotype data tables are placed in external flash, // the application can use the Qul::validateMonotypeDataTableChecksums() // API to validate the data, and handle errors accordingly, // for example, by downloading new firmware using OTA. if (!Qul::validateMonotypeDataTableChecksums()) { // Error recovery could be done here, but for demo purposes // an error screen without any text is shown static ErrorScreen errorScreen; app.setRootItem(&errorScreen); app.exec(); return 0; } #endif /* Root item instance should be defined as static local to avoid * the instance to be placed in RTOS thread stack. Thread stack * may not be enough to accommodate it. * */ static thermo item; app.setRootItem(&item); app.exec(); return 0; }