70 lines
2.0 KiB
Bash
Executable File
70 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Diagnose ICS-SimLab runtime issues
|
|
#
|
|
|
|
set -e
|
|
|
|
echo "============================================================"
|
|
echo "ICS-SimLab Runtime Diagnostics"
|
|
echo "============================================================"
|
|
|
|
SCENARIO_DIR="$(cd "$(dirname "$0")" && pwd)/outputs/scenario_run"
|
|
|
|
echo ""
|
|
echo "1. Checking scenario files..."
|
|
if [ -f "$SCENARIO_DIR/configuration.json" ]; then
|
|
echo " ✓ configuration.json exists"
|
|
else
|
|
echo " ✗ configuration.json missing"
|
|
fi
|
|
|
|
if [ -f "$SCENARIO_DIR/logic/plc1.py" ]; then
|
|
echo " ✓ logic/plc1.py exists"
|
|
else
|
|
echo " ✗ logic/plc1.py missing"
|
|
fi
|
|
|
|
if [ -f "$SCENARIO_DIR/logic/plc2.py" ]; then
|
|
echo " ✓ logic/plc2.py exists"
|
|
if grep -q "_safe_callback" "$SCENARIO_DIR/logic/plc2.py"; then
|
|
echo " ✓ plc2.py has _safe_callback (retry fix present)"
|
|
else
|
|
echo " ✗ plc2.py missing _safe_callback (retry fix NOT present)"
|
|
fi
|
|
else
|
|
echo " ✗ logic/plc2.py missing"
|
|
fi
|
|
|
|
echo ""
|
|
echo "2. Checking Docker..."
|
|
if command -v docker &> /dev/null; then
|
|
echo " ✓ Docker installed"
|
|
|
|
echo ""
|
|
echo "3. Running containers:"
|
|
sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "NAME|plc|hil|hmi" || echo " (none)"
|
|
|
|
echo ""
|
|
echo "4. All containers (including stopped):"
|
|
sudo docker ps -a --format "table {{.Names}}\t{{.Status}}" | grep -E "NAME|plc|hil|hmi" || echo " (none)"
|
|
|
|
echo ""
|
|
echo "5. Docker networks:"
|
|
sudo docker network ls | grep -E "NAME|ot_network" || echo " (none)"
|
|
else
|
|
echo " ✗ Docker not found"
|
|
fi
|
|
|
|
echo ""
|
|
echo "============================================================"
|
|
echo "To start ICS-SimLab:"
|
|
echo " ./test_simlab.sh"
|
|
echo ""
|
|
echo "To view live PLC2 logs:"
|
|
echo " sudo docker logs <plc2_container_name> -f"
|
|
echo ""
|
|
echo "To stop all containers:"
|
|
echo " cd ~/projects/ICS-SimLab-main/curtin-ics-simlab && sudo ./stop.sh"
|
|
echo "============================================================"
|