Introduction
This document describes the software development kit (SDK) for Sensia's QRATE Hyperconverged Edge Controller (HCC2). It is written to help software engineers design, build, and deploy applications to the HCC2 device.
The objective of the SDK is to provide the tools required to build and test secure applications to be deployed on the HCC2 hardware. Such applications will interface with HCC2 core software components, reading and writing data from/to HCC2 core, performing calculations, writebacks, and controls to HCC2 peripherals in near real time.
Detailed instructions for creating a build pipeline are outside the scope of this document, but guidance on how to use the tools within a build pipeline are provided where appropriate.
The HCC2 Development Tools and Samples can be downloaded from the Github repository at: https://github.com/sensiaglobal/qratehcc2sdk
To maximize the use of these tools, a working knowledge of additional components is recommended, as detailed in the Engineering Skill Base for the SDK section.
The SDK does not provide instruction for third-party tools, languages, and services. Further reading is advised on topics that are unfamiliar.
These are the available SDKs:
- Modbus : for basic business logic and limited HCC2 integration
- REST API : for integrating an application with access to responsive data and rich metadata
The HCC2
The HCC2 is a precision-data acquisition and edge controller device designed for high-speed operation in harsh environments. It is suited for applications requiring a wide temperature range and low power consumption.
The HCC2 can operate as an RTU/PLC, edge device controller and gateway, or as part of a larger integrated network of automation technologies. The data it acquires can be used locally for control or remotely for alarm and event reporting and remote data analytics. Communication options include serial, Ethernet, and wireless.
User instructions can be found in these external documents:
- HCC2 Software User Manual
- HCC2 Hardware User Manual
See External References for more information.
A detailed description of HCC2 architecture can be found on the Architecture page.
Engineering Skill Base for the SDK
The SDK tools have been tested using the Ubuntu operating system (ver 22.04).
The following table lists the skill sets required to deploy a custom application using this SDK.
Skill Set | Skill Level | Requirement |
---|---|---|
Linux | Medium | Preferably Ubuntu1. Debian has also been used. |
Modbus Protocol | Low | Understanding of the data types and addressing structure. 2 |
RESTful APIs | Medium | Understanding of JSON, Swagger, and REST endpoint interaction. 2 |
Docker | Medium | Docker Desktop for either Linux or Windows, including + Docker file structure + Docker yml files for container deployment |
IDE Familiarity | Medium | The SDK has been tested using VS Code on a Debian machine3 |
Coding Language4 + Python + C# + JavaScript + Go |
Medium | Understanding of your chosen coding language and awareness of best practices for: + Error handling / management + Thread creation / usage + .NET architecture and features |
-
The Linux machine can be one (or more) of:
+ Physical Linux box
+ Linux Virtual Machine
+ WSL (Windows Subsystem For Linux) ↩ -
SDK users are not limited to VS Code.
Any IDE that allows users to develop / compile your application can be used. However, the SDK has only been tested using:
+ VS Code for Ubuntu & Windows 11
+ VS2022 ↩ -
Technically any language that can be compiled to run within a container in the HCC2 x86 environment can be used. However, support for interacting with the data available in the HCC2 via Modbus (see point 2) is the responsibility of the developer. ↩