kevinxusz / CuteHMI

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CuteHMI

License: MPL 2.0 Build Status

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

Note: While most of the project uses Mozilla Public License, v. 2.0, some files are distributed under different licenses.

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 modules 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.

Under Linux one can run following commands to compile and install libmodbus library.

git clone git://github.com/stephane/libmodbus.git
cd libmodbus
git checkout f9358460ee1f62bcac716ad0444b3bbe7628b204
./autogen.sh
./configure
make && sudo make install

To install libssh on a Ubuntu-based system.

sudo apt-get -y install libssh-dev

On Arch-based system.

pacman -S libssh

To install PostgreSQL client library on Ubuntu-based system.

sudo apt-get -y install libpq-dev

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.

Running example

To run SampleProject example with QtCreator click "Projects" -> "Build & Run" -> "Run" and in the "Command line arguments" box type: --project="examples/SampleProject/SampleProject.cutehmi.xml".

If anything goes wrong during loading, first check debug output and verify that paths are correct.

Something similar to this should show up on screen.

SampleProject screenshot

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.
  • examples - self-explanatory.
  • external - directory containing "external" libraries.
  • extra - various stuff related to the project, such as T-shirts.
  • modules - the heart of the project.
  • qbs - Qbs modules and imports.
  • QML - QML extensions (secondary heart of the project).
  • tools - end-user applications (tertiary heart of the project).

Dependencies between tools, modules, QML and external libraries

The concept is simple. Three most important directories are modules, QML and tools. Modules are basically libraries, which provide various functionalities in modular fashion. These can be utilized by QML extensions or end-user applications. End-user applications may of course utilize QML extensions also, as this is one of the main features offered by Qt. Some modules may depend on external libraries.

Quick links

About

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

License:Mozilla Public License 2.0


Languages

Language:C++ 76.5%Language:QML 15.3%Language:HTML 3.0%Language:Awk 1.2%Language:Shell 1.1%Language:Assembly 1.1%Language:Makefile 0.7%Language:JavaScript 0.5%Language:CSS 0.4%Language:PHP 0.2%