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>
int main()
{
Qul::initHardware();
Qul::initPlatform();
#if defined(APP_TEXT_CACHE_SIZE)
Qul::ApplicationConfiguration appConfig;
appConfig.setTextCacheEnabled(true);
appConfig.setTextCacheSize(APP_TEXT_CACHE_SIZE);
Qul::Application app(appConfig);
#else
Qul::Application app;
#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;
}