Beispiel #1
0
        private void Parse(byte value)
        {
            // see https://support.knx.org/hc/en-us/articles/115003188429-Control-Field

            // D7
            // 0 = Extended Frame (9..262 octets)
            // 1 = Standard Frame (8..23 octets)
            if ((value & 0b1000_0000) != 0)
            {
                TelegramType = KnxTelegramType.StandardFrame;
            }

            // D5
            // 0 = Repeated
            // 1 = Not repeated (original)
            if ((value & 0b0010_0000) != 0)
            {
                TelegramRepetitionStatus = KnxTelegramRepetitionStatus.Original;
            }

            // D3 + D2
            // 00 = System
            // 10 = Urgent
            // 01 = Normal
            // 11 = Low
            if ((value & 0b0000_1000) != 0 && (value & 0b0000_0100) != 0)
            {
                TelegramPriority = KnxTelegramPriority.Low;
            }
Beispiel #2
0
 internal KnxControlField1(KnxTelegramType telegramType, KnxTelegramRepetitionStatus telegramRepetitionStatus, KnxTelegramPriority telegramPriority)
 {
     TelegramType             = telegramType;
     TelegramRepetitionStatus = telegramRepetitionStatus;
     TelegramPriority         = telegramPriority;
 }