]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/layout.cpp
Include block in the emergency signal
[r2c2.git] / source / libr2c2 / layout.cpp
index b4eb8faacdbdb52d5d4786fe8495c747762c1c6a..a6abc500448782341378376a83bf35c6500325ff 100644 (file)
@@ -396,12 +396,15 @@ void Layout::tick()
                i->second->tick(dt);
 }
 
-void Layout::emergency(const string &msg)
+void Layout::emergency(Block *block, const string &msg)
 {
        if(driver)
                driver->halt(true);
-       IO::print("Emergency: %s\n", msg);
-       signal_emergency.emit(msg);
+       if(block)
+               IO::print("Emergency at %s: %s\n", block->get_name(), msg);
+       else
+               IO::print("Emergency: %s\n", msg);
+       signal_emergency.emit(block, msg);
 }
 
 void Layout::save(const string &fn) const
@@ -500,7 +503,7 @@ void Layout::sensor_state_changed(Sensor &sensor, Sensor::State state)
        {
                Block *block = sensor.get_block();
                if(block && !block->get_train())
-                       emergency(format("Unreserved sensor %d triggered", sensor.get_address()));
+                       emergency(block, "Unreserved sensor triggered");
        }
 }