Web based tool to automatically generate logic flow diagrams for Foxboro I/A series DCS based on configuration files dumped from the ICC.
Warning
This app is entirely experimental and an early work in progress, designed for one specific control system and may need to be adapted for others.
-
packages/app
is the main web application built on Quart, broken up into blueprints and extensions detailed in sections below. -
packages/foxdata
encapsulates the data side of the application, i.e. data models and parsing. -
packages/pyd3graphviz
serves distribution files from the d3-graphviz Node package. -
packages/pyfastmurmur3
is a thin wrapper around the Rust crate fastmurmur3, used for fast non-cryptographic string hashing. -
packages/pyhtmx
serves distribution files from the HTMX Node package and provides helper functionality for using HTMX with Python. -
packages/util
contains various helper functions and utilities not specific to the project.
-
blocks
has the block detail/diagram views and graphing logic. -
main
has the main page templates, navigation, error handling, etc. -
search
has the block search view for querying and filtering blocks from the data source.
-
D3Graphviz
integratespyd3graphviz
to serve static files from the Node package. -
FoxData
integratesfoxdata
for initialising and querying data from the context of a Quart app. -
Htmx
integratespyhtmx
to serve static files from the Node package and inserts HTMX related functionality into the QuartRequest
andResponse
objects.
Important
Docker is required and the directory containing your ICC configuration files must be accessible locally.
- Build the
icc_dumps
volume by runningscripts/build_volume.bat
with the path to the directory containing your ICC configuration files as an argument, i.e../scripts/build_volume ../icc_dumps
- Start the server using
docker-compose up
- Access the application in the browser at
127.0.0.1:5000