Skip to content

Contents

About

Version

Contributors

License

Introduction

The HCC2

Engineering Skill base for the SDK

External References

HCC2 Architecture

System Architecture Overview

SDK Overview

Additional Components

Hardware

Libraries

Design Considerations

.Net Version

Docker Image selection

Programming Techniques

Requirements

The Development machine

Physical requirements

Software Requirements

VM Deployment Overview

In this section

Hardware Networking Setup

Development SDK VM Creation

Installation Procedure

Software Installation

IDE Installation

Installing Development Tools

HCC2 Development Tools and Samples

Edge SDK Dev Tools Setup

Application Overview

Modbus Configuration

HCC2 Modbus TCP Server Configuration

Application Modbus TCP Client Configuration

Alarm Configuration

Alarm Mapping

Application Development

Application Running & Testing

Build and Deploy Overview

Building Containers

Example Dockerfile

Creating Images locally (Docker Desktop)

Container Preparation

Editing docker-compose.yml

Application Signing

Pre-Requisites

The Packaging and Signing Process

Application Deployment (EPM)

Downloading the EPM Software

Deploying A Signed Application

Should Something Go Wrong

HCC2 Application Signing

Developer Mode License

Removal of Developer Mode License

HCC2 OEM Signing Keys

User Interfaces

Rules

Best Practices

General Application Considerations

Storage Considerations

Shared Data

Setup via Environment Variables and Parameters

Base Images

c# (.net 6) containers

python containers

Google Distroless Images

Other Alternatives

Multi Stage Builds

Docker Labels

Open Container Initiative - Annotations

Static vs Dynamic

Example

Docker Inspect

Writing Efficient Dockerfiles

Minimize Layers

Use .dockerignore

Package Installation

Ordering of Instructions

Avoid latest Tags

Further reading

Resource Limits

Required

Strongly Suggested

Docker Compose File Requirements

Version Specification

Naming

Run the Container in Read Only

Container Restart Policy

Dependencies Among Containers

Network Port Mapping

Resource Limits

Environment Variables

Network and Volume Naming

References

IP Port Considerations

Private subnet

Other services

Port numbers

NAT (Network Address Translation)

Inbound (Internal or Docker Services)

Application Logging

Application Log Format

Rules for logging

Feedback