command(format("request(%d, view, control, force)", id));
}
+void CentralStation::remove_loco(unsigned addr)
+{
+ unsigned id = map_address(locos, loco_addr, addr);
+ if(id)
+ command(format("release(%d, view, control)", id));
+}
+
void CentralStation::set_loco_speed(unsigned addr, unsigned speed)
{
if(speed && halted)
turnout.bits = type.get_state_bits();
}
+void CentralStation::remove_turnout(unsigned addr)
+{
+ remove_accessory(addr);
+}
+
void CentralStation::set_turnout(unsigned addr, unsigned state)
{
set_accessory_state(addr, MagnetAccessory::TURNOUT, state);
add_accessory(addr, MagnetAccessory::SIGNAL, MagnetAccessory::SEMAPHORE_HOME);
}
+void CentralStation::remove_signal(unsigned addr)
+{
+ remove_accessory(addr);
+}
+
void CentralStation::set_signal(unsigned addr, unsigned state)
{
set_accessory_state(addr, MagnetAccessory::SIGNAL, state);
}
}
+void CentralStation::remove_accessory(unsigned addr)
+{
+ unsigned id = map_address(accessories, accessory_addr, addr);
+ if(id)
+ command(format("release(%d, view, control)", id));
+}
+
void CentralStation::set_accessory_state(unsigned addr, MagnetAccessory::Type type, unsigned state)
{
unsigned id = map_address(accessories, accessory_addr, addr);
}
}
+void CentralStation::remove_sensor(unsigned)
+{
+}
+
bool CentralStation::get_sensor(unsigned addr) const
{
SensorMap::const_iterator i = sensors.find(addr);