All Projects → michpolicht → Cutehmi

michpolicht / Cutehmi

Licence: other
CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework. GitHub repository is a mirror!

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Cutehmi

Sitewhere
SiteWhere is an industrial strength open-source application enablement platform for the Internet of Things (IoT). It provides a multi-tenant microservice-based infrastructure that includes device/asset management, data ingestion, big-data storage, and integration through a modern, scalable architecture. SiteWhere provides REST APIs for all system functionality. SiteWhere provides SDKs for many common device platforms including Android, iOS, Arduino, and any Java-capable platform such as Raspberry Pi rapidly accelerating the speed of innovation.
Stars: ✭ 788 (+775.56%)
Mutual labels:  raspberry-pi, open-source, iot, internet-of-things
Cylon
JavaScript framework for robotics, drones, and the Internet of Things (IoT)
Stars: ✭ 3,862 (+4191.11%)
Mutual labels:  raspberry-pi, gpio, iot, internet-of-things
Pegasus Frontend
A cross platform, customizable graphical frontend for launching emulators and managing your game collection.
Stars: ✭ 364 (+304.44%)
Mutual labels:  raspberry-pi, cross-platform, qml
Toou 2d
基于Qt Quick(Qml) 跨平台技术打造的2D框架
Stars: ✭ 413 (+358.89%)
Mutual labels:  cross-platform, qt, qml
Arcgis Appstudio Samples
Collection of samples available in AppStudio for ArcGIS desktop to learn and help build your next app.
Stars: ✭ 78 (-13.33%)
Mutual labels:  cross-platform, qt, qml
Thermal
One stop to manage all git repository
Stars: ✭ 321 (+256.67%)
Mutual labels:  free, open-source, cross-platform
Freedomotic
Open IoT Framework
Stars: ✭ 354 (+293.33%)
Mutual labels:  open-source, iot, internet-of-things
Ctk
A set of common support code for medical imaging, surgical navigation, and related purposes.
Stars: ✭ 498 (+453.33%)
Mutual labels:  open-source, cross-platform, qt
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+2805.56%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Pytradfri
IKEA Trådfri/Tradfri API. Control and observe your lights from Python. Examples available. On pypi. Sans-io.
Stars: ✭ 778 (+764.44%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Rpieasy
Easy MultiSensor device based on Raspberry PI
Stars: ✭ 85 (-5.56%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+3572.22%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+3515.56%)
Mutual labels:  sql, iot, scada
Awesome Linux Software
A list of awesome applications, software, tools and other materials for Linux distros.
Stars: ✭ 16,943 (+18725.56%)
Mutual labels:  free, open-source, cross-platform
Swiftygpio
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
Stars: ✭ 1,188 (+1220%)
Mutual labels:  raspberry-pi, gpio, iot
Ttn
The Things Network Stack V2
Stars: ✭ 440 (+388.89%)
Mutual labels:  open-source, iot, internet-of-things
Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-91.11%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Homeassistant Config
Stars: ✭ 211 (+134.44%)
Mutual labels:  raspberry-pi, iot, internet-of-things
Pigpio
Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi
Stars: ✭ 747 (+730%)
Mutual labels:  raspberry-pi, gpio, iot
Onoff
GPIO access and interrupt detection with Node.js
Stars: ✭ 1,050 (+1066.67%)
Mutual labels:  raspberry-pi, gpio, iot

CuteHMI

License: LGPL 3.0 License: MIT Build Status Coverity Scan Build Status CodeFactor Grade Matrix

CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework.

CuteHMI is essentially a collection of libraries, plugins and executables, referred to as "extensions" and "tools", glued together by Qbs components. To create custom project one creates his own first-class extension, which may depend on any number of other extensions and uses specific tool to load its components. This makes CuteHMI very flexible framework with many use cases.

Qt Designer Sample application built with CuteHMI

Note: While most of the project uses GNU Lesser General Public License version 3, some files are distributed under different licenses.

Branches

Consecutive branch numbers denote successive iterations of the project. Iteration of the project is related to build framework (repository layout and Qbs items). Extensions and tools are versioned independently and they have their own development status.

Branch "master" is a development branch. Development branch may contain source code that is undergoing deep changes, rendering it unusable. Branch "master" is merged frequently into a branch, which has "alpha" status. This branch may also undergo deep modifications, but it should be usable. Branches with "perpetual beta" status are stable in a sense that no backward incompatible changes shall be made to them. For new projects it is recommended to use "alpha" branch. By the time the project is finished branch should also stabilize.

Branch Build status Development status
master Build Status pre-alpha
5 Build Status alpha
4 Build Status perpetual beta

Compiling

  1. Get the Qt toolkit. Open-source and commercial editions can be obtained from https://www.qt.io/. Qt can also be shipped with Linux distribution.

  2. Open CuteHMI.qbs file with QtCreator and simply build it.

  3. All extensions dependent on external libraries will be disabled, if these libraries could not be found. To make the process of finding the libraries and installing them under Windows easier, a set of Makefiles is provided, which allows the libraries to be build from sources. Check out external libraries for more details. Each extension may provide individual documentation on how to build it.

Remember that Qbs caches Probe items' results, so if the library is installed after the project has been configured with Qbs, it will not show up. You can use --force-probe-execution option to force Qbs to not use cached results.

Building only specified products

By default Qbs will compile all the products (tools and extension), even if they are not needed for a project. To build only specific product use --products | -p build option. For example following command will build only CuteHMI.Examples.SimpleView.2 extension and its dependencies, using default configuration.

qbs -f CuteHMI.qbs -p CuteHMI.Examples.SimpleView.2

Find out more about build options on Qbs documentation website.

Getting started

For an introduction you may want to run one of the existing examples. In CuteHMI everything is either a tool or an extension, therefore examples are also provided as extensions. Their names start with "CuteHMI.Examples" prefix. The most basic example CuteHMI.Examples.SimpleView.2 can be run with cutehmi.view.4 tool by issuing following command.

cutehmi.view.4 CuteHMI.Examples.SimpleView.2

To create your own project you can simply copy one of the examples to your own subdirectory in extensions directory (e.g. Me/MyExtension.0) and edit project.qbs file. Change name property to match extension name (e.g. name: "Me.MyExtension.0")

After that you can use --force-probe-execution Qbs option or delete build directory and rebuild whole project. Your extension should be installed and it can be run with cutehmi.view.4 tool.

cutehmi.view.4 Me.MyExtension.0

More methodical approach is to use one of the templates. The process of creating custom extensions is described in more detail here.

Examples are listed in the documentation along with other extensions.

Internals

Directory structure of the project is organized as follows.

  • _sass, _layouts - directories used by GitHub Pages.
  • awkgward - code maintanance scripts (don't bother).
  • dev - development notes (irrelevant).
  • doc - a place where documentation shall be.
  • extensions - libraries and QML extensions.
  • external - directory containing "external" libraries.
  • extra - various stuff related to the project, such as T-shirts.
  • qbs - Qbs modules and imports.
  • tools - executable programs.

Dependencies between tools, extensions and external libraries

Two most important directories are extensions and tools. Extensions combine functionality of QML extensions and standard libraries. They can be utilized by end-user applications, but they can be also linked with each other. Some extensions may depend on external libraries.

Quick links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].