// 생성자 public ClsMultiReadPacketData(byte invokeId, ClsBACnetDevice device) { if (invokeId > MAX_INVOKE_ID) { throw new ArgumentException("InvokeId 가 사용가능한 범위를 벗어났습니다", "invokeId"); } else if (device == null) { throw new ArgumentNullException("Device 가 null 입니다", "device"); } else { this.m_InvokeId = invokeId; this.m_RemoteEP = device.RemoteEP; this.m_Device = device; this.m_Items = new List <ClsRequestItemData>(50); } }
public ClsTagItem(int tagId, BACnetObjectType objectType, int objectInstance, ClsBACnetDevice device, double gain, double bias) { this.m_TagId = tagId; if (Enum.IsDefined(typeof(BACnetObjectType), objectType) != true) { throw new ArgumentException("BACnet Object의 ObjectType 이 처리 가능한 타입이 아닙니다", "objectType"); } else if (objectInstance < 0 | objectInstance >= 0x400000) { throw new ArgumentException("BACnet Object의 ObjectInstance 가 범위를 벗어났습니다", "objectInstance"); } else if (gain == 0) { throw new ArgumentException("GAIN 이 0 입니다", "gain"); } else { this.m_ObjectType = objectType; this.m_ObjectInstance = objectInstance; this.m_ObjectIdentifier = (Convert.ToUInt32(this.m_ObjectType) << 22) | Convert.ToUInt32(objectInstance); #region ObjectType 에 따라, IsWriteable, ValueTypeTag 설정 switch (objectType) { case BACnetObjectType.AI: this.m_IsWriteable = false; this.m_ValueTypeTag = 0x44; break; case BACnetObjectType.BI: this.m_IsWriteable = false; this.m_ValueTypeTag = 0x91; break; case BACnetObjectType.MSI: this.m_IsWriteable = false; this.m_ValueTypeTag = 0x21; break; case BACnetObjectType.AO: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x44; break; case BACnetObjectType.AV: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x44; break; case BACnetObjectType.BO: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x91; break; case BACnetObjectType.BV: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x91; break; case BACnetObjectType.MSO: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x21; break; case BACnetObjectType.MSV: this.m_IsWriteable = true; this.m_ValueTypeTag = 0x21; break; } #endregion this.m_Device = new WeakReference(device); this.m_GAIN = gain; this.m_BIAS = bias; } }
// 생성자 public ClsTagItem(int tagId, BACnetObjectType objectType, int objectInstance, ClsBACnetDevice device) : this(tagId, objectType, objectInstance, device, 1, 0) { }