public void StandardFrame_GetSoftwareVersion()
        {
            // act
            var req = new FeigRequest {
                Command = FeigCommand.GetSoftwareVersion
            };

            // assert
            Check.That(req.Address).IsEqualTo(0xFF);
            Check.That(req.Command).IsEqualTo(FeigCommand.GetSoftwareVersion);
            Check.That(req.Data.IsEmpty).IsTrue();

            // act
            var frame = req.ToBufferSpan();

            // assert
            Check.That(frame.ToArray())
            .ContainsExactly(
                0x05,
                0xFF,
                0x65,
                0xE5,
                0xCB
                );

            Check.That(req.ToString()).IsEqualTo("Address: 255, Command: GetSoftwareVersion, Data: <empty>");
        }
        public void StandardFrame()
        {
            // act
            var req = new FeigRequest {
                Address = 0x12, Command = FeigCommand.ReadConfiguration, Data = BufferSpan.From(0x07),
            };

            // assert
            Check.That(req.Address).IsEqualTo(0x12);
            Check.That(req.Command).IsEqualTo(FeigCommand.ReadConfiguration);
            Check.That(req.Data.Buffer).ContainsExactly(0x07);

            // act
            var frame = req.ToBufferSpan();

            // assert
            Check.That(frame.ToArray())
            .ContainsExactly(
                0x06,
                0x12,
                0x80,
                0x07,
                0xe5,
                0x80
                );

            Check.That(req.ToString()).IsEqualTo("Address: 18, Command: ReadConfiguration, Data: 07");
        }