Hat Core - remote control and monitoring framework core
Hat Open is open-source framework of tools and libraries for developing applications used for remote monitoring, control and management of intelligent electronic devices such as IoT devices, PLCs, industrial automation or home automation systems.
Hat Core is part of Hat Open providing collection of components and libraries on which Hat Open system is based.
Development of Hat Open and associated repositories is sponsored by Končar - Power Plant and Electric Traction Engineering Inc. (Končar KET
For more information see:
- Hat Core homepage - https://core.hat-open.com
- Hat Core documentation - https://core.hat-open.com/docs
- Hat Core git repository - https://github.com/hat-open/hat-core.git
- Hat Core issues - https://github.com/hat-open/hat-core/issues
::: warning ::: title Warning :::
This project is currently in state of active development. Features, functionality and API are unstable. :::
Installation
Hat Open consists of multiple interconnected parts. Each part implements a specific functionality. For easier reusability, provided implementation is split into multiple packages:
Python packages
Python packages require Python 3.8 or 3.9 and can be installed with `pip`:
$ pip install <package-name>
where package-name
is one of following:
Utility library
Async utility library
JSON library
Qt utility library
Parsing expression grammar
Statechart engine
Simple binary serialization
Chatter communication protocol
Juggler communication protocol
Python Duktape JS wrapper
Hat specific sqlite3 build
ASN.1 parser and encoder
Communication drivers
Syslog server and logging handler
Simple cross-platform daemon/service manager
Redundancy and service discovery server
Event pub/sub communication and storage
Remote communication device gateway
GUI server
JavaScript packages
JavaScript packages can be installed with `npm`:
$ npm install <package-name>
where package-name
is one of following:
Utility module
Virtual DOM renderer
Async Future implementation
Juggler communication protocol client library
Development
Platforms supported as development environment include Linux (possibly other POSIX systems) and Windows (with MSYS2 and CPython).
Platform specific prerequisites
-
Archlinux:
$ pacman -S $(< requirements.archlinux.txt)
-
Ubuntu:
$ apt install $(< requirements.ubuntu.txt)
-
Windows:
$ pacman -S $(< requirements.msys2.txt)
Python prerequisites
$ pip install -r requirements.pip.txt
Build
Build tool used for Hat is pydoit ([http://pydoit.org/]{.title-ref}). It is included as one of python prerequisites and should be available after [pip]{.title-ref} requirements installation.
For listing available doit tasks, use:
$ doit list
Default task:
$ doit
creates [dist]{.title-ref} folder containing built packages.
Documentation
Documentation can be built with:
$ doit docs
which creates [build/docs]{.title-ref} folder containing documentation.
Tests
Tests can be run with [doit]{.title-ref} task test
.
-
Unit tests:
$ doit test test_unit
-
System tests:
$ doit test test_sys
-
Performance tests:
$ doit test test_perf
License
Copyright 2020-2021 Hat Open AUTHORS
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.