protected DeviceDescriptionInformationBlock(byte[] bytes) : base(bytes) { if (Type != DescriptionType.DeviceInfo) { throw new KnxNetIpException("Unable to determine Device Description. Wrong Description Type!"); } Medium = (KnxMedium)Information[0]; Status = Information[1]; Address = new KnxDeviceAddress(Information.ExtractBytes(2, 2)); ProjectInstallId = (Information[4] << 8) + Information[5]; SerialNumber = new DptString_8859_1(Information.ExtractBytes(6, 6)).Value; MacAddress = Information.ExtractBytes(12, 10); FriendlyName = Resources.Strings.UnknownDevice; if (Information.Length > 22) { var name = new DptString_8859_1(Information.ExtractBytes(22)).Value; if (name.IndexOf('\0') >= 0) { name = name.Substring(0, name.IndexOf('\0')); } FriendlyName = name; } }
public void DptString8859_1Test() { var dpt1 = new DptString_8859_1("KNX is OK"); var dpt2 = new DptString_8859_1(dpt1.Payload); Assert.AreEqual("KNX is OK", dpt2.Value); Assert.AreEqual(0x4B, dpt2.Payload[0]); Assert.AreEqual(0x4E, dpt2.Payload[1]); Assert.AreEqual(0x58, dpt2.Payload[2]); Assert.AreEqual(0x20, dpt2.Payload[3]); Assert.AreEqual(0x69, dpt2.Payload[4]); Assert.AreEqual(0x73, dpt2.Payload[5]); Assert.AreEqual(0x20, dpt2.Payload[6]); Assert.AreEqual(0x4F, dpt2.Payload[7]); Assert.AreEqual(0x4B, dpt2.Payload[8]); Assert.AreEqual(0x00, dpt2.Payload[9]); Assert.AreEqual(0x00, dpt2.Payload[10]); Assert.AreEqual(0x00, dpt2.Payload[11]); Assert.AreEqual(0x00, dpt2.Payload[12]); Assert.AreEqual(0x00, dpt2.Payload[13]); }