/// <summary> /// 移除某个总线地址的子设备 /// </summary> /// <param name="device"></param> public void Remove(int dialCode) { SubDevice d = _SubDevices[dialCode]; if (d != null) { _SubDevices[dialCode] = null; } }
/// <summary> /// 改变子设备的拨码地址改,不成功时返回false,而不是抛出异常 /// </summary> /// <param name="device"></param> /// <param name="newDialCode"></param> /// <returns></returns> public bool TryMove(SubDevice device, int newDialCode) { try { Move(device, newDialCode); return(true); } catch { return(false); } }
/// <summary> /// 增加子设备,不成功时返回false,而不是抛出异常 /// </summary> /// <param name="device"></param> /// <returns></returns> public bool TryAdd(SubDevice device) { try { Add(device); return(true); } catch { return(false); } }
/// <summary> /// 改变子设备的拨码地址改 /// </summary> /// <param name="device"></param> /// <param name="newDialCode"></param> public void Move(SubDevice device, int newDialCode) { int dialCode = device.DialCode; if (newDialCode >= 0 && newDialCode < _SubDevices.Length) { if (_SubDevices[newDialCode] == null) { Remove(device.DialCode); device.DialCode = newDialCode; _SubDevices[newDialCode] = device; } else { throw new InvalidOperationException(string.Format("总线地址{0}下已经存在设备", device.DialCode)); } } else { throw new InvalidOperationException(string.Format("无效的总线地址{0}", device.DialCode)); } }
/// <summary> /// 增加子设备 /// </summary> /// <param name="device"></param> public void Add(SubDevice device) { if (device.DialCode >= 0 && device.DialCode < _SubDevices.Length) { if (_SubDevices[device.DialCode] == null) { _SubDevices[device.DialCode] = device; device.Parent = this.Parent; device.BusNum = this._BusNum; if (this.Parent != null) { device.ParentID = this.Parent.ID; } } else { throw new InvalidOperationException(string.Format("总线地址{0}下已经存在设备", device.DialCode)); } } else { throw new InvalidOperationException(string.Format("无效的总线地址{0}", device.DialCode)); } }
public ParkingGuideBus(int num, int capacity) { _BusNum = num; _SubDevices = new SubDevice[capacity]; }