Skip to content

Latest commit

 

History

History
143 lines (104 loc) · 3.38 KB

README.md

File metadata and controls

143 lines (104 loc) · 3.38 KB

HiveCommand

SCADA system for IIOT 4.0

Getting Started

Developer pathway

Dependencies

HexHive Gateway

git clone 

cd HiveCommand/

yarn

Env Configuration

Create a .env file in packages/app/hivecommand-backend and populate with the following

key description
DATABASE_URL Postgres db connection url prefixed with postgresql://

Run the initial prisma migrations

cd packages/app/hivecommand-db

npx prisma migrate dev

Startup

Start gateway, backend + web-frontend

hexhive dev

cd packages/app/hivecommand-backend/; yarn start

cd packages/app/hivecommand-frontend/; yarn start

Typescript references

To keep typescript inference throughout the monorepo follow the below steps;

Keep the root tsconfig.json up to date with project references Extend each project from the root tsconfig.json Add composite to each module that is re-used Add references at the bottom of modules that use shared modules

For webpack ts-loader with projectReferences and tsconfig-paths-webpack-plugin must be setup

Integrator pathway

Device onboarding

Architecture

┌─────────────────────┐         
│EdgeDevice (RPi / PC)│         
└┬────────────────────┘         
┌▽────────────────┐             
│SCADA Client     │             
└┬───────────────┬┘             
┌▽─────────────┐┌▽─────────────┐
│Evented values││PLC Driver Bus│
└┬─────────────┘└┬─────────────┘
┌▽───┐┌──────────▽┐             
│MQTT││PLC        │             
└────┘└───────────┘             

Available SCADA Clients

Available PLC Drivers

Testing

npx lerna run test

Coverage is needed across the entire repo to stop regressions

Structure

packages/
  app/ - WebApp resources
    hivecommand-api/
    hivecommand-backend/
    hivecommand-frontend/
    hivecommand-native/
    hivecommand-native-dev/
  clients/
    iot-cli/
  communication/ - MQTT, OPC, Driver libraries
    amqp-client/
    amqp-hub/
    opc-client/
    opc-ethernet-ip-bridge/
    opc-amqp-bridge/
    opc-server/
    opc-utils/
    rabbitmq-auth/
    sms-utils/
  core/ - DB defs, scripting helpers, local-bridge
    command-data/
    command-local-sidecar/
    command-scripting/
    command-subscription-lock/
  core-ui/ - Nodes, Remote Components, Canvas
    command-canvas-nodes/
    command-remote-components/
    command-surface/
  infrastructure/ - Infrastructure (Pulumi)
    main/
    supporting/
  network/ - WAN Network (Auth/Discovery + SCADA)
    global-discovery-network/
    mqtt-auth-server/

Dependencies

Provide jump-point for dependencies that are networked

HexHive UI