24Jul 2015
Michael Egli
permalink
In this article, I show how to build a simple virtual keyboard in Qt. Many questions about this topic can be found, but unfortunately not many complete answers. I try to fill this gap with a straight forward solution that I believe is elegant and applicable in many situations.
The code is available on Github.
What is Available? Depending on the platform where you use Qt, a virtual keyboard might already be present.
19Jun 2015
Michael Egli
permalink
In this article, we look at how messages can be sent from an Elixir to a C++ program. The reason why this is interesting is that it allows us to use Elixir and with it the excellent Erlang virtual machine for the core part of our application, and C++ for the User Interface. In this post we lay the foundation for such work.
Technique Given an Elixir (Erlang) application, various interoperability options exist to integrate programs written in other languages.
7Apr 2015
Urs Wegmann
permalink
Vor mehr als 3 Jahren haben wir an dieser Stelle einen Artikel veröffentlicht, wie man mittels eines gratis VNC-Servers auf Siemens Multi Panels zugreifen kann. Mit der Umstellung von der Multi-Panel Reihe auf die Comfort-Panel Baureihe, wurden wir seither häufig angeschrieben, ob es nicht weiterhin eine Möglichkeit gibt, die neuen Panels ebenfalls ohne Kosten für Lizenzen, für einen Fernzugriff einzurichten.
Mit diesem Artikel hier und den passenden Links zum Download der Comfort-Panel Version kommen wir den vielen Nachfragen nach.
27Mar 2015
Michael Egli
permalink
In a previous post, we discussed the concept of state machines. This was an abstract look at what state machines are, why they are useful, and what semantics they have. In this post, we want to create an implementation in C++ of such a state machine.
The code is available on Github. It is already used in many different commercial applications. Feel free to use it. Please contact us in case of any question or comments.
8Mar 2015
Michael Egli
permalink
A simple function encapsulates some functionality. It takes a set of arguments, processes them, and returns a value. As such, a function is reusable, but not very flexible. Whatever it does is encoded in the function itself. Other than passing different arguments, the caller does not have any control over its functionality.
Many languages support the notion of functions as first class objects. That means that functions can be treated like any other object in that language.
26Jan 2015
Urs Wegmann
permalink
plclog ist eine Lösung, wie Sie einfach Nachrichten einer SPS in einer zentralen Datenbank auf einem Server oder PC in Ihrem Netzwerk speichern können. Zugriff auf die abgelegten Daten haben Sie von jedem PC aus mittels Webbrowser.
In diesem Artikel möchten wir die Lösung kurz vorstellen. Ausführliche Informationen und den Download aller notwendigen Komponenten finden Sie unter plclog.io
Vorteile Unsere Lösung bietet gegenüber OPC Lösungen (WinCC) für das Datenlogging die folgenden Vorteile:
4Jan 2015
Michael Egli
permalink
A Finite State Machine (FSM) is an abstract machine that can be used to design software components. In this post, we will introduce the representation of FSMs we use at wisol. In following posts, we will focus on more detailed aspects, practical applications, and describe our free C++ implementation.
Main Advantages A FSM can model many problems, including communication protocols, language parsing, or general behaviour of a software component. From an engineering point of view, using an FSM to design a component has a few specific advantages.
29Dec 2014
Michael Egli
permalink
Docker provides software containers to ease the deployment of applications. It is also very convenient to use it to deploy a development environment.
We at wisol use it to distribute environments that include tools to compile and deploy our projects to different embedded target platforms. Our images contain cross compilers, already compiled software such as Qt, or the BSP to support our platforms.
Using a Container One way a container can be used is to specify interactive mode, allocate a pseudo TTY, and start a shell in the container.
15Dec 2014
Michael Egli
permalink
In a new Qt project, it is often desirable to mix C++ and QML code. At least in our experience, it is rare that a project is either pure C++ or pure QML. The Qt Documentation has some overview of the available options of mixing the two. This documentation was somewhat lacking in the past, but has vastly improved for the recently introduced version 5.4.
In particular, we look at an example of integrating a C++ object as a context property into QML.
11Dec 2014
Michael Egli
permalink
Doxygen is a tool for generating documentation for various languages. It is a nice tool and is used in many C++ projects. However, for large projects, generating the documentation can be time consuming. It is therefore often desirable to only generate a subset of the documentation. This allows a developer to only (re-)generate the part which she is working on.
Doxygen itself does not have any parameters to select only a subset to be generated.
26Oct 2012
Michael Egli
permalink
Arduino is an open source prototyping platform with an 8-bit Atmel microcontroller. An important factor is that many hardware modules, called shields, exist for the platform. These allow to easily implement a variety of tasks. Also, the accessibility of hardware and software makes using the Arduino fun.
This article shows you how to get started. Since here at wisol we like Linux and prefer Vim to the Arduino IDE for programming, we will setup a simple and convenient environment consisting of Debian as the operating system, Vim for programming, and CMake for building.
9Jan 2012
Michael Egli
permalink
This is the first post in a series where I would like to cover the text editor Vim. I’ve been using Vim since many years almost exclusively when editing text, mostly C++ code. Although this article will focus on the aspects I find most useful while programming, it should be a good general introduction.
In this first part, I’ll cover installation and configuration of Vim and some preferred plugins. Later articles will explain what makes Vim so powerful, editing files with it.
3Jan 2012
Urs Wegmann
permalink
Oft wurden wir angefragt, ob es für die von uns eingesetzten Siemens Multi-Panels eine Möglichkeit gibt, auf diese mittels SmartPhone oder VNC Client zuzugreifen. Grundsätzlich gibt es zwei Möglichkeiten hierfür.
Siemens Software Lizenzen Siemens selbst bietet für die Fernwartungen der eigenen Panels die kostenpflichtigen Lösungen von SmartAccess und SmartService an. Beide bieten diese Funktion, durch Installation einer entsprechenden Lizenz auf jedem Panel, auf das zugegriffen werden soll. Hierfür muss mittels USB Stick die zuvor erworbene Lizenz auf das Panel übertragen werden und in der WinCC flexible Software die Option der Fernwartung aktiviert werden.