Reduce coding time and launch your software quickly with our OPC UA Client C++ SDK

Our SDK implements an OPC UA communication stack and provides high-level classes to connect to OPC UA Servers & send OPC UA requests.

How It Stands Out

Developing an OPC UA Client Application from scratch can be a tedious process. Just like a Carpenter needs sharpened and easy to use tools to do his job in a short time and with high quality, you need a handy software library that implements all heavy lift OPC UA staff, so you can focus on your application logic. Here’s what makes it stand out:

Shorten your Time to Market and Reduce Development Costs:

Since the SDK comes with many pre-built functions and automatically handles OPC UA communication, your Developers don’t have to spend weeks building the code from scratch. Also, our SDK has been thoroughly tested, so you don’t have to agonize over constant debugging.
These features make it quicker to produce and launch software to the market, which leads to faster profits. Plus, we handle the maintenance for you so you don’t have to spend more money and time on maintainance.

Minimal and Clean Coding:

Designed by Developers for Developers, this SDK was created with minimal code to communicate with OPC UA Servers. C++ features like lambda, inline functions, and futures make it easier to have clean and clutter-free code. Plus, the simple coding makes it easier to learn and implement for your team.
As your business needs change, you can rely on its minimal coding function for flexibility and easy modification. Whether you’re adding new machinery, expanding product lines, or integrating additional data sources, you can use our simple SDK to adjust your systems quickly.

Stability & Scalability:

Included features like automatic re-connection to servers and smart pointers for memory management make sure this SDK is stable and reliable. This eliminates memory leaks, which can be costly and time-consuming to fix in manufacturing fields.
Moreover, you can easily scale this software due to its ability to automatically handle complex data at runtime.

Where Can I Run It?

 

High-performance OPC UA applications that run in PC or cloud environments would benefit the most from our SDK. But, you could also easily run it on simpler hardware like a Raspberry Pi.

Who is It For?

 

  • Software Developers and Engineers: Most of our clients are working on industrial automation, manufacturing, and IIoT applications. They want to save time and reduce coding complexity when implementing OPC UA communication. In short, they’re the kind of Software developers who like to work smarter, not harder!
  • Industrial and Manufacturing Companies: Businesses looking for a high-performance, modern C++ SDK that integrates seamlessly with their applications.

More Features

Modern C++ Advantages

Other SDKs don’t use the power of standard C++ capabilities introduced in its modern versions (C++ 17). These SDKs sometimes use their custom-type definition for even basic data types like bool or float, not to mention more complex types like std::string or std::vector.

Our SDK mainly uses standard C++ data types and was designed with a “Low Code” philosophy in mind. So Developers using it can reduce their stress levels by writing minimal code lines. This means your apps can be developed faster, leading to a faster time to market and lower product costs. 

Clean Coding & Easy OPC Request Linking:

This allows you to store the value of any C++ variable type in a request context. When you send a request to an OPC UA server, you can attach extra data (like a variable or object). Later, when the response arrives, the data is still available alongside the request and response. This is useful because it helps you keep track of where the response should go in your application.

If you need to process the data later, you can attach a smart pointer to an object, ensuring it’s available when the response comes back. Overall, this avoids manual tracking and makes your code cleaner & more efficient.

Complex Data Type Support

Many SDKs require you to define all possible data structures in advance to generate corresponding classes for each type. With our SDK, you don’t need to spend time predefining complex data types because it figures it out automatically.

Our SDK complex data types are treated as key-value pairs, so you can easily loop through them and access their values without needing custom classes for each type.

Synchronous and Asynchronous Callbacks

When a request is sent, the result is returned using C++ “future”. You can wait for the response synchronously. Or, you can get the response asynchronously by handling callbacks. By using callbacks, there’s no need to implement interfaces or functions because you can just use lambda (small, inline) functions to handle the response.

Eliminate Data Leaks & Auto Re-Connect to Servers

This feature eliminates memory leaks by using smart pointers for object lifetime management. It also automatically re-connects to servers. After reconnecting, subscriptions and monitored items are created automatically.

Secure Mode Communication

The system automatically generates self-signed root certificates and application instance certificates signed by them. Our supported security policies are Basic256Sha256 and None.

These can create a secure channel in secured mode (sign and encryption).

For more technical details please refer to our online User Manual by clicking the button below.

To see the SDK in action, please clone the sample application from the Git repository below:

Try for Free

Purchase:

Your FAQs

Why should I use One-Way Automation’s SDK when there are open-source projects for C or C++?

An open-source library is usually more financially feasible. But since your Developers could spend hours customizing the SDK with no customer support, the number of hours spent would outweigh the cost savings. Also, while open-source libraries are free, you wouldn’t have control and ownership over it. Sometimes you can customize your copy of the open-source code, but merging the code to the main code branch might be challenging. Plus, open-source tools are usually owned by library managers who are often hard to reach. So you might end up tediously maintaining your version of the library with no support. Therefore, purchasing our SDK with 24/7 support, true ownership, and endless customization could be a better choice.

Can I use it to code applications for Windows using Visual Studio, or Linux with Raspberry Pi?

Yes, the SDK works on multiple platforms!

What are your licensing options?

We have two types of licenses:

  • Binary License: This features the rights to use header files and pre-built binary libraries for one of the supported platforms (ex: Linux) for one Developer. Binaries can be integrated into commercial end-product distribution packages.
  • Source Code License: This features the rights to a full source code that can build binary libraries for any supported platform for one Developer. These binary libraries can be integrated into commercial end-product distribution packages. Please note that the source code you’re assigned cannot be re-distributed.
Which development tools do I need to use the SDK?

If using Windows, CMake, and Visual Studio Community Edition (2022 or 2019) are needed.
If using Linux and Raspberry Pi, please employ GCC and CMake.

Do you have free trials or an evaluation version?

Yes, the Binary Edition is available to download via our online store for testing purposes. It has a limitation: the process exits after running for one hour.

Please select the desired platform version (Windows, Linux, or Raspberry Pi)  to download via the tables above.

Can I write a multi-threaded application with this SDK?

Yes. Plus, you don’t need support for single-thread mode.