public BacnetDeviceObjectPropertyReference(BacnetObjectId objectIdentifier, BacnetPropertyIds propertyIdentifier, BacnetObjectId?deviceIndentifier = null, uint arrayIndex = ASN1.BACNET_ARRAY_ALL) { this.objectIdentifier = objectIdentifier; this.propertyIdentifier = propertyIdentifier; this.arrayIndex = arrayIndex; this.deviceIndentifier = deviceIndentifier ?? new BacnetObjectId(BacnetObjectTypes.MAX_BACNET_OBJECT_TYPE, 0); }
public DeviceReportingRecipient(BacnetBitString weekofDay, DateTime fromTime, DateTime toTime, BacnetAddress adr, uint processIdentifier, bool ackRequired, BacnetBitString evenType) { Id = new BacnetObjectId(); WeekofDay = weekofDay; this.toTime = toTime; this.fromTime = fromTime; this.adr = adr; this.processIdentifier = processIdentifier; Ack_Required = ackRequired; this.evenType = evenType; }
public int Decode(byte[] buffer, int offset, uint count) { int len = 0; byte periodType; len += ASN1.decode_tag_number(buffer, offset + len, out periodType); // -> type switch (periodType) { case 0: //calendarEntry var calendar = new BACnetCalendarEntry(); len += calendar.Decode(buffer, offset + len, count); Period = calendar; len += 1; // -> closingtag break; case 1: //calendarReference var calRef = new BacnetObjectId(); len += ASN1.decode_object_id(buffer, offset + len, out calRef.type, out calRef.instance); Period = calRef; break; } ListOfTimeValues = new List <BacnetTimeValue>(); if (ASN1.IS_OPENING_TAG(buffer[offset + len])) { len++; //end of daily sched while (!ASN1.IS_CLOSING_TAG(buffer[offset + len])) { var timeVal = new BacnetTimeValue(); len += timeVal.Decode(buffer, offset + len, count); ListOfTimeValues.Add(timeVal); } //closing tag len++; } uint evPr; len += ASN1.decode_context_unsigned(buffer, offset + len, 3, out evPr); EventPriority = (byte)evPr; return(len); }
public static object Parse(string value) { var parts = value.Split(new [] { '.' }, StringSplitOptions.RemoveEmptyEntries); BacnetObjectId?deviceId = null; BacnetObjectId objectId; switch (parts.Length) { case 2: objectId = BacnetObjectId.Parse(parts[0]); break; case 3: deviceId = BacnetObjectId.Parse(parts[0]); objectId = BacnetObjectId.Parse(parts[1]); break; default: throw new ArgumentException("Invalid format", nameof(value)); } BacnetPropertyIds propertyId; if (!Enum.TryParse(parts.Last(), out propertyId)) { uint vendorSpecificPropertyId; if (!uint.TryParse(parts.Last(), out vendorSpecificPropertyId)) { throw new ArgumentException("Invalid format of property id", nameof(value)); } propertyId = (BacnetPropertyIds)vendorSpecificPropertyId; } return(new BacnetDeviceObjectPropertyReference { DeviceId = deviceId, ObjectId = objectId, PropertyId = propertyId, ArrayIndex = -1 }); }
public DeviceReportingRecipient(BacnetValue v0, BacnetValue v1, BacnetValue v2, BacnetValue v3, BacnetValue v4, BacnetValue v5, BacnetValue v6) { Id = new BacnetObjectId(); adr = null; WeekofDay = (BacnetBitString)v0.Value; fromTime = (DateTime)v1.Value; toTime = (DateTime)v2.Value; if (v3.Value is BacnetObjectId) { Id = (BacnetObjectId)v3.Value; } else { var netdescr = (BacnetValue[])v3.Value; var s = (ushort)(uint)netdescr[0].Value; var b = (byte[])netdescr[1].Value; adr = new BacnetAddress(BacnetAddressTypes.IP, s, b); } processIdentifier = (uint)v4.Value; Ack_Required = (bool)v5.Value; evenType = (BacnetBitString)v6.Value; }
public BacnetReadAccessSpecification(BacnetObjectId objectIdentifier, IList <BacnetPropertyReference> propertyReferences) { this.objectIdentifier = objectIdentifier; this.propertyReferences = propertyReferences; }
public BacnetReadAccessResult(BacnetObjectId objectIdentifier, IList <BacnetPropertyValue> values) { this.objectIdentifier = objectIdentifier; this.values = values; }