In this article, we’re going to have a look at Qt for Python, how it integrates with Qt Creator, and why you might want to consider using it, too.
]]>In this article, we explain how to set up secure network-based communication using Flutter and gRPC. We present practical implementation steps in a hands-on example.
]]>In this blog we show you a possible architecture approach to increase cross platform reusability of your Flutter HMI Code. From Embedded to Mobile to Desktop.
Continue reading Flutter on Embedded: HMI, Mobile Apps and Middleware at basysKom GmbH.
]]>Learn about the different Flutter Embedders for embedded Linux! What choices do you have and which aligns best to your project goals?
Continue reading How does Flutter work on Embedded at basysKom GmbH.
]]>The NodeOPCUA library is a very mature OPC UA implementation for TypeScript/JavaScript on the Node.js platform. Since the initial release eleven years ago, it has been continuously updated and extended by the main developer and various external contributors. Read this article to learn if NodeOPCUA might be the right OPC UA stack for your next project.
]]>Flutter, originally designed for mobile applications, has evolved to support a wide range of platforms, including embedded Linux. In this article, we explore why Flutter might be a viable choice for your embedded project, weigh its pros and cons, and compare it to Qt to see if it stands as a strong alternative.
Continue reading State of Flutter on Embedded Linux at basysKom GmbH.
]]>Translating a Qt application, can be a daunting task. This is an overview from Qt 5 to Qt 6 and what new functionality Qt 6.7 brings.
Continue reading Translating Qt Applications at basysKom GmbH.
]]>OPC UA client code that relies on hardcoded NodeIds is brittle and often only works with a specific OPC UA server instance. This article shows the proper way to write robust and portable OPC UA client code.
Continue reading OPC UA: Programming against Type Descriptions at basysKom GmbH.
]]>In our last post we had a look at how to set up QML Modules and how we can benefit from the QML Linter. Today we’re going to set up the QML Language Server to get an IDE-like experience in an editor of our choice. We’ll also help the the QML Compiler generate more efficient code.
]]>Qt 5.15 introduced “Automatic Type Registration”. With it, a C++ class can be marked as “QML_ELEMENT” to be automatically registered to the QML engine. Qt 6 takes this to the next level and builds all of its tooling around the so-called QML Modules. Let’s talk about what this new infrastructure means to your application in practice and how to benefit from it in an existing project.
Continue reading How To Use Modern QML Tooling in Practice at basysKom GmbH.
]]>With this blog post, we introduce the QtQuickComputeItem - a Qt Quick item that allows you to easily integrate compute shader into your Qt Quick Code.
Compute
Shader are used to perform arbitrary computations on the GPU. For
example, the screenshot below shows a Qt Quick application that
generates Gray Scott Reaction Diffusion patterns. The simulation is executed by a compute shader that is configured directly in QML.
Continue reading Use Compute Shader in Qt Quick at basysKom GmbH.
]]>Join us at the April 2024 edition of the OSADL COOL series to hear about using Flutter for Embedded Linux HMIs.
🗓️ Date & Time: 24th April 2024, 2 PM
🌐 Format: Online, 2-hour session
For some time now, Qt has been internally utilizing RHI (Rendering Hardware Interface), a new cross-platform technology for graphic rendering. Since Qt 6.6, this API has been semi-public, meaning that the API is mature for practical use but may still be subject to potential changes between major Qt versions.
In this blog post, we demonstrate how to to get started with RHI.
Continue reading Hello, RHI – How to get started with Qt RHI at basysKom GmbH.
]]>The RiveQtQuickPlugin has now integrated the latest rivecpp version. We've implemented rendering support for rive text elements. We ensured seamless text rendering compatibility across both software and hardware-backed renderers. Explore our latest blog post for a demonstration video and to learn about more rendering enhancements.
Continue reading RiveQtQuickPlugin now with Text Support at basysKom GmbH.
]]>Learn how to use Rive within Qt and Qt Quick.
Rive is a tool (and file format) that enables you to create interactive vector animations. With the RiveQtQuickPlugin, you can effortlessly load and display Rive animations within your QtQuick projects.
In this article, we will demonstrate how to embed Rive files, use different rendering backends, load artboards and trigger animations.
Continue reading Embed Rive in your QtQuick applications at basysKom GmbH.
]]>The type system of OPC UA permits the creation of complex and nested data types. With the merge of the generic struct decoding and encoding feature, the Qt OPC UA module has greatly improved the comfort of handling such types. But for large projects with lots of custom data types, its QVariant based interface might still feel a bit too complicated.
Continue reading Qt OPC UA – Data Type Code Generation at basysKom GmbH.
]]>OPC UA servers often use structured data types, for example when they are implementing a companion specification or exposing custom structured data types from a PLC program. Up to now, Qt OPC UA was just returning a binary blob when reading such a value and the decoding was left entirely to the user. Since OPC UA 1.04, there is a standardized way for a server to expose the data type description for custom data types. We have extended Qt OPC UA to use this information to make it much easier to encode and decode custom data types. The following article introduces the new API.
Continue reading Generic Struct Handling is Coming to Qt OPC UA at basysKom GmbH.
]]>Rive is a popular tool for vector animations. While the editor itself is a closed source commercial product, there are FOSS implementations for the player runtime. basysKom has developed a QtQuick integration based on the rive-cpp library. This article introduces the project and its current state.
]]>"OPC UA Reverse Connect" is a special connection mode in which the traditional roles of clients and servers during connection establishment are reversed - the server is responsible for initiating the connection to a client. This mode is intended for critical network environments (e.g. shop floor, production) where no inbound connections are allowed at all. basysKom has added support for "OPC UA Reverse Connect" to the open62541 stack. This article provides you with some entry points on how to use this new open62541 feature.
Continue reading OPC UA Reverse Connect for open62541 at basysKom GmbH.
]]>It has been a while since the last blog post covering Qt OPC UA news. This short update will outline what we have primarily worked on in 2022.
]]>basysKom supported the WEINIG Group during the development and implementation of the WWCS while using OPC UA and the open62541 stack: a customer showcase.
Continue reading Customer Showcase: OPC UA@Weinig at basysKom GmbH.
]]>Over the last months basysKom contributed a number of improvements to the OpenAPI Generator project. OpenAPI as a standard provides a structured way to define, implement, test and maintain REST-like APIs.
Continue reading FOSS-Update: basysKom contributions to the OpenAPI Generator at basysKom GmbH.
]]>In this blog we explain how to provide OPCUA open62541 as a ffi plugin to Dart and use it in Flutter. We highlight the pros' and give you the cons.
]]>The umati community did its first open source release of the "umati Dashboard OPC UA Client". To support this effort basysKom has worked with the umati community and ported the client to the open62541 OPC UA stack.
Continue reading Announcing the umati Dashboard-OPC UA-Client at basysKom GmbH.
]]>In this blog post, we give you a step-by-step guide on how to port shader code you might have in your Qt 5 application to Qt 6.
Continue reading Qt 6: How To port Shader Effects from Qt 5 at basysKom GmbH.
]]>We take a close look how to generate Qt specific code from Swagger/OpenAPI and explain how to integrate the generated code with a Qt Quick Application.
Continue reading Qt Quick and Swagger/OpenAPI – a tutorial at basysKom GmbH.
]]>Apache Avro is a framework for data serialization by Apache Hadoop. It is mainly used in big data processing but how does it compare to protobuf? Lets take a look.
Continue reading What is Apache Avro compared to Protobuf at basysKom GmbH.
]]>Companion specifications complement OPC UA with the goal of fostering interoperability. This article will provide an overview about implementing a Companion Specification with open62541.
Continue reading Implementing OPC UA Companion Specifications with open62541 at basysKom GmbH.
]]>So far programs using Qt OPC UA with the open62541 back-end produced quite a bit of chatter on stdout originating from the open62541 stack itself. Unfortunately there was no simple way to get rid of these low-level logs. We now provide a way to control this behavior.
Continue reading Qt OPC UA: Logging improvements in Qt 6.1 at basysKom GmbH.
]]>Porting a Qt 5 QML application to Qt 6 doesn't have to be difficult. We want to share the issues we had and how we solved them. Look out for your shaders and modules.
Continue reading Qt 6: How To port a Qt 5 application at basysKom GmbH.
]]>Something that has traditionally been complicated to achieve in Qt/QML, especially on low end hardware, is high performant list scrolling with complex delegates.
This has recently changed. In Qt 5.15, it is as simple as setting the new QML ListView property called reuseItems to true. For more details, have a look at the documentation.
In this blog post, I will explain how you can implement this feature in Qt Versions prior to 5.15.
Continue reading Speedup your Qt/QML list scrolling on lowend devices at basysKom GmbH.
]]>The Qt OPC UA module has been ported to CMake and will be part of Qt 6 right from the first release.
In addition to numerous bug fixes and improved test coverage, the open62541 plugin has been updated to open62541 v1.1 and uses OpenSSL for security support, thus removing the dependency on mbedTLS.
basysKom recently extended this plugin to also accept PEM-based input. PEM is a file format used for certificates and keys which is specified by an RFC and is a preferred format for a lot of open source software. The pull request has been merged and our contribution is available from the 1.1 branch (and will also hit the master branch soon).
Continue reading Support for PEM in the open62541 OpenSSL plugin at basysKom GmbH.
]]>In this blog we will cross compile Flutter for a generic ARMv7 Embedded Linux target. We will prepare the sdk, compile flutter and in the end run some demos.
Continue reading How to run Flutter on an Embedded Device at basysKom GmbH.
]]>The open62541 OPC UA stack with its Pub-Sub extension now supports MQTT over TLS as well as MQTT-brokers requiring a login (contributed by basysKom). This allows the direct communication between open62541 and the Azure IoT Hub and therefore highly simplifies the connection of OPC UA based IoT Devices to the cloud.
Continue reading Connect OPC UA with open62541 to MS Azure IoT Hub at basysKom GmbH.
]]>The Device Provisioning Service is a managed service running in the Azure cloud which supports automatic provisioning of IoT devices for IoT Hub.
The following sections will give a short introduction to the most important features of the Device Provisioning Service.
]]>In the third part of our series, we show how Protobuf messages from the IoT Hub can be processed in Azure Functions.
Continue reading How to consume Protobuf messages in Azure Functions (Part 3 of 4) at basysKom GmbH.
]]>Protobuf is a great choice to transfer data from a IoT device into the cloud. This blog will show you what Protobuf is, how it can be used with C++ and Javascript and how to handle updates without breaking backwards compatibility.
]]>In the first part of our series, we will connect a Qt app to the Microsoft Azure IoT Hub, use the Device Twin and show you how to authorize your IoT device to the cloud.
]]>IoT and IIoT applications are special compared to other kinds of cloud applications as they have to deal with devices existing "outside" of data centers.
The following series of articles provide an end-to-end overview of what Microsoft Azure offers to handle some of the challenges involved in connecting an IoT Device with the Cloud.
By working through this series you will learn about the major concepts involved in getting your IoT/IIoT device connected to Microsoft Azure. In our examples we will feature Qt, Node.Js, Protobuf from Google and much more to get you started.
]]>For the development of a successful smart product it is important to systematically analyse the benefit and thus also the value of the planned product for the customer.
Continue reading Customer-oriented ideas for smart products at basysKom GmbH.
]]>Digital transformation and smart products: The world around us is getting smarter and smarter and the Internet of Things continues to make its way into work and everyday life. And so there is hardly a product in the meantime where a technology-oriented person does not ask himself: „Is there an app for this?
Continue reading The digital transformation and smart products at basysKom GmbH.
]]>We would like to introduce our basysKom Toolbox to you. It is a state-of-the-art collection of best practices in agile management and software development and a valuable tool for every kickoff meeting.
Come and visit us on the Embedded World 2020 and take your own copy of the printed card deck with you!
Continue reading Awesome :-) The basysKom Toolbox at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 09 – Proper automated builds at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 08 – Implement QML Best Practices at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 23 – Agile – Story Points at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 22 – Agile – SCRUM and Kanban at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 21 – Agile – Definition of Done at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 18 – Agile – Retrospective at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 17 – Agile – Interdisciplinary Teams at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 16 – Agile – Definition of Ready at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 14 – Use the power of peer reviews at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 12 – Make use of unit tests at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 11 – Treat compiler warnings as errors at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 10 – Use the AdressSanitizer at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 07 – Make good use of compiler warnings at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 06 – Enable security hardening flags at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 05 – Enable build time checks for your QML files at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 04 – Do regular tests on the target at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
Continue reading 03 – Ci keeps your project healty at basysKom GmbH.
]]>MetaParsedown Exception: Could not get the post ID.
]]>Starting with the Qt 5.13 release, due end of May, the Qt OPC UA API in combination with the Unified Automation backend officially supports secure connections to servers (Sign or SignAndEncrypt message security mode). The following article outlines the changes to the Qt OPC UA API and shows how to get secure connections also with the open62541 backend.
Continue reading Secure Connections with Qt OPC UA at basysKom GmbH.
]]>An OPC UA server supporting historical access allows clients to access historical data or historical events. Such a server can act as a process or event historian. open62541-based servers were till recently completely missing the ability to support these use cases. basysKom has extended the server API to support access to historical data using the "read raw" functionality specified in OPC UA part 11. This allows to create a simple process historian. This article provides an overview about this API and a short tutorial how to use it.
]]>Ob beim automatischen Sortieren von Briefen, beim Erkennen von Materialfehlern in der Produktion oder bei der Vermessung: überall dort, wo Maschinen ihre Umwelt erkennen müssen, kommt Computer Vision zum Einsatz.
]]>With the release of Qt 5.12, Qt for Python is officially supported and can be used to write full-fledged Qt applications using Python as the main programming language.
This prompted us to also take a closer look at the bindings (the Python module is called PySide2) and also the underlying technology, namely the binding generator called Shiboken2.
Continue reading Using Shiboken2 to create Python bindings for a Qt library at basysKom GmbH.
]]>Getrieben durch Themen wie Industrie 4.0 und IoT hat sich OPC UA als durchgängiger Kommunikationsstandard im Maschinenbau und in der Industrieautomatisierung etabliert. Mit Qt steht eine offene und flexible Umgebung zur Umsetzung anspruchsvoller HMIs zur Verfügung. Das neue von uns entwickelte Modul Qt OPC UA vereinfacht nun die Integration von Maschinen und Qt-Anwendungen weiter.
]]>Qt OPC UA is not included in the Qt installer and must be built from source.
The official default backend is based on the open62541 library which has minimal external dependencies and can be built for all supported platforms (Linux, Windows (MinGW32, MSVC 2017), Android, macOS and iOS).
Continue reading Building Qt OPC UA with open62541 at basysKom GmbH.
]]>OPC UA is a central element of the Industry 4.0 story providing seamless communication between IT and industrial production systems. basysKom has initiated Qt OPC UA in 2015 with the goal of providing an out of the box Qt API for OPC UA. In 2017 basysKom, together with The Qt Company, has finished up a Technology Preview of that API. It will be available with the upcoming Qt 5.11 release end of May.
Continue reading OPC UA support in Qt 5.11 Release at basysKom GmbH.
]]>basysKom has initiated Qt OpcUa which is a module offering support for the industrial communication standard OPC UA. This module has been contributed by us to the Qt Project. The Qt OpcUa API wraps existing OPC UA implementations. Currently, implementations for freeopcua and open62541 are available.
Continue reading Want to give Qt OpcUa a try? at basysKom GmbH.
]]>The field of web technology is evolving at a rapid pace. This article presents a stack proven in cross-platform application development projects and our experience gathered with it.
]]>If you missed our session "A deep dive into QML memory management internals" during the QtWS15 you can now watch a recording here or have a look at the slides. Enjoy!
Continue reading QtWS15: A deep dive into QML memory management internals at basysKom GmbH.
]]>How much does a property you define in QML code cost in terms of memory?
Continue reading Storage of QML defined properties explained (Part 1) at basysKom GmbH.
]]>basysKom has been working on the new Qt module QtOpcUa which brings support for the industrial communication standard OPC UA into the Qt world. We recently have offered this module as a contribution to the Qt-project. It is currently under review, we aim to make it a tech preview in Qt 5.7.
basysKom will show QtOpcUa based demos at the Qt World Summit 06./07.10.2015 in Berlin. We are happy to discuss use cases, improvements and OPC UA in general. Looking forward to see you in Berlin.
]]>