/// <summary> /// Handle the given message /// </summary> /// <returns>True if handled</returns> protected virtual bool ReceiveWriteSlotData(WriteSlotData msg) { log.Trace("Received: SetSlotData: slot={0}, address={1}", msg.Slot, msg.Address); var slot = locSlotMap[msg.Slot]; if (slot == null) { // We do not know this slot, so we don't care about it. return(true); } if (slot.Address != msg.Address) { // Slot now has a different address, do not use this slot any longer locSlotMap.Remove(slot); return(true); } log.Trace("Updating slot: {0}, address={1}", msg.Slot, msg.Address); slot.Address = msg.Address; slot.DirF = msg.DirF; slot.Sound = msg.Sound; slot.Speed = msg.Speed; slot.Touch(); UpdateLocFromSlot(slot); return(true); }
/// <summary> /// Handle the given message /// </summary> /// <returns>True if handled</returns> protected virtual bool SetSlotData(WriteSlotData msg) { log.Trace("Received: SetSlotData: slot={0}, address={1}", msg.Slot, msg.Address); var slot = slotTable.FindBySlotNumber(msg.Slot, true, msg.Address); if (slot == null) { log.Trace("Unknown slot: {0}", msg.Slot); return(false); } log.Trace("Updating slot: {0}, address={1}", msg.Slot, msg.Address); slot.Address = msg.Address; slot.DirF = msg.DirF; slot.Sound = msg.Sound; slot.Speed = msg.Speed; stateDispatcher.PostAction(slot.SlotUpdated); return(true); }
/// <summary> /// Write slot data /// </summary> public override bool Visit(WriteSlotData msg, Client data) { return(data.ReceiveWriteSlotData(msg)); }
/// <summary> /// Write slot data /// </summary> public override bool Visit(WriteSlotData msg, Master data) { return(data.SetSlotData(msg)); }
public virtual TReturn Visit(WriteSlotData msg, TData data) { return(default(TReturn)); }