├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .dockerignore ├── .gitattributes ├── .github └── workflows │ ├── docker.yml │ └── e2e.yml ├── .gitignore ├── .gitmodules ├── .gitpod.yml ├── CMakeLists.txt ├── COPYING ├── Dockerfile ├── Dockerfile.gitpod ├── Procfile.multi ├── Procfile.single ├── README.md ├── config ├── multi-device │ ├── device-1.xml │ └── device-2.xml ├── phenix-image.yml ├── single-device │ ├── device.xml │ └── node-red-hmi.json └── wind-turbine │ ├── blade-1.xml │ ├── blade-2.xml │ ├── blade-3.xml │ ├── main-controller.xml │ ├── signal-converter.xml │ └── yaw-controller.xml ├── data └── weather.csv ├── install-node-red.sh ├── ot-sim.code-workspace ├── src ├── c++ │ ├── .vscode │ │ └── c_cpp_properties.json │ ├── CMakeLists.txt │ ├── cmd │ │ ├── ot-sim-dnp3-module │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ └── ot-sim-e2e-dnp3-master │ │ │ ├── CMakeLists.txt │ │ │ ├── handler.hpp │ │ │ └── main.cpp │ ├── dnp3 │ │ ├── CMakeLists.txt │ │ ├── client.cpp │ │ ├── client.hpp │ │ ├── common.hpp │ │ ├── master.cpp │ │ ├── master.hpp │ │ ├── outstation.cpp │ │ ├── outstation.hpp │ │ ├── server.cpp │ │ └── server.hpp │ └── msgbus │ │ ├── CMakeLists.txt │ │ ├── envelope.hpp │ │ ├── metrics.cpp │ │ ├── metrics.hpp │ │ ├── pusher.cpp │ │ ├── pusher.hpp │ │ ├── subscriber.cpp │ │ └── subscriber.hpp ├── c │ ├── .vscode │ │ └── c_cpp_properties.json │ ├── CMakeLists.txt │ └── cmd │ │ └── ot-sim-message-bus │ │ ├── CMakeLists.txt │ │ └── main.c ├── go │ ├── .gitignore │ ├── Makefile │ ├── cmd │ │ ├── ot-sim-cpu-module │ │ │ └── main.go │ │ ├── ot-sim-logic-module │ │ │ └── main.go │ │ ├── ot-sim-modbus-module │ │ │ └── main.go │ │ ├── ot-sim-mqtt-module │ │ │ └── main.go │ │ ├── ot-sim-node-red-module │ │ │ └── main.go │ │ ├── ot-sim-sunspec-module │ │ │ └── main.go │ │ ├── ot-sim-tailscale-module │ │ │ └── main.go │ │ └── ot-sim-telnet-module │ │ │ └── main.go │ ├── cpu │ │ ├── api.go │ │ ├── context.go │ │ ├── cpu.go │ │ ├── execute.go │ │ ├── internal.go │ │ ├── metrics.go │ │ └── monitor.go │ ├── go.mod │ ├── go.sum │ ├── logic │ │ ├── logic.go │ │ └── logic_test.go │ ├── modbus │ │ ├── client │ │ │ └── client.go │ │ ├── modbus.go │ │ ├── server │ │ │ ├── coil.go │ │ │ ├── discrete.go │ │ │ ├── holding.go │ │ │ ├── input.go │ │ │ └── server.go │ │ └── util │ │ │ ├── bytes.go │ │ │ ├── bytes_test.go │ │ │ ├── register.go │ │ │ └── register_test.go │ ├── mqtt │ │ ├── mqtt.go │ │ └── types.go │ ├── msgbus │ │ ├── envelope.go │ │ ├── health.go │ │ ├── metric.go │ │ ├── module.go │ │ ├── pusher.go │ │ ├── runtime.go │ │ └── subscriber.go │ ├── nodered │ │ ├── nodered.go │ │ └── settings.js.tmpl │ ├── ot-sim.go │ ├── staticcheck.conf │ ├── sunspec │ │ ├── README.md │ │ ├── client │ │ │ ├── client.go │ │ │ └── util.go │ │ ├── common │ │ │ ├── common.go │ │ │ ├── register.go │ │ │ ├── schema.go │ │ │ └── types.go │ │ ├── server │ │ │ └── server.go │ │ └── sunspec.go │ ├── tailscale │ │ └── tailscale.go │ ├── telnet │ │ ├── banner.go │ │ ├── modules.go │ │ └── telnet.go │ └── util │ │ ├── context.go │ │ ├── exit.go │ │ ├── sigterm │ │ └── context.go │ │ └── slice.go ├── js │ └── node-red │ │ ├── icons │ │ └── zeromq.png │ │ ├── ot-sim.html │ │ ├── ot-sim.js │ │ └── package.json ├── old │ ├── README.md │ ├── c │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── cmd │ │ │ └── ot-sim-io-module │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ └── msgbus │ │ │ ├── debugger.c │ │ │ ├── logger.c │ │ │ ├── msgbus-ini-example.c │ │ │ └── msgbus-test.c │ └── python │ │ └── dnp3 │ │ ├── client.py │ │ ├── dnp3.py │ │ ├── envelope.py │ │ ├── logger.py │ │ ├── master.py │ │ ├── outstation.py │ │ ├── point.py │ │ ├── server.py │ │ └── variations.py └── python │ ├── .gitignore │ ├── otsim │ ├── __init__.py │ ├── ground_truth │ │ ├── __init__.py │ │ └── ground_truth.py │ ├── helics_helper │ │ ├── README.md │ │ ├── __init__.py │ │ └── version.py │ ├── io │ │ ├── __init__.py │ │ └── io.py │ ├── msgbus │ │ ├── __init__.py │ │ ├── envelope.py │ │ ├── metrics.py │ │ ├── pusher.py │ │ └── subscriber.py │ ├── rpi_gpio │ │ ├── README.md │ │ ├── __init__.py │ │ └── rpi_gpio.py │ └── wind_turbine │ │ ├── __init__.py │ │ ├── anemometer │ │ ├── __init__.py │ │ └── anemometer.py │ │ └── power_output │ │ ├── __init__.py │ │ └── power_output.py │ └── setup.py └── testing ├── dnp3 ├── master.py └── visitors.py └── e2e ├── Procfile ├── README.md ├── configs ├── device-1.xml └── device-2.xml └── helics ├── broker.py ├── data └── IEEE13 │ ├── IEEE13Node_BusXY.csv │ ├── IEEE13Nodeckt.dss │ ├── IEEELineCodes.dss │ └── LoadShape1.csv └── opendss-federate.py /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.devcontainer/Dockerfile -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | build 2 | Dockerfile 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.github/workflows/docker.yml -------------------------------------------------------------------------------- /.github/workflows/e2e.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.github/workflows/e2e.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | build 3 | 4 | __pycache__ 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.gitmodules -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/.gitpod.yml -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/COPYING -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/Dockerfile -------------------------------------------------------------------------------- /Dockerfile.gitpod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/Dockerfile.gitpod -------------------------------------------------------------------------------- /Procfile.multi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/Procfile.multi -------------------------------------------------------------------------------- /Procfile.single: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/Procfile.single -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/README.md -------------------------------------------------------------------------------- /config/multi-device/device-1.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/multi-device/device-1.xml -------------------------------------------------------------------------------- /config/multi-device/device-2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/multi-device/device-2.xml -------------------------------------------------------------------------------- /config/phenix-image.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/phenix-image.yml -------------------------------------------------------------------------------- /config/single-device/device.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/single-device/device.xml -------------------------------------------------------------------------------- /config/single-device/node-red-hmi.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/single-device/node-red-hmi.json -------------------------------------------------------------------------------- /config/wind-turbine/blade-1.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/blade-1.xml -------------------------------------------------------------------------------- /config/wind-turbine/blade-2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/blade-2.xml -------------------------------------------------------------------------------- /config/wind-turbine/blade-3.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/blade-3.xml -------------------------------------------------------------------------------- /config/wind-turbine/main-controller.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/main-controller.xml -------------------------------------------------------------------------------- /config/wind-turbine/signal-converter.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/signal-converter.xml -------------------------------------------------------------------------------- /config/wind-turbine/yaw-controller.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/config/wind-turbine/yaw-controller.xml -------------------------------------------------------------------------------- /data/weather.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/data/weather.csv -------------------------------------------------------------------------------- /install-node-red.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/install-node-red.sh -------------------------------------------------------------------------------- /ot-sim.code-workspace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/ot-sim.code-workspace -------------------------------------------------------------------------------- /src/c++/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/.vscode/c_cpp_properties.json -------------------------------------------------------------------------------- /src/c++/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/CMakeLists.txt -------------------------------------------------------------------------------- /src/c++/cmd/ot-sim-dnp3-module/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/cmd/ot-sim-dnp3-module/CMakeLists.txt -------------------------------------------------------------------------------- /src/c++/cmd/ot-sim-dnp3-module/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/cmd/ot-sim-dnp3-module/main.cpp -------------------------------------------------------------------------------- /src/c++/cmd/ot-sim-e2e-dnp3-master/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/cmd/ot-sim-e2e-dnp3-master/CMakeLists.txt -------------------------------------------------------------------------------- /src/c++/cmd/ot-sim-e2e-dnp3-master/handler.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/cmd/ot-sim-e2e-dnp3-master/handler.hpp -------------------------------------------------------------------------------- /src/c++/cmd/ot-sim-e2e-dnp3-master/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/cmd/ot-sim-e2e-dnp3-master/main.cpp -------------------------------------------------------------------------------- /src/c++/dnp3/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/CMakeLists.txt -------------------------------------------------------------------------------- /src/c++/dnp3/client.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/client.cpp -------------------------------------------------------------------------------- /src/c++/dnp3/client.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/client.hpp -------------------------------------------------------------------------------- /src/c++/dnp3/common.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/common.hpp -------------------------------------------------------------------------------- /src/c++/dnp3/master.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/master.cpp -------------------------------------------------------------------------------- /src/c++/dnp3/master.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/master.hpp -------------------------------------------------------------------------------- /src/c++/dnp3/outstation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/outstation.cpp -------------------------------------------------------------------------------- /src/c++/dnp3/outstation.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/outstation.hpp -------------------------------------------------------------------------------- /src/c++/dnp3/server.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/server.cpp -------------------------------------------------------------------------------- /src/c++/dnp3/server.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/dnp3/server.hpp -------------------------------------------------------------------------------- /src/c++/msgbus/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/CMakeLists.txt -------------------------------------------------------------------------------- /src/c++/msgbus/envelope.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/envelope.hpp -------------------------------------------------------------------------------- /src/c++/msgbus/metrics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/metrics.cpp -------------------------------------------------------------------------------- /src/c++/msgbus/metrics.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/metrics.hpp -------------------------------------------------------------------------------- /src/c++/msgbus/pusher.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/pusher.cpp -------------------------------------------------------------------------------- /src/c++/msgbus/pusher.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/pusher.hpp -------------------------------------------------------------------------------- /src/c++/msgbus/subscriber.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/subscriber.cpp -------------------------------------------------------------------------------- /src/c++/msgbus/subscriber.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c++/msgbus/subscriber.hpp -------------------------------------------------------------------------------- /src/c/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c/.vscode/c_cpp_properties.json -------------------------------------------------------------------------------- /src/c/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(cmd/ot-sim-message-bus) 2 | -------------------------------------------------------------------------------- /src/c/cmd/ot-sim-message-bus/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c/cmd/ot-sim-message-bus/CMakeLists.txt -------------------------------------------------------------------------------- /src/c/cmd/ot-sim-message-bus/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/c/cmd/ot-sim-message-bus/main.c -------------------------------------------------------------------------------- /src/go/.gitignore: -------------------------------------------------------------------------------- 1 | sunspec/types.go 2 | -------------------------------------------------------------------------------- /src/go/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/Makefile -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-cpu-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-cpu-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-logic-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-logic-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-modbus-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-modbus-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-mqtt-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-mqtt-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-node-red-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-node-red-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-sunspec-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-sunspec-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-tailscale-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-tailscale-module/main.go -------------------------------------------------------------------------------- /src/go/cmd/ot-sim-telnet-module/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cmd/ot-sim-telnet-module/main.go -------------------------------------------------------------------------------- /src/go/cpu/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/api.go -------------------------------------------------------------------------------- /src/go/cpu/context.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/context.go -------------------------------------------------------------------------------- /src/go/cpu/cpu.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/cpu.go -------------------------------------------------------------------------------- /src/go/cpu/execute.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/execute.go -------------------------------------------------------------------------------- /src/go/cpu/internal.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/internal.go -------------------------------------------------------------------------------- /src/go/cpu/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/metrics.go -------------------------------------------------------------------------------- /src/go/cpu/monitor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/cpu/monitor.go -------------------------------------------------------------------------------- /src/go/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/go.mod -------------------------------------------------------------------------------- /src/go/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/go.sum -------------------------------------------------------------------------------- /src/go/logic/logic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/logic/logic.go -------------------------------------------------------------------------------- /src/go/logic/logic_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/logic/logic_test.go -------------------------------------------------------------------------------- /src/go/modbus/client/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/client/client.go -------------------------------------------------------------------------------- /src/go/modbus/modbus.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/modbus.go -------------------------------------------------------------------------------- /src/go/modbus/server/coil.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/server/coil.go -------------------------------------------------------------------------------- /src/go/modbus/server/discrete.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/server/discrete.go -------------------------------------------------------------------------------- /src/go/modbus/server/holding.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/server/holding.go -------------------------------------------------------------------------------- /src/go/modbus/server/input.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/server/input.go -------------------------------------------------------------------------------- /src/go/modbus/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/server/server.go -------------------------------------------------------------------------------- /src/go/modbus/util/bytes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/util/bytes.go -------------------------------------------------------------------------------- /src/go/modbus/util/bytes_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/util/bytes_test.go -------------------------------------------------------------------------------- /src/go/modbus/util/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/util/register.go -------------------------------------------------------------------------------- /src/go/modbus/util/register_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/modbus/util/register_test.go -------------------------------------------------------------------------------- /src/go/mqtt/mqtt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/mqtt/mqtt.go -------------------------------------------------------------------------------- /src/go/mqtt/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/mqtt/types.go -------------------------------------------------------------------------------- /src/go/msgbus/envelope.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/envelope.go -------------------------------------------------------------------------------- /src/go/msgbus/health.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/health.go -------------------------------------------------------------------------------- /src/go/msgbus/metric.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/metric.go -------------------------------------------------------------------------------- /src/go/msgbus/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/module.go -------------------------------------------------------------------------------- /src/go/msgbus/pusher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/pusher.go -------------------------------------------------------------------------------- /src/go/msgbus/runtime.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/runtime.go -------------------------------------------------------------------------------- /src/go/msgbus/subscriber.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/msgbus/subscriber.go -------------------------------------------------------------------------------- /src/go/nodered/nodered.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/nodered/nodered.go -------------------------------------------------------------------------------- /src/go/nodered/settings.js.tmpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/nodered/settings.js.tmpl -------------------------------------------------------------------------------- /src/go/ot-sim.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/ot-sim.go -------------------------------------------------------------------------------- /src/go/staticcheck.conf: -------------------------------------------------------------------------------- 1 | checks = ["all", "-ST1006"] -------------------------------------------------------------------------------- /src/go/sunspec/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/README.md -------------------------------------------------------------------------------- /src/go/sunspec/client/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/client/client.go -------------------------------------------------------------------------------- /src/go/sunspec/client/util.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/client/util.go -------------------------------------------------------------------------------- /src/go/sunspec/common/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/common/common.go -------------------------------------------------------------------------------- /src/go/sunspec/common/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/common/register.go -------------------------------------------------------------------------------- /src/go/sunspec/common/schema.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/common/schema.go -------------------------------------------------------------------------------- /src/go/sunspec/common/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/common/types.go -------------------------------------------------------------------------------- /src/go/sunspec/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/server/server.go -------------------------------------------------------------------------------- /src/go/sunspec/sunspec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/sunspec/sunspec.go -------------------------------------------------------------------------------- /src/go/tailscale/tailscale.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/tailscale/tailscale.go -------------------------------------------------------------------------------- /src/go/telnet/banner.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/telnet/banner.go -------------------------------------------------------------------------------- /src/go/telnet/modules.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/telnet/modules.go -------------------------------------------------------------------------------- /src/go/telnet/telnet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/telnet/telnet.go -------------------------------------------------------------------------------- /src/go/util/context.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/util/context.go -------------------------------------------------------------------------------- /src/go/util/exit.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/util/exit.go -------------------------------------------------------------------------------- /src/go/util/sigterm/context.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/util/sigterm/context.go -------------------------------------------------------------------------------- /src/go/util/slice.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/go/util/slice.go -------------------------------------------------------------------------------- /src/js/node-red/icons/zeromq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/js/node-red/icons/zeromq.png -------------------------------------------------------------------------------- /src/js/node-red/ot-sim.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/js/node-red/ot-sim.html -------------------------------------------------------------------------------- /src/js/node-red/ot-sim.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/js/node-red/ot-sim.js -------------------------------------------------------------------------------- /src/js/node-red/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/js/node-red/package.json -------------------------------------------------------------------------------- /src/old/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/README.md -------------------------------------------------------------------------------- /src/old/c/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/CMakeLists.txt -------------------------------------------------------------------------------- /src/old/c/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/Makefile -------------------------------------------------------------------------------- /src/old/c/cmd/ot-sim-io-module/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/cmd/ot-sim-io-module/CMakeLists.txt -------------------------------------------------------------------------------- /src/old/c/cmd/ot-sim-io-module/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/cmd/ot-sim-io-module/main.c -------------------------------------------------------------------------------- /src/old/c/msgbus/debugger.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/msgbus/debugger.c -------------------------------------------------------------------------------- /src/old/c/msgbus/logger.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/msgbus/logger.c -------------------------------------------------------------------------------- /src/old/c/msgbus/msgbus-ini-example.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/msgbus/msgbus-ini-example.c -------------------------------------------------------------------------------- /src/old/c/msgbus/msgbus-test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/c/msgbus/msgbus-test.c -------------------------------------------------------------------------------- /src/old/python/dnp3/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/client.py -------------------------------------------------------------------------------- /src/old/python/dnp3/dnp3.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/dnp3.py -------------------------------------------------------------------------------- /src/old/python/dnp3/envelope.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/envelope.py -------------------------------------------------------------------------------- /src/old/python/dnp3/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/logger.py -------------------------------------------------------------------------------- /src/old/python/dnp3/master.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/master.py -------------------------------------------------------------------------------- /src/old/python/dnp3/outstation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/outstation.py -------------------------------------------------------------------------------- /src/old/python/dnp3/point.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/point.py -------------------------------------------------------------------------------- /src/old/python/dnp3/server.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/server.py -------------------------------------------------------------------------------- /src/old/python/dnp3/variations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/old/python/dnp3/variations.py -------------------------------------------------------------------------------- /src/python/.gitignore: -------------------------------------------------------------------------------- 1 | mypy.ini 2 | -------------------------------------------------------------------------------- /src/python/otsim/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/ground_truth/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/ground_truth/ground_truth.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/ground_truth/ground_truth.py -------------------------------------------------------------------------------- /src/python/otsim/helics_helper/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/helics_helper/README.md -------------------------------------------------------------------------------- /src/python/otsim/helics_helper/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/helics_helper/__init__.py -------------------------------------------------------------------------------- /src/python/otsim/helics_helper/version.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | __version__ = "0.1.0" 3 | -------------------------------------------------------------------------------- /src/python/otsim/io/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/io/io.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/io/io.py -------------------------------------------------------------------------------- /src/python/otsim/msgbus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/msgbus/envelope.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/msgbus/envelope.py -------------------------------------------------------------------------------- /src/python/otsim/msgbus/metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/msgbus/metrics.py -------------------------------------------------------------------------------- /src/python/otsim/msgbus/pusher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/msgbus/pusher.py -------------------------------------------------------------------------------- /src/python/otsim/msgbus/subscriber.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/msgbus/subscriber.py -------------------------------------------------------------------------------- /src/python/otsim/rpi_gpio/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/rpi_gpio/README.md -------------------------------------------------------------------------------- /src/python/otsim/rpi_gpio/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/rpi_gpio/rpi_gpio.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/rpi_gpio/rpi_gpio.py -------------------------------------------------------------------------------- /src/python/otsim/wind_turbine/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/python/otsim/wind_turbine/anemometer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/wind_turbine/anemometer/__init__.py -------------------------------------------------------------------------------- /src/python/otsim/wind_turbine/anemometer/anemometer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/wind_turbine/anemometer/anemometer.py -------------------------------------------------------------------------------- /src/python/otsim/wind_turbine/power_output/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/wind_turbine/power_output/__init__.py -------------------------------------------------------------------------------- /src/python/otsim/wind_turbine/power_output/power_output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/otsim/wind_turbine/power_output/power_output.py -------------------------------------------------------------------------------- /src/python/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/src/python/setup.py -------------------------------------------------------------------------------- /testing/dnp3/master.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/dnp3/master.py -------------------------------------------------------------------------------- /testing/dnp3/visitors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/dnp3/visitors.py -------------------------------------------------------------------------------- /testing/e2e/Procfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/Procfile -------------------------------------------------------------------------------- /testing/e2e/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/README.md -------------------------------------------------------------------------------- /testing/e2e/configs/device-1.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/configs/device-1.xml -------------------------------------------------------------------------------- /testing/e2e/configs/device-2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/configs/device-2.xml -------------------------------------------------------------------------------- /testing/e2e/helics/broker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/broker.py -------------------------------------------------------------------------------- /testing/e2e/helics/data/IEEE13/IEEE13Node_BusXY.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/data/IEEE13/IEEE13Node_BusXY.csv -------------------------------------------------------------------------------- /testing/e2e/helics/data/IEEE13/IEEE13Nodeckt.dss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/data/IEEE13/IEEE13Nodeckt.dss -------------------------------------------------------------------------------- /testing/e2e/helics/data/IEEE13/IEEELineCodes.dss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/data/IEEE13/IEEELineCodes.dss -------------------------------------------------------------------------------- /testing/e2e/helics/data/IEEE13/LoadShape1.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/data/IEEE13/LoadShape1.csv -------------------------------------------------------------------------------- /testing/e2e/helics/opendss-federate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patsec/ot-sim/HEAD/testing/e2e/helics/opendss-federate.py --------------------------------------------------------------------------------