Design Considerations
.Net Version
Currently the HCC2 has been optimized to run with a .Net 6.0 base layer. This allows this layer to be utilised for each container requiring it, and thus negates the need to deploy the entire framework for each container. Therefore, it is strongly recommended that .Net 6.0 be the target framework for your applications, unless you require a specific feature only available in more recent .Net releases. A recommended .Net 8.0 base layer will be released when finalized.
Docker Image selection
Sensia has produced images for Python and C# applications and it is recommended that these be deployed by the docker-compose.yml
NOTE:- At the time of writing, these images include the .Net 6.0 framework.
Language | Container Image |
---|---|
Python | qratehcc2sdk.azurecr.io/python:3.12-slim-2024-04-19-debugprodbuild |
C# | qratehcc2sdk.azurecr.io/dotnet-sdk:6.0-2023-03-02-build |
Applications can be written in many languages. Choose one that you have experience with, ensuring it is compatible with interfacing with the HCC2 to interact with data (via Modbus). To reduce storage overheads, ensure you use one of the preferred base images.
Programming Techniques
The HCC2, although powerful, has finite resources. Good programming practices should be adhered to, including:
- Careful management of Memory and CPU usage
- Avoidance of "Busy loops"
- Cautious use of Flash Storage from both a size perspective and rate of update
Refer to the Best Practices section for further advice and recommendations.